diff --git a/.changeset/evm2-block-access-lists.md b/.changeset/evm2-block-access-lists.md new file mode 100644 index 00000000..8d1569e3 --- /dev/null +++ b/.changeset/evm2-block-access-lists.md @@ -0,0 +1,18 @@ +--- +"ox": minor +--- + +Added EIP-7928 block access lists: attach one so reads are gated by what it covers, or build one from executed transactions. + +```ts +import { Bal, Evm } from 'ox/evm' + +// Validating: a read the list does not cover is refused, not served. +Evm.setBal(evm, bal) + +// Building: transaction `i` records at index `i + 1`. +Evm.enableBalBuilder(evm) +Evm.setBalIndex(evm, 1n) +Evm.transact(evm, transaction) +const built = Evm.takeBal(evm) +``` diff --git a/.changeset/evm2-block-execution.md b/.changeset/evm2-block-execution.md new file mode 100644 index 00000000..b5c8e9bf --- /dev/null +++ b/.changeset/evm2-block-execution.md @@ -0,0 +1,5 @@ +--- +"ox": minor +--- + +Added block execution: gathering what a block's transactions change, applying caller-held state back to an EVM, and running protocol system calls. diff --git a/.changeset/evm2-call-execution.md b/.changeset/evm2-call-execution.md new file mode 100644 index 00000000..ad86b391 --- /dev/null +++ b/.changeset/evm2-call-execution.md @@ -0,0 +1,5 @@ +--- +"ox": minor +--- + +Added `ox/evm`, an EVM backed by `alloy-rs/evm2` compiled to WebAssembly, with read-only transaction execution; every operation reads its inputs when it is submitted, so mutating them afterwards cannot change what runs. diff --git a/.changeset/evm2-configuration.md b/.changeset/evm2-configuration.md new file mode 100644 index 00000000..614f4e16 --- /dev/null +++ b/.changeset/evm2-configuration.md @@ -0,0 +1,5 @@ +--- +"ox": minor +--- + +Added version overrides to `Evm.create`, plus `Evm.setBlock`, `Evm.setExecutionConfig`, and `Evm.setBlockAndExecutionConfig`. diff --git a/.changeset/evm2-inspection.md b/.changeset/evm2-inspection.md new file mode 100644 index 00000000..178c2404 --- /dev/null +++ b/.changeset/evm2-inspection.md @@ -0,0 +1,15 @@ +--- +"ox": minor +--- + +Added `Evm.setInspector` and `Evm.clearInspector`, which record what an execution did and report it as a trace on the result. + +```ts +import { Evm, Inspector } from 'ox/evm' + +Evm.setInspector(evm, {}) + +const result = Evm.callTx(evm, transaction) +const [root] = Inspector.tree(result.trace) +root.calls.length +``` diff --git a/.changeset/evm2-transaction-lifecycle.md b/.changeset/evm2-transaction-lifecycle.md new file mode 100644 index 00000000..9fec76d1 --- /dev/null +++ b/.changeset/evm2-transaction-lifecycle.md @@ -0,0 +1,5 @@ +--- +"ox": minor +--- + +Added `Evm.transact`, which keeps a transaction's state changes pending so the caller commits, discards, or detaches them. diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 78e442dc..7800ecfc 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -198,5 +198,30 @@ jobs: path: .wasm-toolchain key: wasi-sdk-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('wasm/toolchain.json') }} + - name: Install the pinned Rust toolchain + # `rustup show` inside the crate installs whatever + # `rust-toolchain.toml` pins, including its `wasm32-unknown-unknown` + # target. + working-directory: wasm/evm2 + run: rustup show + + - name: Restore Cargo cache + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 + with: + path: | + ~/.cargo/git + ~/.cargo/registry + wasm/evm2/target + key: cargo-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('wasm/evm2/Cargo.lock', 'wasm/evm2/rust-toolchain.toml') }} + - name: Verify committed artifacts are reproducible + # Covers the C targets and the evm2 adapter; each builder pins its own + # toolchain. run: pnpm wasm:check + + - name: Test the evm2 adapter and its native oracle + # `cargo test` covers the ABI, the failure encodings, and the fixtures + # native evm2 owns. The WASM half of that comparison runs in the `core` + # Vitest project. + working-directory: wasm/evm2 + run: cargo test --locked diff --git a/.gitignore b/.gitignore index 46c8ef8f..45e71ba4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.map +.agents/ .bench .claude/ .DS_Store @@ -18,6 +19,7 @@ ox.api.json erc4337.api.json node.api.json tempo.api.json +evm.api.json wasm.api.json lookup.json config-generated.ts @@ -29,6 +31,7 @@ site/src/pages/node site/src/pages/tempo/* !site/src/pages/tempo/guides/ !site/src/pages/tempo/guides/** +site/src/pages/evm site/src/pages/wasm site/src/pages/webauthn site/src/pages/zod @@ -40,6 +43,10 @@ tsdoc-metadata.json .wasm-toolchain wasm/.build +# Rust adapter build output. `wasm/evm2/Cargo.lock` is committed: the shipped +# artifact must rebuild byte-for-byte, which pinning evm2 alone does not give. +wasm/evm2/target + # Rust bench build output (`pnpm bench:engines`). `Cargo.lock` is committed: the # dependency ranges would otherwise re-resolve per machine, and a benchmark # whose point is comparison over time cannot have its baseline move underneath diff --git a/AGENTS.md b/AGENTS.md index 03be3db2..9942115e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -46,6 +46,7 @@ ## API Conventions - **Stateless module APIs** -- public APIs are module namespaces full of functions and types. Do not introduce stateful classes for normal library behavior. +- **`ox/evm` follows evm2** -- every Ox-owned EVM API, name, lifecycle, state boundary, result, error, and extension point must map directly to the pinned `alloy-rs/evm2` model. Adapt only syntax and runtime mechanics required by TypeScript or WebAssembly; record each unavoidable difference and get explicit approval before implementation. - **Public entrypoint docs** -- when adding a public module or export, update `src/index.ts` with the module export and TSDoc block. - **Package exports are generated** -- run `pnpm exports:update` only when intentionally adding, removing, or renaming public subpath exports. - **Keep public APIs lean** -- avoid exposing options for values the library can derive from existing inputs. @@ -123,6 +124,7 @@ - **Conventional commits** -- use `feat:`, `fix:`, `refactor:`, `docs:`, `test:`, `chore:` prefixes. Scope is optional (e.g. `feat(abi): add tuple formatter`). - **Preserve dirty work** -- do not revert, clean, or overwrite existing local changes unless explicitly asked. +- **Never force push** -- do not force push a branch, with or without `--force-with-lease`, and do not amend a commit that is already pushed. Add a follow-up commit instead. A pushed branch is shared history: force pushing discards review context and breaks anything built on it. ## Learned Workspace Facts @@ -132,6 +134,11 @@ - **Generated site pages** -- API/reference pages under `site/src/pages/api`, `site/src/pages/ercs`, `site/src/pages/node`, `site/src/pages/tempo`, `site/src/pages/webauthn`, `site/src/pages/wasm`, and `site/src/pages/glossary` are generated. - **Contracts submodule** -- `contracts/lib/forge-std` is a submodule path. Treat submodule status changes as user work unless the task is specifically about contracts setup. - **WASM artifacts are generated** -- C lives in `wasm/src`, targets in `wasm/targets.ts`, and the committed base64 modules (`src/wasm/internal/*.wasm.ts`, `src/tempo/internal/mine.wasm.ts`) are written by `pnpm wasm:build`. Never hand-edit them. After changing any C or target config, run `pnpm wasm:build` and commit the result; `pnpm wasm:check` fails CI otherwise. The toolchain is pinned in `wasm/toolchain.json` because compiled bytes depend on the exact compiler version. See `wasm/README.md`. +- **Keep the evm2 adapter thin** -- `wasm/evm2` may own Ox's Rust-to-WASM ABI, host bridge, serialization, and runtime glue, but never EVM behavior that belongs to evm2. Resolve evm2 as an exact-revision Cargo dependency from the external cache; never add its source as a checkout, submodule, subtree, or vendored directory. +- **The evm2 artifact is generated** -- `src/wasm/internal/evm2.wasm.ts`, `wasm/evm2/NOTICE.md`, and the two `wasm/evm2/LICENSE-*` files are written by `pnpm wasm:build`. Never hand-edit them; `pnpm wasm:check` fails CI otherwise. `--target=evm2` selects this builder alone, which compiles inside the Docker image pinned in `wasm/toolchain.json` because `rustc` output is not byte-identical across host platforms. `OX_EVM2_NATIVE=1` builds on the host for local iteration; `pnpm wasm:check` refuses it. See `wasm/README.md`. +- **Record every evm2 divergence** -- a difference between an Ox EVM API and evm2's needs a recorded technical constraint and explicit approval before implementation, not after. Casing, namespace functions in place of Rust methods, and async WASM compilation are adaptations; anything else is a divergence. +- **ABI v1 has two halves** -- `wasm/evm2/src/abi.rs` and `src/evm/internal/codec.ts` encode the same layouts and must change together. evm2's Rust API never crosses that boundary. +- **The evm2 adapter pins stable Rust deliberately** -- evm2's build script selects a tail-call interpreter backend on nightly, which needs unstable features WebAssembly cannot use. Stable resolves to `single_return`, the backend evm2 intends for wasm. The adapter is also `no_std`: the `std` feature reaches `getrandom 0.2`, which refuses to compile for `wasm32-unknown-unknown`. - **Trusted setup artifacts are generated** -- `src/trusted-setups/internal/setups/mainnet.json` is canonical. Refresh it from an explicit `c-kzg-4844` release with `pnpm trusted-setups:update `; `pnpm trusted-setups:check` verifies its recorded hash and packed TypeScript artifact. See `src/trusted-setups/README.md`. - **KZG WASM disables LTO** -- full LTO makes valid c-kzg trusted-setup initialization trap. Preserve `-fno-lto` and the KZG conformance tests. - **Secrets are local** -- `.env` is local. Do not print, rewrite, or commit secrets. diff --git a/package.json b/package.json index 185ab471..d91325e3 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "deps:ci": "pnpx actions-up", "dev": "pnpm exports:update && zile dev", "docs:dev": "pnpm --filter site dev", - "docs:extract": "pnpm api-extractor run -c scripts/docgen/api-extractor.json --local && pnpm api-extractor run -c scripts/docgen/api-extractor.erc4337.json --local && pnpm api-extractor run -c scripts/docgen/api-extractor.node.json --local && pnpm api-extractor run -c scripts/docgen/api-extractor.tempo.json --local && pnpm api-extractor run -c scripts/docgen/api-extractor.wasm.json --local && node --import tsx scripts/docgen/build.ts", + "docs:extract": "pnpm api-extractor run -c scripts/docgen/api-extractor.json --local && pnpm api-extractor run -c scripts/docgen/api-extractor.erc4337.json --local && pnpm api-extractor run -c scripts/docgen/api-extractor.evm.json --local && pnpm api-extractor run -c scripts/docgen/api-extractor.node.json --local && pnpm api-extractor run -c scripts/docgen/api-extractor.tempo.json --local && pnpm api-extractor run -c scripts/docgen/api-extractor.wasm.json --local && node --import tsx scripts/docgen/build.ts", "docs:gen": "pnpm build && pnpm docs:extract", "docs:build": "pnpm docs:gen && pnpm --filter site build", "exports:update": "node --import tsx ./scripts/exports:update.ts", @@ -121,7 +121,8 @@ { "name": "import * from 'ox'", "path": "./dist/index.js", - "import": "*" + "import": "*", + "limit": "200 kB" }, { "name": "import { Hex } from 'ox'; console.log(Hex.assert)", @@ -131,7 +132,14 @@ { "name": "import * from 'ox/wasm'", "path": "./dist/wasm/index.js", - "import": "*" + "import": "*", + "limit": "225 kB" + }, + { + "name": "import * from 'ox/evm'", + "path": "./dist/evm/index.js", + "import": "*", + "limit": "320 kB" }, { "name": "import { Hash } from 'ox/wasm'", @@ -201,6 +209,10 @@ "CHANGELOG.md", "dist", "src", + "wasm/evm2/LICENSE-APACHE", + "wasm/evm2/LICENSE-MIT", + "wasm/evm2/NOTICE.md", + "wasm/evm2/THIRD-PARTY-LICENSES.md", "wasm/vendor/c-kzg-4844/LICENSE", "wasm/vendor/c-kzg-4844/blst/LICENSE", "wasm/vendor/mldsa-native/LICENSE" @@ -701,6 +713,71 @@ "types": "./dist/erc8021/Attribution.d.ts", "default": "./dist/erc8021/Attribution.js" }, + "./evm": { + "src": "./src/evm/index.ts", + "types": "./dist/evm/index.d.ts", + "default": "./dist/evm/index.js" + }, + "./evm/Bal": { + "src": "./src/evm/Bal.ts", + "types": "./dist/evm/Bal.d.ts", + "default": "./dist/evm/Bal.js" + }, + "./evm/BlockState": { + "src": "./src/evm/BlockState.ts", + "types": "./dist/evm/BlockState.d.ts", + "default": "./dist/evm/BlockState.js" + }, + "./evm/Database": { + "src": "./src/evm/Database.ts", + "types": "./dist/evm/Database.d.ts", + "default": "./dist/evm/Database.js" + }, + "./evm/Ethereum": { + "src": "./src/evm/Ethereum.ts", + "types": "./dist/evm/Ethereum.d.ts", + "default": "./dist/evm/Ethereum.js" + }, + "./evm/Evm": { + "src": "./src/evm/Evm.ts", + "types": "./dist/evm/Evm.d.ts", + "default": "./dist/evm/Evm.js" + }, + "./evm/ExecutedTx": { + "src": "./src/evm/ExecutedTx.ts", + "types": "./dist/evm/ExecutedTx.d.ts", + "default": "./dist/evm/ExecutedTx.js" + }, + "./evm/Inspector": { + "src": "./src/evm/Inspector.ts", + "types": "./dist/evm/Inspector.d.ts", + "default": "./dist/evm/Inspector.js" + }, + "./evm/PendingState": { + "src": "./src/evm/PendingState.ts", + "types": "./dist/evm/PendingState.d.ts", + "default": "./dist/evm/PendingState.js" + }, + "./evm/SpecId": { + "src": "./src/evm/SpecId.ts", + "types": "./dist/evm/SpecId.d.ts", + "default": "./dist/evm/SpecId.js" + }, + "./evm/StateChange": { + "src": "./src/evm/StateChange.ts", + "types": "./dist/evm/StateChange.d.ts", + "default": "./dist/evm/StateChange.js" + }, + "./evm/System": { + "src": "./src/evm/System.ts", + "types": "./dist/evm/System.d.ts", + "default": "./dist/evm/System.js" + }, + "./evm/TxResult": { + "src": "./src/evm/TxResult.ts", + "types": "./dist/evm/TxResult.d.ts", + "default": "./dist/evm/TxResult.js" + }, "./node": { "src": "./src/node/index.ts", "types": "./dist/node/index.d.ts", diff --git a/scripts/docgen/api-extractor.evm.json b/scripts/docgen/api-extractor.evm.json new file mode 100644 index 00000000..ce8ae084 --- /dev/null +++ b/scripts/docgen/api-extractor.evm.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "mainEntryPointFilePath": "../../dist/evm/index.d.ts", + "bundledPackages": [], + "newlineKind": "lf", + "enumMemberOrder": "preserve", + "compiler": { + "tsconfigFilePath": "/tsconfig.json", + "overrideTsconfig": {}, + "skipLibCheck": true + }, + "apiReport": { + "enabled": false + }, + "docModel": { + "enabled": true, + "apiJsonFilePath": "/scripts/docgen/evm.api.json", + "includeForgottenExports": true, + "projectFolderUrl": "https://github.com/wevm/ox/blob/main" + }, + "dtsRollup": { + "enabled": false + }, + "messages": { + "extractorMessageReporting": { + "default": { "logLevel": "warning" }, + "ae-different-release-tags": { "logLevel": "none" }, + "ae-incompatible-release-tags": { "logLevel": "none" }, + "ae-internal-mixed-release-tag": { "logLevel": "none" }, + "ae-missing-release-tag": { "logLevel": "none" }, + "ae-unresolved-link": { "logLevel": "none" }, + "ae-forgotten-export": { "logLevel": "none" } + } + } +} diff --git a/scripts/docgen/build.ts b/scripts/docgen/build.ts index e9cbe9e8..c81b49f8 100644 --- a/scripts/docgen/build.ts +++ b/scripts/docgen/build.ts @@ -47,7 +47,7 @@ console.log('Generating API docs.') /// Clean previously generated pages //////////////////////////////////////////////////////////// -for (const dir of ['api', 'ercs', 'node', 'wasm', 'webauthn', 'zod']) { +for (const dir of ['api', 'ercs', 'evm', 'node', 'wasm', 'webauthn', 'zod']) { fs.removeSync(`./site/src/pages/${dir}`) } // Preserve hand-authored Tempo guides while replacing generated pages. diff --git a/scripts/wasm/build-c.ts b/scripts/wasm/build-c.ts new file mode 100644 index 00000000..e1c3c7f7 --- /dev/null +++ b/scripts/wasm/build-c.ts @@ -0,0 +1,181 @@ +/** + * Compiles the C targets in `wasm/targets.ts` into base64 TypeScript modules. + * + * The base64 module *is* the committed artifact: it ships through the normal + * build with no bundler or asset-pipeline configuration, and loads identically + * in Node, Bun, Deno, browsers and edge runtimes. + * + * `scripts/wasm/build.ts` and `check.ts` are the entrypoints. This module only + * builds; it does not write. + */ + +import * as child_process from 'node:child_process' +import * as fs from 'node:fs' +import * as path from 'node:path' +import { type Target, targets } from '../../wasm/targets.js' +import { type Resolved, resolve, root, toolchain } from './toolchain.js' + +const buildDir = path.join(root, 'wasm/.build') + +/** Flags shared by every target. */ +function commonFlags(toolchain: Resolved) { + return [ + '--target=wasm32', + '-O3', + '-flto', // full LTO; ThinLTO is not reliably deterministic + '-nostdlib', + '-ffreestanding', + '-fno-builtin', + '-fno-exceptions', + '-fno-unwind-tables', + '-fno-stack-protector', + '-Werror=implicit-function-declaration', + '-Wl,--no-entry', + '-Wl,--strip-all', + '-Wl,--gc-sections', + '-Wl,--lto-O3', + '-Wl,--export-memory', + // Exports are declared with `__attribute__((export_name(...)))` in the C, so + // the export list stays next to the code that defines it. + `-I${path.join(root, 'wasm/shim')}`, + `-I${path.join(root, 'wasm/src')}`, + ...(toolchain.clangRtDir + ? [`-L${toolchain.clangRtDir}`, '-lclang_rt.builtins-wasm32'] + : []), + ] +} + +function targetFlags(target: Target) { + return [ + ...(target.includes?.map((include) => `-I${path.join(root, include)}`) ?? + []), + ...Object.entries(target.defines ?? {}).map( + ([key, value]) => `-D${key}=${value}`, + ), + ...(target.cflags ?? []), + `-Wl,--initial-memory=${target.initialMemory}`, + ...(target.maxMemory ? [`-Wl,--max-memory=${target.maxMemory}`] : []), + ...(target.stackSize ? [`-Wl,-z,stack-size=${target.stackSize}`] : []), + ] +} + +/** + * Asserts the artifact carries no toolchain fingerprint. + * + * A surviving `producers` section embeds the compiler version string, which + * would make the bytes depend on the toolchain in a way `--strip-all` was + * supposed to remove -- and it would do so silently. + */ +function assertStripped(bytes: Uint8Array, name: string) { + const text = Buffer.from(bytes).toString('latin1') + for (const section of ['producers', 'target_features']) + if (text.includes(section)) + throw new Error( + `\`${name}\` still contains a \`${section}\` custom section. Artifacts must not embed toolchain metadata.`, + ) +} + +function template(target: Target, bytes: Uint8Array, toolchainVersion: string) { + const base64 = Buffer.from(bytes).toString('base64') + const extra = Object.entries(target.extra ?? {}) + .map( + ([key, value]) => + `\n/** Constant shared with the module's C source. */\nexport const ${key} = ${value}\n`, + ) + .join('') + return `// Generated by \`pnpm wasm:build --target=${target.name}\`. Do not edit. +// +// Compiled from ${target.sources.join(', ')} +// with ${toolchainVersion} + binaryen ${toolchain.binaryen}. +// +// \`pnpm wasm:check\` rebuilds this file and fails if the bytes differ, so any +// change to the C or to \`wasm/targets.ts\` must be followed by \`pnpm wasm:build\`. + +/** Base64-encoded WASM binary. */ +export const wasmBase64 = + '${base64}' +${extra}` +} + +async function build(target: Target, toolchain: Resolved) { + fs.mkdirSync(buildDir, { recursive: true }) + const raw = path.join(buildDir, `${target.name}.raw.wasm`) + const optimized = path.join(buildDir, `${target.name}.wasm`) + + child_process.execFileSync( + toolchain.clang, + [ + ...commonFlags(toolchain), + ...targetFlags(target), + '-o', + raw, + ...target.sources.map((source) => path.join(root, source)), + ], + { stdio: 'inherit' }, + ) + + child_process.execFileSync( + toolchain.wasmOpt, + [ + ...(target.wasmOpt ?? ['-O4']), + // Both sections record how the module was compiled rather than what it + // does, and both vary with the toolchain -- so they are stripped to keep + // the bytes reproducible. `assertStripped` verifies they are gone. + '--strip-producers', + '--strip-target-features', + raw, + '-o', + optimized, + ], + { stdio: 'inherit' }, + ) + + const bytes = new Uint8Array(fs.readFileSync(optimized)) + assertStripped(bytes, target.name) + + if (bytes.length > target.maxBytes) + throw new Error( + `\`${target.name}\` is ${bytes.length} bytes, over its ${target.maxBytes} byte budget. Shrink it, or raise \`maxBytes\` in \`wasm/targets.ts\` deliberately.`, + ) + + return { + bytes, + source: template(target, bytes, toolchain.version), + } +} + +/** Every C target name, for selection and error messages. */ +export const names = targets.map((target) => target.name) + +/** + * Compiles the selected C targets and returns their generated modules, keyed by + * repository-relative path. + */ +export async function buildC( + selection?: readonly string[], +): Promise> { + // An omitted selection means every target; an empty one means none. Conflating + // the two would make `--target=evm2` rebuild all of C. + const selected = + selection === undefined + ? targets + : targets.filter((target) => selection.includes(target.name)) + if (!selected.length) return {} + + const toolchain = await resolve() + const files: Record = {} + for (const target of selected) { + const { bytes, source } = await build(target, toolchain) + const gzip = child_process + .execSync('gzip -9c | wc -c', { input: Buffer.from(bytes) }) + .toString() + .trim() + console.log( + `${target.name.padEnd(10)} ${bytes.length} B wasm → ${ + Buffer.from(bytes).toString('base64').length + } B base64 → ${gzip} B gzip (budget ${target.maxBytes} B)`, + ) + files[target.out] = source + } + return files +} diff --git a/scripts/wasm/build-evm2.ts b/scripts/wasm/build-evm2.ts new file mode 100644 index 00000000..5e6d8a48 --- /dev/null +++ b/scripts/wasm/build-evm2.ts @@ -0,0 +1,590 @@ +/** + * Compiles the `wasm/evm2` Rust adapter and writes it as base64 inside a + * TypeScript module, alongside the attribution notice for everything it links. + * + * The adapter binds a pinned `alloy-rs/evm2` revision, which Cargo resolves from + * its own external cache -- evm2's source never enters this repository. Because + * the committed base64 *is* the shipped artifact, the build pins the toolchain, + * builds `--locked`, remaps dependency paths out of the binary, and refuses an + * artifact that reaches for anything beyond the four host database imports. + * + * `scripts/wasm/build.ts` and `check.ts` are the entrypoints. This module only + * builds; it does not write. + */ + +import * as child_process from 'node:child_process' +import * as fs from 'node:fs' +import * as os from 'node:os' +import * as path from 'node:path' +import * as zlib from 'node:zlib' +import { resolveWasmOpt, root, toolchain as pinned } from './toolchain.js' + +const crate = path.join(root, 'wasm/evm2') +const out = 'src/wasm/internal/evm2.wasm.ts' +const notice = 'wasm/evm2/NOTICE.md' +const thirdParty = 'wasm/evm2/THIRD-PARTY-LICENSES.md' +const target = 'wasm32-unknown-unknown' + +/** Where the container drops the artifact, kept out of cargo's own target dir. */ +const buildDir = path.join(root, 'wasm/.build/evm2') + +/** + * Hard ceiling on the artifact, in bytes. + * + * A size regression is a decision, not a surprise: raise this deliberately with + * the measurements that justify it. + */ +const maxBytes = 1_048_576 + +/** + * Imports the artifact is allowed to declare. + * + * The list is exact. A new import means the adapter grew a dependency on its + * environment -- WASI, threads, randomness -- which would break the runtimes Ox + * ships to. + */ +const allowedImports = [ + 'ox_evm2.get_account', + 'ox_evm2.get_block_hash', + 'ox_evm2.get_code_by_hash', + 'ox_evm2.get_storage', + 'ox_evm2.sink_record', +] + +/** The pinned evm2 revision and the Cargo features selected for it. */ +function dependency() { + const source = fs.readFileSync(path.join(crate, 'Cargo.toml'), 'utf8') + const block = /evm2 = \{([^}]*)\}/s.exec(source)?.[1] + if (!block) throw new Error('Could not find the `evm2` dependency.') + const revision = /rev = "([0-9a-f]{40})"/.exec(block)?.[1] + if (!revision) + throw new Error( + '`evm2` must be pinned by full commit SHA, never by branch or tag.', + ) + const list = /features = \[([^\]]*)\]/s.exec(block)?.[1] ?? '' + const features = [...list.matchAll(/"([^"]+)"/g)].map( + ([, feature]) => feature!, + ) + return { features, revision } +} + +/** Runs `cargo` on the host. Used for metadata, never for the shipped bytes. */ +function cargo(args: readonly string[], env: Record = {}) { + return child_process.execFileSync('cargo', args, { + cwd: crate, + encoding: 'utf8', + env: { ...process.env, ...env }, + stdio: ['ignore', 'pipe', 'inherit'], + }) +} + +function remap(from: string, to: string) { + return `--remap-path-prefix=${from}=${to}` +} + +/** What the pinned image reports back, so the host never needs cargo. */ +type Compiled = { + /** Path to the unoptimized artifact. */ + artifact: string + /** evm2's own license texts, keyed by filename. */ + licenses: Record + /** `cargo metadata` for the wasm target. */ + metadata: string + /** The `rustc` that produced the artifact. */ + rustc: string +} + +/** + * Compiles the adapter inside the pinned Rust image. + * + * `rustc` output is not byte-identical across host platforms, unlike the + * wasi-sdk `clang` the C targets use: the same source, lockfile, and target + * differ by a few hundred bytes between macOS and Linux, so a host build can + * never satisfy `wasm:check`. Compiling in one pinned image makes the artifact a + * function of the image, the lockfile, and the source. `wasm-opt` is host-stable + * and still runs natively. + * + * Everything cargo knows comes back with the artifact: the dependency graph and + * evm2's license texts both live in the image's Cargo cache, which the host has + * no reason to populate. + * + * `OX_EVM2_NATIVE` builds on the host instead, for local iteration only. + * `wasm:check` refuses to verify against it. + */ +function compile(revision: string): Compiled { + // Both paths write the optimized artifact here, so it must exist either way. + fs.mkdirSync(buildDir, { recursive: true }) + + const metadata = [ + 'metadata', + '--format-version=1', + '--locked', + '--filter-platform', + target, + ] + // Cargo names its checkout directory after the URL hash and the short + // revision, so the license texts sit at a predictable path. + const licenseDir = `"$(dirname "$(find "$CARGO_HOME/git/checkouts" -maxdepth 2 -type d -name '${revision.slice(0, 7)}*' -path '*evm2-*' | head -1)"/${revision.slice(0, 7)}*)"` + + if (process.env.OX_EVM2_NATIVE) { + console.warn( + 'warning: `OX_EVM2_NATIVE` is set. Building on the host instead of the pinned image, so the bytes will not match what is committed.', + ) + const home = process.env.CARGO_HOME ?? path.join(os.homedir(), '.cargo') + cargo(['build', '--release', '--locked', `--target=${target}`], { + RUSTFLAGS: [remap(home, '/cargo'), remap(crate, '/ox-evm2')].join(' '), + }) + return { + artifact: path.join(crate, `target/${target}/release/ox_evm2.wasm`), + licenses: hostLicenses(revision), + metadata: cargo(metadata), + texts: hostTexts(home), + rustc: child_process + .execFileSync('rustc', ['--version'], { cwd: crate, encoding: 'utf8' }) + .trim(), + } + } + + const { digest, image, platform } = pinned.rust + child_process.execFileSync( + 'docker', + [ + 'run', + '--rm', + `--platform=${platform}`, + // Source goes in read-only and only the output directory is writable, so + // the container cannot touch anything it does not own. + '--volume', + `${crate}:/crate:ro`, + '--volume', + `${buildDir}:/out`, + '--workdir', + '/build', + '--env', + `RUSTFLAGS=${[remap('/usr/local/cargo', '/cargo'), remap('/build', '/ox-evm2')].join(' ')}`, + `${image.split(':')[0]}@${digest}`, + 'bash', + '-c', + [ + 'set -e', + 'cp -r /crate/. /build/', + 'rm -rf /build/target', + 'rustup target add wasm32-unknown-unknown >/dev/null', + `cargo build --release --locked --target=${target}`, + `cp /build/target/${target}/release/ox_evm2.wasm /out/ox_evm2.wasm`, + `cargo ${metadata.join(' ')} > /out/metadata.json`, + 'rustc --version > /out/rustc.txt', + `cp ${licenseDir}/LICENSE-MIT ${licenseDir}/LICENSE-APACHE /out/`, + // Every crate's own license text, keyed by directory name. The artifact + // is redistributed as compiled code, so an SPDX identifier alone does not + // satisfy the BSD, Zlib, and MIT terms it links. Copied wholesale here + // and filtered to what actually links when the notice is generated. + 'mkdir -p /out/licenses', + 'for dir in "$CARGO_HOME"/registry/src/*/*/ "$CARGO_HOME"/git/checkouts/*/*/ "$CARGO_HOME"/git/checkouts/*/*/*/; do' + + ' [ -d "$dir" ] || continue;' + + ' case "$dir" in *"/git/checkouts/"*) name="git-$(basename "$dir")";;' + + ' *) name=$(basename "$dir");; esac;' + + ' for file in "$dir"LICENSE* "$dir"COPYING* "$dir"UNLICENSE* "$dir"NOTICE*; do' + + ' [ -f "$file" ] || continue;' + + ' mkdir -p "/out/licenses/$name";' + + ' cp "$file" "/out/licenses/$name/";' + + ' done; done', + // The mounted directory is root-owned inside the container; hand it back + // so the host can read and replace it. + 'chmod -R a+rwX /out', + ].join(' && '), + ], + { stdio: ['ignore', 'inherit', 'inherit'] }, + ) + + const read = (file: string) => + fs.readFileSync(path.join(buildDir, file), 'utf8') + return { + artifact: path.join(buildDir, 'ox_evm2.wasm'), + licenses: { + 'LICENSE-APACHE': read('LICENSE-APACHE'), + 'LICENSE-MIT': read('LICENSE-MIT'), + }, + metadata: read('metadata.json'), + rustc: read('rustc.txt').trim(), + texts: licenseTexts(path.join(buildDir, 'licenses')), + } +} + +/** + * Asserts the lockfile pins the same revision `Cargo.toml` declares. + * + * `--locked` below catches a lockfile that needs updating; this catches one that + * resolves cleanly but to a different evm2. + */ +function assertLockfile(revision: string) { + const lockfile = fs.readFileSync(path.join(crate, 'Cargo.lock'), 'utf8') + if (!lockfile.includes(revision)) + throw new Error( + `\`wasm/evm2/Cargo.lock\` does not pin evm2 \`${revision}\`. Run \`cargo update -p evm2\` in \`wasm/evm2\` and review the result.`, + ) +} + +/** + * Returns the crates the artifact links, sorted and excluding the root. + * + * Shared by the notice and the license file so the two describe one set. + */ +function linked(raw: string) { + type Package = { + id: string + license?: string | null + name: string + source?: string | null + targets: readonly { kind: readonly string[] }[] + version: string + } + type Node = { + deps: readonly { + dep_kinds: readonly { kind: string | null }[] + pkg: string + }[] + id: string + } + const metadata = JSON.parse(raw) as { + packages: readonly Package[] + resolve: { nodes: readonly Node[]; root: string } + } + + const byId = new Map(metadata.packages.map((entry) => [entry.id, entry])) + const nodes = new Map(metadata.resolve.nodes.map((node) => [node.id, node])) + + // Only normal edges, and no proc macros: build scripts and derive crates run + // on the host and never reach the artifact. + const linked = new Set() + const visit = (id: string) => { + if (linked.has(id)) return + linked.add(id) + for (const dep of nodes.get(id)?.deps ?? []) { + if (!dep.dep_kinds.some(({ kind }) => kind === null)) continue + if ( + byId + .get(dep.pkg) + ?.targets.some(({ kind }) => kind.includes('proc-macro')) + ) + continue + visit(dep.pkg) + } + } + visit(metadata.resolve.root) + + const packages = [...linked] + .filter((id) => id !== metadata.resolve.root) + .map((id) => byId.get(id)!) + .sort( + (a, b) => + a.name.localeCompare(b.name) || a.version.localeCompare(b.version), + ) + + // A crate resolved from git rather than crates.io is a fork, which is an + // attribution fact and not only a build detail. + return packages +} + +/** Standard licenses whose text ships beside the notice. */ +const standardLicenses = new Map([ + ['Apache-2.0', 'LICENSE-APACHE'], + ['MIT', 'LICENSE-MIT'], +]) + +/** Collects license texts from the host Cargo cache, for the native build. */ +function hostTexts(home: string): Map { + const texts = new Map() + const roots = [ + { git: false, path: path.join(home, 'registry', 'src') }, + { git: true, path: path.join(home, 'git', 'checkouts') }, + ] + for (const root of roots) { + if (!fs.existsSync(root.path)) continue + for (const outer of fs.readdirSync(root.path)) { + const directory = path.join(root.path, outer) + if (!fs.statSync(directory).isDirectory()) continue + for (const crate of fs.readdirSync(directory)) { + const source = path.join(directory, crate) + if (!fs.statSync(source).isDirectory()) continue + const files = fs + .readdirSync(source) + .filter((file) => /^(LICENSE|COPYING|UNLICENSE|NOTICE)/.test(file)) + .sort() + .map( + (file) => + `\n\n${fs.readFileSync(path.join(source, file), 'utf8').trim()}`, + ) + if (files.length) + texts.set(root.git ? `git-${crate}` : crate, files.join('\n\n')) + } + } + } + return texts +} + +/** Reads every collected license text, keyed by `name-version` directory. */ +function licenseTexts(directory: string): Map { + const texts = new Map() + if (!fs.existsSync(directory)) return texts + for (const crate of fs.readdirSync(directory)) { + const files = fs + .readdirSync(path.join(directory, crate)) + .sort() + .map((file) => { + const body = fs.readFileSync(path.join(directory, crate, file), 'utf8') + return `\n\n${body.trim()}` + }) + if (files.length) texts.set(crate, files.join('\n\n')) + } + return texts +} + +/** + * Builds the third-party license file from the crates the artifact links. + * + * The artifact ships as compiled code, so an SPDX identifier is not enough: the + * BSD, Zlib, and MIT terms it links require their copyright and license text to + * travel with the binary. + */ +function thirdPartyLicenses( + metadata: string, + texts: Map, +): string { + const packages = linked(metadata) + const sections = packages.map((entry) => { + // A git dependency is stored under its revision rather than its version, so + // it is looked up by the revision its source records. + const revision = entry.source?.match(/[?#]rev=([0-9a-f]+)/)?.[1] + const text = + texts.get(`${entry.name}-${entry.version}`) ?? + (revision + ? (texts.get(`git-${revision}`) ?? + texts.get(`git-${revision.slice(0, 7)}`)) + : undefined) + const heading = `## \`${entry.name}\` ${entry.version}\n\nDeclared license: ${entry.license ?? 'see upstream'}.` + if (text) return `${heading}\n\n${text}` + + // A crate publishing no file of its own still declares a license, and every + // one that does here is a standard text. Naming it and pointing at the copy + // beside this file distributes the terms without inventing a copyright line + // the crate never stated. + const standard = (entry.license ?? '') + .split(/\s+OR\s+/) + .map((name) => name.trim()) + .filter((name) => standardLicenses.has(name)) + return standard.length + ? `${heading}\n\nThis crate publishes no license file. Its declared terms are the standard ${standard.join(' or ')} text, reproduced in ${standard.map((name) => `\`${standardLicenses.get(name)}\``).join(' and ')} beside this file. Copyright remains the crate authors'.` + : `${heading}\n\nNo license file ships with this crate; see its repository.` + }) + + return ` + +# Third-party licenses for \`src/wasm/internal/evm2.wasm.ts\` + +The artifact is compiled code linking the crates below. Each one's own license +text is reproduced here, which distributing a binary requires. + +${sections.join('\n\n')} +` +} + +/** + * Builds the attribution notice from the resolved dependency graph. + * + * Generating it is what keeps it honest: a dependency added, removed, or + * relicensed shows up as a diff instead of going unrecorded. + */ +function attribution(revision: string, raw: string) { + const packages = linked(raw) + + const rows = packages.map((entry) => { + const source = entry.source?.startsWith('git+') + ? entry.source.replace(/^git\+/, '').replace(/\?rev=[0-9a-f]+#/, ' @ ') + : 'crates.io' + return `| \`${entry.name}\` | ${entry.version} | ${entry.license ?? 'see upstream'} | ${source} |` + }) + + return ` + +# Notices for \`src/wasm/internal/evm2.wasm.ts\` + +The artifact is compiled from \`wasm/evm2\` against +[\`alloy-rs/evm2\`](https://github.com/alloy-rs/evm2) at commit +\`${revision}\`, which is licensed under MIT OR Apache-2.0. Its license texts are +committed beside this file as \`LICENSE-MIT\` and \`LICENSE-APACHE\`. + +Everything compiled into the artifact is listed below, with the license each +crate declares. Each crate's own license text is reproduced in +\`THIRD-PARTY-LICENSES.md\` beside this file, which distributing compiled code +requires. + +| Crate | Version | License | Source | +| --- | --- | --- | --- | +${rows.join('\n')} +` +} + +/** + * Copies evm2's own license texts out of Cargo's checkout. + * + * Taking them from the pinned revision rather than transcribing them keeps the + * committed texts matching the code they cover. + */ +function hostLicenses(revision: string) { + const home = process.env.CARGO_HOME ?? path.join(os.homedir(), '.cargo') + const checkouts = path.join(home, 'git/checkouts') + const short = revision.slice(0, 7) + for (const directory of fs.readdirSync(checkouts)) { + if (!directory.startsWith('evm2-')) continue + const source = path.join(checkouts, directory, short) + if (!fs.existsSync(source)) continue + return { + 'LICENSE-APACHE': fs.readFileSync( + path.join(source, 'LICENSE-APACHE'), + 'utf8', + ), + 'LICENSE-MIT': fs.readFileSync(path.join(source, 'LICENSE-MIT'), 'utf8'), + } + } + throw new Error( + `Could not find evm2 \`${short}\` under ${checkouts}. Run \`cargo fetch\` in \`wasm/evm2\`.`, + ) +} + +/** Asserts the artifact carries no toolchain fingerprint and no stray imports. */ +function assertPortable(bytes: Uint8Array) { + const text = Buffer.from(bytes).toString('latin1') + for (const section of ['producers', 'target_features']) + if (text.includes(section)) + throw new Error( + `The artifact still contains a \`${section}\` custom section. Artifacts must not embed toolchain metadata.`, + ) + + const home = os.homedir() + if (text.includes(home)) + throw new Error( + `The artifact embeds the build machine's home directory (${home}), so it cannot rebuild byte-for-byte elsewhere. Check the \`--remap-path-prefix\` flags.`, + ) + + const imports = WebAssembly.Module.imports(new WebAssembly.Module(bytes)) + .map((entry) => `${entry.module}.${entry.name}`) + .sort() + const unexpected = imports.filter((name) => !allowedImports.includes(name)) + if (unexpected.length) + throw new Error( + `The artifact imports ${unexpected.join(', ')}. Only the host callbacks (${allowedImports.join(', ')}) are allowed, so nothing pulls in WASI, threads, or randomness.`, + ) +} + +function template( + bytes: Uint8Array, + meta: { + features: readonly string[] + gzip: number + revision: string + toolchain: string + wasmOpt: string + }, +) { + return `// Generated by \`pnpm wasm:build --target=evm2\`. Do not edit. +// +// Compiled from wasm/evm2 against alloy-rs/evm2 ${meta.revision} +// with ${meta.toolchain} + ${meta.wasmOpt}. +// +// Cargo features: ${meta.features.join(', ')} +// +// \`pnpm wasm:check --target=evm2\` rebuilds this file and fails if the bytes differ, so any +// change to the adapter, its lockfile, or the pinned evm2 revision must be +// followed by \`pnpm wasm:build --target=evm2\`. + +/** Base64-encoded WASM binary. */ +export const wasmBase64 = + '${Buffer.from(bytes).toString('base64')}' + +/** Decoded size of {@link wasmBase64}, in bytes. */ +export const wasmBytes = ${bytes.length} + +/** Gzipped size of the decoded binary, in bytes. */ +export const wasmGzipBytes = ${meta.gzip} + +/** The evm2 commit this artifact was compiled against. */ +export const evm2Revision = '${meta.revision}' +` +} + +/** The selectable name for this builder, alongside the C target names. */ +export const name = 'evm2' + +/** + * Compiles the adapter and returns its generated files, keyed by + * repository-relative path. + */ +export async function buildEvm2(): Promise> { + const { features, revision } = dependency() + assertLockfile(revision) + + // `compile` remaps Cargo paths out of panic locations; `assertPortable` + // verifies none survived. + const compiled = compile(revision) + const optimized = path.join(buildDir, 'ox_evm2.opt.wasm') + const wasmOpt = resolveWasmOpt() + child_process.execFileSync( + wasmOpt, + [ + '-Oz', + // Rust strips the `target_features` section, so the features it compiled + // against have to be named here for `wasm-opt` to accept the module. + '--enable-bulk-memory', + '--enable-bulk-memory-opt', + '--enable-multivalue', + '--enable-mutable-globals', + '--enable-nontrapping-float-to-int', + '--enable-reference-types', + '--enable-sign-ext', + '--strip-debug', + '--strip-producers', + '--strip-target-features', + compiled.artifact, + '-o', + optimized, + ], + { stdio: 'inherit' }, + ) + + const bytes = new Uint8Array(fs.readFileSync(optimized)) + assertPortable(bytes) + if (bytes.length > maxBytes) + throw new Error( + `The artifact is ${bytes.length} bytes, over its ${maxBytes} byte budget. Shrink it, or raise \`maxBytes\` in \`scripts/wasm/build-evm2.ts\` deliberately.`, + ) + + const gzip = zlib.gzipSync(bytes, { level: 9 }).length + const brotli = zlib.brotliCompressSync(bytes).length + const base64 = Buffer.from(bytes).toString('base64').length + const wasmOptVersion = child_process + .execFileSync(wasmOpt, ['--version'], { encoding: 'utf8' }) + .trim() + + console.log( + `evm2 ${bytes.length} B wasm → ${base64} B base64 → ${gzip} B gzip → ${brotli} B brotli (budget ${maxBytes} B)`, + ) + + return { + ...Object.fromEntries( + Object.entries(compiled.licenses).map(([file, text]) => [ + `wasm/evm2/${file}`, + text, + ]), + ), + [notice]: attribution(revision, compiled.metadata), + [thirdParty]: thirdPartyLicenses(compiled.metadata, compiled.texts), + [out]: template(bytes, { + features, + gzip, + revision, + toolchain: compiled.rustc, + wasmOpt: wasmOptVersion, + }), + } +} diff --git a/scripts/wasm/build.ts b/scripts/wasm/build.ts index 21eb28d2..c7b93580 100644 --- a/scripts/wasm/build.ts +++ b/scripts/wasm/build.ts @@ -1,193 +1,61 @@ /** - * Compiles the WASM targets in `wasm/targets.ts` and writes each one as base64 - * inside a TypeScript module. + * Builds the WASM artifacts and writes the generated files. * - * The base64 module *is* the committed artifact: it ships through the normal - * build with no bundler or asset-pipeline configuration, and loads identically - * in Node, Bun, Deno, browsers and edge runtimes. + * Two builders sit behind this, and they stay separate: the C targets go through + * `clang` from a pinned wasi-sdk, and the evm2 adapter goes through `cargo` from + * a pinned Rust toolchain. Their inputs, flags, and size rules have nothing in + * common, so this selects between them rather than pretending they are one + * flag-driven build. * * Usage: - * pnpm wasm:build - * pnpm wasm:build --target=hashes + * pnpm wasm:build # everything + * pnpm wasm:build --target=hashes # one C target + * pnpm wasm:build --target=evm2 # the Rust adapter only */ -import * as child_process from 'node:child_process' import * as fs from 'node:fs' import * as path from 'node:path' -import { type Target, targets } from '../../wasm/targets.js' -import { type Resolved, resolve, root, toolchain } from './toolchain.js' +import * as evm2 from './build-evm2.js' +import { buildC, names as cNames } from './build-c.js' +import { root } from './toolchain.js' -const buildDir = path.join(root, 'wasm/.build') - -/** Flags shared by every target. */ -function commonFlags(toolchain: Resolved) { - return [ - '--target=wasm32', - '-O3', - '-flto', // full LTO; ThinLTO is not reliably deterministic - '-nostdlib', - '-ffreestanding', - '-fno-builtin', - '-fno-exceptions', - '-fno-unwind-tables', - '-fno-stack-protector', - '-Werror=implicit-function-declaration', - '-Wl,--no-entry', - '-Wl,--strip-all', - '-Wl,--gc-sections', - '-Wl,--lto-O3', - '-Wl,--export-memory', - // Exports are declared with `__attribute__((export_name(...)))` in the C, so - // the export list stays next to the code that defines it. - `-I${path.join(root, 'wasm/shim')}`, - `-I${path.join(root, 'wasm/src')}`, - ...(toolchain.clangRtDir - ? [`-L${toolchain.clangRtDir}`, '-lclang_rt.builtins-wasm32'] - : []), - ] -} - -function targetFlags(target: Target) { - return [ - ...(target.includes?.map((include) => `-I${path.join(root, include)}`) ?? - []), - ...Object.entries(target.defines ?? {}).map( - ([key, value]) => `-D${key}=${value}`, - ), - ...(target.cflags ?? []), - `-Wl,--initial-memory=${target.initialMemory}`, - ...(target.maxMemory ? [`-Wl,--max-memory=${target.maxMemory}`] : []), - ...(target.stackSize ? [`-Wl,-z,stack-size=${target.stackSize}`] : []), - ] -} - -/** - * Asserts the artifact carries no toolchain fingerprint. - * - * A surviving `producers` section embeds the compiler version string, which - * would make the bytes depend on the toolchain in a way `--strip-all` was - * supposed to remove -- and it would do so silently. - */ -function assertStripped(bytes: Uint8Array, name: string) { - const text = Buffer.from(bytes).toString('latin1') - for (const section of ['producers', 'target_features']) - if (text.includes(section)) - throw new Error( - `\`${name}\` still contains a \`${section}\` custom section. Artifacts must not embed toolchain metadata.`, - ) -} - -function template(target: Target, bytes: Uint8Array, toolchainVersion: string) { - const base64 = Buffer.from(bytes).toString('base64') - const extra = Object.entries(target.extra ?? {}) - .map( - ([key, value]) => - `\n/** Constant shared with the module's C source. */\nexport const ${key} = ${value}\n`, - ) - .join('') - return `// Generated by \`pnpm wasm:build --target=${target.name}\`. Do not edit. -// -// Compiled from ${target.sources.join(', ')} -// with ${toolchainVersion} + binaryen ${toolchain.binaryen}. -// -// \`pnpm wasm:check\` rebuilds this file and fails if the bytes differ, so any -// change to the C or to \`wasm/targets.ts\` must be followed by \`pnpm wasm:build\`. - -/** Base64-encoded WASM binary. */ -export const wasmBase64 = - '${base64}' -${extra}` -} - -async function build(target: Target, toolchain: Resolved) { - fs.mkdirSync(buildDir, { recursive: true }) - const raw = path.join(buildDir, `${target.name}.raw.wasm`) - const optimized = path.join(buildDir, `${target.name}.wasm`) - - child_process.execFileSync( - toolchain.clang, - [ - ...commonFlags(toolchain), - ...targetFlags(target), - '-o', - raw, - ...target.sources.map((source) => path.join(root, source)), - ], - { stdio: 'inherit' }, - ) - - child_process.execFileSync( - toolchain.wasmOpt, - [ - ...(target.wasmOpt ?? ['-O4']), - // Both sections record how the module was compiled rather than what it - // does, and both vary with the toolchain -- so they are stripped to keep - // the bytes reproducible. `assertStripped` verifies they are gone. - '--strip-producers', - '--strip-target-features', - raw, - '-o', - optimized, - ], - { stdio: 'inherit' }, - ) - - const bytes = new Uint8Array(fs.readFileSync(optimized)) - assertStripped(bytes, target.name) +/** Reads `--target=` selections. Empty means everything. */ +export function selection(argv: readonly string[]) { + const selected = argv + .filter((arg) => arg.startsWith('--target=')) + .map((arg) => arg.slice('--target='.length)) - if (bytes.length > target.maxBytes) + const known = [...cNames, evm2.name] + const unknown = selected.filter((name) => !known.includes(name)) + if (unknown.length) throw new Error( - `\`${target.name}\` is ${bytes.length} bytes, over its ${target.maxBytes} byte budget. Shrink it, or raise \`maxBytes\` in \`wasm/targets.ts\` deliberately.`, + `Unknown target(s): ${unknown.join(', ')}. Known: ${known.join(', ')}`, ) return { - bytes, - source: template(target, bytes, toolchain.version), + c: selected.length + ? selected.filter((name) => cNames.includes(name)) + : cNames, + // Selecting nothing means everything; selecting C targets only means the + // Rust toolchain is not needed at all. + evm2: selected.length === 0 || selected.includes(evm2.name), } } -export async function buildAll(names?: readonly string[]) { - const toolchain = await resolve() - const selected = names?.length - ? targets.filter((target) => names.includes(target.name)) - : targets - - if (names?.length) { - const unknown = names.filter( - (name) => !targets.some((target) => target.name === name), - ) - if (unknown.length) - throw new Error( - `Unknown target(s): ${unknown.join(', ')}. Known: ${targets - .map((target) => target.name) - .join(', ')}`, - ) - } - - type Result = { source: string; target: Target } - const results: Result[] = [] - for (const target of selected) { - const { bytes, source } = await build(target, toolchain) - const gzip = child_process - .execSync('gzip -9c | wc -c', { input: Buffer.from(bytes) }) - .toString() - .trim() - console.log( - `${target.name.padEnd(10)} ${bytes.length} B wasm → ${ - Buffer.from(bytes).toString('base64').length - } B base64 → ${gzip} B gzip (budget ${target.maxBytes} B)`, - ) - results.push({ source, target }) +/** + * Builds the selected artifacts and returns every generated file, keyed by + * repository-relative path. + */ +export async function buildAll(argv: readonly string[] = []) { + const selected = selection(argv) + return { + ...(await buildC(selected.c)), + ...(selected.evm2 ? await evm2.buildEvm2() : {}), } - return results } if (import.meta.filename === process.argv[1]) { - const names = process.argv - .slice(2) - .filter((arg) => arg.startsWith('--target=')) - .map((arg) => arg.slice('--target='.length)) - - for (const { source, target } of await buildAll(names)) - fs.writeFileSync(path.join(root, target.out), source) + const files = await buildAll(process.argv.slice(2)) + for (const [file, contents] of Object.entries(files)) + fs.writeFileSync(path.join(root, file), contents) } diff --git a/scripts/wasm/check.ts b/scripts/wasm/check.ts index fb8b60c3..30db186a 100644 --- a/scripts/wasm/check.ts +++ b/scripts/wasm/check.ts @@ -1,64 +1,87 @@ /** - * Rebuilds every WASM target and fails if the result differs from what is + * Rebuilds the WASM artifacts and fails if anything differs from what is * committed. * * This is what makes the committed base64 trustworthy: without it, an artifact - * and the C it claims to come from can drift apart indefinitely -- which is + * and the source it claims to come from can drift apart indefinitely -- which is * exactly what happened to the salt miner, whose build script was deleted while * the generated module kept pointing at it. * * Usage: * pnpm wasm:check + * pnpm wasm:check --target=evm2 */ import * as fs from 'node:fs' import * as path from 'node:path' -import { buildAll } from './build.js' +import { buildAll, selection } from './build.js' import { resolve, root } from './toolchain.js' -const toolchain = await resolve() +const selected = selection(process.argv.slice(2)) -if (toolchain.overridden) { +// Neither builder can be verified against an overridden toolchain: the bytes +// would be whatever the local environment produced, not what the pins define. +if (selected.evm2 && process.env.OX_EVM2_NATIVE) { console.error( - 'error: `OX_WASM_CLANG` is set. Artifacts can only be verified against the pinned toolchain.', + 'error: `OX_EVM2_NATIVE` is set. The evm2 artifact can only be verified against the pinned image, since rustc output differs by host platform.', ) process.exit(1) } +if (selected.c.length) { + const toolchain = await resolve() + if (toolchain.overridden) { + console.error( + 'error: `OX_WASM_CLANG` is set. Artifacts can only be verified against the pinned toolchain.', + ) + process.exit(1) + } +} + let failed = false -for (const { source, target } of await buildAll()) { - const file = path.join(root, target.out) - const committed = fs.existsSync(file) ? fs.readFileSync(file, 'utf8') : '' +for (const [file, rebuilt] of Object.entries( + await buildAll(process.argv.slice(2)), +)) { + const absolute = path.join(root, file) + const committed = fs.existsSync(absolute) + ? fs.readFileSync(absolute, 'utf8') + : '' - if (committed === source) { - console.log(`✔ ${target.name}`) + if (committed === rebuilt) { + console.log(`✔ ${file}`) continue } failed = true - console.error(`✘ ${target.name} — ${target.out} is out of date.`) + console.error(`✘ ${file} is out of date.`) const expected = /'([A-Za-z0-9+/=]*)'/.exec(committed)?.[1] ?? '' - const actual = /'([A-Za-z0-9+/=]*)'/.exec(source)?.[1] ?? '' + const actual = /'([A-Za-z0-9+/=]*)'/.exec(rebuilt)?.[1] ?? '' - if (expected === actual) { - console.error(' The binary matches; only the surrounding module differs.') - } else { + // Files with no base64 payload, such as the notices, only get a size report. + if (!expected && !actual) { console.error( - ` committed: ${expected.length} base64 chars\n rebuilt: ${actual.length} base64 chars`, + ` committed: ${committed.length} chars\n rebuilt: ${rebuilt.length} chars`, ) - let at = -1 - for (let index = 0; index < actual.length; index++) - if (actual[index] !== expected[index]) { - at = index - break - } - if (at >= 0) + continue + } + + if (expected === actual) { + console.error(' The binary matches; only the surrounding module differs.') + continue + } + + console.error( + ` committed: ${expected.length} base64 chars\n rebuilt: ${actual.length} base64 chars`, + ) + for (let index = 0; index < actual.length; index++) + if (actual[index] !== expected[index]) { console.error( - ` first difference at base64 offset ${at}:\n committed …${expected.slice(at, at + 32)}…\n rebuilt …${actual.slice(at, at + 32)}…`, + ` first difference at base64 offset ${index}:\n committed …${expected.slice(index, index + 32)}…\n rebuilt …${actual.slice(index, index + 32)}…`, ) - } + break + } } if (failed) { diff --git a/scripts/wasm/toolchain.ts b/scripts/wasm/toolchain.ts index 68d87e20..66f9c0e7 100644 --- a/scripts/wasm/toolchain.ts +++ b/scripts/wasm/toolchain.ts @@ -23,6 +23,11 @@ const cacheDir = path.join(root, '.wasm-toolchain') type Toolchain = { binaryen: string + rust: { + digest: string + image: string + platform: string + } wasiSdk: { assets: Record release: string @@ -117,7 +122,13 @@ function findClangRt(sdkDir: string) { ) } -function resolveWasmOpt() { +/** + * Resolves the pinned `wasm-opt`. + * + * Exported because the Rust adapter needs the same optimizer without the + * wasi-sdk `resolve` installs for the C targets. + */ +export function resolveWasmOpt() { // The `binaryen` npm package ships a prebuilt `wasm-opt` for every platform, // and pnpm pins its version -- which is what makes `-O4` output reproducible. const wasmOpt = path.join(root, 'node_modules/binaryen/bin/wasm-opt') diff --git a/src/evm/Bal.ts b/src/evm/Bal.ts new file mode 100644 index 00000000..7903c7df --- /dev/null +++ b/src/evm/Bal.ts @@ -0,0 +1,145 @@ +import type * as codec from './internal/codec.js' + +/** + * A block access list, as [EIP-7928](https://eips.ethereum.org/EIPS/eip-7928) + * defines it. + * + * Enumerates every account and storage slot a block touches, with the value each + * one held after each transaction. Attached to an EVM it replaces the database + * for covered reads; built from executions it is what a block proposer publishes. + * + * Ordering is canonical: accounts sorted by address, entries sorted by key. A + * list read back carries that order whatever order it was written in. + */ +export type Bal = codec.Bal + +/** + * One account's entries. + * + * Every list is keyed by block access index, where index `0` is the pre-execution + * state and transaction `i` writes at index `i + 1`. A read is an entry with no + * changes, which is how a list records that a slot was touched without being + * written. + */ +export type Account = codec.BalAccount + +/** + * Returns the accounts a list covers, in the order it carries them. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Bal } from 'ox/evm' + * + * Bal.addresses(bal) + * // @log: ['0x…', '0x…'] + * ``` + * + * @param bal - List to read. + * @returns Each covered address. + */ +export function addresses(bal: Bal): readonly `0x${string}`[] { + return bal.accounts.map((account) => account.address) +} + +/** + * Returns whether a list covers a storage slot. + * + * A read that a list does not cover is refused rather than served from the + * database, so this answers ahead of time what an execution would refuse. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Bal } from 'ox/evm' + * + * Bal.covers(bal, { address, slot: 0n }) + * // @log: true + * ``` + * + * @param bal - List to read. + * @param options - Account, and the slot to check within it. + * @returns Whether the list covers it. + */ +export function covers(bal: Bal, options: covers.Options): boolean { + const address = options.address.toLowerCase() + const account = bal.accounts.find( + (entry) => entry.address.toLowerCase() === address, + ) + if (!account) return false + if (options.slot === undefined) return true + return ( + account.storageReads.includes(options.slot) || + account.storageChanges.some((entry) => entry.slot === options.slot) + ) +} + +export declare namespace covers { + type Options = { + /** Account to look for. */ + address: `0x${string}` + /** Slot to look for within the account. Omit to check the account alone. */ + slot?: bigint | undefined + } +} + +/** + * Returns the value a list holds for a slot at a block access index. + * + * Resolves the same way a covered read does: the most recent write *strictly + * before* the index. Transaction `i` records its post-state at index `i + 1`, so + * reading at `i + 1` sees what preceded that transaction, not its own writes. + * `undefined` when the list carries no applicable write, which is when an + * execution would read through to the database. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Bal } from 'ox/evm' + * + * // The value the second transaction saw. + * Bal.storageAt(bal, { address, index: 2n, slot: 0n }) + * ``` + * + * @param bal - List to read. + * @param options - Account, slot, and index to resolve at. + * @returns The value, or `undefined` when none applies. + */ +export function storageAt( + bal: Bal, + options: storageAt.Options, +): bigint | undefined { + const address = options.address.toLowerCase() + const account = bal.accounts.find( + (entry) => entry.address.toLowerCase() === address, + ) + // A slot listed as a read carries no value even when the list also gives it + // changes: evm2 folds reads in after changes, so the read wins and an + // execution reads through to the database. + if (account?.storageReads.includes(options.slot)) return undefined + + const slot = account?.storageChanges.find( + (entry) => entry.slot === options.slot, + ) + if (!slot) return undefined + + // Entries are ordered by index, and the first at or after the requested one + // is not yet visible, so the value before it is what a read sees. + let value: bigint | undefined + for (const change of slot.changes) { + if (change.index >= options.index) break + value = change.value + } + return value +} + +export declare namespace storageAt { + type Options = { + /** Account holding the slot. */ + address: `0x${string}` + /** Block access index to resolve at. */ + index: bigint + /** Slot to resolve. */ + slot: bigint + } +} diff --git a/src/evm/BlockState.ts b/src/evm/BlockState.ts new file mode 100644 index 00000000..5bd97b6b --- /dev/null +++ b/src/evm/BlockState.ts @@ -0,0 +1,25 @@ +import type * as codec from './internal/codec.js' + +/** + * State a block's transactions changed, gathered across all of them. + * + * Each entry spans the block rather than a transaction: `original` is the value + * before the block, `current` the value after its last transaction touched it. + * Every collection enumerates deterministically. + */ +export type BlockState = codec.BlockState + +/** + * Identifies an accumulator being gathered. + * + * evm2 accumulates in Rust, so the accumulator itself cannot cross the boundary + * and this stands in for it. Hold it from + * {@link ox#Evm.(startBlockState:function)} until + * {@link ox#Evm.(takeBlockState:function)}, which consumes it. + */ +export type Token = { + /** @internal */ + readonly '~engine': unknown + /** @internal */ + readonly '~id': bigint +} diff --git a/src/evm/Database.ts b/src/evm/Database.ts new file mode 100644 index 00000000..77eb472c --- /dev/null +++ b/src/evm/Database.ts @@ -0,0 +1,210 @@ +import type * as Address from '../core/Address.js' +import * as Bytes from '../core/Bytes.js' +import * as Errors from '../core/Errors.js' +import * as Hash from '../core/Hash.js' +import * as Hex from '../core/Hex.js' +import type * as async from './internal/async.js' +import type * as internal from './internal/database.js' + +/** + * State an EVM reads through. + * + * A database answers reads and nothing else. Writes accumulate inside the EVM, + * never reaching back through this boundary, so a source can be a plain object + * over local state or a view onto a remote node. + * + * Reads are synchronous here. Asynchronous sources arrive with a separate type. + */ +export type Database = internal.Database + +/** An account, as a database reports it. */ +export type Account = internal.Account + +/** + * State an EVM reads through, asynchronously. + * + * The same reads {@link ox#Database.(Database:type)} serves, returning promises. + * An EVM created over one of these performs its reads asynchronously, so + * executing through it returns a promise. + */ +export type Async = async.Marked + +/** + * Creates an in-memory database. + * + * Code is supplied inline with each account, so + * {@link ox#Database.(Database:type)}`.getCodeByHash` is never reached: the + * engine files inline code under its hash when it loads the account. + * + * @example + * ```ts twoslash + * import { Database } from 'ox/evm' + * + * const database = Database.fromMemory({ + * accounts: { + * '0x0000000000000000000000000000000000000001': { + * balance: 1n + * }, + * '0x0000000000000000000000000000000000000002': { + * code: '0x5f5ff3' + * } + * } + * }) + * ``` + * + * @param options - Initial state. + * @returns An in-memory database. + */ +export function fromMemory(options: fromMemory.Options = {}): Database { + type Entry = { + balance: bigint + code: Bytes.Bytes | undefined + codeHash: Hex.Hex + nonce: bigint + storage: Map + } + + const emptyCodeHash = Hash.keccak256('0x') + const accounts = new Map() + for (const [address, account] of Object.entries(options.accounts ?? {})) { + // Copied, not referenced: `Bytes.from` hands back a caller's own array, and + // mutating it later would change the code while `codeHash` stayed stale. + const code = account.code + ? Uint8Array.from(Bytes.from(account.code)) + : undefined + accounts.set(address.toLowerCase(), { + balance: account.balance ?? 0n, + code, + codeHash: code ? Hash.keccak256(Hex.fromBytes(code)) : emptyCodeHash, + nonce: account.nonce ?? 0n, + storage: new Map( + Object.entries(account.storage ?? {}).map(([slot, value]) => [ + BigInt(slot), + value, + ]), + ), + }) + } + + const blockHashes = new Map( + Object.entries(options.blockHashes ?? {}).map(([number, value]) => [ + BigInt(number), + value, + ]), + ) + + return { + getAccount(address) { + const account = accounts.get(address.toLowerCase()) + if (!account) return undefined + return { + balance: account.balance, + // Copied on the way out too: handing back the stored array would let a + // caller change the executed code while `codeHash` stayed committed. + code: account.code ? Uint8Array.from(account.code) : undefined, + codeHash: account.codeHash, + nonce: account.nonce, + } + }, + getBlockHash(number) { + // evm2 range-checks `BLOCKHASH` before asking, so a number reaching here + // is one the chain has and this database is missing. + const blockHash = blockHashes.get(number) + if (!blockHash) throw new MissingBlockHashError({ number }) + return blockHash + }, + getCodeByHash(codeHash) { + for (const account of accounts.values()) + if ( + account.code && + account.codeHash.toLowerCase() === codeHash.toLowerCase() + ) + return Uint8Array.from(account.code) + return new Uint8Array() + }, + getStorage(address, key) { + return accounts.get(address.toLowerCase())?.storage.get(key) ?? 0n + }, + } +} + +export declare namespace fromMemory { + type Options = { + /** Accounts to seed, keyed by address. */ + accounts?: + | Record< + Address.Address | (string & {}), + { + /** Balance in wei. @default 0n */ + balance?: bigint | undefined + /** Deployed code. @default '0x' */ + code?: Hex.Hex | Bytes.Bytes | undefined + /** Nonce. @default 0n */ + nonce?: bigint | undefined + /** Storage slots, keyed by slot. */ + storage?: Record | undefined + } + > + | undefined + /** + * Historical block hashes, keyed by block number. A `BLOCKHASH` for a + * height inside the window but absent here fails the read. + */ + blockHashes?: Record | undefined + } +} + +/** + * Marks a source as asynchronous. + * + * An EVM created over the result performs its reads asynchronously, so executing + * through it returns a promise. Marking is explicit because whether a read + * returns a promise is otherwise only knowable by performing one. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Database, Evm } from 'ox/evm' + * + * const database = Database.fromAsync({ + * async getAccount(address) { + * return load(address) + * }, + * async getBlockHash(number) { + * return hashes[String(number)] + * }, + * async getCodeByHash(codeHash) { + * return code[codeHash] + * }, + * async getStorage(address, key) { + * return slots[`${address}:${key}`] ?? 0n + * } + * }) + * ``` + * + * @param source - Reads to perform. + * @returns An asynchronous database. + */ +export function fromAsync(source: async.Async): Async { + return { + '~async': true, + getAccount: (address) => source.getAccount(address), + getBlockHash: (number) => source.getBlockHash(number), + getCodeByHash: (codeHash) => source.getCodeByHash(codeHash), + getStorage: (address, key) => source.getStorage(address, key), + } +} + +/** Thrown when a `BLOCKHASH` the chain retains was never seeded. */ +export class MissingBlockHashError extends Errors.BaseError { + override readonly name = 'Database.MissingBlockHashError' + + constructor({ number }: { number: bigint }) { + super('The database has no hash for a block the chain retains.', { + metaMessages: [ + `Block: ${number}`, + 'Seed it through `blockHashes` to execute this transaction.', + ], + }) + } +} diff --git a/src/evm/Ethereum.ts b/src/evm/Ethereum.ts new file mode 100644 index 00000000..88989a8c --- /dev/null +++ b/src/evm/Ethereum.ts @@ -0,0 +1,50 @@ +import type * as Address from '../core/Address.js' +import type * as Bytes from '../core/Bytes.js' +import type * as Hex from '../core/Hex.js' +import type * as TxEnvelope from '../core/TxEnvelope.js' + +/** + * A transaction to execute, with the account that pays for it. + * + * Supply the fields directly, or the encoded transaction under `serialized` + * when replaying one off the wire. + * + * `from` is authoritative. The engine takes the sender alongside a + * signature-stripped envelope rather than recovering it, so a signature the + * envelope carries is never read and never checked against `from`. + */ +export type Tx = Tx.Fields | Tx.Serialized + +export declare namespace Tx { + /** + * Transaction fields, plus the sender. + * + * The envelope type is inferred from the fee fields present, exactly as + * {@link ox#TxEnvelope.(from:function)} infers it. + */ + type Fields = Envelope & { + /** Account the transaction executes as. */ + from: Address.Address + /** Reserved for {@link ox#Ethereum.(Tx:namespace).Serialized}. */ + serialized?: undefined + } + + /** An already-encoded transaction, plus its sender. */ + type Serialized = { + /** Account the transaction executes as. */ + from: Address.Address + /** EIP-2718 encoded transaction. */ + serialized: Bytes.Bytes | Hex.Hex + } +} + +/** + * Mirrors the loose input {@link ox#TxEnvelope.(from:function)} accepts. That + * type is not exported, so it is restated rather than imported. + */ +type Envelope = + | TxEnvelope.TxEnvelope + | { + readonly [key: string]: unknown + readonly type?: string | undefined + } diff --git a/src/evm/Evm.ts b/src/evm/Evm.ts new file mode 100644 index 00000000..74aa8cfa --- /dev/null +++ b/src/evm/Evm.ts @@ -0,0 +1,1574 @@ +import type * as Address from '../core/Address.js' +import * as Bytes from '../core/Bytes.js' +import type * as Hex from '../core/Hex.js' +import * as Errors from '../core/Errors.js' +import * as TxEnvelope from '../core/TxEnvelope.js' +import * as Database from './Database.js' +import type * as Bal from './Bal.js' +import * as ExecutedTx from './ExecutedTx.js' +import type * as BlockState from './BlockState.js' +import * as PendingState from './PendingState.js' +import * as System from './System.js' +import type * as Inspector from './Inspector.js' +import type * as Ethereum from './Ethereum.js' +import * as SpecId from './SpecId.js' +import * as TxResult from './TxResult.js' +import * as driver from './internal/async.js' +import * as codec from './internal/codec.js' +import * as engine from './internal/engine.js' + +import type { + ReentrancyError, + RequestTooLargeError, + TrapError, + VersionError, +} from './internal/bindings.js' +import { EncodeError } from './internal/codec.js' +import type { DecodeError } from './internal/codec.js' +import { BorrowedError, NoBlockStateError } from './internal/engine.js' +import type { + AbiError, + DatabaseError, + HandlerError, + NotCoveredError, +} from './internal/engine.js' + +export { + AbiError, + BorrowedError, + DatabaseError, + HandlerError, + MissingError, + NoBlockStateError, + NotCoveredError, + NotExecutedError, +} from './internal/engine.js' +export { DecodeError, EncodeError } from './internal/codec.js' +export { + ReentrancyError, + RequestTooLargeError, + TrapError, + VersionError, +} from './internal/bindings.js' +export { handlerKinds } from './internal/engine.js' + +/** + * An EVM. + * + * Owns its specification, block environment, and the state accepted above its + * database. One EVM is one isolated engine: creating a second does not share + * state with the first. + */ +export type Evm = { + /** @internal */ + readonly '~async': asynchronous + /** + * The engine's current execution config. + * + * Held so a setter can replace one half without discarding the other, since + * the adapter's operation carries both. + * + * @internal + */ + '~config': { + block: codec.Block + specId: SpecId.SpecId + version?: Version | undefined + } + /** @internal */ + readonly '~chainId': bigint + /** + * Drives the asynchronous source, when there is one. + * + * @internal + */ + readonly '~driver': asynchronous extends true ? driver.Driver : undefined + /** @internal */ + readonly '~engine': engine.Engine +} + +/** + * A value an operation returns, wrapped in a promise when reads are + * asynchronous. + */ +export type Awaitable< + asynchronous extends boolean, + value, +> = asynchronous extends true ? Promise : value + +/** + * Version values an execution runs under. + * + * Mirrors evm2's `Version`, minus the chain id, which `chainId` carries. Every + * field is optional: what is omitted keeps the value the specification gives it. + */ +export type Version = codec.Version + +/** Feature flags a version can turn on or off. */ +export type Feature = (typeof codec.features)[number] + +/** Gas parameters a version can replace. */ +export type GasId = (typeof codec.gasIds)[number] + +/** Block values opcodes read. */ +export type Block = { + /** `BASEFEE`. @default 0n */ + basefee?: bigint | undefined + /** `COINBASE`. @default the zero address */ + beneficiary?: Address.Address | undefined + /** `BLOBBASEFEE`. @default 1n */ + blobBasefee?: bigint | undefined + /** `DIFFICULTY`, pre-merge. @default 0n */ + difficulty?: bigint | undefined + /** `GASLIMIT`. @default 2n ** 64n - 1n, the engine's own default */ + gasLimit?: bigint | undefined + /** `NUMBER`. @default 0n */ + number?: bigint | undefined + /** `PREVRANDAO`, post-merge. @default 0n */ + prevrandao?: bigint | undefined + /** Beacon slot number. @default 0n */ + slotNum?: bigint | undefined + /** `TIMESTAMP`. @default 1n, the engine's own default */ + timestamp?: bigint | undefined +} + +/** + * Creates an EVM. + * + * Asynchronous because the engine is WebAssembly and browsers refuse to compile + * a module this size synchronously on the main thread. The module is compiled + * once per JavaScript realm; every call afterwards is synchronous. + * + * The specification selects the instruction table, gas schedule, precompiles, + * and transaction handlers. Choosing among compiled precompile sets or handler + * registries arrives with the configuration surface; until then the + * specification determines all of them. + * + * @example + * ```ts twoslash + * import { Evm } from 'ox/evm' + * + * const evm = await Evm.create() + * ``` + * + * @example + * ### Seeding state + * + * ```ts twoslash + * import { Database, Evm } from 'ox/evm' + * + * const evm = await Evm.create({ + * database: Database.fromMemory({ + * accounts: { + * '0x0000000000000000000000000000000000000001': { + * balance: 1n + * } + * } + * }) + * }) + * ``` + * + * @param options - Constructor components. + * @returns An EVM. + */ +export async function create( + options: create.Options & { database: Database.Async }, +): Promise> + +/** + * Creates an EVM whose reads are synchronous. + * + * @example + * ```ts twoslash + * import { Evm } from 'ox/evm' + * + * const evm = await Evm.create() + * ``` + * + * @param options - Constructor components. + * @returns An EVM. + */ +export async function create( + options?: create.Options & { database?: Database.Database | undefined }, +): Promise> + +/** + * Creates an EVM whose reads may or may not be synchronous. + * + * Reached when the database's own type does not say which, so the result is + * narrowed before reading through it: awaiting an operation covers both. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * const evm = await Evm.create(options) + * const result = await Evm.callTx(evm, transaction) + * ``` + * + * @param options - Constructor components. + * @returns An EVM. + */ +export async function create(options: create.Options): Promise> + +// eslint-disable-next-line jsdoc-js/require-jsdoc +export async function create( + options: create.Options = {}, +): Promise> { + const { + block, + chainId, + database = Database.fromMemory(), + specId = SpecId.latest, + } = options + + // Copied before the first await: encoding happens after WebAssembly + // instantiation, so a caller reusing the options object would otherwise change + // what this EVM runs under. + const version = snapshot(options.version) + + // An asynchronous source is driven through synchronous reads: a miss abandons + // the attempt and the operation repeats once the value is cached. + const source = driver.isAsync(database) ? driver.driver(database) : undefined + + const resolved = { + basefee: block?.basefee ?? 0n, + beneficiary: block?.beneficiary ?? `0x${'00'.repeat(20)}`, + blobBasefee: block?.blobBasefee ?? 1n, + difficulty: block?.difficulty ?? 0n, + gasLimit: block?.gasLimit ?? 0xffffffffffffffffn, + number: block?.number ?? 0n, + prevrandao: block?.prevrandao ?? 0n, + slotNum: block?.slotNum ?? 0n, + timestamp: block?.timestamp ?? 1n, + } satisfies Block + + return { + '~async': (source !== undefined) as never, + '~chainId': chainId ?? 1n, + '~config': { block: resolved, specId, ...(version ? { version } : {}) }, + '~driver': source as never, + '~engine': await engine.create({ + block: resolved, + chainId: chainId ?? 1n, + database: source ? source.database : (database as Database.Database), + specId: SpecId.ids.indexOf(specId), + ...(version ? { version } : {}), + }), + } +} + +export declare namespace create { + type Options = { + /** Block values opcodes read. */ + block?: Block | undefined + /** + * Chain id `CHAINID` reports and transactions are validated against. + * + * The transaction-fields form serializes through envelope types whose chain + * id is a number, so past 2^53 only the `serialized` form executes. + * + * @default 1n + */ + chainId?: bigint | undefined + /** + * State the EVM reads through. + * + * An empty in-memory database by default, holding no accounts. The engine reads a + * missing account as balance and nonce zero, so a transaction that costs + * nothing still executes; anything needing funds fails until state is + * seeded. + * + * @default Database.fromMemory() + */ + database?: Database.Async | Database.Database | undefined + /** + * Specification whose rules apply. + * + * @default SpecId.latest + */ + specId?: SpecId.SpecId | undefined + /** + * Overrides applied on top of the specification's own version. + * + * Anything omitted keeps the value the specification gives it, so the + * engine remains the source of every default. + */ + version?: Version | undefined + } + + type ErrorType = EncodeError | VersionError | Errors.GlobalErrorType +} + +/** + * Executes a transaction and discards its state changes. + * + * Runs a fully validated transaction whose state changes are + * discarded. Nonce, chain id, balance, and intrinsic gas are all checked, so it + * is stricter than an `eth_call`, and it takes an encoded envelope with its + * signer rather than a loose message. Output, gas, and logs come back, nothing + * written is kept, and executing the same transaction twice gives the same + * result. + * + * A revert or an exceptional halt is a successful call returning + * `status: false`. It throws only when the engine refused the transaction, or when the + * database could not supply state. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Database, Evm, TxResult } from 'ox/evm' + * + * const evm = await Evm.create({ database, specId: 'osaka' }) + * + * const result = Evm.callTx(evm, { + * from: '0x0000000000000000000000000000000000000001', + * gas: 100_000n, + * to: '0x0000000000000000000000000000000000000002', + * value: 1n + * }) + * TxResult.txGasUsed(result) + * // @log: 21000n + * ``` + * + * @param evm - EVM to execute on. + * @param transaction - Transaction and the account it executes as. + * @returns The transaction's result. + */ +export function callTx( + evm: Evm, + transaction: Ethereum.Tx, +): Promise + +/** + * Same operation against an EVM whose reads are synchronous. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * Evm.callTx(evm, transaction) + * ``` + * + * @param evm - EVM to use. + * @param transaction - Operand. + * @returns The operation's result. + */ +export function callTx( + evm: Evm, + transaction: Ethereum.Tx, +): TxResult.TxResult + +/** + * Same operation against an EVM whose reads may or may not be synchronous. + * + * Awaiting the result covers both. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * const result = await Evm.callTx(evm, transaction) + * ``` + * + * @param evm - EVM to use. + * @param transaction - Operand. + * @returns The operation's result. + */ +export function callTx( + evm: Evm, + transaction: Ethereum.Tx, +): Promise | TxResult.TxResult + +// eslint-disable-next-line jsdoc-js/require-jsdoc +export function callTx( + evm: Evm, + transaction: Ethereum.Tx, +): Awaitable { + // Encoded once: a retry replays the submitted transaction, not whatever the + // caller's object became while an uncached read was fetched. + return submit( + evm, + () => ({ + envelope: envelope(transaction, evm['~chainId']), + signer: transaction.from, + }), + (request) => { + const result = evm['~engine'].callTx(request) + return { ...result, stop: stop(result.stop) } + }, + ) +} + +export declare namespace callTx { + type ErrorType = + | AbiError + | BorrowedError + | DatabaseError + | NotCoveredError + | DecodeError + | EncodeError + | HandlerError + | ReentrancyError + | RequestTooLargeError + | TrapError + | UnknownStopError + | Errors.GlobalErrorType +} + +/** + * Executes a transaction and leaves its state changes pending. + * + * The counterpart to {@link ox#Evm.(callTx:function)}: instead of discarding + * what the transaction wrote, this hands back a handle that decides. The EVM is + * held until that handle is committed, discarded, or detached, so only one + * transaction is outstanding at a time. + * + * A revert or an exceptional halt is a successful execution returning + * `status: false`, and still produces a handle to resolve. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx } from 'ox/evm' + * + * // `using` discards on scope exit, so an early return cannot leave the EVM held. + * using executed = Evm.transact(evm, { + * from: '0x0000000000000000000000000000000000000001', + * gas: 100_000n, + * to: '0x0000000000000000000000000000000000000002', + * value: 1n + * }) + * + * if (ExecutedTx.result(executed).status) + * ExecutedTx.commit(executed) + * ``` + * + * @param evm - EVM to execute on. + * @param transaction - Transaction and the account it executes as. + * @returns A handle over the executed transaction. + */ +export function transact( + evm: Evm, + transaction: Ethereum.Tx, +): Promise + +/** + * Same operation against an EVM whose reads are synchronous. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * Evm.transact(evm, transaction) + * ``` + * + * @param evm - EVM to use. + * @param transaction - Operand. + * @returns The operation's result. + */ +export function transact( + evm: Evm, + transaction: Ethereum.Tx, +): ExecutedTx.ExecutedTx + +/** + * Same operation against an EVM whose reads may or may not be synchronous. + * + * Awaiting the result covers both. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * const result = await Evm.transact(evm, transaction) + * ``` + * + * @param evm - EVM to use. + * @param transaction - Operand. + * @returns The operation's result. + */ +export function transact( + evm: Evm, + transaction: Ethereum.Tx, +): Promise | ExecutedTx.ExecutedTx + +// eslint-disable-next-line jsdoc-js/require-jsdoc +export function transact( + evm: Evm, + transaction: Ethereum.Tx, +): Awaitable { + // Encoded once: a retry replays the submitted transaction, not whatever the + // caller's object became while an uncached read was fetched. + return submit( + evm, + () => ({ + envelope: envelope(transaction, evm['~chainId']), + signer: transaction.from, + }), + (request) => { + // An attempt that stops on an unfetched read parks no handle, so a repeat + // finds the engine free. + const { result, token } = evm['~engine'].transact(request) + const normalized = (() => { + try { + return { ...result, stop: stop(result.stop) } + } catch (error) { + // The engine is already borrowed, so release it before reporting. + evm['~engine'].resolve('discard', token) + throw error + } + })() + return ExecutedTx.from({ + engine: evm['~engine'], + result: normalized, + token, + }) + }, + ) +} + +export declare namespace transact { + type ErrorType = + | AbiError + | BorrowedError + | DatabaseError + | NotCoveredError + | DecodeError + | EncodeError + | HandlerError + | ReentrancyError + | RequestTooLargeError + | TrapError + | UnknownStopError + | Errors.GlobalErrorType +} + +/** + * Reads an account through the EVM, including any state it has accepted. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * Evm.readAccountInfo( + * evm, + * '0x0000000000000000000000000000000000000001' + * ) + * ``` + * + * @param evm - EVM to read through. + * @param address - Account to read. + * @returns The account, or `undefined` when it does not exist. + */ +export function readAccountInfo( + evm: Evm, + address: Address.Address, +): Promise + +/** + * Same operation against an EVM whose reads are synchronous. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * Evm.readAccountInfo(evm, address) + * ``` + * + * @param evm - EVM to use. + * @param address - Operand. + * @returns The operation's result. + */ +export function readAccountInfo( + evm: Evm, + address: Address.Address, +): Database.Account | undefined + +/** + * Same operation against an EVM whose reads may or may not be synchronous. + * + * Awaiting the result covers both. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * const result = await Evm.readAccountInfo(evm, address) + * ``` + * + * @param evm - EVM to use. + * @param address - Operand. + * @returns The operation's result. + */ +export function readAccountInfo( + evm: Evm, + address: Address.Address, +): Promise | Database.Account | undefined + +// eslint-disable-next-line jsdoc-js/require-jsdoc +export function readAccountInfo( + evm: Evm, + address: Address.Address, +): Awaitable { + return attempt(evm, () => evm['~engine'].readAccountInfo(address)) +} + +export declare namespace readAccountInfo { + type ErrorType = + | AbiError + | BorrowedError + | DatabaseError + | NotCoveredError + | HandlerError + | ReentrancyError + | Errors.GlobalErrorType +} + +/** + * Placeholder signature for a transaction built from fields. + * + * EIP-2718 decoding needs a signature to parse, and the engine strips it immediately, + * so nothing reads this. Callers therefore never sign to simulate. + */ +const placeholder = { + r: `0x${'01'.repeat(32)}`, + s: `0x${'01'.repeat(32)}`, + yParity: 0, +} as const + +/** + * Replaces the block environment. + * + * Accepted state is untouched: this changes what block opcodes report, not what + * the EVM has executed. The specification and version stay as they were. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * Evm.setBlock(evm, { + * number: 21_000_000n, + * timestamp: 1_700_000_000n + * }) + * ``` + * + * @param evm - EVM to reconfigure. + * @param block - Block values to apply. + */ +export function setBlock( + evm: Evm, + block: Block, +): Awaitable { + // Only the caller's fields are captured; the merge happens when the operation + // runs, so a setter queued earlier in the same tick is not undone by a later + // one that omits what it changed. + const fields = { ...block } + return attempt(evm, () => + apply(evm, { + ...evm['~config'], + block: merge(evm['~config'].block, fields), + }), + ) +} + +export declare namespace setBlock { + type ErrorType = + | AbiError + | BorrowedError + | EncodeError + | ReentrancyError + | Errors.GlobalErrorType +} + +/** + * Replaces the specification and its version overrides. + * + * The block environment stays as it was. Overrides are applied whole rather than + * merged, so what the new set omits returns to the specification's own value. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * // Simulate without charging fees or checking balances. + * Evm.setExecutionConfig(evm, { + * version: { + * features: { balanceCheck: false, feeCharge: false } + * } + * }) + * ``` + * + * @param evm - EVM to reconfigure. + * @param options - Specification and version to apply. + */ +export function setExecutionConfig( + evm: Evm, + options: setExecutionConfig.Options, +): Awaitable { + // The explicit value is read now; the fallback resolves when the operation + // runs, so omitting it leaves whatever an earlier queued setter chose rather + // than reverting to the specification held at submission. + const specId = options.specId + const version = snapshot(options.version) + return attempt(evm, () => + apply(evm, { + block: evm['~config'].block, + specId: specId ?? evm['~config'].specId, + ...(version ? { version } : {}), + }), + ) +} + +export declare namespace setExecutionConfig { + type Options = { + /** Specification whose rules apply. Unchanged when omitted. */ + specId?: SpecId.SpecId | undefined + /** Overrides applied on top of that specification. */ + version?: Version | undefined + } + + type ErrorType = setBlock.ErrorType +} + +/** + * Replaces the block environment, the specification, and its version together. + * + * The one call for a caller advancing to a block that also changes the rules, so + * neither half is briefly applied without the other. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * Evm.setBlockAndExecutionConfig(evm, { + * block: { number: 21_000_000n }, + * specId: 'osaka' + * }) + * ``` + * + * @param evm - EVM to reconfigure. + * @param options - Block, specification, and version to apply. + */ +export function setBlockAndExecutionConfig( + evm: Evm, + options: setBlockAndExecutionConfig.Options, +): Awaitable { + const version = snapshot(options.version) + const fields = options.block ? { ...options.block } : undefined + // The specification falls back inside, so a setter queued earlier in the same + // tick is not undone by one that omits it. + const specId = options.specId + return attempt(evm, () => + apply(evm, { + block: merge(evm['~config'].block, fields), + specId: specId ?? evm['~config'].specId, + ...(version ? { version } : {}), + }), + ) +} + +export declare namespace setBlockAndExecutionConfig { + type Options = setExecutionConfig.Options & { + /** Block values to apply. */ + block?: Block | undefined + } + + type ErrorType = setBlock.ErrorType +} + +// Copies version overrides, so a caller mutating theirs afterwards cannot change +// what an EVM already runs under. The groups are flat records of primitives, so +// one level is deep enough. +function snapshotChanges(changes: codec.Changes): codec.Changes { + const account = ( + value: entry, + ) => ({ + ...value, + ...(value.current ? { current: { ...(value.current as object) } } : {}), + ...(value.original ? { original: { ...(value.original as object) } } : {}), + }) + return { + ...changes, + accountReads: changes.accountReads.map(account), + accounts: changes.accounts.map(account), + bytecode: changes.bytecode.map((entry) => ({ + ...entry, + code: Uint8Array.from(entry.code), + })), + records: changes.records.map((record) => ({ ...record })), + storage: changes.storage.map((entry) => ({ ...entry })), + storageReads: changes.storageReads.map((entry) => ({ ...entry })), + storageWipes: [...changes.storageWipes], + } +} + +function snapshotBal(bal: Bal.Bal): Bal.Bal { + return { + accounts: bal.accounts.map((account) => ({ + ...account, + // Each entry is copied, not just the array holding it: a caller mutating + // `balanceChanges[0].balance` would otherwise reach the encoding. + balanceChanges: account.balanceChanges.map((change) => ({ ...change })), + codeChanges: account.codeChanges.map((change) => ({ ...change })), + nonceChanges: account.nonceChanges.map((change) => ({ ...change })), + storageChanges: account.storageChanges.map((slot) => ({ + ...slot, + changes: slot.changes.map((change) => ({ ...change })), + })), + storageReads: [...account.storageReads], + })), + } +} + +function snapshot(version: Version | undefined): Version | undefined { + if (!version) return undefined + return { + ...version, + ...(version.features ? { features: { ...version.features } } : {}), + ...(version.gas ? { gas: { ...version.gas } } : {}), + } +} + +/** + * Installs an inspector, so executions record what they did. + * + * A trace comes back on the result of each execution afterwards. Recording + * cannot change what executes: the same transaction produces the same result + * traced or not. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, Inspector } from 'ox/evm' + * + * // Calls, creates, logs, and self-destructs. Cheap enough to leave on. + * Evm.setInspector(evm, {}) + * + * const result = Evm.callTx(evm, transaction) + * Inspector.tree(result.trace) + * ``` + * + * @example + * ### Recording instructions + * + * ```ts twoslash + * // @noErrors + * import { Evm, Inspector } from 'ox/evm' + * + * // Millions of events for a busy transaction, so bound it and expect + * // `truncated`. + * Evm.setInspector(evm, { + * limit: 4_000_000, + * stack: true, + * steps: true + * }) + * + * const result = Evm.callTx(evm, transaction) + * Inspector.steps(result.trace) + * ``` + * + * @param evm - EVM to inspect. + * @param options - What to record. + */ +export function setInspector( + evm: Evm, + options: Inspector.Options = {}, +): Awaitable { + // Queued like the other setters: an asynchronous execution can be parked + // mid-retry, and changing the recording under it would trace one execution + // with two sets of settings. + // Read now, not when the operation runs: an asynchronous EVM queues this, and + // evm2 takes values rather than a reference to the caller's object. + const request = { + enabled: true, + limit: options.limit ?? 1_048_576, + memory: options.memory ?? false, + stack: options.stack ?? false, + steps: options.steps ?? false, + } + return attempt(evm, () => evm['~engine'].setInspector(request)) +} + +export declare namespace setInspector { + type ErrorType = + | AbiError + | BorrowedError + | EncodeError + | ReentrancyError + | Errors.GlobalErrorType +} + +/** + * Removes the inspector. + * + * The engine then holds none, which is what makes an untraced execution free: + * an inspector that is present costs work on every instruction whatever it + * records. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * Evm.clearInspector(evm) + * ``` + * + * @param evm - EVM to stop inspecting. + */ +export function clearInspector( + evm: Evm, +): Awaitable { + return attempt(evm, () => + evm['~engine'].setInspector({ enabled: false, limit: 0 }), + ) +} + +export declare namespace clearInspector { + type ErrorType = setInspector.ErrorType +} + +/** + * Attaches a block access list, which covered reads are served from. + * + * The list is a coverage gate and an overlay, not a replacement: a read it does + * not cover is refused unless `fallback` is set, because during block validation + * an access outside the list means the list is wrong. A covered read is served + * from the list only where the list holds a write for it, and otherwise reads + * through to the database. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * // Validating a block: an uncovered read is a failure, not a database lookup. + * Evm.setBal(evm, bal) + * + * // Executing something the block does not contain, positioned on its state. + * Evm.setBal(evm, bal, { fallback: true }) + * ``` + * + * @param evm - EVM to attach to. + * @param bal - List to consult on reads. + * @param options - Whether uncovered reads may fall back to the database. + */ +export function setBal( + evm: Evm, + bal: Bal.Bal, + options: setBal.Options = {}, +): Awaitable { + const request = { bal: snapshotBal(bal), fallback: options.fallback ?? false } + return attempt(evm, () => evm['~engine'].setBal(request)) +} + +export declare namespace setBal { + type Options = { + /** + * Whether a read the list does not cover falls back to the database. + * + * @default false + */ + fallback?: boolean | undefined + } + + type ErrorType = + | AbiError + | BorrowedError + | EncodeError + | ReentrancyError + | Errors.GlobalErrorType +} + +/** + * Removes the attached block access list, so reads go to the database again. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * Evm.clearBal(evm) + * ``` + * + * @param evm - EVM to detach from. + */ +export function clearBal( + evm: Evm, +): Awaitable { + // evm2 has no way to detach one, so this attaches an empty list with fallback + // on: every lookup misses and reads through, which is what no list does. + return attempt(evm, () => + evm['~engine'].setBal({ bal: { accounts: [] }, fallback: true }), + ) +} + +export declare namespace clearBal { + type ErrorType = setBal.ErrorType +} + +/** + * Starts building a block access list from what executions touch. + * + * Each committed transaction folds its post-state in at the current index, so + * {@link ox#Evm.(setBalIndex:function)} is advanced once per transaction. Read the + * result with {@link ox#Evm.(takeBal:function)}, or abandon it with + * {@link ox#Evm.(clearBalBuilder:function)}. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx } from 'ox/evm' + * + * Evm.enableBalBuilder(evm) + * + * // Transaction `i` records at index `i + 1`. + * Evm.setBalIndex(evm, 1n) + * ExecutedTx.commit(Evm.transact(evm, transaction)) + * + * const bal = Evm.takeBal(evm) + * ``` + * + * @param evm - EVM to build from. + */ +export function enableBalBuilder( + evm: Evm, +): Awaitable { + return attempt(evm, () => evm['~engine'].setBalBuilder(true)) +} + +export declare namespace enableBalBuilder { + type ErrorType = setBal.ErrorType +} + +/** + * Discards the block access list being built, without reading it. + * + * {@link ox#Evm.(takeBal:function)} also ends the build; this is for abandoning + * one whose result is not wanted. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * Evm.clearBalBuilder(evm) + * ``` + * + * @param evm - EVM to stop building from. + */ +export function clearBalBuilder( + evm: Evm, +): Awaitable { + return attempt(evm, () => evm['~engine'].setBalBuilder(false)) +} + +export declare namespace clearBalBuilder { + type ErrorType = setBal.ErrorType +} + +/** + * Takes the built block access list, resetting the index. + * + * `undefined` when no builder was started. Taking it ends the build, so a further + * block starts with {@link ox#Evm.(enableBalBuilder:function)} again. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * const bal = Evm.takeBal(evm) + * ``` + * + * @param evm - EVM to take from. + * @returns The list, or `undefined` when none was being built. + */ +export function takeBal( + evm: Evm, +): Awaitable { + return attempt(evm, () => evm['~engine'].takeBal()) +} + +export declare namespace takeBal { + type ErrorType = setBal.ErrorType | DecodeError +} + +/** + * Sets the block access index reads resolve at and writes record under. + * + * Index `0` is the pre-execution state, and transaction `i` uses index `i + 1`. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * Evm.setBalIndex(evm, 1n) + * ``` + * + * @param evm - EVM to position. + * @param index - Index to use. + */ +export function setBalIndex( + evm: Evm, + index: bigint, +): Awaitable { + return attempt(evm, () => evm['~engine'].setBalIndex(index)) +} + +export declare namespace setBalIndex { + type ErrorType = setBal.ErrorType +} + +/** + * Starts gathering what a block's transactions change. + * + * Returns a token identifying the accumulator. Pass it to + * {@link ox#ExecutedTx.(commitTo:function)} to record a transaction into it, and + * to {@link ox#Evm.(takeBlockState:function)} to read it back. Starting again + * abandons whatever the previous token identified. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx } from 'ox/evm' + * + * const block = Evm.startBlockState(evm) + * + * for (const transaction of transactions) + * ExecutedTx.commitTo(Evm.transact(evm, transaction), block) + * + * const state = Evm.takeBlockState(evm, block) + * state.accounts.length + * ``` + * + * @param evm - EVM to gather from. + * @returns A token identifying the accumulator. + */ +export function startBlockState( + evm: Evm, +): Awaitable { + return attempt(evm, () => ({ + '~engine': evm['~engine'], + '~id': evm['~engine'].startBlockState(), + })) +} + +export declare namespace startBlockState { + type ErrorType = + | AbiError + | BorrowedError + | DecodeError + | ReentrancyError + | Errors.GlobalErrorType +} + +/** + * Takes what the block changed, consuming the token. + * + * Each entry spans the block: its `original` is the value before the block, not + * before the last transaction. A token already taken, or from an accumulator that + * was superseded, is refused. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * const state = Evm.takeBlockState(evm, block) + * state.storage.length + * ``` + * + * @param evm - EVM to take from. + * @param block - Token identifying the accumulator. + * @returns What the block changed. + */ +export function takeBlockState( + evm: Evm, + block: BlockState.Token, +): Awaitable { + // Read now: the token is an object, so a caller mutating it after this returns + // would otherwise retarget or reject the operation already submitted. + const engine = block['~engine'] + const id = block['~id'] + return attempt(evm, () => { + // Two EVMs both start at generation one, so the number alone would match the + // other's accumulator instead of being refused. + if (engine !== evm['~engine']) throw new NoBlockStateError() + return evm['~engine'].takeBlockState(id) + }) +} + +export declare namespace takeBlockState { + type ErrorType = startBlockState.ErrorType | EncodeError | NoBlockStateError +} + +/** + * Marks the precompile addresses warm. + * + * A block pays their cold-access cost once rather than per transaction, which is + * what a node does before executing one. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm } from 'ox/evm' + * + * Evm.warmPrecompiles(evm) + * ``` + * + * @param evm - EVM to warm. + */ +export function warmPrecompiles( + evm: Evm, +): Awaitable { + return attempt(evm, () => evm['~engine'].warmPrecompiles()) +} + +export declare namespace warmPrecompiles { + type ErrorType = + | AbiError + | BorrowedError + | ReentrancyError + | Errors.GlobalErrorType +} + +/** + * Applies state a caller holds to the EVM. + * + * The counterpart to {@link ox#ExecutedTx.(detach:function)}: state taken out of + * an EVM, optionally edited through + * {@link ox#PendingState.(insertAccount:function)}, and put back. Later + * transactions see it. + * + * A transaction's lifecycle markers do not survive the trip. State that was + * created or self-destructed goes back as plain values, so re-applying it cannot + * wipe storage the caller meant to keep. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx, PendingState } from 'ox/evm' + * + * const { pendingState } = ExecutedTx.detach(Evm.transact(evm, transaction)) + * Evm.commitSource(evm, pendingState) + * ``` + * + * @param evm - EVM to apply to. + * @param state - State to apply. + */ +export function commitSource( + evm: Evm, + state: PendingState.PendingState, +): Awaitable { + // Read now, like every other operation: the state's entries are the caller's + // objects, so mutating one before the queue drains would change what is applied. + const changes = snapshotChanges(PendingState.changes(state)) + return attempt(evm, () => evm['~engine'].commitSource(changes)) +} + +export declare namespace commitSource { + type ErrorType = + | AbiError + | BorrowedError + | EncodeError + | ReentrancyError + | Errors.GlobalErrorType +} + +/** + * Executes a protocol system call. + * + * Runs a top-level call against a system contract, bypassing transaction + * validation, nonce updates, fees, refunds, and beneficiary rewards. The + * contract's code must already be in state: this does not deploy it. The handle + * resolves the same way a transaction's does. + * + * A system call is not inspected, so it produces no trace even with an inspector + * installed. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx, System } from 'ox/evm' + * + * // EIP-4788: record the beacon block root at the start of a block. + * const executed = Evm.systemCall(evm, { + * address: System.beaconRoots, + * data: root, + * }) + * ExecutedTx.commit(executed) + * ``` + * + * @param evm - EVM to use. + * @param options - Contract, calldata, and optionally the caller. + * @returns The executed system call. + */ +export function systemCall( + evm: Evm, + options: systemCall.Options, +): Promise + +/** + * Same operation against an EVM whose reads are synchronous. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx, System } from 'ox/evm' + * + * ExecutedTx.commit( + * Evm.systemCall(evm, { address: System.historyStorage, data }), + * ) + * ``` + * + * @param evm - EVM to use. + * @param options - Contract, calldata, and optionally the caller. + * @returns The executed system call. + */ +export function systemCall( + evm: Evm, + options: systemCall.Options, +): ExecutedTx.ExecutedTx + +/** + * Same operation against an EVM whose reads may or may not be synchronous. + * + * Awaiting the result covers both. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, System } from 'ox/evm' + * + * const executed = await Evm.systemCall(evm, { + * address: System.beaconRoots, + * data, + * }) + * ``` + * + * @param evm - EVM to use. + * @param options - Contract, calldata, and optionally the caller. + * @returns The executed system call. + */ +export function systemCall( + evm: Evm, + options: systemCall.Options, +): Promise | ExecutedTx.ExecutedTx + +// eslint-disable-next-line jsdoc-js/require-jsdoc +export function systemCall( + evm: Evm, + options: systemCall.Options, +): Awaitable { + return submit( + evm, + () => ({ + address: options.address, + caller: options.caller ?? System.address, + data: Bytes.fromHex(options.data ?? '0x'), + }), + (request) => { + const { result, token } = evm['~engine'].systemCall(request) + const normalized = (() => { + try { + return { ...result, stop: stop(result.stop) } + } catch (error) { + // The engine is already borrowed, so release it before reporting. + evm['~engine'].resolve('discard', token) + throw error + } + })() + return ExecutedTx.from({ + engine: evm['~engine'], + result: normalized, + token, + }) + }, + ) +} + +export declare namespace systemCall { + type Options = { + /** System contract to call. */ + address: Address.Address + /** + * Account the call originates from. + * + * @default System.address + */ + caller?: Address.Address | undefined + /** + * Calldata. + * + * @default '0x' + */ + data?: Hex.Hex | undefined + } + + type ErrorType = transact.ErrorType +} + +// Merges block values over the current ones, field by field rather than with a +// spread: an omitted field is `undefined` in the partial, and spreading it would +// erase the value it should keep. +function merge(current: codec.Block, block: Block | undefined): codec.Block { + return { + basefee: block?.basefee ?? current.basefee, + beneficiary: block?.beneficiary ?? current.beneficiary, + blobBasefee: block?.blobBasefee ?? current.blobBasefee, + difficulty: block?.difficulty ?? current.difficulty, + gasLimit: block?.gasLimit ?? current.gasLimit, + number: block?.number ?? current.number, + prevrandao: block?.prevrandao ?? current.prevrandao, + slotNum: block?.slotNum ?? current.slotNum, + timestamp: block?.timestamp ?? current.timestamp, + } +} + +// Sends a resolved config and records it as the EVM's current one. +function apply(evm: Evm, config: Evm['~config']) { + evm['~engine'].setBlock({ + block: config.block, + chainId: evm['~chainId'], + specId: SpecId.ids.indexOf(config.specId), + ...(config.version ? { version: config.version } : {}), + }) + evm['~config'] = config +} + +// Runs an engine operation, repeating it while reads are outstanding. A +// synchronous database returns the value directly. An asynchronous one cannot +// answer inside the engine's synchronous read, so the attempt is abandoned, the +// source is awaited, and the operation repeats until nothing is outstanding. +// Runs `build` before an operation is queued, routing its failures like the +// operation's own. Reading inputs eagerly keeps a queued operation faithful to +// what was submitted, but an asynchronous EVM promises a rejection, so an +// encoding failure cannot escape synchronously. +function submit( + evm: Evm, + build: () => request, + run: (request: request) => value, +): Awaitable { + const built = (() => { + try { + return { value: build() } + } catch (error) { + return { error: error as Error } + } + })() + if ('error' in built) { + if (evm['~driver']) return Promise.reject(built.error) as never + throw built.error + } + return attempt(evm, () => run(built.value)) +} + +function attempt( + evm: Evm, + run: () => value, +): Awaitable { + const source = evm['~driver'] + if (!source) return run() as never + // Refused at submission, not when the queue reaches it: evm2 owns the EVM + // exclusively, so an operation submitted while a transaction is outstanding + // has to fail the way the synchronous path fails rather than succeed later + // against state the handle has since resolved. + // Rejected rather than thrown: an asynchronous operation returns a promise, so + // a caller catching one has to see this too. + if (evm['~engine'].borrowed()) + return Promise.reject(new BorrowedError()) as never + // Queued: awaiting a source yields control, and the engine is exclusive. + return source.serialize(() => driver.until(source, run)) as never +} + +// Resolves either input shape to the encoded envelope the ABI carries. +function envelope(tx: Ethereum.Tx, chainId: bigint): Bytes.Bytes { + // Fields carry an index signature, so `in` alone cannot narrow the union; the + // value's own shape is what distinguishes an already-encoded transaction. + const serialized = (tx as Ethereum.Tx.Serialized).serialized + if (typeof serialized === 'string' || serialized instanceof Uint8Array) + // Copied: `Bytes.from` hands back the same array, and a caller mutating its + // buffer afterwards would change a transaction already submitted. + return Uint8Array.from(Bytes.from(serialized)) + + const { from: _, ...fields } = tx + // Envelope types carry `chainId` as a number, so the fields form cannot + // express a chain id past 2^53. The serialized form still can. + if (chainId > BigInt(Number.MAX_SAFE_INTEGER)) + throw new EncodeError({ + max: String(Number.MAX_SAFE_INTEGER), + value: `chainId ${chainId}`, + }) + // Fields with no fee fields infer EIP-1559, whose serialization needs a chain + // id, so the EVM's own is the default rather than a required argument. + // Nullish rather than a spread default: a caller spreading a request object can + // carry an explicit `chainId: undefined`, which would otherwise shadow this and + // leave a modern envelope without the chain id its serializer needs. + // + // Sidecars are dropped: they are irrelevant to execution, and the EIP-4844 + // serializer emits the pooled-transaction wrapper when they are present, which + // is not the EIP-2718 envelope the adapter decodes. + const { sidecars, ...rest } = fields as typeof fields & { + sidecars?: unknown + type?: string + } + // The type is pinned before the wrapper goes: sidecars can be the only EIP-4844 + // discriminator, and dropping them would infer EIP-1559 and execute the input + // as an unrelated transaction instead of rejecting it. + if (sidecars !== undefined && rest.type === undefined) rest.type = 'eip4844' + return Bytes.from( + TxEnvelope.serialize( + TxEnvelope.from({ + ...rest, + // Only an omitted field falls back. A `null` the loose input type permits + // is malformed rather than absent, so it still reaches validation. + chainId: + (rest as { chainId?: number }).chainId === undefined + ? Number(chainId) + : (rest as { chainId?: number }).chainId, + }), + { signature: placeholder }, + ), + ) +} + +/** The engine's stop discriminants, keyed by the name they map to. */ +const names = /*#__PURE__*/ new Map( + Object.entries(TxResult.stops).map(([name, value]) => [ + value as number, + name as TxResult.Stop, + ]), +) + +function stop(discriminant: number): TxResult.Stop { + const name = names.get(discriminant) + if (!name) throw new UnknownStopError({ discriminant }) + return name +} + +/** Thrown when the engine reports a stop reason this version does not know. */ +export class UnknownStopError extends Errors.BaseError { + override readonly name = 'Evm.UnknownStopError' + + constructor({ discriminant }: { discriminant: number }) { + super('The engine reported an unknown stop reason.', { + metaMessages: [ + `Received: ${discriminant}`, + 'The engine and this package may be out of sync.', + ], + }) + } +} diff --git a/src/evm/ExecutedTx.ts b/src/evm/ExecutedTx.ts new file mode 100644 index 00000000..e2d51db0 --- /dev/null +++ b/src/evm/ExecutedTx.ts @@ -0,0 +1,392 @@ +import * as Errors from '../core/Errors.js' +import * as PendingState from './PendingState.js' +import * as StateChange from './StateChange.js' +import type * as BlockState from './BlockState.js' +import type * as TxResult from './TxResult.js' +import type { ReentrancyError } from './internal/bindings.js' +import type { DecodeError } from './internal/codec.js' +import type * as engine from './internal/engine.js' +import { NoBlockStateError } from './internal/engine.js' +import type { NotExecutedError, SinkError } from './internal/engine.js' + +/** + * A transaction that has executed, with its state changes still pending. + * + * The EVM is held until this is resolved: committed into its accepted state, + * discarded, or detached as owned state. Only one may execute at a time, and a + * handle resolves once. + * + * Resolve with {@link ox#ExecutedTx.(commit:function)}, + * {@link ox#ExecutedTx.(discard:function)}, or + * {@link ox#ExecutedTx.(detach:function)}. A `using` declaration discards on + * scope exit, which is what dropping the handle does natively. + */ +export type ExecutedTx = { + /** @internal */ + readonly '~engine': engine.Engine + /** @internal */ + readonly '~result': TxResult.TxResult + /** @internal */ + '~resolved': boolean + /** + * Identifies the transaction this handle was created for. The engine holds it + * weakly, discarding the transaction once no handle can reach it. + * + * @internal + */ + readonly '~token': engine.Token + /** Discards the transaction unless it was already resolved. */ + [Symbol.dispose](): void +} + +/** + * `Symbol.dispose`, or the registered fallback engines without it agree on. + * + * TypeScript's transpiled `using` helper looks up + * `Symbol.dispose ?? Symbol.for('Symbol.dispose')`, so keying the method the + * same way makes disposal work where the symbol has not shipped (WebKit). + */ +const dispose: typeof Symbol.dispose = + Symbol.dispose ?? (Symbol.for('Symbol.dispose') as typeof Symbol.dispose) + +/** + * Creates a handle over an executed transaction. + * + * @internal + */ +export function from(options: from.Options): ExecutedTx { + const executed: ExecutedTx = { + '~engine': options.engine, + '~resolved': false, + '~result': options.result, + '~token': options.token, + [dispose]() { + // Idempotent: a scope exit after an explicit resolution must not discard a + // second time, and evm2's drop is likewise a no-op once state is cleared. + if (executed['~resolved']) return + discard(executed) + }, + } + return executed +} + +export declare namespace from { + type Options = { + engine: engine.Engine + result: TxResult.TxResult + token: engine.Token + } +} + +/** + * Returns the transaction's result without resolving its state. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx } from 'ox/evm' + * + * using executed = Evm.transact(evm, transaction) + * ExecutedTx.result(executed).status + * ``` + * + * @param executed - Executed transaction. + * @returns The transaction's result. + */ +export function result(executed: ExecutedTx): TxResult.TxResult { + return executed['~result'] +} + +/** + * Accepts the transaction's state changes into the EVM. + * + * Later transactions on the same EVM see them. This resolves the handle and + * releases the EVM. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx } from 'ox/evm' + * + * const executed = Evm.transact(evm, transaction) + * ExecutedTx.commit(executed) + * ``` + * + * @param executed - Executed transaction. + * @returns The transaction's result. + */ +export function commit(executed: ExecutedTx): TxResult.TxResult { + claim(executed) + executed['~engine'].resolve('commit', executed['~token']) + return executed['~result'] +} + +export declare namespace commit { + type ErrorType = + | NotExecutedError + | ReentrancyError + | ResolvedError + | Errors.GlobalErrorType +} + +/** + * Accepts the transaction's state changes and records them in a block. + * + * The same acceptance {@link ox#ExecutedTx.(commit:function)} performs, plus the + * changes are gathered into the accumulator `block` identifies. A token that is + * not the accumulator in progress is refused, and the transaction stays + * outstanding rather than committing plainly. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx } from 'ox/evm' + * + * const block = Evm.startBlockState(evm) + * + * for (const transaction of transactions) + * ExecutedTx.commitTo(Evm.transact(evm, transaction), block) + * + * const state = Evm.takeBlockState(evm, block) + * ``` + * + * @param executed - Executed transaction. + * @param block - Accumulator to record into. + * @returns The transaction's result. + */ +export function commitTo( + executed: ExecutedTx, + block: BlockState.Token, +): TxResult.TxResult { + claim(executed) + try { + if (block['~engine'] !== executed['~engine']) throw new NoBlockStateError() + executed['~engine'].resolveTo(block['~id'], executed['~token']) + } catch (error) { + // The adapter refuses before the transaction leaves the engine, so the handle + // is still outstanding and has to stay resolvable. + executed['~resolved'] = false + throw error + } + return executed['~result'] +} + +export declare namespace commitTo { + type ErrorType = commit.ErrorType | NoBlockStateError +} + +/** + * Drops the transaction's state changes, keeping its result. + * + * The EVM's accepted state is untouched, which is what a `using` declaration + * does on scope exit. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx } from 'ox/evm' + * + * const executed = Evm.transact(evm, transaction) + * ExecutedTx.discard(executed) + * ``` + * + * @param executed - Executed transaction. + * @returns The transaction's result. + */ +export function discard(executed: ExecutedTx): TxResult.TxResult { + claim(executed) + executed['~engine'].resolve('discard', executed['~token']) + return executed['~result'] +} + +export declare namespace discard { + type ErrorType = + | NotExecutedError + | ReentrancyError + | ResolvedError + | Errors.GlobalErrorType +} + +/** + * Streams the transaction's changes to a sink, then accepts them. + * + * The sink decides: if it throws, the transaction is discarded instead of + * committed and the throw is what surfaces. That is the engine's own rule, so a sink + * that fails cannot leave state half-applied. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx } from 'ox/evm' + * + * const executed = Evm.transact(evm, transaction) + * + * ExecutedTx.commitWith(executed, { + * storage(change) { + * persist(change) + * } + * }) + * ``` + * + * @param executed - Executed transaction. + * @param sink - Sink to receive the changes. + * @returns The transaction's result. + */ +export function commitWith( + executed: ExecutedTx, + sink: StateChange.Sink, +): TxResult.TxResult { + claim(executed) + executed['~engine'].resolveWith( + 'commitWith', + dispatch(sink), + executed['~token'], + ) + return executed['~result'] +} + +export declare namespace commitWith { + type ErrorType = + | AsyncSinkError + | NotExecutedError + | ReentrancyError + | ResolvedError + | SinkError + | Errors.GlobalErrorType +} + +/** + * Streams the transaction's changes to a sink, then drops them. + * + * Observes exactly what {@link ox#ExecutedTx.(commitWith:function)} observes + * without touching the EVM's accepted state. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx } from 'ox/evm' + * + * const executed = Evm.transact(evm, transaction) + * + * ExecutedTx.discardWith(executed, { + * storage(change) { + * audit(change) + * } + * }) + * ``` + * + * @param executed - Executed transaction. + * @param sink - Sink to receive the changes. + * @returns The transaction's result. + */ +export function discardWith( + executed: ExecutedTx, + sink: StateChange.Sink, +): TxResult.TxResult { + claim(executed) + executed['~engine'].resolveWith( + 'discardWith', + dispatch(sink), + executed['~token'], + ) + return executed['~result'] +} + +export declare namespace discardWith { + type ErrorType = + | AsyncSinkError + | NotExecutedError + | ReentrancyError + | ResolvedError + | SinkError + | Errors.GlobalErrorType +} + +/** + * Moves the transaction's state out of the EVM as owned state. + * + * The EVM does not accept the changes: the caller holds them and decides what to + * do with them. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx, PendingState } from 'ox/evm' + * + * const executed = Evm.transact(evm, transaction) + * const { pendingState } = ExecutedTx.detach(executed) + * PendingState.isEmpty(pendingState) + * ``` + * + * @param executed - Executed transaction. + * @returns The result with its detached state. + */ +export function detach(executed: ExecutedTx): TxResult.WithState { + claim(executed) + return { + pendingState: PendingState.from( + executed['~engine'].detach(executed['~token']), + ), + result: executed['~result'], + } +} + +export declare namespace detach { + type ErrorType = + | DecodeError + | NotExecutedError + | ReentrancyError + | ResolvedError + | Errors.GlobalErrorType +} + +// Routes one streamed record to the sink method that describes it. +function dispatch(sink: StateChange.Sink) { + return ( + record: Parameters[1]>[0], + ) => { + settled(StateChange.route(sink, record)) + } +} + +// Refusing a second resolution here, not just in the engine, keeps a reused +// handle from resolving whichever transaction is outstanding by then. +function claim(executed: ExecutedTx) { + if (executed['~resolved']) throw new ResolvedError() + executed['~resolved'] = true +} + +// evm2 decides whether to commit the moment a sink callback returns, so a promise +// rejecting later could not stop a commit that already happened. Failing now +// discards instead, which is what the sink contract promises. +function settled(returned: unknown) { + if (typeof (returned as { then?: unknown } | undefined)?.then === 'function') + throw new AsyncSinkError() +} + +/** Thrown when a sink callback returned a promise. */ +export class AsyncSinkError extends Errors.BaseError { + override readonly name = 'ExecutedTx.AsyncSinkError' + + constructor() { + super('A state-change sink returned a promise.', { + metaMessages: [ + 'Sinks are synchronous: evm2 decides whether to commit as each record returns.', + 'The transaction was discarded.', + ], + }) + } +} + +/** Thrown when an executed transaction is resolved twice. */ +export class ResolvedError extends Errors.BaseError { + override readonly name = 'ExecutedTx.ResolvedError' + + constructor() { + super('This transaction was already resolved.', { + metaMessages: [ + 'It was committed, discarded, or detached, and cannot be resolved again.', + ], + }) + } +} diff --git a/src/evm/Inspector.ts b/src/evm/Inspector.ts new file mode 100644 index 00000000..83dd555a --- /dev/null +++ b/src/evm/Inspector.ts @@ -0,0 +1,207 @@ +import type * as Address from '../core/Address.js' +import type * as Hex from '../core/Hex.js' +import type * as codec from './internal/codec.js' + +/** + * A recorded execution. + * + * Events keep the order the engine produced them in, one per hook it called. + * Nothing is interpreted: {@link ox#Inspector.(tree:function)} builds the call + * tree from this, so the shape can change without a new engine. + */ +export type Trace = codec.Trace + +/** One recorded hook call. */ +export type Event = codec.TraceEvent + +/** What an inspector records. */ +export type Options = { + /** + * Largest trace to keep, in bytes. + * + * Recording stops at the limit and the trace reports `truncated`, keeping what + * ran first: a trace is always a prefix of the execution, never a stream with + * gaps. Execution is unaffected either way. + * + * @default 1_048_576 + */ + limit?: number | undefined + /** Records memory size on each instruction. Requires `steps`. */ + memory?: boolean | undefined + /** Records the stack on each instruction. Requires `steps`. */ + stack?: boolean | undefined + /** + * Records every instruction. + * + * Off by default, and worth leaving off: a mainnet transaction runs millions of + * instructions, where calls, creates, and logs number in the tens. Turn this on + * to debug a specific execution, not to observe one in production. + * + * @default false + */ + steps?: boolean | undefined +} + +/** + * A call or create in the tree, with whatever it did inside it. + * + * The shape {@link ox#Inspector.(tree:function)} produces. + */ +export type Frame = { + /** Account that made the call. */ + caller: Address.Address + /** Calls and creates this frame made, in order. */ + calls: readonly Frame[] + /** Account whose code ran. */ + codeAddress: Address.Address + /** Address a create deployed, when it succeeded. */ + createdAddress?: Address.Address | undefined + /** How deep this frame sits. */ + depth: number + /** Account the call was addressed to. */ + destination: Address.Address + /** Gas the frame was given. */ + gasLimit: bigint + /** Gas the frame consumed. Absent when the trace ended before it returned. */ + gasSpent?: bigint | undefined + /** Calldata, or initcode for a create. */ + input: Hex.Hex + /** + * Which instruction produced this frame. + * + * `'unknown'` for a kind a later evm2 revision added, which this artifact + * reports rather than folding into `'call'`. + */ + kind: (typeof codec.messageKinds)[number] | typeof codec.unknownMessageKind + /** Logs this frame emitted directly. */ + logs: readonly { + address: Address.Address + data: Hex.Hex + topics: readonly Hex.Hex[] + }[] + /** Returned data, or revert data. Absent when the frame never returned. */ + output?: Hex.Hex | undefined + /** Accounts this frame self-destructed, with where their balance went. */ + selfdestructs: readonly { + contract: Address.Address + target: Address.Address + value: bigint + }[] + /** Why the frame stopped, as evm2's discriminant. Absent when unfinished. */ + stop?: number | undefined + /** Value transferred. */ + value: bigint +} + +/** + * Builds the call tree a trace describes. + * + * The engine records a flat sequence; nesting is recovered here from the order of + * the call and return events. A truncated trace yields the frames it captured, + * with the unfinished ones missing their output and gas. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, Inspector } from 'ox/evm' + * + * Evm.setInspector(evm, {}) + * const result = Evm.callTx(evm, transaction) + * + * const [root] = Inspector.tree(result.trace) + * root.calls.length + * ``` + * + * @param trace - Recorded execution. + * @returns The frames the trace describes, outermost first. + */ +export function tree(trace: Trace | undefined): readonly Frame[] { + if (!trace) return [] + + const roots: Frame[] = [] + // Frames still open, innermost last. A return event closes the last one. + const open: Frame[] = [] + + const current = () => open[open.length - 1] + + for (const event of trace.events) { + if (event.kind === 'call' || event.kind === 'create') { + const frame: Frame = { + caller: event.caller, + calls: [], + codeAddress: event.codeAddress, + depth: event.depth, + destination: event.destination, + gasLimit: event.gasLimit, + input: event.input, + kind: event.messageKind, + logs: [], + selfdestructs: [], + value: event.value, + } + const parent = current() + if (parent) (parent.calls as Frame[]).push(frame) + else roots.push(frame) + open.push(frame) + continue + } + + if (event.kind === 'callEnd' || event.kind === 'createEnd') { + const frame = open.pop() + if (!frame) continue + Object.assign(frame, { + gasSpent: event.gasSpent, + output: event.output, + stop: event.stop, + ...(event.createdAddress + ? { createdAddress: event.createdAddress } + : {}), + }) + continue + } + + // Logs and self-destructs belong to whichever frame is running. + const frame = current() + if (!frame) continue + if (event.kind === 'log') + (frame.logs as Frame['logs'][number][]).push({ + address: event.address, + data: event.data, + topics: event.topics, + }) + else if (event.kind === 'selfdestruct') + (frame.selfdestructs as Frame['selfdestructs'][number][]).push({ + contract: event.contract, + target: event.target, + value: event.value, + }) + } + + return roots +} + +/** + * Returns the instructions a trace recorded, in order. + * + * Empty unless the inspector recorded steps. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Inspector } from 'ox/evm' + * + * const steps = Inspector.steps(result.trace) + * steps[0]?.opcode + * ``` + * + * @param trace - Recorded execution. + * @returns Each instruction, with its program counter, gas, and stack. + */ +export function steps( + trace: Trace | undefined, +): readonly Extract[] { + if (!trace) return [] + return trace.events.filter( + (event): event is Extract => event.kind === 'step', + ) +} diff --git a/src/evm/PendingState.ts b/src/evm/PendingState.ts new file mode 100644 index 00000000..1816ba32 --- /dev/null +++ b/src/evm/PendingState.ts @@ -0,0 +1,278 @@ +import type * as Address from '../core/Address.js' +import type * as Bytes from '../core/Bytes.js' +import type * as Hex from '../core/Hex.js' +import type * as codec from './internal/codec.js' + +/** + * A transaction's state changes, moved out of the EVM and owned by the caller. + * + * Every account and storage slot the transaction touched, each carrying the + * value it had at the transaction boundary next to its present value. Accounts + * it only read are included: the record is what the transaction observed, not + * just what it wrote. + * + * Stream it with {@link ox#StateChange.(visit:function)}. + */ +export type PendingState = { + /** @internal */ + readonly '~changes': codec.Changes +} + +/** + * Wraps a decoded change stream as owned state. + * + * @internal + */ +export function from(changes: codec.Changes): PendingState { + return { '~changes': changes } +} + +/** + * Unwraps the decoded change stream. + * + * @internal + */ +export function changes(state: PendingState): codec.Changes { + return state['~changes'] +} + +/** + * Returns whether the transaction touched no accounts and no storage. + * + * @example + * ```ts twoslash + * // @noErrors + * import { ExecutedTx, PendingState } from 'ox/evm' + * + * const { pendingState } = ExecutedTx.detach(executed) + * PendingState.isEmpty(pendingState) + * // @log: false + * ``` + * + * @param state - Pending state. + * @returns Whether it holds nothing. + */ +export function isEmpty(state: PendingState): boolean { + const changes = state['~changes'] + // evm2 keys emptiness on whether any account or slot was loaded at all, so + // reads count: a transaction that only read is not empty. + return ( + changes.accounts.length === 0 && + changes.accountReads.length === 0 && + changes.storage.length === 0 && + changes.storageReads.length === 0 + ) +} + +/** + * Returns an account's present value, when the transaction touched it. + * + * `undefined` covers both an account the transaction never touched and one it + * deleted. + * + * @example + * ```ts twoslash + * // @noErrors + * import { ExecutedTx, PendingState } from 'ox/evm' + * + * const { pendingState } = ExecutedTx.detach(executed) + * PendingState.accountInfo( + * pendingState, + * '0x0000000000000000000000000000000000000001' + * ) + * ``` + * + * @param state - Pending state. + * @param address - Account to read. + * @returns The account's present value. + */ +export function accountInfo( + state: PendingState, + address: Address.Address, +): AccountInfo | undefined { + const changes = state['~changes'] + const key = address.toLowerCase() + for (const account of [...changes.accounts, ...changes.accountReads]) { + if (account.address.toLowerCase() !== key) continue + const current = account.current + if (!current) return undefined + // The stream carries code once, keyed by hash; joining it back mirrors + // evm2's account_info, whose AccountInfo includes code when loaded. + const code = changes.bytecode.find( + (entry) => + entry.codeHash.toLowerCase() === current.codeHash.toLowerCase(), + )?.code + // Copied: the caller owns what it gets, and mutating it must not change the + // state this was read from. + return { ...current, ...(code ? { code: Uint8Array.from(code) } : {}) } + } + return undefined +} + +/** An account's present value inside a pending state. */ +export type AccountInfo = { + /** Balance in wei. */ + balance: bigint + /** Code, when the transaction loaded it. */ + code?: Bytes.Bytes | undefined + /** Hash of the account's code. */ + codeHash: Hex.Hex + /** Nonce. */ + nonce: bigint +} + +/** + * Returns state with an account's values replaced. + * + * The state is not modified; the returned copy is what + * {@link ox#Evm.(commitSource:function)} applies. Use this to adjust what a + * transaction left before putting it back. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, ExecutedTx, PendingState } from 'ox/evm' + * + * const { pendingState } = ExecutedTx.detach(executed) + * + * // Put the balance back to what it was, then apply the rest. + * const edited = PendingState.insertAccount(pendingState, { + * address, + * current: { balance: 0n, codeHash, nonce: 1n }, + * original: { balance: 0n, codeHash, nonce: 1n }, + * }) + * Evm.commitSource(evm, edited) + * ``` + * + * @param state - Pending state. + * @param options - Account, and the values to give it. + * @returns State carrying the account. + */ +export function insertAccount( + state: PendingState, + options: insertAccount.Options, +): PendingState { + const changes = state['~changes'] + const address = options.address.toLowerCase() + const entry = { + address: options.address, + ...(options.current ? { current: options.current } : {}), + ...(options.original ? { original: options.original } : {}), + } + return from({ + ...changes, + // The read is dropped as well: reads are applied after changes, so leaving + // one would overwrite the replacement with the value it replaced. + accountReads: changes.accountReads.filter( + (change) => change.address.toLowerCase() !== address, + ), + accounts: [ + ...changes.accounts.filter( + (change) => change.address.toLowerCase() !== address, + ), + entry, + ], + // Kept in step with the grouped view: `visit` reads the record stream while + // `commitSource` reads the groups, so an edit has to reach both or the same + // state streams differently than it applies. + records: replace( + changes.records, + (record) => + (record.kind === 'account' || record.kind === 'accountRead') && + record.address.toLowerCase() === address, + { ...entry, kind: 'account' as const }, + ), + }) +} + +export declare namespace insertAccount { + type Options = { + /** Account to insert. */ + address: Address.Address + /** Value after the change. Omit for an account that does not exist. */ + current?: codec.ChangeAccount | undefined + /** Value at the transaction boundary. Omit for one that did not exist. */ + original?: codec.ChangeAccount | undefined + } +} + +/** + * Returns state with a storage slot's values replaced. + * + * The state is not modified; the returned copy is what + * {@link ox#Evm.(commitSource:function)} applies. + * + * @example + * ```ts twoslash + * // @noErrors + * import { PendingState } from 'ox/evm' + * + * const edited = PendingState.insertStorage(pendingState, { + * address, + * current: 1n, + * key: 0n, + * original: 0n, + * }) + * ``` + * + * @param state - Pending state. + * @param options - Slot, and the values to give it. + * @returns State carrying the slot. + */ +export function insertStorage( + state: PendingState, + options: insertStorage.Options, +): PendingState { + const changes = state['~changes'] + const address = options.address.toLowerCase() + const matches = (change: { address: Address.Address; key: bigint }) => + change.address.toLowerCase() === address && change.key === options.key + const slot = { + address: options.address, + current: options.current, + key: options.key, + original: options.original, + } + + return from({ + ...changes, + records: replace( + changes.records, + (record) => + (record.kind === 'storage' || record.kind === 'storageRead') && + matches(record), + { ...slot, kind: 'storage' as const }, + ), + storage: [...changes.storage.filter((change) => !matches(change)), slot], + // Dropped for the same reason as an account's read. + storageReads: changes.storageReads.filter((change) => !matches(change)), + }) +} + +export declare namespace insertStorage { + type Options = { + /** Account holding the slot. */ + address: Address.Address + /** Value after the change. */ + current: bigint + /** Slot to insert. */ + key: bigint + /** Value at the transaction boundary. */ + original: bigint + } +} + +// Replaces the first record `matches` selects, keeping the stream in evm2's own +// emission order. Appending instead would move the replacement past any trailing +// read records, an order evm2's visitor never produces. +function replace( + records: readonly codec.Change[], + matches: (record: codec.Change) => boolean, + replacement: codec.Change, +): readonly codec.Change[] { + const index = records.findIndex(matches) + if (index === -1) return [...records, replacement] + return records + .map((record, at) => (at === index ? replacement : record)) + .filter((record, at) => at === index || !matches(record)) +} diff --git a/src/evm/SpecId.ts b/src/evm/SpecId.ts new file mode 100644 index 00000000..b6209c31 --- /dev/null +++ b/src/evm/SpecId.ts @@ -0,0 +1,51 @@ +/** + * Ethereum specification identifiers, in the engine's declaration order. + * + * A specification selects the instruction table, gas schedule, precompile set, + * and transaction handlers an EVM runs under. + */ +export type SpecId = (typeof ids)[number] + +/** + * Every specification, in order. Index is the wire discriminant the engine uses, so + * this list must track its `SpecId` enum. + */ +export const ids = [ + 'frontier', + 'homestead', + 'tangerine', + 'spuriousDragon', + 'byzantium', + 'petersburg', + 'istanbul', + 'berlin', + 'london', + 'merge', + 'shanghai', + 'cancun', + 'prague', + 'osaka', + 'amsterdam', +] as const + +/** The newest specification with a released schedule. */ +export const latest = 'osaka' satisfies SpecId + +/** + * Returns whether `specId` enables the rules of `other`. + * + * @example + * ```ts twoslash + * import { SpecId } from 'ox/evm' + * + * SpecId.enables('osaka', 'cancun') + * // @log: true + * ``` + * + * @param specId - Specification to test. + * @param other - Specification whose rules to test for. + * @returns Whether `specId` is at or after `other`. + */ +export function enables(specId: SpecId, other: SpecId): boolean { + return ids.indexOf(specId) >= ids.indexOf(other) +} diff --git a/src/evm/StateChange.ts b/src/evm/StateChange.ts new file mode 100644 index 00000000..0a03199b --- /dev/null +++ b/src/evm/StateChange.ts @@ -0,0 +1,173 @@ +import type * as Address from '../core/Address.js' +import type * as Bytes from '../core/Bytes.js' +import type * as Hex from '../core/Hex.js' +import type * as PendingState from './PendingState.js' +import type * as codec from './internal/codec.js' + +/** An account a transaction touched, with its boundary and present values. */ +export type Account = codec.AccountChange + +/** A storage slot a transaction touched. */ +export type Storage = codec.StorageChange + +/** + * State a transaction changed, as a source streams it. + * + * Every method is optional: a sink observes only what it cares about, and an + * unobserved change is simply ignored. + */ +export type Sink = { + /** An account whose value changed. */ + account?: ((change: Account) => void) | undefined + /** An account the transaction loaded but left unchanged. */ + accountRead?: ((change: Account) => void) | undefined + /** Bytecode, keyed by its hash. */ + bytecode?: ((codeHash: Hex.Hex, code: Bytes.Bytes) => void) | undefined + /** A storage slot whose value changed. */ + storage?: ((change: Storage) => void) | undefined + /** A storage slot the transaction loaded but left unchanged. */ + storageRead?: ((change: Storage) => void) | undefined + /** An account whose storage was wiped, before its slot changes. */ + storageWipe?: ((address: Address.Address) => void) | undefined +} + +/** Something that can stream its state changes to a {@link ox#StateChange.Sink}. */ +export type Source = PendingState.PendingState + +/** + * Streams a source's changes into a sink. + * + * Wipes arrive before the slot changes of the same account, so a sink applies + * the wipe then the writes. + * + * @example + * ```ts twoslash + * // @noErrors + * import { ExecutedTx, StateChange } from 'ox/evm' + * + * const { pendingState } = ExecutedTx.detach(executed) + * + * StateChange.visit(pendingState, { + * storage(change) { + * console.log(change.address, change.key, change.current) + * } + * }) + * ``` + * + * @param source - Source of changes. + * @param sink - Sink to receive them. + */ +export function visit(source: Source, sink: Sink): void { + // Replays the records exactly as the adapter emitted them, which is evm2's + // own visit order, so this and a streamed resolution observe one sequence. + for (const record of source['~changes'].records) route(sink, record) +} + +/** + * Routes one decoded record to the sink method that describes it. + * + * `kind` is the wire's routing tag, so each callback receives the record + * without it: one shape whether the record was streamed or visited. Returns the + * callback's own return so a streamed resolution can refuse a thenable. + * + * @internal + */ +export function route(sink: Sink, record: codec.Change): unknown { + if (record.kind === 'bytecode') + return sink.bytecode?.(record.codeHash, record.code) + if (record.kind === 'account') + return sink.account?.({ + address: record.address, + created: record.created, + current: record.current, + original: record.original, + selfdestructed: record.selfdestructed, + }) + if (record.kind === 'accountRead') + return sink.accountRead?.({ + address: record.address, + current: record.current, + }) + if (record.kind === 'storage') + return sink.storage?.({ + address: record.address, + current: record.current, + key: record.key, + original: record.original, + }) + if (record.kind === 'storageRead') + return sink.storageRead?.({ + address: record.address, + current: record.current, + key: record.key, + }) + return sink.storageWipe?.(record.address) +} + +/** + * Returns a sink forwarding every change to two sinks. + * + * @example + * ```ts twoslash + * // @noErrors + * import { StateChange } from 'ox/evm' + * + * StateChange.visit( + * pendingState, + * StateChange.tee(persist, audit) + * ) + * ``` + * + * @param a - First sink. + * @param b - Second sink. + * @returns A sink feeding both. + */ +export function tee(a: Sink, b: Sink): Sink { + // Both branches run, and whatever either returns is forwarded. A sink that + // returns a thenable is refused by `ExecutedTx`, so swallowing it here would + // let an asynchronous sink through the guard by hiding behind a tee. + const both = (first: unknown, second: unknown) => + isThenable(first) ? first : second + + return { + account(change) { + return both(a.account?.(change), b.account?.(change)) + }, + accountRead(change) { + return both(a.accountRead?.(change), b.accountRead?.(change)) + }, + bytecode(codeHash, code) { + return both(a.bytecode?.(codeHash, code), b.bytecode?.(codeHash, code)) + }, + storage(change) { + return both(a.storage?.(change), b.storage?.(change)) + }, + storageRead(change) { + return both(a.storageRead?.(change), b.storageRead?.(change)) + }, + storageWipe(address) { + return both(a.storageWipe?.(address), b.storageWipe?.(address)) + }, + } +} + +/** + * Returns a sink that ignores every change. + * + * @example + * ```ts twoslash + * import { StateChange } from 'ox/evm' + * + * const sink = StateChange.noop() + * ``` + * + * @returns A sink that does nothing. + */ +export function noop(): Sink { + return {} +} + +// Whether a sink's return value is a promise, which the contract refuses. +function isThenable(value: unknown): boolean { + return typeof (value as { then?: unknown } | undefined)?.then === 'function' +} diff --git a/src/evm/System.ts b/src/evm/System.ts new file mode 100644 index 00000000..655879c2 --- /dev/null +++ b/src/evm/System.ts @@ -0,0 +1,60 @@ +import type * as Address from '../core/Address.js' + +/** + * Addresses and limits for protocol system calls. + * + * A system call runs a top-level call against one of these contracts, bypassing + * transaction validation, nonce updates, fees, refunds, and beneficiary rewards. + * The contract's code must already be in state: nothing here deploys it. + */ + +/** + * Caller a system call originates from. + * + * The default for {@link ox#Evm.(systemCall:function)}, and the only caller the + * protocol's own system contracts accept. + */ +export const address = '0xfffffffffffffffffffffffffffffffffffffffe' as const + +/** Gas a system call is given. */ +export const gasLimit = 30_000_000n + +/** + * New storage slots a system call may write. + * + * EIP-8037 sizes the call's state-gas reservoir for this many. + */ +export const maxSstores = 16n + +/** EIP-4788 beacon block root storage. */ +export const beaconRoots = '0x000f3df6d732807ef1319fb7b8bb8522d0beac02' as const + +/** EIP-2935 historical block hash storage. */ +export const historyStorage = + '0x0000f90827f1c53a10cb7a02335b175320002935' as const + +/** EIP-7002 withdrawal request queue. */ +export const withdrawalRequest = + '0x00000961ef480eb55e80d19ad83579a64c007002' as const + +/** EIP-7251 consolidation request queue. */ +export const consolidationRequest = + '0x0000bbddc7ce488642fb579f8b00f3a590007251' as const + +/** Builder deposit request queue. */ +export const builderDepositRequest = + '0x0000bff46984e3725691fa540a8c7589300d8282' as const + +/** Builder exit request queue. */ +export const builderExitRequest = + '0x000064d678505ad48f8ccb093bc65613800e8282' as const + +/** Every system contract address, so a caller can seed or check them all. */ +export const addresses: readonly Address.Address[] = [ + beaconRoots, + builderDepositRequest, + builderExitRequest, + consolidationRequest, + historyStorage, + withdrawalRequest, +] diff --git a/src/evm/TxResult.ts b/src/evm/TxResult.ts new file mode 100644 index 00000000..f777a86a --- /dev/null +++ b/src/evm/TxResult.ts @@ -0,0 +1,189 @@ +import type * as Address from '../core/Address.js' +import type * as Hex from '../core/Hex.js' +import type * as Inspector from './Inspector.js' +import type * as PendingState from './PendingState.js' + +/** + * Reason the interpreter stopped. + * + * `stop`, `return`, and `selfDestruct` are successful. Everything else is a + * revert or an exceptional halt, which differ in whether gas is refunded. + */ +export type Stop = keyof typeof stops + +/** + * Stop reasons and the discriminants the engine assigns them. + * + * The values are not contiguous: the engine groups successes from 1, reverts from + * 0x10, and halts from 0x20, so this map has to be explicit rather than derived + * from position. + */ +export const stops = { + stop: 1, + return: 2, + selfDestruct: 3, + revert: 0x10, + callTooDeep: 0x11, + outOfFunds: 0x12, + createInitCodeStartingEF00: 0x13, + invalidEofInitCode: 0x14, + invalidExtDelegateCallTarget: 0x15, + outOfGas: 0x20, + memoryOutOfGas: 0x21, + memoryLimitOutOfGas: 0x22, + precompileOutOfGas: 0x23, + invalidOperandOutOfGas: 0x24, + reentrancySentryOutOfGas: 0x25, + callNotAllowedInsideStatic: 0x26, + stateChangeDuringStaticCall: 0x27, + invalidOpcode: 0x28, + invalidJump: 0x29, + notActivated: 0x2a, + stackUnderflow: 0x2b, + stackOverflow: 0x2c, + outOfOffset: 0x2d, + createCollision: 0x2e, + overflowPayment: 0x2f, + precompileError: 0x30, + nonceOverflow: 0x31, + createContractSizeLimit: 0x32, + createContractStartingWithEF: 0x33, + createInitCodeSizeLimit: 0x34, + fatalPrecompileError: 0x35, + fatalExternalError: 0x36, + invalidImmediateEncoding: 0x37, +} as const + +/** A log emitted during execution. */ +export type Log = { + /** Account that emitted the log. */ + address: Address.Address + /** Unindexed data. */ + data: Hex.Hex + /** Indexed topics. */ + topics: readonly Hex.Hex[] +} + +/** + * Outcome of executing a transaction. + * + * Every field is the engine's, with only snake-case to camel-case adaptation. A revert + * or an exceptional halt is a successful execution that returns `status: false`, + * not an error: errors are reserved for transactions the engine refused to run and for + * state the source could not supply. + */ +export type TxResult = { + /** Address of the contract a successful create transaction deployed. */ + createdAddress?: Address.Address | undefined + /** Host error code raised during execution, if any. */ + errorCode?: bigint | undefined + /** EIP-7623 calldata floor gas. Zero when it does not apply. */ + floorGas: bigint + /** Logs emitted during execution. */ + logs: readonly Log[] + /** Returned data, or revert data when `status` is `false`. */ + output: Hex.Hex + /** Gas refund, capped per EIP-3529, before the EIP-7623 floor applies. */ + refunded: bigint + /** State gas consumed per EIP-8037. Zero when EIP-8037 is disabled. */ + stateGasSpent: bigint + /** Whether execution succeeded. */ + status: boolean + /** Why the interpreter stopped. */ + stop: Stop + /** Total gas spent, regular plus state, before any refund. */ + totalGasSpent: bigint + /** + * What the execution did, when an inspector was recording. + * + * Absent unless {@link ox#Evm.(setInspector:function)} installed one. + */ + trace?: Inspector.Trace | undefined +} + +/** + * A transaction's result paired with the state it detached into. + * + * The shape {@link ox#ExecutedTx.(detach:function)} produces. + */ +export type WithState = { + /** State the transaction left, owned by the caller. */ + pendingState: PendingState.PendingState + /** Execution result. */ + result: TxResult +} + +/** + * Returns the gas a receipt reports: `max(totalGasSpent - refunded, floorGas)`. + * + * This is the value a transaction is charged for, which is neither + * `totalGasSpent` (pre-refund) nor a plain subtraction (the EIP-7623 floor can + * absorb the refund). + * + * @example + * ```ts twoslash + * // @noErrors + * import { Evm, TxResult } from 'ox/evm' + * + * const result = Evm.callTx(evm, transaction) + * TxResult.txGasUsed(result) + * // @log: 21000n + * ``` + * + * @param result - Transaction result. + * @returns Gas used, after refunds and the calldata floor. + */ +export function txGasUsed(result: TxResult): bigint { + const spent = result.totalGasSpent - result.refunded + return spent > result.floorGas ? spent : result.floorGas +} + +/** + * Returns the regular, non-state gas this transaction contributes to a block: + * `max(totalGasSpent - stateGasSpent, floorGas)`. + * + * With {@link ox#TxResult.(stateGasSpent:function)} this is the EIP-8037 split a + * caller adds to a block's separate counters. The EIP-7623 floor is not + * discounted by state gas, so it binds against this component. + * + * @example + * ```ts twoslash + * // @noErrors + * import { TxResult } from 'ox/evm' + * + * const result = Evm.callTx(evm, transaction) + * TxResult.regularGasSpent(result) + + * TxResult.stateGasSpent(result) + * // @log: 21000n + * ``` + * + * @param result - Transaction result. + * @returns Regular gas, before refunds. + */ +export function regularGasSpent(result: TxResult): bigint { + const regular = result.totalGasSpent - result.stateGasSpent + return regular > result.floorGas ? regular : result.floorGas +} + +/** + * Returns the EIP-8037 state gas this transaction contributes to a block. + * + * The counterpart to {@link ox#TxResult.(regularGasSpent:function)} in the + * per-transaction block-gas split. + * + * @example + * ```ts twoslash + * // @noErrors + * import { TxResult } from 'ox/evm' + * + * const result = Evm.callTx(evm, transaction) + * TxResult.stateGasSpent(result) + * // @log: 0n + * ``` + * + * @param result - Transaction result. + * @returns State gas. + */ +export function stateGasSpent(result: TxResult): bigint { + return result.stateGasSpent +} diff --git a/src/evm/_test/Bal.test.ts b/src/evm/_test/Bal.test.ts new file mode 100644 index 00000000..fd67918d --- /dev/null +++ b/src/evm/_test/Bal.test.ts @@ -0,0 +1,281 @@ +import { Address, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Bal, Database, Evm, ExecutedTx } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +/** + * EIP-7928 block access lists. + * + * A list attached to an EVM replaces the database for what it covers, so the + * property under test throughout is what happens at the edge of coverage. + */ + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +/** PUSH0 SLOAD PUSH0 MSTORE PUSH1 32 PUSH0 RETURN: returns slot 0. */ +const code = '0x5f545f5260205ff3' as const + +function transaction(options: { nonce?: bigint } = {}) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 100_000n, + gasPrice: 0n, + nonce: options.nonce ?? 0n, + to: target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +function evm() { + return Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code }, + }, + }), + }) +} + +/** Covers the sender and the target's slot 0, so execution needs no database. */ +function covering(): Bal.Bal { + return { + accounts: [ + { + address: sender.toLowerCase() as `0x${string}`, + balanceChanges: [{ balance: 10n ** 18n, index: 0n }], + codeChanges: [], + nonceChanges: [{ index: 0n, nonce: 0n }], + storageChanges: [], + storageReads: [], + }, + { + address: target, + balanceChanges: [], + codeChanges: [{ code, index: 0n }], + nonceChanges: [], + storageChanges: [{ changes: [{ index: 0n, value: 42n }], slot: 0n }], + storageReads: [], + }, + ], + } +} + +describe('setBal', () => { + test('behavior: an uncovered read is refused, not served from the database', async () => { + const instance = await evm() + // Attached but empty, so nothing is covered. + Evm.setBal(instance, { accounts: [] }) + + expect(() => + Evm.callTx(instance, transaction()), + ).toThrowErrorMatchingInlineSnapshot( + ` + [Evm.NotCoveredError: A read fell outside the attached block access list. + + The list is consulted instead of the database, so a read it does not cover is refused rather than served. + + Details: Add the account or slot to the list, or allow fallback when executing transactions that are not part of the block.] + `, + ) + }) + + test('behavior: an uncovered account read is refused the same way', async () => { + const instance = await evm() + Evm.setBal(instance, { accounts: [] }) + + // Reads outside an execution go through the same coverage gate, so they + // report the same condition rather than a generic failure. + expect(() => Evm.readAccountInfo(instance, target)).toThrowError( + Evm.NotCoveredError, + ) + }) + + test('behavior: fallback lets an uncovered read through', async () => { + const instance = await evm() + Evm.setBal(instance, { accounts: [] }, { fallback: true }) + + // The database still holds the accounts, so this succeeds. + expect(Evm.callTx(instance, transaction()).status).toBe(true) + }) + + test('behavior: a covered read is served from the list, not the database', async () => { + // Coverage comes from a builder run rather than by hand, so the list holds + // exactly what execution touches. + const source = await evm() + Evm.enableBalBuilder(source) + Evm.setBalIndex(source, 1n) + ExecutedTx.commit(Evm.transact(source, transaction())) + const built = Evm.takeBal(source)! + + // The database holds zero in slot 0. Giving the list a different value is what + // makes the two sources distinguishable from the returned word. + const bal: Bal.Bal = { + accounts: built.accounts.map((account) => + account.address.toLowerCase() === target + ? { + ...account, + storageChanges: [ + { changes: [{ index: 0n, value: 42n }], slot: 0n }, + ], + // Dropped: a slot listed as a read loses its changes, because evm2 + // folds reads in after them. + storageReads: [], + } + : account, + ), + } + + const instance = await evm() + Evm.setBal(instance, bal) + // Transaction 0 reads at index 1, seeing writes recorded before it. + Evm.setBalIndex(instance, 1n) + + const result = Evm.callTx(instance, transaction()) + expect(result.status).toBe(true) + expect(result.output).toBe(Hex.fromNumber(42, { size: 32 })) + }) + + test('behavior: clearing restores database reads', async () => { + const instance = await evm() + Evm.setBal(instance, { accounts: [] }) + expect(() => Evm.callTx(instance, transaction())).toThrowError( + Evm.NotCoveredError, + ) + + Evm.clearBal(instance) + expect(Evm.callTx(instance, transaction()).status).toBe(true) + }) +}) + +describe('takeBal', () => { + test('behavior: no builder means no list', async () => { + expect(Evm.takeBal(await evm())).toBeUndefined() + }) + + test('behavior: the builder records what a transaction touched', async () => { + const instance = await evm() + Evm.enableBalBuilder(instance) + // Transaction 0 records at index 1. + Evm.setBalIndex(instance, 1n) + + const executed = Evm.transact(instance, transaction()) + ExecutedTx.commit(executed) + + const built = Evm.takeBal(instance) + // The sender's nonce moves, so it is covered whatever else is. + expect(Bal.covers(built!, { address: sender })).toBe(true) + expect(Bal.addresses(built!)).toContain(target) + }) + + test('behavior: taking ends the build', async () => { + const instance = await evm() + Evm.enableBalBuilder(instance) + expect(Evm.takeBal(instance)).toBeDefined() + expect(Evm.takeBal(instance)).toBeUndefined() + }) + + test('behavior: a built list round-trips back as an attachable one', async () => { + const instance = await evm() + Evm.enableBalBuilder(instance) + Evm.setBalIndex(instance, 1n) + ExecutedTx.commit(Evm.transact(instance, transaction())) + const built = Evm.takeBal(instance)! + + // Attaching what was built is the block-validation flow: what one execution + // recorded is what another can be held to. + const replay = await evm() + Evm.setBal(replay, built) + expect(Evm.callTx(replay, transaction()).status).toBe(true) + }) +}) + +describe('covers', () => { + test('behavior: an account is covered, an unlisted one is not', () => { + const bal = covering() + expect(Bal.covers(bal, { address: sender })).toBe(true) + expect(Bal.covers(bal, { address: '0x'.padEnd(42, '9') as never })).toBe( + false, + ) + }) + + test('behavior: a slot is covered only where the list lists it', () => { + const bal = covering() + expect(Bal.covers(bal, { address: target, slot: 0n })).toBe(true) + expect(Bal.covers(bal, { address: target, slot: 1n })).toBe(false) + }) +}) + +describe('storageAt', () => { + test('behavior: a slot listed as a read carries no value', () => { + // evm2 folds reads in after changes, so the read wins and the value comes + // from the database instead. + const bal: Bal.Bal = { + accounts: [ + { + address: target, + balanceChanges: [], + codeChanges: [], + nonceChanges: [], + storageChanges: [{ changes: [{ index: 1n, value: 10n }], slot: 0n }], + storageReads: [0n], + }, + ], + } + + expect( + Bal.storageAt(bal, { address: target, index: 9n, slot: 0n }), + ).toBeUndefined() + }) + + test('behavior: the most recent write strictly before the index wins', () => { + const bal: Bal.Bal = { + accounts: [ + { + address: target, + balanceChanges: [], + codeChanges: [], + nonceChanges: [], + storageChanges: [ + { + changes: [ + { index: 1n, value: 10n }, + { index: 3n, value: 30n }, + ], + slot: 0n, + }, + ], + storageReads: [], + }, + ], + } + + const at = (index: bigint) => + Bal.storageAt(bal, { address: target, index, slot: 0n }) + + // A write is visible only strictly after its own index, so index 1 does not + // yet see the write recorded at index 1. + expect(at(0n)).toBeUndefined() + expect(at(1n)).toBeUndefined() + expect(at(2n)).toBe(10n) + expect(at(3n)).toBe(10n) + expect(at(4n)).toBe(30n) + expect(at(9n)).toBe(30n) + }) + + test('behavior: an unlisted slot has no value', () => { + expect( + Bal.storageAt(covering(), { address: target, index: 0n, slot: 7n }), + ).toBeUndefined() + }) +}) diff --git a/src/evm/_test/BlockState.test.ts b/src/evm/_test/BlockState.test.ts new file mode 100644 index 00000000..7c45448e --- /dev/null +++ b/src/evm/_test/BlockState.test.ts @@ -0,0 +1,207 @@ +import { Address, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Database, Evm, ExecutedTx } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +/** + * Block state accumulation. + * + * The accumulator spans a block rather than a transaction, so the properties + * under test are what survives several of them and in what order it enumerates. + */ + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const +const other = '0x00000000000000000000000000000000000000c1' as const + +/** PUSH1 1, PUSH0, SSTORE: writes slot 0. */ +const code = '0x60015f55' as const + +function transaction(options: { nonce?: bigint; to?: Address.Address } = {}) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: options.nonce ?? 0n, + to: options.to ?? target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +function evm() { + return Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [other]: { code }, + [target]: { code }, + }, + }), + }) +} + +describe('startBlockState', () => { + test('behavior: recording without a token is refused', async () => { + const instance = await evm() + const executed = Evm.transact(instance, transaction()) + + // A token from no accumulator cannot identify one. + expect(() => + ExecutedTx.commitTo(executed, { + '~engine': instance['~engine'], + '~id': 0n, + }), + ).toThrowErrorMatchingInlineSnapshot( + ` + [Evm.NoBlockStateError: No block state is being accumulated. + + A transaction was resolved into a block accumulator while none was installed, so nothing was committed. + + Details: Start one with \`Evm.startBlockState\` before resolving into it.] + `, + ) + + // The handle survived the refusal, so it is still resolvable. + ExecutedTx.discard(executed) + }) + + test('behavior: a stale token is refused', async () => { + const instance = await evm() + const first = Evm.startBlockState(instance) + // Starting again abandons the first accumulator. + Evm.startBlockState(instance) + + expect(() => Evm.takeBlockState(instance, first)).toThrowError( + Evm.NoBlockStateError, + ) + }) + + test('behavior: entries span the block, not the last transaction', async () => { + const instance = await evm() + const block = Evm.startBlockState(instance) + + for (const nonce of [0n, 1n, 2n]) + ExecutedTx.commitTo(Evm.transact(instance, transaction({ nonce })), block) + + const state = Evm.takeBlockState(instance, block) + const account = state.accounts.find( + (entry) => entry.address.toLowerCase() === sender.toLowerCase(), + ) + + // One entry for three transactions, from the block's start to its end. + expect(account?.original?.nonce).toBe(0n) + expect(account?.current?.nonce).toBe(3n) + }) + + test('behavior: every collection enumerates in a stable order', async () => { + const build = async () => { + const instance = await evm() + const block = Evm.startBlockState(instance) + // Touches `other` before `target`, so an unsorted enumeration would keep + // insertion order rather than address order. + ExecutedTx.commitTo( + Evm.transact(instance, transaction({ nonce: 0n, to: other })), + block, + ) + ExecutedTx.commitTo( + Evm.transact(instance, transaction({ nonce: 1n, to: target })), + block, + ) + return Evm.takeBlockState(instance, block) + } + + const first = await build() + expect(await build()).toEqual(first) + + const addresses = first.accounts.map((entry) => entry.address.toLowerCase()) + expect([...addresses].sort()).toEqual(addresses) + const slots = first.storage.map( + (entry) => `${entry.address.toLowerCase()}:${entry.key}`, + ) + expect([...slots].sort()).toEqual(slots) + }) + + test('behavior: storage carries the value from before the block', async () => { + const instance = await evm() + const block = Evm.startBlockState(instance) + ExecutedTx.commitTo(Evm.transact(instance, transaction()), block) + + const state = Evm.takeBlockState(instance, block) + const slot = state.storage.find( + (entry) => entry.address.toLowerCase() === target, + ) + + expect(slot?.original).toBe(0n) + expect(slot?.current).toBe(1n) + }) + + test('behavior: a plain commit records nothing in the block', async () => { + const instance = await evm() + const block = Evm.startBlockState(instance) + + // `commit` accepts the state without recording it, which is the difference + // from `commitTo`. + ExecutedTx.commit(Evm.transact(instance, transaction())) + + expect(Evm.takeBlockState(instance, block).accounts).toEqual([]) + }) +}) + +describe('warmPrecompiles', () => { + test('behavior: warming does not change what a transaction reports', async () => { + const cold = await evm() + const expected = Evm.callTx(cold, transaction()) + + const warm = await evm() + Evm.warmPrecompiles(warm) + + // The transaction touches no precompile, so warming is invisible to it. + expect(Evm.callTx(warm, transaction())).toEqual(expected) + }) + + test('behavior: warming twice is the same as warming once', async () => { + const once = await evm() + Evm.warmPrecompiles(once) + const expected = Evm.callTx(once, transaction()) + + const twice = await evm() + Evm.warmPrecompiles(twice) + Evm.warmPrecompiles(twice) + + expect(Evm.callTx(twice, transaction())).toEqual(expected) + }) +}) + +describe('takeBlockState', () => { + test('behavior: a token cannot be taken twice', async () => { + const instance = await evm() + const block = Evm.startBlockState(instance) + + expect(Evm.takeBlockState(instance, block)).toBeDefined() + expect(() => Evm.takeBlockState(instance, block)).toThrowError( + Evm.NoBlockStateError, + ) + }) + + test('behavior: a token from another EVM is refused', async () => { + const first = await evm() + const second = await evm() + const block = Evm.startBlockState(first) + // Both start at generation one, so a bare number would match the other's + // accumulator instead of being refused. + Evm.startBlockState(second) + + expect(() => Evm.takeBlockState(second, block)).toThrowError( + Evm.NoBlockStateError, + ) + }) +}) diff --git a/src/evm/_test/Evm.fuzz.ts b/src/evm/_test/Evm.fuzz.ts new file mode 100644 index 00000000..088c849e --- /dev/null +++ b/src/evm/_test/Evm.fuzz.ts @@ -0,0 +1,199 @@ +import { fc, test } from '@fast-check/vitest' +import { Address, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { + Database, + Evm, + ExecutedTx, + PendingState, + StateChange, + TxResult, +} from 'ox/evm' +import { describe, expect } from 'vp/test' + +import { numRuns } from '../../../test/fuzz/numRuns.js' + +/** + * Properties that hold for every transaction, whatever it does. + * + * The generated corpus in `oracle.test.ts` compares against native evm2 on + * recorded cases. These are the relationships that must hold on inputs nobody + * recorded: the equivalences between entry points, and the arithmetic a result + * has to satisfy. + */ + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +/** + * Snippets worth reaching, mixed with arbitrary bytes. + * + * `BLOCKHASH` is absent: `fromMemory` fails an unseeded hash where evm2's own + * dev database synthesizes one, a recorded divergence rather than a defect. + */ +const codes = [ + '0x', + '0x00', + '0x602a5f5260205ff3', + '0x5f545f52602a5f5560205ff3', + '0x60015f5500', + '0x5f5f5500', + '0x5f5ffd', + '0xfe', + '0x5f5f5fa100', + '0x33ff', + '0x5f5f20505f5260205ff3', + '0x5f61ffff5200', + '0x5b5f56', + '0x4700', + // A valid EIP-7702 designator: `0xef0100` and a 20-byte address. + `0xef0100${'11'.repeat(20)}`, +] as const + +/** Arbitrary contract code. Whatever it decodes to, execution must be lawful. */ +const arbitraryCode = fc.oneof( + { arbitrary: fc.constantFrom(...codes), weight: 3 }, + { + arbitrary: fc + .uint8Array({ maxLength: 24 }) + .map((bytes) => Hex.fromBytes(bytes)) + // A malformed designator is rejected when the account is declared, not + // when it executes, so it is not an execution input. + .filter((code) => !code.startsWith('0xef01')), + weight: 1, + }, +) + +const arbitraryTx = fc.record({ + code: arbitraryCode, + gas: fc.constantFrom(21_000n, 30_000n, 100_000n, 200_000n), + storage: fc.dictionary( + fc.constantFrom('0', '1', '2'), + fc.constantFrom(0n, 1n, 42n), + { maxKeys: 2 }, + ), + value: fc.constantFrom(0n, 1n, 1_000n), +}) + +type Input = + typeof arbitraryTx extends fc.Arbitrary ? value : never + +function transaction(input: Input) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: input.gas, + gasPrice: 0n, + nonce: 0n, + to: target, + value: input.value, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +function evm(input: Input) { + return Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: input.code, storage: input.storage }, + }, + }), + }) +} + +/** Records each streamed change as a comparable string. */ +function trace(out: string[]): StateChange.Sink { + return { + account: (change) => out.push(`account:${change.address}`), + accountRead: (change) => out.push(`accountRead:${change.address}`), + bytecode: (codeHash) => out.push(`bytecode:${codeHash}`), + storage: (change) => out.push(`storage:${change.address}:${change.key}`), + storageRead: (change) => + out.push(`storageRead:${change.address}:${change.key}`), + storageWipe: (address) => out.push(`wipe:${address}`), + } +} + +describe('Evm properties', () => { + test.prop({ input: arbitraryTx }, { numRuns })( + 'callTx equals transact then discard', + async ({ input }) => { + // Two entry points into one execution: the result cannot depend on which + // resolution the caller intends. + const called = Evm.callTx(await evm(input), transaction(input)) + const executed = Evm.transact(await evm(input), transaction(input)) + const discarded = ExecutedTx.discard(executed) + + expect(discarded).toEqual(called) + }, + ) + + test.prop({ input: arbitraryTx }, { numRuns })( + 'gas accounting is internally consistent', + async ({ input }) => { + const result = Evm.callTx(await evm(input), transaction(input)) + + // Refunds cannot exceed what was spent, the EIP-7623 floor is a floor, and + // state gas is a component of the total rather than an addition to it. + expect(result.refunded).toBeLessThanOrEqual(result.totalGasSpent) + expect(result.stateGasSpent).toBeLessThanOrEqual(result.totalGasSpent) + expect(result.totalGasSpent).toBeLessThanOrEqual(input.gas) + expect(TxResult.txGasUsed(result)).toBeGreaterThanOrEqual(result.floorGas) + }, + ) + + test.prop({ input: arbitraryTx }, { numRuns })( + 'detached state agrees with what the same execution streams', + async ({ input }) => { + const streamed: string[] = [] + ExecutedTx.discardWith( + Evm.transact(await evm(input), transaction(input)), + trace(streamed), + ) + + const visited: string[] = [] + const { pendingState } = ExecutedTx.detach( + Evm.transact(await evm(input), transaction(input)), + ) + StateChange.visit(pendingState, trace(visited)) + + // Detached state retains loads the live stream elides, so the live + // sequence must be a subsequence of the detached one, in order. + expect(visited.filter((event) => streamed.includes(event))).toEqual( + streamed, + ) + expect(PendingState.isEmpty(pendingState)).toBe(visited.length === 0) + }, + ) + + test.prop({ input: arbitraryTx }, { numRuns })( + 'a committed transaction advances the nonce exactly once', + async ({ input }) => { + const instance = await evm(input) + ExecutedTx.commit(Evm.transact(instance, transaction(input))) + + // Execution may revert or halt, but a transaction evm2 accepted always + // charges its sender's nonce. + expect(Evm.readAccountInfo(instance, sender)?.nonce).toBe(1n) + }, + ) + + test.prop({ input: arbitraryTx }, { numRuns })( + 'a resolved handle never resolves twice', + async ({ input }) => { + const executed = Evm.transact(await evm(input), transaction(input)) + ExecutedTx.discard(executed) + + expect(() => ExecutedTx.discard(executed)).toThrowError() + expect(() => ExecutedTx.commit(executed)).toThrowError() + }, + ) +}) diff --git a/src/evm/_test/Evm.test-d.ts b/src/evm/_test/Evm.test-d.ts new file mode 100644 index 00000000..1e59be5a --- /dev/null +++ b/src/evm/_test/Evm.test-d.ts @@ -0,0 +1,362 @@ +import { + Bal, + BlockState, + Database, + Ethereum, + Evm, + ExecutedTx, + Inspector, + PendingState, + SpecId, + StateChange, + TxResult, +} from 'ox/evm' +import { describe, expectTypeOf, test } from 'vp/test' + +describe('create', () => { + test('every option is optional', async () => { + expectTypeOf(await Evm.create()).toEqualTypeOf>() + expectTypeOf( + await Evm.create({ database: Database.fromMemory() }), + ).toEqualTypeOf>() + }) + + test('specId narrows to the specification union', () => { + expectTypeOf().toEqualTypeOf< + SpecId.SpecId | undefined + >() + void Evm.create({ + // @ts-expect-error a specification that does not exist + specId: 'verkle', + }) + }) + + test('chainId is a bigint, not a number', () => { + void Evm.create({ + // @ts-expect-error chain ids are bigints, never numbers + chainId: 1, + }) + }) + + test('an asynchronous database makes every read asynchronous', async () => { + const fork = await Evm.create({ + database: Database.fromAsync({ + getAccount: async () => undefined, + getBlockHash: async () => `0x${'00'.repeat(32)}`, + getCodeByHash: async () => new Uint8Array(), + getStorage: async () => 0n, + }), + }) + + expectTypeOf(fork).toEqualTypeOf>() + + // One name, and the type says whether to await it. + expectTypeOf(Evm.callTx(fork, {} as never)).toEqualTypeOf< + Promise + >() + expectTypeOf(Evm.readAccountInfo(fork, '0x')).toEqualTypeOf< + Promise + >() + + const evm = await Evm.create() + expectTypeOf( + Evm.callTx(evm, {} as never), + ).toEqualTypeOf() + expectTypeOf(Evm.readAccountInfo(evm, '0x')).toEqualTypeOf< + Database.Account | undefined + >() + }) +}) + +describe('callTx', () => { + test('stop is the named union rather than a string or number', () => { + expectTypeOf().toEqualTypeOf() + expectTypeOf().toExtend() + expectTypeOf<'return'>().toExtend() + expectTypeOf<'nope'>().not.toExtend() + }) + + test('gas is bigint throughout', () => { + expectTypeOf().toEqualTypeOf() + expectTypeOf(TxResult.txGasUsed).returns.toEqualTypeOf() + expectTypeOf(TxResult.regularGasSpent).returns.toEqualTypeOf() + expectTypeOf(TxResult.stateGasSpent).returns.toEqualTypeOf() + }) + + test('createdAddress and errorCode are optional, not nullable', () => { + expectTypeOf().toEqualTypeOf< + `0x${string}` | undefined + >() + expectTypeOf().toEqualTypeOf< + bigint | undefined + >() + }) +}) + +describe('Database', () => { + test('a source is satisfied by a plain object', () => { + expectTypeOf<{ + getAccount: (address: `0x${string}`) => Database.Account | undefined + getBlockHash: (number: bigint) => `0x${string}` + getCodeByHash: (codeHash: `0x${string}`) => Uint8Array + getStorage: (address: `0x${string}`, key: bigint) => bigint + }>().toExtend() + }) + + test('inline code is optional on an account', () => { + expectTypeOf().toEqualTypeOf< + Uint8Array | undefined + >() + }) +}) + +describe('SpecId', () => { + test('latest is a specific specification, not the whole union', () => { + expectTypeOf().toEqualTypeOf<'osaka'>() + expectTypeOf(SpecId.enables).toBeCallableWith('osaka', 'cancun') + }) +}) + +describe('ExecutedTx', () => { + test('transact returns a disposable handle', () => { + expectTypeOf( + Evm.transact({} as Evm.Evm, {} as never), + ).toEqualTypeOf() + expectTypeOf(Evm.transact({} as Evm.Evm, {} as never)).toEqualTypeOf< + Promise + >() + expectTypeOf().toEqualTypeOf< + () => void + >() + }) + + test('every resolution returns the result; detach pairs it with state', () => { + expectTypeOf< + ReturnType + >().toEqualTypeOf() + expectTypeOf< + ReturnType + >().toEqualTypeOf() + expectTypeOf< + ReturnType + >().toEqualTypeOf() + expectTypeOf< + TxResult.WithState['pendingState'] + >().toEqualTypeOf() + }) + + test('sink callbacks receive tag-free records', () => { + expectTypeOf< + Parameters>[0] + >().toEqualTypeOf() + // The wire's routing tag never reaches a sink. + expectTypeOf().not.toHaveProperty('kind') + }) + + test('a fields transaction rejects a stray serialized property', () => { + expectTypeOf<{ + from: `0x${string}` + gas: bigint + serialized: `0x${string}` + to: `0x${string}` + }>().not.toExtend() + }) + + test('handler kinds are named literals', () => { + expectTypeOf<(typeof Evm.handlerKinds)['invalidNonce']>().toEqualTypeOf<5>() + expectTypeOf['code']>().toEqualTypeOf< + keyof typeof Evm.handlerKinds | undefined + >() + }) +}) + +describe('version', () => { + test('feature and gas names are the declared unions', () => { + expectTypeOf().toExtend() + expectTypeOf<'nonceCheck'>().toExtend() + expectTypeOf<'logtopic'>().toExtend() + // @ts-expect-error not a flag evm2 declares + expectTypeOf<'notAFeature'>().toExtend() + }) + + test('overrides are partial, and scalars are bigints', () => { + expectTypeOf().toExtend<{ + features?: Partial> | undefined + }>() + expectTypeOf().toEqualTypeOf< + bigint | undefined + >() + expectTypeOf['logtopic']>().toEqualTypeOf< + number | undefined + >() + }) + + test('the setters take an EVM of either kind', () => { + expectTypeOf(Evm.setBlock).toBeCallableWith({} as Evm.Evm, {}) + expectTypeOf(Evm.setBlock).toBeCallableWith({} as Evm.Evm, {}) + expectTypeOf(Evm.setExecutionConfig).toBeCallableWith( + {} as Evm.Evm, + { specId: 'osaka' }, + ) + }) +}) + +describe('inspection', () => { + test('the inspector takes an EVM of either kind', () => { + expectTypeOf(Evm.setInspector).toBeCallableWith({} as Evm.Evm, {}) + expectTypeOf(Evm.setInspector).toBeCallableWith({} as Evm.Evm) + expectTypeOf(Evm.clearInspector).toBeCallableWith({} as Evm.Evm) + }) + + test('a trace is optional on the result, so untraced runs need no guard', () => { + expectTypeOf().toEqualTypeOf< + Inspector.Trace | undefined + >() + // `tree` and `steps` accept the optional trace directly. + expectTypeOf(Inspector.tree).toBeCallableWith(undefined) + expectTypeOf(Inspector.steps).toBeCallableWith(undefined) + }) + + test('events discriminate on kind', () => { + type Step = Extract + expectTypeOf().toEqualTypeOf() + expectTypeOf().toEqualTypeOf() + expectTypeOf(Inspector.steps({} as Inspector.Trace)).toEqualTypeOf< + readonly Step[] + >() + + // A frame's children are frames, so the tree recurses. + expectTypeOf().toEqualTypeOf< + readonly Inspector.Frame[] + >() + // @ts-expect-error a step carries no output + expectTypeOf() + }) +}) + +describe('block access lists', () => { + test('an uncovered read is in the error union of the reads that raise it', () => { + // Attaching a list cannot refuse a read; executing against one can. + expectTypeOf().toExtend() + expectTypeOf().toExtend() + expectTypeOf().toExtend() + // @ts-expect-error installing a list performs no read + expectTypeOf().toExtend() + }) +}) + +describe('asynchronous inference', () => { + test('every setter is awaitable on an asynchronous EVM', async () => { + const memory = Database.fromMemory({}) + const evm = await Evm.create({ + database: Database.fromAsync({ + getAccount: async (address) => memory.getAccount(address), + getBlockHash: async (number) => memory.getBlockHash(number), + getCodeByHash: async (codeHash) => memory.getCodeByHash(codeHash), + getStorage: async (address, key) => memory.getStorage(address, key), + }), + }) + + expectTypeOf(evm).toEqualTypeOf>() + expectTypeOf(Evm.setBlock(evm, {})).toEqualTypeOf>() + expectTypeOf(Evm.setInspector(evm, {})).toEqualTypeOf>() + expectTypeOf(Evm.clearInspector(evm)).toEqualTypeOf>() + expectTypeOf(Evm.setExecutionConfig(evm, {})).toEqualTypeOf>() + expectTypeOf(Evm.setBal(evm, { accounts: [] })).toEqualTypeOf< + Promise + >() + expectTypeOf(Evm.clearBal(evm)).toEqualTypeOf>() + expectTypeOf(Evm.enableBalBuilder(evm)).toEqualTypeOf>() + expectTypeOf(Evm.clearBalBuilder(evm)).toEqualTypeOf>() + expectTypeOf(Evm.setBalIndex(evm, 1n)).toEqualTypeOf>() + expectTypeOf(Evm.takeBal(evm)).toEqualTypeOf>() + }) +}) + +describe('block execution', () => { + test('every block setter is awaitable on an asynchronous EVM', async () => { + const memory = Database.fromMemory({}) + const evm = await Evm.create({ + database: Database.fromAsync({ + getAccount: async (address) => memory.getAccount(address), + getBlockHash: async (number) => memory.getBlockHash(number), + getCodeByHash: async (codeHash) => memory.getCodeByHash(codeHash), + getStorage: async (address, key) => memory.getStorage(address, key), + }), + }) + + expectTypeOf(Evm.startBlockState(evm)).toEqualTypeOf< + Promise + >() + expectTypeOf(Evm.warmPrecompiles(evm)).toEqualTypeOf>() + expectTypeOf(Evm.takeBlockState(evm, {} as BlockState.Token)).toEqualTypeOf< + Promise + >() + expectTypeOf(Evm.systemCall(evm, { address: '0x' })).toEqualTypeOf< + Promise + >() + }) + + test('a system call resolves like a transaction', () => { + // Same handle type, so every resolution applies to it. + expectTypeOf( + Evm.systemCall({} as Evm.Evm, { address: '0x' }), + ).toEqualTypeOf() + expectTypeOf(ExecutedTx.commitTo).toBeCallableWith( + {} as ExecutedTx.ExecutedTx, + {} as BlockState.Token, + ) + }) +}) + +describe('error unions', () => { + /** The union's member with `name`, or `never` when it has none. */ + type Named = Extract + + test('every operation reaching the engine can report a busy one', () => { + // Each goes through the engine, which raises `ReentrancyError` when an + // operation is already running, so each union has to carry it. Matched by + // name: these error types are otherwise structurally alike, so assignability + // alone would pass whatever the union listed. + expectTypeOf< + Named + >().not.toBeNever() + expectTypeOf< + Named + >().not.toBeNever() + expectTypeOf< + Named + >().not.toBeNever() + expectTypeOf< + Named + >().not.toBeNever() + expectTypeOf< + Named + >().not.toBeNever() + expectTypeOf< + Named + >().not.toBeNever() + expectTypeOf< + Named + >().not.toBeNever() + expectTypeOf< + Named + >().not.toBeNever() + }) + + test('an operation reports the failures its own payload can cause', () => { + // Encoding a payload can overflow a field; decoding can meet a shape this + // ABI version cannot read. + expectTypeOf< + Named + >().not.toBeNever() + expectTypeOf< + Named + >().not.toBeNever() + + // `warmPrecompiles` carries no payload, so it cannot fail encoding one. + expectTypeOf< + Named + >().toBeNever() + }) +}) diff --git a/src/evm/_test/Evm.test.ts b/src/evm/_test/Evm.test.ts new file mode 100644 index 00000000..db1f4693 --- /dev/null +++ b/src/evm/_test/Evm.test.ts @@ -0,0 +1,389 @@ +import { Address, Bytes, Hash, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Database, Evm, SpecId, TxResult } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +/** PUSH1 42, PUSH0, MSTORE, PUSH1 32, PUSH0, RETURN */ +const code = '0x602a5f5260205ff3' as const + +function transaction( + options: { chainId?: number; to?: Address.Address; value?: bigint } = {}, +) { + const envelope = TxEnvelopeLegacy.from({ + chainId: options.chainId ?? 1, + gas: 100_000n, + gasPrice: 0n, + nonce: 0n, + to: options.to ?? target, + value: options.value ?? 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +function database() { + return Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code }, + }, + }) +} + +async function evm(specId: SpecId.SpecId = 'osaka') { + return Evm.create({ database: database(), specId }) +} + +describe('create', () => { + test('default', async () => { + // Only state is required: the specification defaults to the newest. + const instance = await Evm.create({ database: database() }) + expect(Evm.callTx(instance, transaction()).status).toBe(true) + }) + + test('behavior: the specification selects the handler set', async () => { + // Cancun has no EIP-7702 handler, so a Prague-only feature is unavailable + // there. The specification is the only thing that decides it. + expect(Evm.callTx(await evm('cancun'), transaction()).status).toBe(true) + }) +}) + +describe('callTx', () => { + test('default', async () => { + const result: TxResult.TxResult = Evm.callTx(await evm(), transaction()) + expect({ ...result, logs: result.logs.length }).toMatchInlineSnapshot(` + { + "createdAddress": undefined, + "errorCode": undefined, + "floorGas": 21000n, + "logs": 0, + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "refunded": 0n, + "stateGasSpent": 0n, + "status": true, + "stop": "return", + "totalGasSpent": 21016n, + } + `) + }) + + test('behavior: names the stop reason', async () => { + // PUSH1 32, PUSH0, REVERT + const reverting = await Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: '0x60205ffd' }, + }, + }), + specId: 'osaka', + }) + const result = Evm.callTx(reverting, transaction()) + expect([result.status, result.stop]).toMatchInlineSnapshot(` + [ + false, + "revert", + ] + `) + }) + + test('behavior: discards state, so a repeat call agrees', async () => { + const instance = await evm() + expect(Evm.callTx(instance, transaction()).totalGasSpent).toBe( + Evm.callTx(instance, transaction()).totalGasSpent, + ) + }) + + test('behavior: runs under every specification', async () => { + for (const specId of ['cancun', 'prague', 'osaka'] as const) + expect([ + specId, + Evm.callTx(await evm(specId), transaction()).status, + ]).toEqual([specId, true]) + }) + + test('behavior: chain id defaults to mainnet and can be set', async () => { + const instance = await Evm.create({ + database: database(), + chainId: 10n, + }) + expect(Evm.callTx(instance, transaction({ chainId: 10 })).status).toBe(true) + }) + + test('error: rejects a transaction for another chain', async () => { + const instance = await evm() + expect(() => Evm.callTx(instance, transaction({ chainId: 10 }))) + .toThrowErrorMatchingInlineSnapshot(` + [Evm.HandlerError: invalid chain id: expected 1, got 10 + + evm2 handler error 6] + `) + }) + + test('error: a transaction the sender cannot pay for', async () => { + // Gas is free at a zero price, so the value transfer is what it cannot fund. + const broke = await Evm.create({ + database: Database.fromMemory({ accounts: { [target]: { code } } }), + specId: 'osaka', + }) + expect(() => Evm.callTx(broke, transaction({ value: 1000n }))) + .toThrowErrorMatchingInlineSnapshot(` + [Evm.HandlerError: insufficient funds + + evm2 handler error 9] + `) + }) +}) + +describe('readAccountInfo', () => { + test('default', async () => { + const account = Evm.readAccountInfo(await evm(), target) + expect(account).toEqual({ + balance: 0n, + // evm2 files loaded code in a cache keyed by its hash and clears the + // account's own field, so the hash identifies the code and `code` is + // absent. Read it with `Database.getCodeByHash` when the bytes are needed. + code: undefined, + codeHash: Hash.keccak256(code), + nonce: 0n, + }) + }) + + test('behavior: undefined for an account that does not exist', async () => { + expect( + Evm.readAccountInfo( + await evm(), + '0x00000000000000000000000000000000000000ff', + ), + ).toBeUndefined() + }) +}) + +describe('TxResult', () => { + test('gas helpers', async () => { + const result: TxResult.TxResult = Evm.callTx(await evm(), transaction()) + expect([ + TxResult.txGasUsed(result), + TxResult.regularGasSpent(result), + TxResult.stateGasSpent(result), + ]).toMatchInlineSnapshot(` + [ + 21016n, + 21016n, + 0n, + ] + `) + }) +}) + +describe('SpecId', () => { + test('enables', () => { + expect([ + SpecId.enables('osaka', 'cancun'), + SpecId.enables('cancun', 'osaka'), + SpecId.latest, + ]).toMatchInlineSnapshot(` + [ + true, + false, + "osaka", + ] + `) + }) +}) + +describe('defaults', () => { + test('behavior: an EVM with no arguments is complete but holds no state', async () => { + const empty = await Evm.create() + + // A free transaction still executes: a missing account reads as balance and + // nonce zero, which covers a transfer that costs nothing. + expect(Evm.callTx(empty, transaction()).status).toBe(true) + + // Anything needing funds is what surfaces the empty state. + expect(() => Evm.callTx(empty, transaction({ value: 1n }))) + .toThrowErrorMatchingInlineSnapshot(` + [Evm.HandlerError: insufficient funds + + evm2 handler error 9] + `) + }) + + test('behavior: defaults to the newest specification', async () => { + // Osaka charges an EIP-7623 floor that Cancun does not, so the default is + // observable rather than nominal. + const [latest, cancun] = [ + Evm.callTx(await Evm.create({ database: database() }), transaction()), + Evm.callTx( + await Evm.create({ database: database(), specId: 'cancun' }), + transaction(), + ), + ] + expect([latest.floorGas > 0n, cancun.floorGas]).toEqual([true, 0n]) + }) +}) + +describe('Database.fromMemory', () => { + test('behavior: copies seeded code, so a later mutation cannot desync it', async () => { + const bytes = Uint8Array.from(Bytes.fromHex(code)) + const instance = await Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: bytes }, + }, + }), + }) + + // Mutating the caller's array must not change the account's code, which its + // hash already commits to. + bytes.fill(0xfe) + expect(Evm.callTx(instance, transaction()).output).toBe( + Hex.fromNumber(42, { size: 32 }), + ) + }) +}) + +describe('Database.fromMemory reads', () => { + test('behavior: hands back copies, so an inspected account cannot be edited', async () => { + const source = database() + + // Reading an account must not expose the stored array: editing it would + // change the executed code while `codeHash` still committed to the original. + source.getAccount(target)!.code!.fill(0xfe) + source.getCodeByHash(Hash.keccak256(code)).fill(0xfe) + + const instance = await Evm.create({ database: source }) + expect(Evm.callTx(instance, transaction()).output).toBe( + Hex.fromNumber(42, { size: 32 }), + ) + }) + + /** PUSH1 1, NUMBER, SUB, BLOCKHASH, PUSH0, MSTORE, PUSH1 32, PUSH0, RETURN */ + const blockHashCode = '0x60014303405f5260205ff3' as const + + function blockHashEvm(blockHashes?: Record) { + return Evm.create({ + block: { number: 1n }, + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: blockHashCode }, + }, + ...(blockHashes ? { blockHashes } : {}), + }), + }) + } + + test('behavior: an unseeded in-window block hash fails the read', async () => { + // evm2 range-checks `BLOCKHASH` first, so reaching the database means the + // chain retains that block. Reporting zero would fabricate chain state. + const instance = await blockHashEvm() + expect(() => Evm.callTx(instance, transaction())) + .toThrowErrorMatchingInlineSnapshot(` + [Database.MissingBlockHashError: The database has no hash for a block the chain retains. + + Block: 0 + Seed it through \`blockHashes\` to execute this transaction.] + `) + }) + + test('behavior: a seeded block hash is returned', async () => { + const blockHash = Hex.fromNumber(7, { size: 32 }) + const instance = await blockHashEvm({ '0': blockHash }) + expect(Evm.callTx(instance, transaction()).output).toBe(blockHash) + }) +}) + +describe('transaction input', () => { + test('behavior: executes from fields, with no signing', async () => { + const instance = await Evm.create({ database: database() }) + + // No key, no signature, no serialization: the fields and the sender are all + // evm2 needs, since it strips any signature the envelope carries. + const result = Evm.callTx(instance, { + from: sender, + gas: 100_000n, + gasPrice: 0n, + nonce: 0n, + to: target, + value: 0n, + }) + + expect(result.output).toBe(Hex.fromNumber(42, { size: 32 })) + expect(result.status).toBe(true) + }) + + test('behavior: fields and a serialized envelope agree', async () => { + const instance = await Evm.create({ database: database() }) + + const fields = Evm.callTx(instance, { + from: sender, + gas: 100_000n, + gasPrice: 0n, + nonce: 0n, + to: target, + value: 0n, + }) + const serialized = Evm.callTx(instance, transaction()) + + expect(fields).toEqual(serialized) + }) + + test('behavior: infers the envelope type from the fee fields', async () => { + const instance = await Evm.create({ database: database() }) + + // `maxFeePerGas` makes this EIP-1559 rather than legacy, the same inference + // `TxEnvelope.from` applies. + const result = Evm.callTx(instance, { + chainId: 1, + from: sender, + gas: 100_000n, + maxFeePerGas: 0n, + maxPriorityFeePerGas: 0n, + nonce: 0n, + to: target, + value: 0n, + }) + + expect(result.status).toBe(true) + expect(result.output).toBe(Hex.fromNumber(42, { size: 32 })) + }) +}) + +describe('Database.fromMemory code', () => { + test('behavior: accepts code that merely starts like a designator', async () => { + // `0xef01` without the rest of a designator is ordinary legacy code, which + // genesis and pre-EIP-3541 state can hold. Every database source runs it as + // legacy, so swapping one for another cannot change whether state executes. + expect(() => + Database.fromMemory({ accounts: { [target]: { code: '0xef01' } } }), + ).not.toThrow() + }) + + test('behavior: accepts a valid delegation designator', async () => { + const designator = `0xef0100${'11'.repeat(20)}` as const + const instance = await Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: designator }, + }, + }), + }) + + // A designator delegates to an account with no code, so the call succeeds + // with empty output rather than executing the designator bytes. + expect(Evm.callTx(instance, transaction()).status).toBe(true) + }) +}) diff --git a/src/evm/_test/ExecutedTx.test.ts b/src/evm/_test/ExecutedTx.test.ts new file mode 100644 index 00000000..374cf95d --- /dev/null +++ b/src/evm/_test/ExecutedTx.test.ts @@ -0,0 +1,564 @@ +import { Address, Bytes, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Database, Evm, ExecutedTx, PendingState, StateChange } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +/** + * Returns slot 0's previous value, then writes 42 to it. + * + * PUSH0 SLOAD, PUSH0 MSTORE, PUSH1 42 PUSH0 SSTORE, PUSH1 32 PUSH0 RETURN. + * Reading the old value is what makes a commit observable: a later transaction + * sees 42 only if the first one's state was accepted. + */ +const code = '0x5f545f52602a5f5560205ff3' as const + +function transaction(options: { nonce?: bigint } = {}) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 100_000n, + gasPrice: 0n, + nonce: options.nonce ?? 0n, + to: target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +async function evm() { + return Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code }, + }, + }), + }) +} + +const zero = Hex.fromNumber(0, { size: 32 }) +const answer = Hex.fromNumber(42, { size: 32 }) + +describe('commit', () => { + test('behavior: a later transaction sees the committed state', async () => { + const instance = await evm() + + const first: ExecutedTx.ExecutedTx = Evm.transact(instance, transaction()) + expect(ExecutedTx.result(first).output).toBe(zero) + ExecutedTx.commit(first) + + // The nonce advanced with the commit, so the second transaction uses 1. + const second = Evm.transact(instance, transaction({ nonce: 1n })) + expect(ExecutedTx.result(second).output).toBe(answer) + ExecutedTx.commit(second) + + expect(Evm.readAccountInfo(instance, sender)?.nonce).toBe(2n) + }) +}) + +describe('discard', () => { + test('behavior: a later transaction does not see discarded state', async () => { + const instance = await evm() + + ExecutedTx.discard(Evm.transact(instance, transaction())) + + // The nonce did not advance either, so this reuses nonce 0. + const second = Evm.transact(instance, transaction()) + expect(ExecutedTx.result(second).output).toBe(zero) + ExecutedTx.discard(second) + + expect(Evm.readAccountInfo(instance, sender)?.nonce).toBe(0n) + }) +}) + +describe('detach', () => { + test('behavior: state leaves the EVM without being accepted', async () => { + const instance = await evm() + + const { pendingState, result } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + expect(result.output).toBe(zero) + expect(PendingState.isEmpty(pendingState)).toBe(false) + + // Detaching is not committing: the EVM never accepted the write. + const second = Evm.transact(instance, transaction()) + expect(ExecutedTx.result(second).output).toBe(zero) + ExecutedTx.discard(second) + }) + + test('behavior: the detached state carries the slot write', async () => { + const instance = await evm() + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + + const storage: StateChange.Storage[] = [] + StateChange.visit(pendingState, { + storage(change) { + storage.push(change) + }, + }) + + expect(storage.filter((change) => change.address.toLowerCase() === target)) + .toMatchInlineSnapshot(` + [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": 42n, + "key": 0n, + "original": 0n, + }, + ] + `) + }) + + test('behavior: reports the sender balance the transaction left', async () => { + const instance = await evm() + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + + // Zero-priced gas, so the only account change is the nonce. + expect(PendingState.accountInfo(pendingState, sender)) + .toMatchInlineSnapshot(` + { + "balance": 1000000000000000000n, + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1n, + } + `) + }) + + test('behavior: an untouched account is absent', async () => { + const instance = await evm() + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + + expect( + PendingState.accountInfo( + pendingState, + '0x000000000000000000000000000000000000dead', + ), + ).toBeUndefined() + }) +}) + +describe('lifecycle', () => { + test('behavior: a second execution while a handle is outstanding throws', async () => { + const instance = await evm() + const executed = Evm.transact(instance, transaction()) + + // evm2 holds the EVM's exclusive borrow until the handle resolves, which the + // binding has to enforce rather than the compiler. + expect(() => Evm.transact(instance, transaction({ nonce: 1n }))) + .toThrowErrorMatchingInlineSnapshot(` + [Evm.BorrowedError: An executed transaction has not been resolved. + + Commit, discard, or detach it before using the EVM again.] + `) + + ExecutedTx.discard(executed) + }) + + test('behavior: reading through the EVM while borrowed throws', async () => { + const instance = await evm() + const executed = Evm.transact(instance, transaction()) + + expect(() => Evm.readAccountInfo(instance, sender)) + .toThrowErrorMatchingInlineSnapshot(` + [Evm.BorrowedError: An executed transaction has not been resolved. + + Commit, discard, or detach it before using the EVM again.] + `) + + ExecutedTx.discard(executed) + }) + + test('behavior: a resolved handle cannot be resolved again', async () => { + const instance = await evm() + const executed = Evm.transact(instance, transaction()) + ExecutedTx.commit(executed) + + expect(() => ExecutedTx.commit(executed)) + .toThrowErrorMatchingInlineSnapshot(` + [ExecutedTx.ResolvedError: This transaction was already resolved. + + It was committed, discarded, or detached, and cannot be resolved again.] + `) + expect(() => ExecutedTx.discard(executed)) + .toThrowErrorMatchingInlineSnapshot(` + [ExecutedTx.ResolvedError: This transaction was already resolved. + + It was committed, discarded, or detached, and cannot be resolved again.] + `) + }) + + test('behavior: the result stays readable after resolving', async () => { + const instance = await evm() + const executed = Evm.transact(instance, transaction()) + ExecutedTx.commit(executed) + + // evm2's `result` does not consume the handle, so neither does this. + expect(ExecutedTx.result(executed).output).toBe(zero) + }) + + test('behavior: an unresolved handle discards when its scope exits', async () => { + const instance = await evm() + expect(typeof Symbol.dispose).toBe('symbol') + + { + using executed = Evm.transact(instance, transaction()) + expect(ExecutedTx.result(executed).output).toBe(zero) + } + + // Scope exit discarded rather than committed, so the EVM is usable and the + // write is gone. + const second = Evm.transact(instance, transaction()) + expect(ExecutedTx.result(second).output).toBe(zero) + ExecutedTx.discard(second) + }) + + test('behavior: scope exit after an explicit resolution does nothing', async () => { + const instance = await evm() + + { + using executed = Evm.transact(instance, transaction()) + ExecutedTx.commit(executed) + } + + // Dispose must not discard what was committed, nor throw for resolving twice. + const second = Evm.transact(instance, transaction({ nonce: 1n })) + expect(ExecutedTx.result(second).output).toBe(answer) + ExecutedTx.discard(second) + }) +}) + +describe('StateChange.tee', () => { + test('behavior: forwards every change to both sinks', async () => { + const instance = await evm() + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + + const a: string[] = [] + const b: string[] = [] + StateChange.visit( + pendingState, + StateChange.tee( + { storage: (change) => a.push(change.address) }, + { storage: (change) => b.push(change.address) }, + ), + ) + + expect(a).toEqual(b) + expect(a.length).toBeGreaterThan(0) + }) +}) + +describe('commitWith', () => { + test('behavior: streams the changes, then accepts them', async () => { + const instance = await evm() + + const storage: StateChange.Storage[] = [] + ExecutedTx.commitWith(Evm.transact(instance, transaction()), { + storage(change) { + storage.push(change) + }, + }) + + expect(storage.filter((change) => change.address.toLowerCase() === target)) + .toMatchInlineSnapshot(` + [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": 42n, + "key": 0n, + "original": 0n, + }, + ] + `) + + // Committed, so the write is visible and the nonce advanced. + const second = Evm.transact(instance, transaction({ nonce: 1n })) + expect(ExecutedTx.result(second).output).toBe(answer) + ExecutedTx.discard(second) + }) + + test('behavior: a sink that throws discards instead of committing', async () => { + const instance = await evm() + + // evm2's rule: a failing sink means the transaction is not committed. The + // sink's own error surfaces rather than the resulting status. + expect(() => + ExecutedTx.commitWith(Evm.transact(instance, transaction()), { + storage() { + throw new Error('sink refused') + }, + }), + ).toThrowErrorMatchingInlineSnapshot(`[Error: sink refused]`) + + // Not committed: the write is gone and the nonce never advanced. + const second = Evm.transact(instance, transaction()) + expect(ExecutedTx.result(second).output).toBe(zero) + ExecutedTx.discard(second) + expect(Evm.readAccountInfo(instance, sender)?.nonce).toBe(0n) + }) +}) + +describe('discardWith', () => { + test('behavior: streams the changes without accepting them', async () => { + const instance = await evm() + + const seen: StateChange.Storage[] = [] + ExecutedTx.discardWith(Evm.transact(instance, transaction()), { + storage(change) { + seen.push(change) + }, + }) + + expect(seen.some((change) => change.current === 42n)).toBe(true) + + // Observed but not accepted. + const second = Evm.transact(instance, transaction()) + expect(ExecutedTx.result(second).output).toBe(zero) + ExecutedTx.discard(second) + }) +}) + +describe('handle identity', () => { + test('behavior: a copied handle cannot resolve a later transaction', async () => { + const instance = await evm() + + const first: ExecutedTx.ExecutedTx = Evm.transact(instance, transaction()) + const copy = { ...first } + + // The copy has its own `~resolved` flag but the same token, so resolving it + // releases the transaction it belongs to. + ExecutedTx.discard(copy) + + // A new transaction is now outstanding. The original handle must not resolve + // it, even though its own flag says unresolved. + const second = Evm.transact(instance, transaction()) + expect(() => ExecutedTx.commit(first)).toThrowErrorMatchingInlineSnapshot(` + [Evm.NotExecutedError: There is no executed transaction to resolve. + + It was already committed, discarded, or detached.] + `) + + ExecutedTx.discard(second) + }) +}) + +describe('sink contract', () => { + test('behavior: an async sink is refused and the transaction discarded', async () => { + const instance = await evm() + + // evm2 decides whether to commit as each record returns, so a promise that + // settles later could not stop a commit that already happened. + expect(() => + ExecutedTx.commitWith(Evm.transact(instance, transaction()), { + async storage() { + await Promise.resolve() + }, + }), + ).toThrowErrorMatchingInlineSnapshot(` + [ExecutedTx.AsyncSinkError: A state-change sink returned a promise. + + Sinks are synchronous: evm2 decides whether to commit as each record returns. + The transaction was discarded.] + `) + + const second = Evm.transact(instance, transaction()) + expect(ExecutedTx.result(second).output).toBe(zero) + ExecutedTx.discard(second) + expect(Evm.readAccountInfo(instance, sender)?.nonce).toBe(0n) + }) + + test('behavior: streaming and visiting hand a sink the same shape', async () => { + const streamed: StateChange.Storage[] = [] + ExecutedTx.discardWith(Evm.transact(await evm(), transaction()), { + storage(change) { + streamed.push(change) + }, + }) + + const visited: StateChange.Storage[] = [] + const { pendingState } = ExecutedTx.detach( + Evm.transact(await evm(), transaction()), + ) + StateChange.visit(pendingState, { + storage(change) { + visited.push(change) + }, + }) + + // Neither path may leak the wire's routing tag. + expect(streamed).toEqual(visited) + expect(Object.keys(streamed[0]!).sort()).toMatchInlineSnapshot(` + [ + "address", + "current", + "key", + "original", + ] + `) + }) +}) + +describe('sink record kinds', () => { + /** Initcode returning `PUSH1 42 PUSH0 MSTORE PUSH1 32 PUSH0 RETURN`. */ + const initcode = '0x67602a5f5260205ff35f5260086018f3' as const + /** Constructor SSTOREs a slot then SELFDESTRUCTs to the caller. */ + const destructor = '0x60015f5533ff' as const + + function create(data: Hex.Hex, value = 0n) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + data, + gas: 1_000_000n, + gasPrice: 0n, + nonce: 0n, + value, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } + } + + async function senderOnly() { + return Evm.create({ + database: Database.fromMemory({ + accounts: { [sender.toLowerCase()]: { balance: 10n ** 18n } }, + }), + }) + } + + test('behavior: a create streams bytecode and a created account', async () => { + const instance = await senderOnly() + + const kinds: string[] = [] + let deployed: Bytes.Bytes | undefined + let created = false + ExecutedTx.commitWith(Evm.transact(instance, create(initcode)), { + account(change) { + kinds.push('account') + created ||= change.created === true + }, + accountRead() { + kinds.push('accountRead') + }, + bytecode(_codeHash, code) { + kinds.push('bytecode') + deployed = code + }, + }) + + expect(created).toBe(true) + expect(deployed && Hex.fromBytes(deployed)).toBe('0x602a5f5260205ff3') + expect(kinds).toContain('bytecode') + }) + + test('behavior: a same-transaction selfdestruct streams a storage wipe', async () => { + const instance = await senderOnly() + + // Created and destroyed in one transaction nets to no account change, so + // the live stream reports only the wipe; the flag lives on detached state. + const wipes: string[] = [] + ExecutedTx.discardWith(Evm.transact(instance, create(destructor, 1n)), { + storageWipe(address) { + wipes.push(address) + }, + }) + expect(wipes.length).toBe(1) + }) + + test('behavior: detached state records the selfdestruct flag', async () => { + const instance = await senderOnly() + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, create(destructor, 1n)), + ) + + let selfdestructed = false + StateChange.visit(pendingState, { + account(change) { + selfdestructed ||= change.selfdestructed === true + }, + }) + expect(selfdestructed).toBe(true) + }) + + test('behavior: streaming and visiting emit one sequence', async () => { + const trace = (sink: (event: string) => void): StateChange.Sink => ({ + account: (change) => sink(`account:${change.address}`), + accountRead: (change) => sink(`accountRead:${change.address}`), + bytecode: (codeHash) => sink(`bytecode:${codeHash}`), + storage: (change) => sink(`storage:${change.address}:${change.key}`), + storageRead: (change) => + sink(`storageRead:${change.address}:${change.key}`), + storageWipe: (address) => sink(`wipe:${address}`), + }) + + const streamed: string[] = [] + ExecutedTx.discardWith( + Evm.transact(await senderOnly(), create(initcode)), + trace((event) => streamed.push(event)), + ) + + const visited: string[] = [] + const { pendingState } = ExecutedTx.detach( + Evm.transact(await senderOnly(), create(initcode)), + ) + StateChange.visit( + pendingState, + trace((event) => visited.push(event)), + ) + + // The two paths are different evm2 sources: detached state additionally + // reports loads the live stream elides (a fee-recipient read, net-no-op + // accounts). What both report must arrive in the same relative order. + const common = visited.filter((event) => streamed.includes(event)) + expect(common).toEqual(streamed) + expect(streamed.length).toBeGreaterThan(2) + + // Detached replay is deterministic: evm2 documents PendingState's visit + // order, and ours is its recording. + const again: string[] = [] + const second = ExecutedTx.detach( + Evm.transact(await senderOnly(), create(initcode)), + ) + StateChange.visit( + second.pendingState, + trace((event) => again.push(event)), + ) + expect(again).toEqual(visited) + }) +}) + +describe('isolation', () => { + test('behavior: a borrowed EVM does not affect a sibling instance', async () => { + const a = await evm() + const b = await evm() + + const executed = Evm.transact(a, transaction()) + // `a` is held; `b` is a separate engine and stays fully usable. + expect(Evm.callTx(b, transaction()).status).toBe(true) + ExecutedTx.discard(executed) + }) +}) diff --git a/src/evm/_test/Inspector.test.ts b/src/evm/_test/Inspector.test.ts new file mode 100644 index 00000000..5b8373d0 --- /dev/null +++ b/src/evm/_test/Inspector.test.ts @@ -0,0 +1,340 @@ +import { Address, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Database, Evm, ExecutedTx, Inspector } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +/** + * Recorded executions. + * + * The property that matters most is the one asserted last: recording must not + * change what executes. + */ + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const +const inner = '0x00000000000000000000000000000000000000c1' as const + +/** + * Emits a log, then calls `inner` with no data. + * + * PUSH0 PUSH0 PUSH0 LOG1, then PUSH0 x5, PUSH20 inner, GAS, CALL, STOP. + */ +const code = `0x5f5f5fa15f5f5f5f5f73${inner.slice(2)}5af100` as const + +/** PUSH1 42, PUSH0, MSTORE, PUSH1 32, PUSH0, RETURN */ +const innerCode = '0x602a5f5260205ff3' as const + +function transaction(options: { nonce?: bigint } = {}) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: options.nonce ?? 0n, + to: target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +function evm() { + return Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code }, + [inner]: { code: innerCode }, + }, + }), + }) +} + +describe('setInspector', () => { + test('behavior: an untraced execution reports no trace', async () => { + expect(Evm.callTx(await evm(), transaction()).trace).toBeUndefined() + }) + + test('behavior: calls and logs are recorded without asking for steps', async () => { + const instance = await evm() + Evm.setInspector(instance, {}) + + const trace = Evm.callTx(instance, transaction()).trace + expect(trace?.truncated).toBe(false) + + // Message hooks only, so the stream stays small. + expect(trace?.events.some((event) => event.kind === 'step')).toBe(false) + expect(trace?.events.map((event) => event.kind)).toEqual([ + 'call', + 'log', + 'call', + 'callEnd', + 'callEnd', + ]) + }) + + test('behavior: steps are recorded only when asked for', async () => { + const instance = await evm() + Evm.setInspector(instance, { stack: true, steps: true }) + + const trace = Evm.callTx(instance, transaction()).trace + const steps = Inspector.steps(trace) + + expect(steps.length).toBeGreaterThan(5) + // The first instruction of the outer frame is PUSH0. + expect(steps[0]?.opcode).toBe(0x5f) + expect(steps[0]?.pc).toBe(0) + // Gas only decreases. + expect(steps.at(-1)!.gas).toBeLessThan(steps[0]!.gas) + }) + + test('behavior: clearing stops recording', async () => { + const instance = await evm() + Evm.setInspector(instance, {}) + expect(Evm.callTx(instance, transaction()).trace).toBeDefined() + + Evm.clearInspector(instance) + expect(Evm.callTx(instance, transaction()).trace).toBeUndefined() + }) + + test('behavior: the limit truncates without failing the execution', async () => { + const instance = await evm() + Evm.setInspector(instance, { limit: 64, stack: true, steps: true }) + + const result = Evm.callTx(instance, transaction()) + + // Execution succeeded; only the recording stopped short. + expect(result.status).toBe(true) + expect(result.trace?.truncated).toBe(true) + }) +}) + +describe('tree', () => { + test('behavior: nesting is recovered from the flat stream', async () => { + const instance = await evm() + Evm.setInspector(instance, {}) + + const [root] = Inspector.tree(Evm.callTx(instance, transaction()).trace) + + expect(root?.destination).toBe(target) + expect(root?.logs.length).toBe(1) + expect(root?.calls.length).toBe(1) + + // The inner call is a child, and it returned the word the code writes. + const child = root?.calls[0] + expect(child?.destination).toBe(inner) + expect(child?.output).toBe(Hex.fromNumber(42, { size: 32 })) + expect(child?.calls.length).toBe(0) + }) + + test('behavior: a create reports the address it deployed', async () => { + /** Initcode returning `PUSH1 42 PUSH0 MSTORE PUSH1 32 PUSH0 RETURN`. */ + const initcode = '0x67602a5f5260205ff35f5260086018f3' as const + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + data: initcode, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + + const instance = await Evm.create({ + database: Database.fromMemory({ + accounts: { [sender.toLowerCase()]: { balance: 10n ** 18n } }, + }), + }) + Evm.setInspector(instance, {}) + + const result = Evm.callTx(instance, { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + }) + const [root] = Inspector.tree(result.trace) + + expect(root?.kind).toBe('create') + expect(root?.createdAddress).toBe(result.createdAddress) + }) + + test('behavior: an empty trace yields no frames', () => { + expect(Inspector.tree(undefined)).toEqual([]) + }) +}) + +describe('transact', () => { + test('behavior: a transaction reports its own trace', async () => { + const instance = await evm() + Evm.setInspector(instance, {}) + + // The trace arrives with the execution, not with its resolution: the + // collector is held outside the engine, so a parked handle does not hide it. + const executed = Evm.transact(instance, transaction()) + expect(ExecutedTx.result(executed).trace?.events.length).toBeGreaterThan(0) + + ExecutedTx.discard(executed) + }) +}) + +describe('bounds', () => { + test('behavior: a truncated trace is a prefix, never a stream with holes', async () => { + const full = await evm() + Evm.setInspector(full, { limit: 4_000_000, steps: true }) + const expected = Evm.callTx(full, transaction()).trace! + + // Small enough to stop partway through the steps, and step-end records are + // smaller than step records, so an unlatched limit would admit them after + // refusing a step and leave a hole. + const partial = await evm() + Evm.setInspector(partial, { limit: 200, steps: true }) + const trace = Evm.callTx(partial, transaction()).trace! + + expect(trace.truncated).toBe(true) + expect(trace.events.length).toBeGreaterThan(0) + expect(trace.events.length).toBeLessThan(expected.events.length) + expect(trace.events).toEqual(expected.events.slice(0, trace.events.length)) + }) + + test('behavior: the limit counts what a record actually writes', async () => { + // A message record encodes 108 bytes before its input: tag, kind, depth, gas + // limit, three addresses, the value word, and the input length. Under a limit + // between the header without the value word and the true size, the record has + // to be refused rather than written past the bound. + const instance = await evm() + Evm.setInspector(instance, { limit: 90 }) + + const trace = Evm.callTx(instance, transaction()).trace! + + expect(trace.events).toEqual([]) + expect(trace.truncated).toBe(true) + }) + + test('behavior: a deep stack is recorded whole', async () => { + // 300 words, past what a byte-wide count can express. A wrapped count would + // leave the words to be read as event tags. + const deep = `0x${'5f'.repeat(300)}00` as const + const instance = await Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: deep }, + }, + }), + }) + Evm.setInspector(instance, { limit: 4_000_000, stack: true, steps: true }) + + const result = Evm.callTx(instance, transaction()) + const depths = Inspector.steps(result.trace).map( + (step) => step.stack.length, + ) + + expect(result.status).toBe(true) + expect(Math.max(...depths)).toBe(300) + expect(result.trace?.truncated).toBe(false) + }) +}) + +describe('selfdestruct', () => { + test('behavior: the destroyed account is reported, not just the beneficiary', async () => { + /** PUSH20 sender, SELFDESTRUCT */ + const code_ = `0x73${sender.slice(2)}ff` as const + const instance = await Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { balance: 5n, code: code_ }, + }, + }), + }) + Evm.setInspector(instance, {}) + + const [root] = Inspector.tree(Evm.callTx(instance, transaction()).trace) + + expect(root?.selfdestructs).toEqual([ + { contract: target, target: sender, value: 5n }, + ]) + }) +}) + +describe('asynchronous sources', () => { + test('behavior: a retried execution traces once, not once per attempt', async () => { + // Every uncached read abandons the attempt and repeats it, so a collector + // that is not cleared between attempts accumulates partial executions. + const sync = await evm() + Evm.setInspector(sync, { limit: 4_000_000, stack: true, steps: true }) + const expected = Evm.callTx(sync, transaction()).trace + + const memory = Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code }, + [inner]: { code: innerCode }, + }, + }) + const fork = await Evm.create({ + database: Database.fromAsync({ + getAccount: async (address) => memory.getAccount(address), + getBlockHash: async (number) => memory.getBlockHash(number), + getCodeByHash: async (codeHash) => memory.getCodeByHash(codeHash), + getStorage: async (address, key) => memory.getStorage(address, key), + }), + }) + + // Serialized like the other setters, so this is awaited rather than assumed. + await Evm.setInspector(fork, { + limit: 4_000_000, + stack: true, + steps: true, + }) + const result = await Evm.callTx(fork, transaction()) + + expect(result.trace).toEqual(expected) + }) + + test('behavior: changing the inspector waits for a parked execution', async () => { + const memory = Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code }, + [inner]: { code: innerCode }, + }, + }) + const fork = await Evm.create({ + database: Database.fromAsync({ + getAccount: async (address) => memory.getAccount(address), + getBlockHash: async (number) => memory.getBlockHash(number), + getCodeByHash: async (codeHash) => memory.getCodeByHash(codeHash), + getStorage: async (address, key) => memory.getStorage(address, key), + }), + }) + await Evm.setInspector(fork, {}) + + // Started, not awaited: the execution parks on its first uncached read, so + // an unqueued clear would land in the middle of it and drop the recording. + const executing = Evm.callTx(fork, transaction()) + const cleared = Evm.clearInspector(fork) + + const result = await executing + await cleared + + expect(result.trace?.events.map((event) => event.kind)).toEqual([ + 'call', + 'log', + 'call', + 'callEnd', + 'callEnd', + ]) + // The clear took effect once the execution finished with it. + expect(Evm.callTx(fork, transaction({ nonce: 0n }))).toBeInstanceOf(Promise) + expect((await Evm.callTx(fork, transaction())).trace).toBeUndefined() + }) +}) diff --git a/src/evm/_test/async.test.ts b/src/evm/_test/async.test.ts new file mode 100644 index 00000000..5605f254 --- /dev/null +++ b/src/evm/_test/async.test.ts @@ -0,0 +1,306 @@ +import { Address, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Database, Evm, ExecutedTx } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +/** + * The asynchronous path must reach the same answers as the synchronous one. + * + * evm2 reads through a synchronous trait, so an asynchronous source is served by + * abandoning the attempt on an unfetched read and repeating it once the value is + * cached. That is a different execution shape for the same execution, so what it + * produces has to be identical. + */ + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +/** PUSH0 SLOAD, PUSH0 MSTORE, PUSH1 42 PUSH0 SSTORE, PUSH1 32 PUSH0 RETURN. */ +const code = '0x5f545f52602a5f5560205ff3' as const + +const accounts = { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code, storage: { '0': 7n } }, +} as const + +function transaction(options: { nonce?: bigint } = {}) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 100_000n, + gasPrice: 0n, + nonce: options.nonce ?? 0n, + to: target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +/** Counts what the source was asked for, so repeats are observable. */ +function source() { + const memory = Database.fromMemory({ accounts }) + const reads: string[] = [] + return { + reads, + database: Database.fromAsync({ + async getAccount(address) { + reads.push(`account:${address.toLowerCase()}`) + return memory.getAccount(address) + }, + async getBlockHash(number) { + reads.push(`blockHash:${number}`) + return memory.getBlockHash(number) + }, + async getCodeByHash(codeHash) { + reads.push(`code:${codeHash}`) + return memory.getCodeByHash(codeHash) + }, + async getStorage(address, key) { + reads.push(`storage:${address.toLowerCase()}:${key}`) + return memory.getStorage(address, key) + }, + }), + } +} + +describe('callTx', () => { + test('behavior: an asynchronous source reaches the synchronous result', async () => { + const sync = Evm.callTx( + await Evm.create({ database: Database.fromMemory({ accounts }) }), + transaction(), + ) + const fork = await Evm.create({ database: source().database }) + + expect(await Evm.callTx(fork, transaction())).toEqual(sync) + }) + + test('behavior: the source is asked for each value once', async () => { + const { database, reads } = source() + const fork = await Evm.create({ database }) + + await Evm.callTx(fork, transaction()) + + // Every attempt re-executes, but the cache answers what it already has, so + // the source sees no repeats. + expect(new Set(reads).size).toBe(reads.length) + expect(reads.length).toBeGreaterThan(1) + + // A second transaction reuses everything the first cached. + const before = reads.length + await Evm.callTx(fork, transaction()) + expect(reads.length).toBe(before) + }) +}) + +describe('transact', () => { + test('behavior: the lifecycle is unchanged, and resolution stays synchronous', async () => { + const fork = await Evm.create({ database: source().database }) + + const executed = await Evm.transact(fork, transaction()) + expect(ExecutedTx.result(executed).output).toBe( + Hex.fromNumber(7, { size: 32 }), + ) + + // Resolution reads nothing, so it is not a promise. + expect(ExecutedTx.commit(executed).status).toBe(true) + + const second = await Evm.transact(fork, transaction({ nonce: 1n })) + expect(ExecutedTx.result(second).output).toBe( + Hex.fromNumber(42, { size: 32 }), + ) + ExecutedTx.discard(second) + }) + + test('behavior: an abandoned attempt leaves no state behind', async () => { + const { database } = source() + const fork = await Evm.create({ database }) + + // The first attempt stops on an unfetched read. If it left state or a parked + // handle behind, this second transaction could not run at all. + await Evm.transact(fork, transaction()).then(ExecutedTx.discard) + + expect((await Evm.readAccountInfo(fork, sender))?.nonce).toBe(0n) + }) +}) + +describe('errors', () => { + test('behavior: a source that rejects surfaces its own error', async () => { + const fork = await Evm.create({ + database: Database.fromAsync({ + async getAccount() { + throw new Error('provider offline') + }, + async getBlockHash() { + return `0x${'00'.repeat(32)}` + }, + async getCodeByHash() { + return new Uint8Array() + }, + async getStorage() { + return 0n + }, + }), + }) + + await expect(Evm.callTx(fork, transaction())).rejects.toThrowError( + 'provider offline', + ) + }) + + test('behavior: an absent sender fails the same way it does synchronously', async () => { + // Costed, so the missing balance actually matters: a zero-priced transfer of + // zero value would succeed against an empty account. + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 100_000n, + gasPrice: 0n, + nonce: 0n, + to: target, + value: 10n ** 18n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + const costed = { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } + + const absent = { + async getAccount() { + return undefined + }, + async getBlockHash() { + return `0x${'00'.repeat(32)}` as const + }, + async getCodeByHash() { + return new Uint8Array() + }, + async getStorage() { + return 0n + }, + } + + const sync = await Evm.create({ database: Database.fromMemory() }) + const fork = await Evm.create({ database: Database.fromAsync(absent) }) + + const expected = (() => { + try { + void Evm.callTx(sync, costed) + return undefined + } catch (error) { + return (error as Error).message + } + })() + + expect(expected).toBeDefined() + await expect(Evm.callTx(fork, costed)).rejects.toThrowError(expected) + }) +}) + +describe('fromAsync', () => { + test('behavior: a prototype-backed source keeps its reads', async () => { + const memory = Database.fromMemory({ accounts }) + + // A class puts its reads on the prototype, which a spread would not copy. + class Remote { + async getAccount(address: Address.Address) { + return memory.getAccount(address) + } + async getBlockHash(number: bigint) { + return memory.getBlockHash(number) + } + async getCodeByHash(codeHash: Hex.Hex) { + return memory.getCodeByHash(codeHash) + } + async getStorage(address: Address.Address, key: bigint) { + return memory.getStorage(address, key) + } + } + + const fork = await Evm.create({ + database: Database.fromAsync(new Remote()), + }) + expect((await Evm.callTx(fork, transaction())).output).toBe( + Hex.fromNumber(7, { size: 32 }), + ) + }) + + test('behavior: a source using `this` still works', async () => { + const memory = Database.fromMemory({ accounts }) + const source = { + inner: memory, + async getAccount(address: Address.Address) { + // Delegation must preserve the receiver. + return this.inner.getAccount(address) + }, + async getBlockHash(number: bigint) { + return this.inner.getBlockHash(number) + }, + async getCodeByHash(codeHash: Hex.Hex) { + return this.inner.getCodeByHash(codeHash) + }, + async getStorage(address: Address.Address, key: bigint) { + return this.inner.getStorage(address, key) + }, + } + + const fork = await Evm.create({ database: Database.fromAsync(source) }) + expect((await Evm.callTx(fork, transaction())).status).toBe(true) + }) +}) + +describe('concurrency', () => { + test('behavior: an execution started concurrently does not break a read', async () => { + const { database } = source() + const fork = await Evm.create({ database }) + + // Both start before either finishes fetching. Unserialized, whichever parks + // a transaction first leaves the engine borrowed, and the other's next + // attempt fails with `BorrowedError` mid-replay. + const [called, executed] = await Promise.all([ + Evm.callTx(fork, transaction()), + Evm.transact(fork, transaction()), + ]) + + expect(called.status).toBe(true) + expect(ExecutedTx.result(executed)).toEqual(called) + ExecutedTx.discard(executed) + }) + + test('behavior: a queued operation survives a failing one', async () => { + let fail = true + const memory = Database.fromMemory({ accounts }) + const fork = await Evm.create({ + database: Database.fromAsync({ + async getAccount(address) { + if (fail) { + fail = false + throw new Error('transient') + } + return memory.getAccount(address) + }, + getBlockHash: async (number) => memory.getBlockHash(number), + getCodeByHash: async (codeHash) => memory.getCodeByHash(codeHash), + getStorage: async (address, key) => memory.getStorage(address, key), + }), + }) + + const [failed, queued] = await Promise.allSettled([ + Evm.callTx(fork, transaction()), + Evm.callTx(fork, transaction()), + ]) + + // The queue absorbs the rejection rather than poisoning what follows. + expect(failed.status).toBe('rejected') + expect(queued.status).toBe('fulfilled') + }) +}) diff --git a/src/evm/_test/bindings.test.ts b/src/evm/_test/bindings.test.ts new file mode 100644 index 00000000..71f77f0b --- /dev/null +++ b/src/evm/_test/bindings.test.ts @@ -0,0 +1,583 @@ +import { Address, Bytes, Hash, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { describe, expect, test } from 'vp/test' +import * as bindings from '../internal/bindings.js' +import * as codec from '../internal/codec.js' +import type * as Database from '../internal/database.js' +import * as engine from '../internal/engine.js' + +const emptyCodeHash = Hash.keccak256('0x') + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const recipient = '0x00000000000000000000000000000000000000bb' as const + +const block: codec.Block = { + basefee: 0n, + beneficiary: '0x00000000000000000000000000000000000000cc', + blobBasefee: 1n, + difficulty: 0n, + gasLimit: 30_000_000n, + number: 1n, + prevrandao: 0n, + slotNum: 0n, + timestamp: 1n, +} + +/** A funded source whose reads can be replaced per test. */ +function database( + overrides: Partial = {}, +): Database.Database { + return { + getAccount(address) { + if (address.toLowerCase() !== sender.toLowerCase()) return undefined + return { balance: 10n ** 18n, codeHash: emptyCodeHash, nonce: 0n } + }, + getBlockHash() { + return `0x${'00'.repeat(32)}` + }, + getCodeByHash() { + return new Uint8Array() + }, + getStorage() { + return 0n + }, + ...overrides, + } +} + +/** + * A signed legacy transaction carrying `data` bytes of calldata. + * + * `gas` stays well under EIP-7825's per-transaction cap, which Osaka enforces + * below the block gas limit. + */ +function transaction(data: Bytes.Bytes = new Uint8Array(), gas = 100_000n) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + data: Hex.fromBytes(data), + gas, + gasPrice: 0n, + nonce: 0n, + to: recipient, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + envelope: Bytes.fromHex( + TxEnvelopeLegacy.serialize(envelope, { signature }), + ), + signer: sender, + } +} + +/** A raw instance, for requests the codec would never produce. */ +async function instance() { + const raw = await bindings.instantiateWith(database()) + raw.call( + codec.encodeCreate({ block, chainId: 1n, specId: codec.specId.osaka }), + ) + return raw +} + +/** Builds a request header by hand. */ +function request(options: { + flags?: number | undefined + length?: number | undefined + magic?: number | undefined + op: number + payload?: Bytes.Bytes | undefined + version?: number | undefined +}) { + const payload = options.payload ?? new Uint8Array() + const bytes = new Uint8Array(codec.headerSize + payload.length) + const view = new DataView(bytes.buffer) + view.setUint32(0, options.magic ?? codec.magic, true) + view.setUint16(4, options.version ?? codec.version, true) + view.setUint16(6, options.op, true) + view.setUint32(8, options.flags ?? 0, true) + view.setUint32(12, options.length ?? payload.length, true) + bytes.set(payload, codec.headerSize) + return bytes +} + +describe('instantiateWith', () => { + test('publishes only the ABI version the codec speaks', async () => { + const compiled = await bindings.compile() + const exports = WebAssembly.Module.exports(compiled).map( + (entry) => `${entry.name}:${entry.kind}`, + ) + expect(exports).toMatchInlineSnapshot(` + [ + "memory:memory", + "ox_abi_version:function", + "ox_alloc:function", + "ox_call:function", + "ox_reset:function", + ] + `) + }) + + test('imports nothing beyond the host state reads', async () => { + const compiled = await bindings.compile() + const imports = WebAssembly.Module.imports(compiled) + .map((entry) => `${entry.module}.${entry.name}`) + .sort() + expect(imports).toMatchInlineSnapshot(` + [ + "ox_evm2.get_account", + "ox_evm2.get_block_hash", + "ox_evm2.get_code_by_hash", + "ox_evm2.get_storage", + "ox_evm2.sink_record", + ] + `) + }) + + test('compiles once per realm', async () => { + expect(await bindings.compile()).toBe(await bindings.compile()) + }) +}) + +describe('call', () => { + test('rejects a foreign magic', async () => { + const raw = await instance() + const { payload, status } = raw.call( + request({ magic: 0xdead_beef, op: codec.op.destroy }), + ) + expect(status).toBe(codec.status.abi) + expect(codec.decodeMessage(payload)).toMatchInlineSnapshot( + `"expected magic 0x324d5645, got 0xdeadbeef"`, + ) + }) + + test('rejects another ABI version', async () => { + const raw = await instance() + const { payload, status } = raw.call( + request({ op: codec.op.destroy, version: 2 }), + ) + expect(status).toBe(codec.status.abi) + expect(codec.decodeMessage(payload)).toMatchInlineSnapshot( + `"expected ABI version 1, got 2"`, + ) + }) + + test('rejects reserved header flags', async () => { + const raw = await instance() + const { payload, status } = raw.call( + request({ flags: 1, op: codec.op.destroy }), + ) + expect(status).toBe(codec.status.abi) + expect(codec.decodeMessage(payload)).toMatchInlineSnapshot( + `"reserved header flags must be zero, got 0x1"`, + ) + }) + + test('rejects a length the payload does not back', async () => { + const raw = await instance() + const { payload, status } = raw.call( + request({ length: 64, op: codec.op.destroy }), + ) + expect(status).toBe(codec.status.abi) + expect(codec.decodeMessage(payload)).toMatchInlineSnapshot( + `"header declared 64 payload bytes, got 0"`, + ) + }) + + test('rejects an unknown operation', async () => { + const raw = await instance() + const { payload, status } = raw.call(request({ op: 0xff })) + expect(status).toBe(codec.status.abi) + expect(codec.decodeMessage(payload)).toMatchInlineSnapshot( + `"unknown operation 255"`, + ) + }) + + test('rejects trailing payload bytes', async () => { + const raw = await instance() + const { payload, status } = raw.call( + request({ op: codec.op.destroy, payload: new Uint8Array(4) }), + ) + expect(status).toBe(codec.status.abi) + expect(codec.decodeMessage(payload)).toMatchInlineSnapshot( + `"request payload had 4 trailing bytes"`, + ) + }) + + test('rejects a truncated operation payload', async () => { + const raw = await instance() + const { payload, status } = raw.call( + request({ op: codec.op.callTx, payload: new Uint8Array(8) }), + ) + expect(status).toBe(codec.status.abi) + expect(codec.decodeMessage(payload)).toMatchInlineSnapshot( + `"request payload ended early"`, + ) + }) + + test('rejects an envelope that is not EIP-2718', async () => { + const raw = await instance() + const { payload, status } = raw.call( + codec.encodeCallTx({ + envelope: Bytes.fromHex('0xdeadbeef'), + signer: sender, + }), + ) + expect(status).toBe(codec.status.abi) + expect(codec.decodeMessage(payload)).toMatchInlineSnapshot( + `"transaction envelope is not valid EIP-2718"`, + ) + }) + + test('rejects a request over the maximum', async () => { + const raw = await instance() + expect(() => raw.call(new Uint8Array(codec.maxRequest + 1))) + .toThrowErrorMatchingInlineSnapshot(` + [Evm.RequestTooLargeError: The request is larger than the evm2 adapter accepts. + + Requested: 67108865 bytes + Maximum: 67108864 bytes] + `) + }) + + test('reports a missing engine, then works once one exists', async () => { + const raw = await bindings.instantiateWith(database()) + expect(raw.call(codec.encodeCallTx(transaction())).status).toBe( + codec.status.engineMissing, + ) + raw.call( + codec.encodeCreate({ block, chainId: 1n, specId: codec.specId.osaka }), + ) + expect(raw.call(codec.encodeCallTx(transaction())).status).toBe( + codec.status.ok, + ) + }) + + test('keeps working after a rejected request', async () => { + const raw = await instance() + expect(raw.call(request({ op: 0xff })).status).toBe(codec.status.abi) + expect(raw.call(codec.encodeCallTx(transaction())).status).toBe( + codec.status.ok, + ) + }) + + test('survives the memory growth a large request forces', async () => { + const raw = await instance() + + // A mebibyte of calldata grows linear memory well past its initial pages, + // which detaches every view taken before the call. Anything much larger + // cannot pay its intrinsic gas under EIP-7825's per-transaction cap. + const large = raw.call( + codec.encodeCallTx(transaction(new Uint8Array(2 ** 20), 16_000_000n)), + ) + expect(large.status).toBe(codec.status.ok) + expect(codec.decodeResult(large.payload).status).toBe(true) + + // The small path still decodes, so no stale view survived the growth. + const small = raw.call(codec.encodeCallTx(transaction())) + expect(codec.decodeResult(small.payload).totalGasSpent).toBe(21_000n) + }) + + test('runs repeatedly on one engine without drift', async () => { + const raw = await instance() + const gas = new Set() + for (let index = 0; index < 32; index++) + gas.add( + codec.decodeResult(raw.call(codec.encodeCallTx(transaction())).payload) + .totalGasSpent, + ) + expect([...gas]).toEqual([21_000n]) + }) + + test('releases its buffers on reset and keeps executing', async () => { + const raw = await instance() + raw.call(codec.encodeCallTx(transaction(new Uint8Array(1024)))) + raw.reset() + expect(raw.call(codec.encodeCallTx(transaction())).status).toBe( + codec.status.ok, + ) + }) +}) + +describe('reentrancy', () => { + test('refuses a state read that executes on the engine reading it', async () => { + let reentrant: engine.Engine | undefined + const source = database({ + getAccount(address) { + reentrant?.callTx(transaction()) + if (address.toLowerCase() !== sender.toLowerCase()) return undefined + return { balance: 10n ** 18n, codeHash: emptyCodeHash, nonce: 0n } + }, + }) + + reentrant = await engine.create({ + block, + chainId: 1n, + database: source, + specId: codec.specId.osaka, + }) + + expect(() => reentrant?.callTx(transaction())) + .toThrowErrorMatchingInlineSnapshot(` + [Evm.ReentrancyError: The evm2 engine is already executing. + + A state read cannot execute a transaction on the engine that is reading it.] + `) + }) +}) + +describe('review fixes', () => { + test('error: rejects a specification beyond the wire width', async () => { + const { database: source } = { database: database() } + await expect( + engine.create({ + block, + chainId: 1n, + database: source, + // Truncation would silently select Amsterdam. + specId: 2 ** 32 + codec.specId.amsterdam, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [Evm.EncodeError: A value does not fit the width this ABI encodes it at. + + Value: 4294967310 + Maximum: 4294967295] + `) + }) + + test('error: rejects a chain id beyond the wire width', async () => { + await expect( + engine.create({ + block, + // Truncation would silently become chain 1. + chainId: 2n ** 64n + 1n, + database: database(), + specId: codec.specId.osaka, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [Evm.EncodeError: A value does not fit the width this ABI encodes it at. + + Value: 18446744073709551617 + Maximum: 18446744073709551615] + `) + }) + + test('error: rejects bytes trailing the transaction envelope', async () => { + const raw = await instance() + const { envelope, signer } = transaction() + const trailing = new Uint8Array(envelope.length + 4) + trailing.set(envelope) + trailing.set([0xde, 0xad, 0xbe, 0xef], envelope.length) + + const { payload, status } = raw.call( + codec.encodeCallTx({ envelope: trailing, signer }), + ) + expect(status).toBe(codec.status.abi) + expect(codec.decodeMessage(payload)).toMatchInlineSnapshot( + `"transaction envelope is not valid EIP-2718"`, + ) + }) + + test('classifies an EIP-7702 delegation instead of forcing legacy', async () => { + // A designator executed as legacy code would hit `0xef` as an invalid + // opcode; delegating reaches the target, which returns 42. + const target = '0x00000000000000000000000000000000000000d0' as const + const delegated = Bytes.fromHex('0x602a5f5260205ff3') + const designator = Bytes.fromHex(`0xef0100${target.slice(2)}`) + const designatorHash = Hash.keccak256(Hex.fromBytes(designator)) + const delegatedHash = Hash.keccak256(Hex.fromBytes(delegated)) + + const evm = await engine.create({ + block, + chainId: 1n, + database: database({ + getAccount(address) { + if (address.toLowerCase() === sender.toLowerCase()) + return { balance: 10n ** 18n, codeHash: emptyCodeHash, nonce: 0n } + if (address.toLowerCase() === recipient) + return { balance: 0n, codeHash: designatorHash, nonce: 0n } + if (address.toLowerCase() === target) + return { balance: 0n, codeHash: delegatedHash, nonce: 0n } + return undefined + }, + getCodeByHash(codeHash) { + if (codeHash.toLowerCase() === designatorHash.toLowerCase()) + return designator + if (codeHash.toLowerCase() === delegatedHash.toLowerCase()) + return delegated + throw new Error(`no code for ${codeHash}`) + }, + }), + specId: codec.specId.prague, + }) + + const result = evm.callTx(transaction()) + expect(result.status).toBe(true) + expect(result.output).toBe(Hex.fromNumber(42, { size: 32 })) + }) + + test('loads code larger than any fork lets a contract deploy', async () => { + // `get_code_by_hash` returns code that already exists in state, so it is not + // bounded by the active fork's deployment limit. The engine grows its + // landing buffer and retries. + const oversized = new Uint8Array(80_000) + oversized[0] = 0x00 // STOP + const codeHash = Hash.keccak256(Hex.fromBytes(oversized)) + + const evm = await engine.create({ + block, + chainId: 1n, + database: database({ + getAccount(address) { + if (address.toLowerCase() === sender.toLowerCase()) + return { balance: 10n ** 18n, codeHash: emptyCodeHash, nonce: 0n } + return { balance: 0n, codeHash, nonce: 0n } + }, + getCodeByHash: () => oversized, + }), + specId: codec.specId.osaka, + }) + + expect(evm.callTx(transaction()).status).toBe(true) + }) +}) + +describe('source value widths', () => { + test('error: rejects a nonce beyond the u64 range', async () => { + const evm = await engine.create({ + block, + chainId: 1n, + database: database({ + // Truncation would present this to evm2 as nonce zero. + getAccount: () => ({ + balance: 10n ** 18n, + codeHash: emptyCodeHash, + nonce: 2n ** 64n, + }), + }), + specId: codec.specId.osaka, + }) + + expect(() => evm.callTx(transaction())).toThrowErrorMatchingInlineSnapshot(` + [Evm.EncodeError: A value does not fit the width this ABI encodes it at. + + Value: nonce 18446744073709551616 + Maximum: 18446744073709551615] + `) + }) + + test('error: rejects a code hash that is not 32 bytes', async () => { + const evm = await engine.create({ + block, + chainId: 1n, + database: database({ + // `Bytes.fromHex` would right-pad this to a different hash entirely. + getAccount: () => ({ + balance: 10n ** 18n, + codeHash: '0x1234', + nonce: 0n, + }), + }), + specId: codec.specId.osaka, + }) + + expect(() => evm.callTx(transaction())).toThrowErrorMatchingInlineSnapshot(` + [Evm.EncodeError: A value does not fit the width this ABI encodes it at. + + Value: codeHash 2 bytes + Maximum: 32 bytes] + `) + }) +}) + +describe('inline account code', () => { + // PUSH1 42, PUSH0, MSTORE, PUSH1 32, PUSH0, RETURN + const code = Bytes.fromHex('0x602a5f5260205ff3') + const codeHash = Hash.keccak256(Hex.fromBytes(code)) + + /** A source that answers by address only, as JSON-RPC does. */ + function byAddress(reads: { getCodeByHash: number }) { + return database({ + getAccount(address) { + if (address.toLowerCase() === sender.toLowerCase()) + return { balance: 10n ** 18n, codeHash: emptyCodeHash, nonce: 0n } + if (address.toLowerCase() === recipient) + return { balance: 0n, code, codeHash, nonce: 0n } + return undefined + }, + getCodeByHash() { + reads.getCodeByHash++ + throw new Error('a source keyed by address cannot resolve code by hash') + }, + }) + } + + test('runs code supplied with the account, without a hash lookup', async () => { + const reads = { getCodeByHash: 0 } + const evm = await engine.create({ + block, + chainId: 1n, + database: byAddress(reads), + specId: codec.specId.osaka, + }) + + const result = evm.callTx(transaction()) + expect(result.status).toBe(true) + expect(result.output).toBe(Hex.fromNumber(42, { size: 32 })) + // evm2 files inline code under its hash, so the second read never happens. + expect(reads.getCodeByHash).toBe(0) + }) + + test('still falls back to the hash lookup when code is omitted', async () => { + const reads = { getCodeByHash: 0 } + const evm = await engine.create({ + block, + chainId: 1n, + database: database({ + getAccount(address) { + if (address.toLowerCase() === sender.toLowerCase()) + return { balance: 10n ** 18n, codeHash: emptyCodeHash, nonce: 0n } + return { balance: 0n, codeHash, nonce: 0n } + }, + getCodeByHash() { + reads.getCodeByHash++ + return code + }, + }), + specId: codec.specId.osaka, + }) + + expect(evm.callTx(transaction()).output).toBe( + Hex.fromNumber(42, { size: 32 }), + ) + expect(reads.getCodeByHash).toBe(1) + }) + + test('grows for inline code larger than the landing buffer', async () => { + const large = new Uint8Array(80_000) + large.set(code) + const largeHash = Hash.keccak256(Hex.fromBytes(large)) + const evm = await engine.create({ + block, + chainId: 1n, + database: database({ + getAccount(address) { + if (address.toLowerCase() === sender.toLowerCase()) + return { balance: 10n ** 18n, codeHash: emptyCodeHash, nonce: 0n } + return { balance: 0n, code: large, codeHash: largeHash, nonce: 0n } + }, + getCodeByHash() { + throw new Error('inline code should not need a hash lookup') + }, + }), + specId: codec.specId.osaka, + }) + + expect(evm.callTx(transaction()).output).toBe( + Hex.fromNumber(42, { size: 32 }), + ) + }) +}) diff --git a/src/evm/_test/borrow.test.ts b/src/evm/_test/borrow.test.ts new file mode 100644 index 00000000..baef489e --- /dev/null +++ b/src/evm/_test/borrow.test.ts @@ -0,0 +1,55 @@ +import { Address, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Database, Evm, ExecutedTx } from 'ox/evm' +import { expect, test } from 'vp/test' + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +function asyncEvm() { + const memory = Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: '0x60015f55' }, + }, + }) + return Evm.create({ + database: Database.fromAsync({ + getAccount: async (a) => memory.getAccount(a), + getBlockHash: async (n) => memory.getBlockHash(n), + getCodeByHash: async (h) => memory.getCodeByHash(h), + getStorage: async (a, k) => memory.getStorage(a, k), + }), + }) +} +function transaction(nonce = 0n) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce, + to: target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +test('an operation submitted while a handle is outstanding is refused', async () => { + const evm = await asyncEvm() + const executed = await Evm.transact(evm, transaction()) + + // Submitted while the handle is outstanding. Synchronously this throws + // BorrowedError; queued, it must not succeed against post-resolution state. + const queued = Evm.callTx(evm, transaction(1n)) + ExecutedTx.commit(executed) + + await expect(queued).rejects.toThrowError(Evm.BorrowedError) +}) diff --git a/src/evm/_test/commitSource.test.ts b/src/evm/_test/commitSource.test.ts new file mode 100644 index 00000000..2fa5841a --- /dev/null +++ b/src/evm/_test/commitSource.test.ts @@ -0,0 +1,433 @@ +import { Address, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Database, Evm, ExecutedTx, PendingState, StateChange } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +/** + * Applying caller-held state back to an EVM. + * + * The round trip is detach, edit, apply. What matters is that the applied state + * takes effect and that a transaction's lifecycle markers do not survive it. + */ + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +/** PUSH1 1, PUSH0, SSTORE: writes slot 0. */ +const code = '0x60015f55' as const + +function transaction(options: { nonce?: bigint } = {}) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: options.nonce ?? 0n, + to: target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +function evm() { + return Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code }, + }, + }), + }) +} + +describe('commitSource', () => { + test('behavior: detached state applied back takes effect', async () => { + const instance = await evm() + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + + // Detaching leaves the EVM as it was, so the nonce is still zero and the + // same transaction runs again. + expect(Evm.readAccountInfo(instance, sender)?.nonce).toBe(0n) + + Evm.commitSource(instance, pendingState) + + // Applied, so the sender's nonce moved without the transaction committing. + expect(Evm.readAccountInfo(instance, sender)?.nonce).toBe(1n) + }) + + test('behavior: an edited account is what gets applied', async () => { + const instance = await evm() + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + + const account = PendingState.accountInfo(pendingState, sender)! + const edited = PendingState.insertAccount(pendingState, { + address: sender, + current: { ...account, nonce: 9n }, + original: account, + }) + Evm.commitSource(instance, edited) + + expect(Evm.readAccountInfo(instance, sender)?.nonce).toBe(9n) + }) + + test('behavior: an edited slot is what gets applied', async () => { + // A second account whose code returns slot 0, so the applied value is + // observable as returned data rather than inferred. + const reader = '0x00000000000000000000000000000000000000c1' as const + const instance = await Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [reader]: { code: '0x5f545f5260205ff3' }, + [target]: { code }, + }, + }), + }) + + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + const edited = PendingState.insertStorage(pendingState, { + address: reader, + current: 42n, + key: 0n, + original: 0n, + }) + Evm.commitSource(instance, edited) + + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: 1n, + to: reader, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + const result = Evm.callTx(instance, { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + }) + + expect(result.output).toBe(Hex.fromNumber(42, { size: 32 })) + }) + + test('behavior: applying twice is applying the same values twice', async () => { + const instance = await evm() + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + + Evm.commitSource(instance, pendingState) + Evm.commitSource(instance, pendingState) + + // The values are absolute, not deltas, so a second application is a no-op. + expect(Evm.readAccountInfo(instance, sender)?.nonce).toBe(1n) + }) + + test('behavior: empty state applies nothing', async () => { + const instance = await evm() + const before = Evm.readAccountInfo(instance, sender) + + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + const emptied = PendingState.insertAccount(pendingState, { + address: sender, + current: before!, + original: before!, + }) + Evm.commitSource(instance, emptied) + + expect(Evm.readAccountInfo(instance, sender)).toEqual(before) + }) +}) + +describe('commitSource (detach, edit, apply)', () => { + test('behavior: a detached selfdestruct carries a marker and a wipe', async () => { + /** + * PUSH1 1, PUSH0, SSTORE, PUSH20 sender, SELFDESTRUCT. + * + * Deployed as initcode, so the account is created and destroyed in one + * transaction. EIP-6780 only deletes an account under that condition, which + * is what makes a lifecycle marker appear at all. + */ + const initcode = `0x60015f5573${sender.slice(2)}ff` as const + const instance = await Evm.create({ + database: Database.fromMemory({ + accounts: { [sender.toLowerCase()]: { balance: 10n ** 18n } }, + }), + }) + + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + data: initcode, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + }), + ) + + const seen = { selfdestructed: 0, wipes: 0 } + StateChange.visit(pendingState, { + ...StateChange.noop(), + account: (change) => { + if (change.selfdestructed) seen.selfdestructed += 1 + }, + storageWipe: () => { + seen.wipes += 1 + }, + }) + + // The premise for the next test: this state is what gets re-inserted. + expect(seen.selfdestructed).toBeGreaterThan(0) + expect(seen.wipes).toBeGreaterThan(0) + }) + + test('behavior: applying a wipe does not clear the account it names', async () => { + /** PUSH0 SLOAD PUSH0 MSTORE PUSH1 32 PUSH0 RETURN: returns slot 0. */ + const keeper = '0x00000000000000000000000000000000000000c3' as const + const instance = await Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [keeper]: { code: '0x5f545f5260205ff3', storage: { '0x0': 9n } }, + }, + }), + }) + + // A wipe naming an account whose storage must survive. Built directly rather + // than from a real selfdestruct, whose wipe names the destroyed account and + // so could not show the harm. + Evm.commitSource( + instance, + PendingState.from({ + accountReads: [], + accounts: [], + bytecode: [], + records: [], + storage: [], + storageReads: [], + storageWipes: [keeper], + }), + ) + + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + to: keeper, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + const result = Evm.callTx(instance, { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + }) + + // Slot 0 still reads 9, so the wipe was dropped rather than replayed. + expect(result.output).toBe(Hex.fromNumber(9, { size: 32 })) + }) +}) + +describe('commitSource (across EVMs)', () => { + test('behavior: deployed code travels with the state', async () => { + /** Initcode returning PUSH1 42 PUSH0 MSTORE PUSH1 32 PUSH0 RETURN. */ + const initcode = '0x67602a5f5260205ff35f5260086018f3' as const + + const source = await Evm.create({ + database: Database.fromMemory({ + accounts: { [sender.toLowerCase()]: { balance: 10n ** 18n } }, + }), + }) + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + data: initcode, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + const executed = Evm.transact(source, { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + }) + const deployed = ExecutedTx.result(executed).createdAddress! + const { pendingState } = ExecutedTx.detach(executed) + + // A second EVM that never saw the deployment. Without the code travelling + // with the state, the account carries a hash for bytes this EVM does not + // have, and the call returns nothing. + const target_ = await Evm.create({ + database: Database.fromMemory({ + accounts: { [sender.toLowerCase()]: { balance: 10n ** 18n } }, + }), + }) + Evm.commitSource(target_, pendingState) + + // The applied state moved the sender's nonce, so the call follows it. + const call = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: 1n, + to: deployed, + value: 0n, + }) + const result = Evm.callTx(target_, { + from: sender, + serialized: TxEnvelopeLegacy.serialize(call, { + signature: Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(call), + privateKey, + }), + }), + }) + + expect(result.output).toBe(Hex.fromNumber(42, { size: 32 })) + }) + + test('behavior: a read-only slot does not travel, and cannot', async () => { + const reader = '0x00000000000000000000000000000000000000c4' as const + const accounts = { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + // Returns slot 0, and holds 5 in the source EVM only. + [reader]: { code: '0x5f545f5260205ff3' as const }, + } + + const source = await Evm.create({ + database: Database.fromMemory({ + accounts: { + ...accounts, + [reader]: { ...accounts[reader], storage: { '0x0': 5n } }, + }, + }), + }) + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + to: reader, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + const { pendingState } = ExecutedTx.detach( + Evm.transact(source, { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + }), + ) + + const target_ = await Evm.create({ + database: Database.fromMemory({ accounts }), + }) + Evm.commitSource(target_, pendingState) + + const after = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: 1n, + to: reader, + value: 0n, + }) + const result = Evm.callTx(target_, { + from: sender, + serialized: TxEnvelopeLegacy.serialize(after, { + signature: Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(after), + privateKey, + }), + }), + }) + + // Zero, not five. A read has the same original and current value, so it is + // not a change and applying it cannot move a value between EVMs. Only what a + // transaction wrote crosses. + expect(result.output).toBe(Hex.fromNumber(0, { size: 32 })) + }) +}) + +describe('commitSource (self-destruct)', () => { + test('behavior: a destroyed account is destroyed by applying its state', async () => { + /** PUSH20 sender, SELFDESTRUCT. Before Cancun this deletes the account. */ + const destroying = `0x73${sender.slice(2)}ff` as const + const victim = '0x00000000000000000000000000000000000000c5' as const + const accounts = { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [victim]: { balance: 1n, code: destroying, storage: { '0x0': 5n } }, + } + const specId = 'shanghai' as const + + const source = await Evm.create({ + database: Database.fromMemory({ accounts }), + specId, + }) + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + to: victim, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + const { pendingState } = ExecutedTx.detach( + Evm.transact(source, { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + }), + ) + + // A target where the victim still exists with its storage. + const target_ = await Evm.create({ + database: Database.fromMemory({ accounts }), + specId, + }) + Evm.commitSource(target_, pendingState) + + // Gone. The destruction rides on the account's absent current value, which + // wipes its storage at the sink, so dropping the separate wipe record does + // not leave state behind. + expect(Evm.readAccountInfo(target_, victim)).toBeUndefined() + }) +}) diff --git a/src/evm/_test/config.test.ts b/src/evm/_test/config.test.ts new file mode 100644 index 00000000..4ab134f1 --- /dev/null +++ b/src/evm/_test/config.test.ts @@ -0,0 +1,263 @@ +import { Address, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Database, Evm } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +/** + * Version overrides, and the setters that replace them. + * + * An override has to change what execution does, not merely cross the boundary, + * so each of these turns a rule off or moves a limit and observes the outcome. + */ + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +/** PUSH1 42, PUSH0, MSTORE, PUSH1 32, PUSH0, RETURN */ +const code = '0x602a5f5260205ff3' as const + +function transaction(options: { gasPrice?: bigint; nonce?: bigint } = {}) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 100_000n, + gasPrice: options.gasPrice ?? 0n, + nonce: options.nonce ?? 0n, + to: target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +const accounts = { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code }, +} as const + +function evm(version?: Evm.Version) { + return Evm.create({ + database: Database.fromMemory({ accounts }), + ...(version ? { version } : {}), + }) +} + +describe('version', () => { + test('behavior: the specification supplies defaults, not an empty set', async () => { + // A wrong nonce is rejected, which only happens when the nonce check is on. + // An empty feature set would accept this. + const instance = await evm() + expect(() => + Evm.callTx(instance, transaction({ nonce: 7n })), + ).toThrowError() + }) + + test('behavior: turning a check off changes what executes', async () => { + const relaxed = await evm({ features: { nonceCheck: false } }) + + // The same transaction the default configuration rejects. + expect(Evm.callTx(relaxed, transaction({ nonce: 7n })).output).toBe( + Hex.fromNumber(42, { size: 32 }), + ) + }) + + test('behavior: an unmentioned flag keeps its specification value', async () => { + // Only the nonce check is named, so the balance check stays on and an + // unfundable transaction still fails. + const relaxed = await Evm.create({ + database: Database.fromMemory({}), + version: { features: { nonceCheck: false } }, + }) + + expect(() => + Evm.callTx(relaxed, transaction({ gasPrice: 1n })), + ).toThrowError() + }) + + test('behavior: a gas parameter override changes the gas charged', async () => { + /** PUSH0 SLOAD POP, PUSH0 PUSH0 PUSH0 LOG1, STOP */ + const logs = '0x5f54505f5f5fa100' as const + const accounts = { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: logs }, + } + const create = (version?: Evm.Version) => + Evm.create({ + database: Database.fromMemory({ accounts }), + ...(version ? { version } : {}), + }) + + const plain = await create() + // A topic costs 375 by default, so 1000 is exactly 625 more for one topic. + const dearer = await create({ gas: { logtopic: 1000 } }) + + expect( + Evm.callTx(dearer, transaction()).totalGasSpent - + Evm.callTx(plain, transaction()).totalGasSpent, + ).toBe(625n) + }) + + test('behavior: a scalar limit override is enforced', async () => { + const capped = await evm({ txGasLimitCap: 50_000n }) + + // The transaction asks for 100,000 gas, over the cap this sets. + expect(() => Evm.callTx(capped, transaction())).toThrowError() + }) + + test('behavior: an unknown feature name is refused', async () => { + await expect( + evm({ features: { notAFeature: true } as never }), + ).rejects.toThrowError() + }) +}) + +describe('setBlock', () => { + test('behavior: replaces block values and keeps the rest', async () => { + /** NUMBER, PUSH0, MSTORE, PUSH1 32, PUSH0, RETURN */ + const reportsNumber = '0x435f5260205ff3' as const + const instance = await Evm.create({ + block: { number: 5n }, + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: reportsNumber }, + }, + }), + }) + + expect(Evm.callTx(instance, transaction()).output).toBe( + Hex.fromNumber(5, { size: 32 }), + ) + + Evm.setBlock(instance, { number: 9n }) + expect(Evm.callTx(instance, transaction()).output).toBe( + Hex.fromNumber(9, { size: 32 }), + ) + + // The nonce check survived the block change. + expect(() => + Evm.callTx(instance, transaction({ nonce: 7n })), + ).toThrowError() + }) +}) + +describe('setExecutionConfig', () => { + test('behavior: applies overrides to a running EVM', async () => { + const instance = await evm() + expect(() => + Evm.callTx(instance, transaction({ nonce: 7n })), + ).toThrowError() + + Evm.setExecutionConfig(instance, { + version: { features: { nonceCheck: false } }, + }) + expect(Evm.callTx(instance, transaction({ nonce: 7n })).status).toBe(true) + }) + + test('behavior: overrides replace rather than merge', async () => { + const instance = await evm({ features: { nonceCheck: false } }) + expect(Evm.callTx(instance, transaction({ nonce: 7n })).status).toBe(true) + + // A new set that does not name the nonce check returns it to the + // specification's own value. + Evm.setExecutionConfig(instance, { version: { txGasLimitCap: 200_000n } }) + expect(() => + Evm.callTx(instance, transaction({ nonce: 7n })), + ).toThrowError() + }) +}) + +describe('setBlockAndExecutionConfig', () => { + test('behavior: applies both at once', async () => { + /** NUMBER, PUSH0, MSTORE, PUSH1 32, PUSH0, RETURN */ + const reportsNumber = '0x435f5260205ff3' as const + const instance = await Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: reportsNumber }, + }, + }), + }) + + Evm.setBlockAndExecutionConfig(instance, { + block: { number: 3n }, + version: { features: { nonceCheck: false } }, + }) + + const result = Evm.callTx(instance, transaction({ nonce: 7n })) + expect(result.output).toBe(Hex.fromNumber(3, { size: 32 })) + }) +}) + +describe('overrides are bounded and copied', () => { + test('behavior: a value wider than the target holds is refused', async () => { + // `usize` is 32-bit on the shipped wasm build, so an unchecked cast would + // turn this into zero and change deployment behavior instead of failing. + await expect(evm({ maxCodeSize: 2n ** 32n })).rejects.toThrowError() + + // One below the boundary is still accepted. + await expect(evm({ maxCodeSize: 2n ** 32n - 1n })).resolves.toBeDefined() + }) + + test('behavior: mutating the options afterwards does not change the EVM', async () => { + const version = { features: { nonceCheck: false } } + const pending = Evm.create({ + database: Database.fromMemory({ accounts }), + version, + }) + + // Encoding happens after WebAssembly instantiation, so without a snapshot + // this would put the check back on before the request is written. + version.features.nonceCheck = true + + const instance = await pending + expect(Evm.callTx(instance, transaction({ nonce: 7n })).status).toBe(true) + }) +}) + +describe('setters on an asynchronous EVM', () => { + /** NUMBER, PUSH0, MSTORE, PUSH1 32, PUSH0, RETURN */ + const reportsNumber = '0x435f5260205ff3' as const + + function source() { + const memory = Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: reportsNumber }, + }, + }) + return Database.fromAsync({ + getAccount: async (address) => memory.getAccount(address), + getBlockHash: async (number) => memory.getBlockHash(number), + getCodeByHash: async (codeHash) => memory.getCodeByHash(codeHash), + getStorage: async (address, key) => memory.getStorage(address, key), + }) + } + + test('behavior: a setter waits for an execution already in flight', async () => { + const fork = await Evm.create({ + block: { number: 5n }, + database: source(), + }) + + // Started before the setter, so it must complete under block 5 even though + // the setter is issued while it is still fetching state. + const executing = Evm.callTx(fork, transaction()) + const configuring = Evm.setBlock(fork, { number: 9n }) + + const [result] = await Promise.all([executing, configuring]) + expect(result.output).toBe(Hex.fromNumber(5, { size: 32 })) + + // The setter did land, so the next execution sees the new block. + expect((await Evm.callTx(fork, transaction())).output).toBe( + Hex.fromNumber(9, { size: 32 }), + ) + }) +}) diff --git a/src/evm/_test/engine.browser.test.ts b/src/evm/_test/engine.browser.test.ts new file mode 100644 index 00000000..dd47f29f --- /dev/null +++ b/src/evm/_test/engine.browser.test.ts @@ -0,0 +1,112 @@ +import { Address, Bytes, Hash, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { describe, expect, test, vi } from 'vp/test' +import { wasmBase64 } from '../../wasm/internal/evm2.wasm.js' +import * as instantiate from '../../wasm/internal/instantiate.js' +import * as codec from '../internal/codec.js' +import * as engine from '../internal/engine.js' + +const emptyCodeHash = Hash.keccak256('0x') +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +// PUSH1 42, PUSH0, MSTORE, PUSH1 32, PUSH0, RETURN +const code = Bytes.fromHex('0x602a5f5260205ff3') +const codeHash = Hash.keccak256(Hex.fromBytes(code)) + +function transfer() { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 100_000n, + gasPrice: 0n, + nonce: 0n, + to: target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + envelope: Bytes.fromHex( + TxEnvelopeLegacy.serialize(envelope, { signature }), + ), + signer: sender, + } +} + +function create() { + return engine.create({ + block: { + basefee: 0n, + beneficiary: '0x00000000000000000000000000000000000000cb', + blobBasefee: 1n, + difficulty: 0n, + gasLimit: 30_000_000n, + number: 0n, + prevrandao: 0n, + slotNum: 0n, + timestamp: 0n, + }, + chainId: 1n, + database: { + getAccount: (address) => + address.toLowerCase() === sender.toLowerCase() + ? { balance: 10n ** 18n, codeHash: emptyCodeHash, nonce: 0n } + : { balance: 0n, codeHash, nonce: 0n }, + getBlockHash: () => `0x${'00'.repeat(32)}`, + getCodeByHash: () => code, + getStorage: () => 0n, + }, + specId: codec.specId.osaka, + }) +} + +describe('create', () => { + test('behavior: compiles asynchronously', async () => { + // Browsers refuse to compile a module this size synchronously on the main + // thread, so `new WebAssembly.Module` must never be reached. + const Module = vi.spyOn(globalThis.WebAssembly, 'Module') + const Instance = vi.spyOn(globalThis.WebAssembly, 'Instance') + try { + const evm = await create() + expect(Module).not.toHaveBeenCalled() + expect(Instance).not.toHaveBeenCalled() + expect(evm.callTx(transfer()).output).toBe( + Hex.fromNumber(42, { size: 32 }), + ) + } finally { + Module.mockRestore() + Instance.mockRestore() + } + }) + + test('behavior: decodes the artifact through the atob fallback', async () => { + // Edge runtimes have `atob` but no `Buffer`, and older ones lack + // `Uint8Array.fromBase64`. Compilation is memoized, so this goes at the + // decoder directly rather than through the engine. + const fromBase64 = Object.getOwnPropertyDescriptor(Uint8Array, 'fromBase64') + const buffer = Object.getOwnPropertyDescriptor(globalThis, 'Buffer') + if (fromBase64) Reflect.deleteProperty(Uint8Array, 'fromBase64') + if (buffer) Reflect.deleteProperty(globalThis, 'Buffer') + try { + const compiled = await instantiate.compile(wasmBase64) + expect( + WebAssembly.Module.imports(compiled) + .map((entry) => `${entry.module}.${entry.name}`) + .sort(), + ).toEqual([ + 'ox_evm2.get_account', + 'ox_evm2.get_block_hash', + 'ox_evm2.get_code_by_hash', + 'ox_evm2.get_storage', + 'ox_evm2.sink_record', + ]) + } finally { + if (fromBase64) + Object.defineProperty(Uint8Array, 'fromBase64', fromBase64) + if (buffer) Object.defineProperty(globalThis, 'Buffer', buffer) + } + }) +}) diff --git a/src/evm/_test/engine.test.ts b/src/evm/_test/engine.test.ts new file mode 100644 index 00000000..0bacd429 --- /dev/null +++ b/src/evm/_test/engine.test.ts @@ -0,0 +1,339 @@ +import { Address, Bytes, Hash, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { describe, expect, test } from 'vp/test' +import * as codec from '../internal/codec.js' +import * as Database from '../internal/database.js' +import * as engine from '../internal/engine.js' + +const emptyCodeHash = Hash.keccak256('0x') + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const recipient = '0x00000000000000000000000000000000000000bb' as const + +/** In-memory source with counters, so cache behavior is observable. */ +function source( + accounts: Record = {}, +) { + const reads = { + getAccount: 0, + getBlockHash: 0, + getCodeByHash: 0, + getStorage: 0, + } + const code = new Map() + for (const account of Object.values(accounts)) + if (account.code) code.set(account.codeHash.toLowerCase(), account.code) + + const database: Database.Database = { + getAccount(address) { + reads.getAccount++ + const account = accounts[address.toLowerCase()] + if (!account) return undefined + return { + balance: account.balance, + codeHash: account.codeHash, + nonce: account.nonce, + } + }, + getBlockHash() { + reads.getBlockHash++ + return `0x${'00'.repeat(32)}` + }, + getCodeByHash(codeHash) { + reads.getCodeByHash++ + const found = code.get(codeHash.toLowerCase()) + if (!found) throw new Error(`no code for ${codeHash}`) + return found + }, + getStorage() { + reads.getStorage++ + return 0n + }, + } + return { database, reads } +} + +const block: codec.Block = { + basefee: 0n, + beneficiary: '0x00000000000000000000000000000000000000cc', + blobBasefee: 1n, + difficulty: 0n, + gasLimit: 30_000_000n, + number: 1n, + prevrandao: 0n, + slotNum: 0n, + timestamp: 1n, +} + +/** A signed legacy transfer, plus its recovered signer. */ +function transfer(options: { nonce?: bigint; to?: Address.Address } = {}) { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 100_000n, + gasPrice: 0n, + nonce: options.nonce ?? 0n, + to: options.to ?? recipient, + value: 1_000n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + envelope: Bytes.fromHex( + TxEnvelopeLegacy.serialize(envelope, { signature }), + ), + signer: sender, + } +} + +function funded() { + return source({ + [sender.toLowerCase()]: { + balance: 10n ** 18n, + codeHash: emptyCodeHash, + nonce: 0n, + }, + }) +} + +describe('create', () => { + test('runs an osaka transfer through host state reads', async () => { + const { database, reads } = funded() + const evm = await engine.create({ + block, + chainId: 1n, + database, + specId: codec.specId.osaka, + }) + + const result = evm.callTx(transfer()) + + expect(result).toMatchInlineSnapshot(` + { + "createdAddress": undefined, + "errorCode": undefined, + "floorGas": 21000n, + "logs": [], + "output": "0x", + "refunded": 0n, + "stateGasSpent": 0n, + "status": true, + "stop": 1, + "totalGasSpent": 21000n, + } + `) + expect(reads).toMatchInlineSnapshot(` + { + "getAccount": 3, + "getBlockHash": 0, + "getCodeByHash": 0, + "getStorage": 0, + } + `) + }) + + test('runs the same transfer on cancun and prague', async () => { + for (const spec of ['cancun', 'prague'] as const) { + const { database } = funded() + const evm = await engine.create({ + block, + chainId: 1n, + database, + specId: codec.specId[spec], + }) + const result = evm.callTx(transfer()) + expect([spec, result.status, result.totalGasSpent]).toEqual([ + spec, + true, + 21_000n, + ]) + } + }) + + test('accepts every specification evm2 declares', async () => { + for (const [name, spec] of Object.entries(codec.specId)) { + const { database } = funded() + const evm = await engine.create({ + block, + chainId: 1n, + database, + specId: spec, + }) + // A specification whose precompile or handler tables trapped would take + // the instance down rather than return, so reaching here is the assertion. + expect([name, typeof evm.callTx]).toEqual([name, 'function']) + } + }) + + test('error: unknown specification', async () => { + const { database } = funded() + await expect( + engine.create({ + block, + chainId: 1n, + database, + specId: codec.specId.amsterdam + 1, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [Evm.AbiError: The evm2 adapter rejected the request. + + unknown spec id 15] + `) + }) +}) + +describe('callTx', () => { + test('discards state, so a repeated transfer sees the same nonce', async () => { + const { database } = funded() + const evm = await engine.create({ + block, + chainId: 1n, + database, + specId: codec.specId.osaka, + }) + + expect(evm.callTx(transfer()).totalGasSpent).toBe(21_000n) + expect(evm.callTx(transfer()).totalGasSpent).toBe(21_000n) + }) + + test('runs code loaded by hash', async () => { + // PUSH1 42, PUSH0, MSTORE, PUSH1 32, PUSH0, RETURN + const code = Bytes.fromHex('0x602a5f5260205ff3') + const codeHash = Hash.keccak256(Hex.fromBytes(code)) + const { database, reads } = source({ + [sender.toLowerCase()]: { + balance: 10n ** 18n, + codeHash: emptyCodeHash, + nonce: 0n, + }, + [recipient]: { balance: 0n, code, codeHash, nonce: 0n }, + }) + + const evm = await engine.create({ + block, + chainId: 1n, + database, + specId: codec.specId.osaka, + }) + const result = evm.callTx(transfer()) + + expect(result.status).toBe(true) + expect(result.output).toBe(Hex.fromNumber(42, { size: 32 })) + expect(reads.getCodeByHash).toBe(1) + }) + + test('error: rejects a transaction the sender cannot pay for', async () => { + const { database } = source({ + [sender.toLowerCase()]: { + balance: 0n, + codeHash: emptyCodeHash, + nonce: 0n, + }, + }) + const evm = await engine.create({ + block, + chainId: 1n, + database, + specId: codec.specId.osaka, + }) + + expect(() => evm.callTx(transfer())).toThrowErrorMatchingInlineSnapshot( + ` + [Evm.HandlerError: insufficient funds + + evm2 handler error 9] + `, + ) + }) + + test('error: surfaces the source failure, not the abort', async () => { + const { database } = funded() + const evm = await engine.create({ + block, + chainId: 1n, + database, + specId: codec.specId.osaka, + }) + + const failing: Database.Database = { + ...database, + getAccount() { + throw new Error('upstream is down') + }, + } + const broken = await engine.create({ + block, + chainId: 1n, + database: failing, + specId: codec.specId.osaka, + }) + + expect(() => broken.callTx(transfer())).toThrowErrorMatchingInlineSnapshot( + `[Error: upstream is down]`, + ) + // The aborted attempt left nothing behind, so a working engine still agrees. + expect(evm.callTx(transfer()).totalGasSpent).toBe(21_000n) + }) +}) + +describe('setBlock', () => { + test('replaces the block environment and specification in place', async () => { + const { database } = funded() + const evm = await engine.create({ + block, + chainId: 1n, + database, + specId: codec.specId.osaka, + }) + expect(evm.callTx(transfer()).totalGasSpent).toBe(21_000n) + + evm.setBlock({ + block: { ...block, number: 2n, timestamp: 2n }, + chainId: 1n, + specId: codec.specId.cancun, + }) + // Cancun has no EIP-7623 floor, so the same transfer reports none. + expect(evm.callTx(transfer())).toMatchObject({ + floorGas: 0n, + totalGasSpent: 21_000n, + }) + }) + + test('error: rejects a chain id the transaction does not match', async () => { + const { database } = funded() + const evm = await engine.create({ + block, + chainId: 1n, + database, + specId: codec.specId.osaka, + }) + evm.setBlock({ block, chainId: 10n, specId: codec.specId.osaka }) + + expect(() => evm.callTx(transfer())).toThrowErrorMatchingInlineSnapshot(` + [Evm.HandlerError: invalid chain id: expected 10, got 1 + + evm2 handler error 6] + `) + }) +}) + +describe('destroy', () => { + test('error: rejects work after the engine is dropped', async () => { + const { database } = funded() + const evm = await engine.create({ + block, + chainId: 1n, + database, + specId: codec.specId.osaka, + }) + evm.destroy() + + expect(() => evm.callTx(transfer())).toThrowErrorMatchingInlineSnapshot(` + [Evm.MissingError: The evm2 engine was destroyed. + + Create a new engine to execute another transaction.] + `) + }) +}) diff --git a/src/evm/_test/envelope.test.ts b/src/evm/_test/envelope.test.ts new file mode 100644 index 00000000..ae6d0fb5 --- /dev/null +++ b/src/evm/_test/envelope.test.ts @@ -0,0 +1,164 @@ +import { Address, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Database, Evm } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +/** + * Building an envelope from transaction fields. + * + * The fields form is a convenience over the serialized one, so what it accepts + * has to reach evm2 as the same EIP-2718 bytes a caller would have encoded. + */ + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +function evm(chainId?: bigint) { + return Evm.create({ + ...(chainId ? { chainId } : {}), + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: '0x00' }, + }, + }), + }) +} + +describe('callTx', () => { + test('behavior: an explicit undefined chain id falls back to the EVM default', async () => { + // Chain 7, so a shadowed undefined would not match and evm2 would reject. + const instance = await evm(7n) + + // A caller spreading a request object can carry `chainId: undefined`, which + // must not shadow the EVM's own. + const result = Evm.callTx(instance, { + chainId: undefined, + from: sender, + gas: 200_000n, + // Fee fields infer EIP-1559, which requires a chain id, unlike legacy. + maxFeePerGas: 0n, + maxPriorityFeePerGas: 0n, + nonce: 0n, + to: target, + value: 0n, + } as never) + + expect(result.status).toBe(true) + }) + + test('behavior: a chain id past the envelope limit is refused clearly', async () => { + const instance = await evm(9_007_199_254_740_993n) + + // Envelope types carry a number, so the fields form cannot express this. + // Refusing beats silently rounding to a different chain. + expect(() => + Evm.callTx(instance, { + from: sender, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + to: target, + value: 0n, + } as never), + ).toThrowError(Evm.EncodeError) + }) +}) + +describe('callTx (blob transactions)', () => { + test('behavior: sidecars are dropped rather than rejected', async () => { + const instance = await evm() + + // A blob transaction object from the p2p path carries sidecars. The EIP-4844 + // serializer emits the pooled wrapper for them, which is not the envelope the + // adapter decodes, and they are irrelevant to execution either way. + const result = Evm.callTx(instance, { + blobVersionedHashes: [`0x01${'11'.repeat(31)}`], + from: sender, + gas: 200_000n, + maxFeePerBlobGas: 1n, + maxFeePerGas: 0n, + maxPriorityFeePerGas: 0n, + nonce: 0n, + sidecars: [], + to: target, + value: 0n, + } as never) + + expect(result.status).toBe(true) + }) +}) + +describe('callTx (legacy bytecode)', () => { + test('behavior: code starting with the delegation prefix still executes', async () => { + // `0xef01` without the rest of a designator is ordinary legacy code, which + // genesis and pre-EIP-3541 state can hold. It has to run as legacy — hitting + // an invalid opcode — rather than failing the account read. + const odd = '0x00000000000000000000000000000000000000c7' as const + const instance = await Evm.create({ + database: { + getAccount: (address) => + address.toLowerCase() === odd + ? { + balance: 0n, + code: new Uint8Array([0xef, 0x01]), + codeHash: `0x${'ab'.repeat(32)}`, + nonce: 0n, + } + : address.toLowerCase() === sender.toLowerCase() + ? { + balance: 10n ** 18n, + codeHash: `0x${'00'.repeat(32)}`, + nonce: 0n, + } + : undefined, + getBlockHash: () => `0x${'00'.repeat(32)}`, + getCodeByHash: () => new Uint8Array([0xef, 0x01]), + getStorage: () => 0n, + }, + }) + + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + to: odd, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + const result = Evm.callTx(instance, { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + }) + + // Executed and reverted on the invalid opcode, rather than a database error. + expect(result.status).toBe(false) + }) +}) + +describe('callTx (blob inference)', () => { + test('behavior: sidecars alone still infer a blob transaction', async () => { + const instance = await evm() + + // Sidecars are the only EIP-4844 discriminator here. Dropping them without + // pinning the type would infer EIP-1559 and execute an unrelated + // transaction instead of rejecting the missing blob hashes. + expect(() => + Evm.callTx(instance, { + from: sender, + gas: 200_000n, + maxFeePerGas: 0n, + maxPriorityFeePerGas: 0n, + nonce: 0n, + sidecars: [], + to: target, + value: 0n, + } as never), + ).toThrowError() + }) +}) diff --git a/src/evm/_test/fork.json b/src/evm/_test/fork.json new file mode 100644 index 00000000..50584698 --- /dev/null +++ b/src/evm/_test/fork.json @@ -0,0 +1,403 @@ +{ + "$comment": "Recorded by src/evm/_test/fork.record.ts. Regenerate with a fork available.", + "block": { + "basefee": "0x20a0d339a", + "beneficiary": "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5", + "gasLimit": "0x1c9c380", + "number": "0x12f2974", + "prevrandao": "0x7702b2acc3443bd74c0b3ff142414f9d51e4caa0f111d57d319f4d46e21dedf7", + "timestamp": "0x66434e43" + }, + "calls": [ + { + "body": "[{\"method\":\"eth_getBalance\",\"params\":[\"0x634cf119d1964b88a426e1e782bd09f37b51d949\",\"0x12f2973\"],\"id\":0,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getTransactionCount\",\"params\":[\"0x634cf119d1964b88a426e1e782bd09f37b51d949\",\"0x12f2973\"],\"id\":1,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getCode\",\"params\":[\"0x634cf119d1964b88a426e1e782bd09f37b51d949\",\"0x12f2973\"],\"id\":2,\"jsonrpc\":\"2.0\"}]", + "result": [ + { + "id": 0, + "jsonrpc": "2.0", + "result": "0x733cc69bec4c5dc6" + }, + { + "id": 1, + "jsonrpc": "2.0", + "result": "0x9f5" + }, + { + "id": 2, + "jsonrpc": "2.0", + "result": "0x" + } + ] + }, + { + "body": "[{\"method\":\"eth_getBalance\",\"params\":[\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"0x12f2973\"],\"id\":3,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getTransactionCount\",\"params\":[\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"0x12f2973\"],\"id\":4,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getCode\",\"params\":[\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"0x12f2973\"],\"id\":5,\"jsonrpc\":\"2.0\"}]", + "result": [ + { + "id": 3, + "jsonrpc": "2.0", + "result": "0x58d15e17628000" + }, + { + "id": 4, + "jsonrpc": "2.0", + "result": "0x1" + }, + { + "id": 5, + "jsonrpc": "2.0", + "result": "0x60806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28a8a8a308a612d65565b9093509150610e96898685613b22565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613cff565b50965096945050505050565b6000610f44848484613e3c565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140c6565b8560008151811061124a57fe5b60200260200101516141b1565b61129682878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614381915050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613cff565b509695505050505050565b60606113917f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8484614608565b90505b92915050565b60008060006113ca7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8f8f6140c6565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b61135982878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b6000806118fa7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8d7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26140c6565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a6141b1565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614796915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b2916565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614796915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613cff565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f34888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b5095945050505050565b6000610f44848484614b9b565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6000610f44848484614cbf565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613cff565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614796915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8c8c6140c6565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d9f565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154bf6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154256026913960400191505060405180910390fd5b505050505097509795505050505050565b7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b60606113917f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8484613f60565b60008060006131107f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8e7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26140c6565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614ef2565b909450925060006132cd7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8e8e6140c6565b90506132db8d3383886141b1565b6132e78c3383876141b1565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b348c8c614ef2565b9094509250600061349c7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8c7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26140c6565b90506134aa8b3383886141b1565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613cff565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae682878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613cff565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613cf857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d7657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d39565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dd8576040519150601f19603f3d011682016040523d82523d6000602084013e613ddd565b606091505b5050905080613e37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806154e56023913960400191505060405180910390fd5b505050565b6000808411613e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615557602b913960400191505060405180910390fd5b600083118015613ea65750600082115b613efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b6000613f0f856103e563ffffffff6151f316565b90506000613f23828563ffffffff6151f316565b90506000613f4983613f3d886103e863ffffffff6151f316565b9063ffffffff61527916565b9050808281613f5457fe5b04979650505050505050565b6060600282511015613fd357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613feb57600080fd5b50604051908082528060200260200182016040528015614015578160200160208202803683370190505b509050828160008151811061402657fe5b60200260200101818152505060005b60018351038110156140be576000806140788786858151811061405457fe5b602002602001015187866001018151811061406b57fe5b60200260200101516152eb565b9150915061409a84848151811061408b57fe5b60200260200101518383613e3c565b8484600101815181106140a957fe5b60209081029190910101525050600101614035565b509392505050565b60008060006140d58585614d9f565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061428f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614252565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142f1576040519150601f19603f3d011682016040523d82523d6000602084013e6142f6565b606091505b5091509150818015614324575080511580614324575080806020019051602081101561432157600080fd5b50515b614379576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806155336024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156146025760008084838151811061439f57fe5b60200260200101518584600101815181106143b657fe5b60200260200101519150915060006143ce8383614d9f565b50905060008785600101815181106143e257fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461442a5782600061442e565b6000835b91509150600060028a510388106144455788614486565b6144867f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f878c8b6002018151811061447957fe5b60200260200101516140c6565b90506144b37f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f88886140c6565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144fd576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614588578181015183820152602001614570565b50505050905090810190601f1680156145b55780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145d757600080fd5b505af11580156145eb573d6000803e3d6000fd5b505060019099019850614384975050505050505050565b50505050565b606060028251101561467b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561469357600080fd5b506040519080825280602002602001820160405280156146bd578160200160208202803683370190505b50905082816001835103815181106146d157fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140be576000806147318786600186038151811061471d57fe5b602002602001015187868151811061406b57fe5b9150915061475384848151811061474457fe5b60200260200101518383614b9b565b84600185038151811061476257fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01614701565b60005b6001835103811015613e37576000808483815181106147b457fe5b60200260200101518584600101815181106147cb57fe5b60200260200101519150915060006147e38383614d9f565b50905060006148137f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f85856140c6565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561486157600080fd5b505afa158015614875573d6000803e3d6000fd5b505050506040513d606081101561488b57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148d55782846148d8565b83835b9150915061495d828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b955061496a868383613e3c565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149ae578260006149b2565b6000835b91509150600060028c51038a106149c9578a6149fd565b6149fd7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f898e8d6002018151811061447957fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614aad578181015183820152602001614a95565b50505050905090810190601f168015614ada5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614afc57600080fd5b505af1158015614b10573d6000803e3d6000fd5b50506001909b019a506147999950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153d4602c913960400191505060405180910390fd5b600083118015614c055750600082115b614c5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b6000614c7e6103e8614c72868863ffffffff6151f316565b9063ffffffff6151f316565b90506000614c986103e5614c72868963ffffffff614b2916565b9050614cb56001828481614ca857fe5b049063ffffffff61527916565b9695505050505050565b6000808411614d19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154736025913960400191505060405180910390fd5b600083118015614d295750600082115b614d7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b82614d8f858463ffffffff6151f316565b81614d9657fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154006025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e61578284614e64565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614eeb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9092169163e6a4390591604480820192602092909190829003018186803b158015614f9257600080fd5b505afa158015614fa6573d6000803e3d6000fd5b505050506040513d6020811015614fbc57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614156150a257604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9092169163c9c65396916044808201926020929091908290030181600087803b15801561507557600080fd5b505af1158015615089573d6000803e3d6000fd5b505050506040513d602081101561509f57600080fd5b50505b6000806150d07f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8b8b6152eb565b915091508160001480156150e2575080155b156150f2578793508692506151e6565b60006150ff898484614cbf565b905087811161516c5785811015615161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154256026913960400191505060405180910390fd5b8894509250826151e4565b6000615179898486614cbf565b90508981111561518557fe5b878110156151de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154bf6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b600081158061520e5750508082028282828161520b57fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152fa8585614d9f565b50905060008061530b8888886140c6565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561535057600080fd5b505afa158015615364573d6000803e3d6000fd5b505050506040513d606081101561537a57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153c15780826153c4565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a26469706673582212206dd6e03c4b2c0a8e55214926227ae9e2d6f9fec2ce74a6446d615afa355c84f364736f6c63430006060033" + } + ] + }, + { + "body": "[{\"method\":\"eth_getBalance\",\"params\":[\"0xb77c2290c5e5acd8ca4778876b3caae593741bab\",\"0x12f2973\"],\"id\":6,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getTransactionCount\",\"params\":[\"0xb77c2290c5e5acd8ca4778876b3caae593741bab\",\"0x12f2973\"],\"id\":7,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getCode\",\"params\":[\"0xb77c2290c5e5acd8ca4778876b3caae593741bab\",\"0x12f2973\"],\"id\":8,\"jsonrpc\":\"2.0\"}]", + "result": [ + { + "id": 6, + "jsonrpc": "2.0", + "result": "0x0" + }, + { + "id": 7, + "jsonrpc": "2.0", + "result": "0x1" + }, + { + "id": 8, + "jsonrpc": "2.0", + "result": "0x608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032" + } + ] + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0xb77c2290c5e5acd8ca4778876b3caae593741bab\",\"0x8\",\"0x12f2973\"],\"id\":9,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 9, + "jsonrpc": "2.0", + "result": "0x66434e370000000000026bc4de18908f31f00000000000000025781808276bb1" + } + }, + { + "body": "[{\"method\":\"eth_getBalance\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x12f2973\"],\"id\":10,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getTransactionCount\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x12f2973\"],\"id\":11,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getCode\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x12f2973\"],\"id\":12,\"jsonrpc\":\"2.0\"}]", + "result": [ + { + "id": 10, + "jsonrpc": "2.0", + "result": "0x1" + }, + { + "id": 11, + "jsonrpc": "2.0", + "result": "0x1" + }, + { + "id": 12, + "jsonrpc": "2.0", + "result": "0x6080604052600436106101db5760003560e01c8063751039fc11610102578063a2a957bb11610095578063c492f04611610064578063c492f0461461067e578063dd62ed3e146106a7578063ea1644d5146106e4578063f2fde38b1461070d576101e2565b8063a2a957bb146105c4578063a9059cbb146105ed578063bfd792841461062a578063c3c8cd8014610667576101e2565b80638f70ccf7116100d15780638f70ccf71461051c5780638f9a55c01461054557806395d89b411461057057806398a5c3151461059b576101e2565b8063751039fc146104725780637d1db4a5146104895780637f2feddc146104b45780638da5cb5b146104f1576101e2565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec146103de57806370a08231146103f5578063715018a61461043257806374010ece14610449576101e2565b8063313ce5671461033657806349bd5a5e146103615780636b9990531461038c5780636d8aa8f8146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190613079565b610736565b005b34801561021c57600080fd5b50610225610860565b604051610232919061314a565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d91906131a2565b61089d565b60405161026f91906131fd565b60405180910390f35b34801561028457600080fd5b5061028d6108bb565b60405161029a9190613277565b60405180910390f35b3480156102af57600080fd5b506102b86108e1565b6040516102c591906132a1565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f091906132bc565b6108f1565b60405161030291906131fd565b60405180910390f35b34801561031757600080fd5b506103206109ca565b60405161032d91906132a1565b60405180910390f35b34801561034257600080fd5b5061034b6109d0565b604051610358919061332b565b60405180910390f35b34801561036d57600080fd5b506103766109d9565b6040516103839190613355565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613370565b6109ff565b005b3480156103c157600080fd5b506103dc60048036038101906103d791906133c9565b610aef565b005b3480156103ea57600080fd5b506103f3610ba1565b005b34801561040157600080fd5b5061041c60048036038101906104179190613370565b610c72565b60405161042991906132a1565b60405180910390f35b34801561043e57600080fd5b50610447610cc3565b005b34801561045557600080fd5b50610470600480360381019061046b91906133f6565b610e16565b005b34801561047e57600080fd5b50610487610ee1565b005b34801561049557600080fd5b5061049e610f96565b6040516104ab91906132a1565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190613370565b610f9c565b6040516104e891906132a1565b60405180910390f35b3480156104fd57600080fd5b50610506610fb4565b6040516105139190613355565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e91906133c9565b610fdd565b005b34801561055157600080fd5b5061055a61108f565b60405161056791906132a1565b60405180910390f35b34801561057c57600080fd5b50610585611095565b604051610592919061314a565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd91906133f6565b6110d2565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190613423565b611171565b005b3480156105f957600080fd5b50610614600480360381019061060f91906131a2565b61136c565b60405161062191906131fd565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190613370565b61138a565b60405161065e91906131fd565b60405180910390f35b34801561067357600080fd5b5061067c6113aa565b005b34801561068a57600080fd5b506106a560048036038101906106a091906134e5565b611483565b005b3480156106b357600080fd5b506106ce60048036038101906106c99190613545565b6115bd565b6040516106db91906132a1565b60405180910390f35b3480156106f057600080fd5b5061070b600480360381019061070691906133f6565b611644565b005b34801561071957600080fd5b50610734600480360381019061072f9190613370565b61170f565b005b61073e611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c2906135d1565b60405180910390fd5b60005b815181101561085c576001601060008484815181106107f0576107ef6135f1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108549061364f565b9150506107ce565b5050565b60606040518060400160405280600681526020017f5265646469740000000000000000000000000000000000000000000000000000815250905090565b60006108b16108aa611994565b848461199c565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006108fe848484611b65565b6109bf8461090a611994565b6109ba856040518060600160405280602881526020016142d760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610970611994565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e89092919063ffffffff16565b61199c565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a07611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b906135d1565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610af7611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b906135d1565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be2611994565b73ffffffffffffffffffffffffffffffffffffffff161480610c585750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c40611994565b73ffffffffffffffffffffffffffffffffffffffff16145b610c6157600080fd5b6000479050610c6f8161244c565b50565b6000610cbc600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256d565b9050919050565b610ccb611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f906135d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e1e611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea2906135d1565b60405180910390fd5b60008111610eb857600080fd5b60648167016345785d8a0000610ece9190613697565b610ed89190613720565b60168190555050565b610ee9611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6d906135d1565b60405180910390fd5b67016345785d8a000060168190555067016345785d8a0000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fe5611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611069906135d1565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600681526020017f5245444449540000000000000000000000000000000000000000000000000000815250905090565b6110da611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115e906135d1565b60405180910390fd5b8060188190555050565b611179611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd906135d1565b60405180910390fd5b60008410158015611218575060058411155b611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e906137c3565b60405180910390fd5b60008210158015611269575060328211155b6112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90613855565b60405180910390fd5b600083101580156112ba575060058311155b6112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f0906138e7565b60405180910390fd5b6000811015801561130b575060638111155b61134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190613979565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000611380611379611994565b8484611b65565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113eb611994565b73ffffffffffffffffffffffffffffffffffffffff1614806114615750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611449611994565b73ffffffffffffffffffffffffffffffffffffffff16145b61146a57600080fd5b600061147530610c72565b9050611480816125db565b50565b61148b611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f906135d1565b60405180910390fd5b60005b838390508110156115b757816005600086868581811061153e5761153d6135f1565b5b90506020020160208101906115539190613370565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115af9061364f565b91505061151b565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61164c611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d0906135d1565b60405180910390fd5b600081116116e657600080fd5b60648167016345785d8a00006116fc9190613697565b6117069190613720565b60178190555050565b611717611994565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b906135d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180a90613a0b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083036118e25760009050611944565b600082846118f09190613697565b90508284826118ff9190613720565b1461193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690613a9d565b60405180910390fd5b809150505b92915050565b600061198c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612852565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0290613b2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613bc1565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b5891906132a1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb90613c53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a90613ce5565b60405180910390fd5b60008111611c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7d90613d77565b60405180910390fd5b611c8e610fb4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cfc5750611ccc610fb4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120e757601560149054906101000a900460ff16611d8b57611d1d610fb4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8190613e09565b60405180910390fd5b5b601654811115611dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc790613e75565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e745750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613f07565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611f605760175481611f1584610c72565b611f1f9190613f27565b10611f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5690613fef565b60405180910390fd5b5b6000611f6b30610c72565b9050600060185482101590506016548210611f865760165491505b808015611f9e575060158054906101000a900460ff16155b8015611ff85750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120105750601560169054906101000a900460ff165b80156120665750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120bc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120e4576120ca826125db565b600047905060008111156120e2576120e14761244c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061218e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122415750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122405750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561224f57600090506123d6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122fa5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561231257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123bd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156123d557600a54600c81905550600b54600d819055505b5b6123e2848484846128b5565b50505050565b6000838311158290612430576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612427919061314a565b60405180910390fd5b506000838561243f919061400f565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124af60056124a16003866118d090919063ffffffff16565b61194a90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124da573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61253e60056125306002866118d090919063ffffffff16565b61194a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612569573d6000803e3d6000fd5b5050565b60006006548211156125b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ab906140b5565b60405180910390fd5b60006125be6128e2565b90506125d3818461194a90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561261257612611612ed8565b5b6040519080825280602002602001820160405280156126405781602001602082028036833780820191505090505b5090503081600081518110612658576126576135f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272391906140ea565b81600181518110612737576127366135f1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061279e30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461199c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612802959493929190614210565b600060405180830381600087803b15801561281c57600080fd5b505af1158015612830573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b60008083118290612899576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612890919061314a565b60405180910390fd5b50600083856128a89190613720565b9050809150509392505050565b806128c3576128c261290d565b5b6128ce84848461294a565b806128dc576128db612b15565b5b50505050565b60008060006128ef612b29565b91509150612906818361194a90919063ffffffff16565b9250505090565b6000600c5414801561292157506000600d54145b61294857600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061295c87612b88565b9550955095509550955095506129ba86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bf090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a4f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a9b81612c98565b612aa58483612d55565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b0291906132a1565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a00009050612b5d67016345785d8a000060065461194a90919063ffffffff16565b821015612b7b5760065467016345785d8a0000935093505050612b84565b81819350935050505b9091565b6000806000806000806000806000612ba58a600c54600d54612d8f565b9250925092506000612bb56128e2565b90506000806000612bc88e878787612e25565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612c3283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123e8565b905092915050565b6000808284612c499190613f27565b905083811015612c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c85906142b6565b60405180910390fd5b8091505092915050565b6000612ca26128e2565b90506000612cb982846118d090919063ffffffff16565b9050612d0d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612d6a82600654612bf090919063ffffffff16565b600681905550612d8581600754612c3a90919063ffffffff16565b6007819055505050565b600080600080612dbb6064612dad888a6118d090919063ffffffff16565b61194a90919063ffffffff16565b90506000612de56064612dd7888b6118d090919063ffffffff16565b61194a90919063ffffffff16565b90506000612e0e82612e00858c612bf090919063ffffffff16565b612bf090919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612e3e85896118d090919063ffffffff16565b90506000612e5586896118d090919063ffffffff16565b90506000612e6c87896118d090919063ffffffff16565b90506000612e9582612e878587612bf090919063ffffffff16565b612bf090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f1082612ec7565b810181811067ffffffffffffffff82111715612f2f57612f2e612ed8565b5b80604052505050565b6000612f42612eae565b9050612f4e8282612f07565b919050565b600067ffffffffffffffff821115612f6e57612f6d612ed8565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612faf82612f84565b9050919050565b612fbf81612fa4565b8114612fca57600080fd5b50565b600081359050612fdc81612fb6565b92915050565b6000612ff5612ff084612f53565b612f38565b9050808382526020820190506020840283018581111561301857613017612f7f565b5b835b81811015613041578061302d8882612fcd565b84526020840193505060208101905061301a565b5050509392505050565b600082601f8301126130605761305f612ec2565b5b8135613070848260208601612fe2565b91505092915050565b60006020828403121561308f5761308e612eb8565b5b600082013567ffffffffffffffff8111156130ad576130ac612ebd565b5b6130b98482850161304b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130fc5780820151818401526020810190506130e1565b8381111561310b576000848401525b50505050565b600061311c826130c2565b61312681856130cd565b93506131368185602086016130de565b61313f81612ec7565b840191505092915050565b600060208201905081810360008301526131648184613111565b905092915050565b6000819050919050565b61317f8161316c565b811461318a57600080fd5b50565b60008135905061319c81613176565b92915050565b600080604083850312156131b9576131b8612eb8565b5b60006131c785828601612fcd565b92505060206131d88582860161318d565b9150509250929050565b60008115159050919050565b6131f7816131e2565b82525050565b600060208201905061321260008301846131ee565b92915050565b6000819050919050565b600061323d61323861323384612f84565b613218565b612f84565b9050919050565b600061324f82613222565b9050919050565b600061326182613244565b9050919050565b61327181613256565b82525050565b600060208201905061328c6000830184613268565b92915050565b61329b8161316c565b82525050565b60006020820190506132b66000830184613292565b92915050565b6000806000606084860312156132d5576132d4612eb8565b5b60006132e386828701612fcd565b93505060206132f486828701612fcd565b92505060406133058682870161318d565b9150509250925092565b600060ff82169050919050565b6133258161330f565b82525050565b6000602082019050613340600083018461331c565b92915050565b61334f81612fa4565b82525050565b600060208201905061336a6000830184613346565b92915050565b60006020828403121561338657613385612eb8565b5b600061339484828501612fcd565b91505092915050565b6133a6816131e2565b81146133b157600080fd5b50565b6000813590506133c38161339d565b92915050565b6000602082840312156133df576133de612eb8565b5b60006133ed848285016133b4565b91505092915050565b60006020828403121561340c5761340b612eb8565b5b600061341a8482850161318d565b91505092915050565b6000806000806080858703121561343d5761343c612eb8565b5b600061344b8782880161318d565b945050602061345c8782880161318d565b935050604061346d8782880161318d565b925050606061347e8782880161318d565b91505092959194509250565b600080fd5b60008083601f8401126134a5576134a4612ec2565b5b8235905067ffffffffffffffff8111156134c2576134c161348a565b5b6020830191508360208202830111156134de576134dd612f7f565b5b9250929050565b6000806000604084860312156134fe576134fd612eb8565b5b600084013567ffffffffffffffff81111561351c5761351b612ebd565b5b6135288682870161348f565b9350935050602061353b868287016133b4565b9150509250925092565b6000806040838503121561355c5761355b612eb8565b5b600061356a85828601612fcd565b925050602061357b85828601612fcd565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135bb6020836130cd565b91506135c682613585565b602082019050919050565b600060208201905081810360008301526135ea816135ae565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061365a8261316c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361368c5761368b613620565b5b600182019050919050565b60006136a28261316c565b91506136ad8361316c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136e6576136e5613620565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061372b8261316c565b91506137368361316c565b925082613746576137456136f1565b5b828204905092915050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203525000000000000000000000000000000000000000000000000000000602082015250565b60006137ad6025836130cd565b91506137b882613751565b604082019050919050565b600060208201905081810360008301526137dc816137a0565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203560008201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b600061383f6022836130cd565b915061384a826137e3565b604082019050919050565b6000602082019050818103600083015261386e81613832565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642035250000000000000000000000000000000000000000000000000000602082015250565b60006138d16026836130cd565b91506138dc82613875565b604082019050919050565b60006020820190508181036000830152613900816138c4565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b60006139636023836130cd565b915061396e82613907565b604082019050919050565b6000602082019050818103600083015261399281613956565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139f56026836130cd565b9150613a0082613999565b604082019050919050565b60006020820190508181036000830152613a24816139e8565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a876021836130cd565b9150613a9282613a2b565b604082019050919050565b60006020820190508181036000830152613ab681613a7a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b196024836130cd565b9150613b2482613abd565b604082019050919050565b60006020820190508181036000830152613b4881613b0c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bab6022836130cd565b9150613bb682613b4f565b604082019050919050565b60006020820190508181036000830152613bda81613b9e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c3d6025836130cd565b9150613c4882613be1565b604082019050919050565b60006020820190508181036000830152613c6c81613c30565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ccf6023836130cd565b9150613cda82613c73565b604082019050919050565b60006020820190508181036000830152613cfe81613cc2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d616029836130cd565b9150613d6c82613d05565b604082019050919050565b60006020820190508181036000830152613d9081613d54565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613df3603f836130cd565b9150613dfe82613d97565b604082019050919050565b60006020820190508181036000830152613e2281613de6565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613e5f601c836130cd565b9150613e6a82613e29565b602082019050919050565b60006020820190508181036000830152613e8e81613e52565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ef16023836130cd565b9150613efc82613e95565b604082019050919050565b60006020820190508181036000830152613f2081613ee4565b9050919050565b6000613f328261316c565b9150613f3d8361316c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f7257613f71613620565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fd96023836130cd565b9150613fe482613f7d565b604082019050919050565b6000602082019050818103600083015261400881613fcc565b9050919050565b600061401a8261316c565b91506140258361316c565b92508282101561403857614037613620565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061409f602a836130cd565b91506140aa82614043565b604082019050919050565b600060208201905081810360008301526140ce81614092565b9050919050565b6000815190506140e481612fb6565b92915050565b600060208284031215614100576140ff612eb8565b5b600061410e848285016140d5565b91505092915050565b6000819050919050565b600061413c61413761413284614117565b613218565b61316c565b9050919050565b61414c81614121565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61418781612fa4565b82525050565b6000614199838361417e565b60208301905092915050565b6000602082019050919050565b60006141bd82614152565b6141c7818561415d565b93506141d28361416e565b8060005b838110156142035781516141ea888261418d565b97506141f5836141a5565b9250506001810190506141d6565b5085935050505092915050565b600060a0820190506142256000830188613292565b6142326020830187614143565b818103604083015261424481866141b2565b90506142536060830185613346565b6142606080830184613292565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142a0601b836130cd565b91506142ab8261426a565b602082019050919050565b600060208201905081810360008301526142cf81614293565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208435a69f7de8b96d7923d8521510fc0cb49efa20f1ada6eed2fbff1cc769439e64736f6c634300080d0033" + } + ] + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x0\",\"0x12f2973\"],\"id\":13,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 13, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x15\",\"0x12f2973\"],\"id\":14,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 14, + "jsonrpc": "2.0", + "result": "0x000000000000000000010001b77c2290c5e5acd8ca4778876b3caae593741bab" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x16\",\"0x12f2973\"],\"id\":15,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 15, + "jsonrpc": "2.0", + "result": "0x000000000000000000000000000000000000000000000000016345785d8a0000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0xf09e7f0928048bc85bea445ca8d0d9bd73c000d04c62fd0c0ff4b13c3bcd47cb\",\"0x12f2973\"],\"id\":16,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 16, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x4e5a1e0d803915896190a681ef987154b4cbeae1206d18bde10bea9995ae386\",\"0x12f2973\"],\"id\":17,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 17, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x8e78658eee6efd36bd7bcb88ec92e28b149591c5d48c89c2171c7a2b662dcfb1\",\"0x12f2973\"],\"id\":18,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 18, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x6\",\"0x12f2973\"],\"id\":19,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 19, + "jsonrpc": "2.0", + "result": "0xfffffffffffffffffffffffffffffffffffffffffffffffffed58b3f83960000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x18\",\"0x12f2973\"],\"id\":20,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 20, + "jsonrpc": "2.0", + "result": "0x00000000000000000000000000000000000000000000000000005af3107a4000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x4cc6c21490dd7ce60939efbac271288262b1c648b1bd1a8eab92d931e1d31346\",\"0x12f2973\"],\"id\":21,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 21, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x1fdb3b5364249ce79949f7046fa3f4dc39838c8c1c2bc5daea3551bc63dbb548\",\"0x12f2973\"],\"id\":22,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 22, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x14\",\"0x12f2973\"],\"id\":23,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 23, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0xa\",\"0x12f2973\"],\"id\":24,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 24, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0xc\",\"0x12f2973\"],\"id\":25,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 25, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0xb\",\"0x12f2973\"],\"id\":26,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 26, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0xd\",\"0x12f2973\"],\"id\":27,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 27, + "jsonrpc": "2.0", + "result": "0x000000000000000000000000000000000000000000000000000000000000000a" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0xb60cd62aadf861f93e1c9b7997070a0532b686a041f49e7356e2253548796ae8\",\"0x12f2973\"],\"id\":28,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 28, + "jsonrpc": "2.0", + "result": "0x01d4295d5cc9ccba2ff8873b51d4c2983d8ba83dd8bd123b687f44661ee3f59e" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x2b5498ef3397a1c69e7524950a4dac7b129fdabdf5900dd577338afd616bf08b\",\"0x12f2973\"],\"id\":29,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 29, + "jsonrpc": "2.0", + "result": "0x1affd50221894670bcae4da0d9f15bf270c6a239557d877045834e2135ca429f" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x7\",\"0x12f2973\"],\"id\":30,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 30, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0x86eab36585eddb7a949a0b4771ba733d942a8aa7\",\"0x7a3e422d0ead6b82d1c4149b46b475dec96c8850ca304a2985b33a7b099a790e\",\"0x12f2973\"],\"id\":31,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 31, + "jsonrpc": "2.0", + "result": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0xb77c2290c5e5acd8ca4778876b3caae593741bab\",\"0xc\",\"0x12f2973\"],\"id\":32,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 32, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0xb77c2290c5e5acd8ca4778876b3caae593741bab\",\"0x6\",\"0x12f2973\"],\"id\":33,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 33, + "jsonrpc": "2.0", + "result": "0x00000000000000000000000086eab36585eddb7a949a0b4771ba733d942a8aa7" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0xb77c2290c5e5acd8ca4778876b3caae593741bab\",\"0x7\",\"0x12f2973\"],\"id\":34,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 34, + "jsonrpc": "2.0", + "result": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + } + }, + { + "body": "[{\"method\":\"eth_getBalance\",\"params\":[\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\"0x12f2973\"],\"id\":35,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getTransactionCount\",\"params\":[\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\"0x12f2973\"],\"id\":36,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getCode\",\"params\":[\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\"0x12f2973\"],\"id\":37,\"jsonrpc\":\"2.0\"}]", + "result": [ + { + "id": 35, + "jsonrpc": "2.0", + "result": "0x2872fdd5daf431e929a54" + }, + { + "id": 36, + "jsonrpc": "2.0", + "result": "0x1" + }, + { + "id": 37, + "jsonrpc": "2.0", + "result": "0x6060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a72305820deb4c2ccab3c2fdca32ab3f46728389c2fe2c165d5fafa07661e4e004f6c344a0029" + } + ] + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\"0x2e23b2b74ef7de74ec114750101ba721fb8a96de30d6e65fa2b0012ecfcd26f8\",\"0x12f2973\"],\"id\":38,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 38, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000000000000000000000000026bc4de18908f31f0" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\"0x5e5e628a4b810946436dc209fb8fbe5a5ae3439f965671912f467b34fcf609ef\",\"0x12f2973\"],\"id\":39,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 39, + "jsonrpc": "2.0", + "result": "0x000000000000000000000000000000000000000000000007029005c7a2b6c775" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0xb77c2290c5e5acd8ca4778876b3caae593741bab\",\"0x9\",\"0x12f2973\"],\"id\":40,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 40, + "jsonrpc": "2.0", + "result": "0x0000000000000000000000000007c7e3f992fce76ee26babd1784cd81ea334f8" + } + }, + { + "body": "{\"method\":\"eth_getStorageAt\",\"params\":[\"0xb77c2290c5e5acd8ca4778876b3caae593741bab\",\"0xa\",\"0x12f2973\"],\"id\":41,\"jsonrpc\":\"2.0\"}", + "result": { + "id": 41, + "jsonrpc": "2.0", + "result": "0x000000000000000000000000000000011d0cd22ff3622662148fd25188752780" + } + }, + { + "body": "[{\"method\":\"eth_getBalance\",\"params\":[\"0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5\",\"0x12f2973\"],\"id\":42,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getTransactionCount\",\"params\":[\"0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5\",\"0x12f2973\"],\"id\":43,\"jsonrpc\":\"2.0\"},{\"method\":\"eth_getCode\",\"params\":[\"0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5\",\"0x12f2973\"],\"id\":44,\"jsonrpc\":\"2.0\"}]", + "result": [ + { + "id": 42, + "jsonrpc": "2.0", + "result": "0x6d23a0851f1e4514" + }, + { + "id": 43, + "jsonrpc": "2.0", + "result": "0xecb44" + }, + { + "id": 44, + "jsonrpc": "2.0", + "result": "0x" + } + ] + } + ], + "receipt": { + "gasUsed": "0x25432", + "logs": [ + { + "address": "0x86eab36585eddb7a949a0b4771ba733d942a8aa7", + "data": "0x000000000000000000000000000000000000000000000000000289b467bc4901", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000634cf119d1964b88a426e1e782bd09f37b51d949", + "0x000000000000000000000000b77c2290c5e5acd8ca4778876b3caae593741bab" + ] + }, + { + "address": "0x86eab36585eddb7a949a0b4771ba733d942a8aa7", + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffd764b9843b6fe", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000634cf119d1964b88a426e1e782bd09f37b51d949", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "data": "0x00000000000000000000000000000000000000000000000027349e61f1fb3340", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b77c2290c5e5acd8ca4778876b3caae593741bab", + "0x000000000000000000000000634cf119d1964b88a426e1e782bd09f37b51d949" + ] + }, + { + "address": "0xb77c2290c5e5acd8ca4778876b3caae593741bab", + "data": "0x000000000000000000000000000000000000000000000000002801cc6fe3b4b200000000000000000000000000000000000000000000000244903fb69e93feb0", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ] + }, + { + "address": "0xb77c2290c5e5acd8ca4778876b3caae593741bab", + "data": "0x000000000000000000000000000000000000000000000000000289b467bc49010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027349e61f1fb3340", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x000000000000000000000000634cf119d1964b88a426e1e782bd09f37b51d949" + ] + } + ], + "status": "0x1" + }, + "transaction": { + "from": "0x634cf119d1964b88a426e1e782bd09f37b51d949", + "hash": "0x5d374a026007c13e901765497b9164d44822902463efdf7b574b10c476ee2ad6", + "serialized": "0x02f90174018209f5849502f9008504a91d603483039bfe947a250d5630b4cf539739df2c5dacb4c659f2488d80b9010438ed1739000000000000000000000000000000000000000000000000000289b467bc4901000000000000000000000000000000000000000000000000272f9a5661cde9ca00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000634cf119d1964b88a426e1e782bd09f37b51d9490000000000000000000000000000000000000000000000000000000066434eb9000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086eab36585eddb7a949a0b4771ba733d942a8aa7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2c080a0e0e6d64faf70c50fd18cfb60a8afeb8f1dd610057da160f1a3abdcb4f53aa789a05e80e1e58317e821f03e3f365209c42ebe9343cbc76676f8c5adb5d2e0c4fe78" + } +} diff --git a/src/evm/_test/fork.record.ts b/src/evm/_test/fork.record.ts new file mode 100644 index 00000000..2b691089 --- /dev/null +++ b/src/evm/_test/fork.record.ts @@ -0,0 +1,139 @@ +import * as fs from 'node:fs' +import * as path from 'node:path' +import { Hex, RpcTransport } from 'ox' +import { Evm, ExecutedTx } from 'ox/evm' + +import { rpcDatabase } from './rpcDatabase.js' + +/** + * Records a mainnet transaction replay so `fork.test.ts` can run offline. + * + * Run with an archive endpoint: `VITE_ANVIL_FORK_URL=... node --import tsx + * src/evm/_test/fork.record.ts`. Reads are pinned to the parent block, which is + * the state the transaction executed against; a fork proxy is unnecessary because + * nothing is mined, only read. + */ + +/** The block whose first transaction is replayed. */ +const number = 19868020n + +/** Reads resolve here: the state the block started from. */ +const parent = number - 1n + +const url = process.env.VITE_ANVIL_FORK_URL ?? 'https://1.rpc.thirdweb.com' +const transport = RpcTransport.fromHttp(url, { timeout: 60_000 }) +const node = { request: transport.request } + +const shutdown = async () => {} + +try { + const block = (await node.request({ + method: 'eth_getBlockByNumber', + params: [Hex.fromNumber(number), true], + } as never)) as { + baseFeePerGas: Hex.Hex + gasLimit: Hex.Hex + miner: Hex.Hex + mixHash: Hex.Hex + timestamp: Hex.Hex + transactions: readonly { from: Hex.Hex; hash: Hex.Hex; type: Hex.Hex }[] + } + + // Index zero is the only transaction whose starting state is the parent block + // exactly; every later one also depends on its predecessors. + const first = block.transactions[0]! + const serialized = (await node.request({ + method: 'eth_getRawTransactionByHash', + params: [first.hash], + } as never)) as Hex.Hex + const receipt = (await node.request({ + method: 'eth_getTransactionReceipt', + params: [first.hash], + } as never)) as { + gasUsed: Hex.Hex + logs: readonly { address: Hex.Hex; data: Hex.Hex; topics: Hex.Hex[] }[] + status: Hex.Hex + } + + const calls: { body: string; result: unknown }[] = [] + + /** + * Records each successful exchange, retrying a throttled one. + * + * The retry protocol asks for one value per attempt, so replaying a + * transaction is tens of sequential requests, which a public endpoint + * throttles. Recording happens rarely, so waiting is cheaper than requiring a + * paid endpoint. + */ + const fetchFn: typeof fetch = async (input, init) => { + const body = String(init?.body) + for (let attempt = 0; ; attempt++) { + const response = await fetch(input, init) + if (response.ok) { + calls.push({ body, result: await response.clone().json() }) + return response + } + if (response.status !== 429 || attempt >= 12) return response + await new Promise((resolve) => setTimeout(resolve, 2 ** attempt * 250)) + } + } + + const evm = await Evm.create({ + block: { + basefee: Hex.toBigInt(block.baseFeePerGas), + beneficiary: block.miner, + gasLimit: Hex.toBigInt(block.gasLimit), + number, + prevrandao: Hex.toBigInt(block.mixHash), + timestamp: Hex.toBigInt(block.timestamp), + }, + chainId: 1n, + database: rpcDatabase(url, { blockNumber: parent, fetchFn }), + specId: 'cancun', + }) + + const executed = await Evm.transact(evm, { + from: first.from, + serialized, + }) + const result = ExecutedTx.result(executed) + ExecutedTx.discard(executed) + + fs.writeFileSync( + path.join(import.meta.dirname, 'fork.json'), + `${JSON.stringify( + { + $comment: + 'Recorded by src/evm/_test/fork.record.ts. Regenerate with a fork available.', + block: { + basefee: block.baseFeePerGas, + beneficiary: block.miner, + gasLimit: block.gasLimit, + number: Hex.fromNumber(number), + prevrandao: block.mixHash, + timestamp: block.timestamp, + }, + calls, + receipt: { + gasUsed: receipt.gasUsed, + logs: receipt.logs.map((log) => ({ + address: log.address, + data: log.data, + topics: log.topics, + })), + status: receipt.status, + }, + transaction: { from: first.from, hash: first.hash, serialized }, + }, + null, + 2, + )}\n`, + ) + + // biome-ignore lint/suspicious/noConsole: a script reports what it recorded + console.log( + `recorded ${first.hash} at block ${number}: ${calls.length} reads, gasUsed ${Hex.fromNumber(result.totalGasSpent - result.refunded)} vs receipt ${receipt.gasUsed}`, + ) +} finally { + await shutdown() +} diff --git a/src/evm/_test/fork.test.ts b/src/evm/_test/fork.test.ts new file mode 100644 index 00000000..59f3566c --- /dev/null +++ b/src/evm/_test/fork.test.ts @@ -0,0 +1,115 @@ +import * as fs from 'node:fs' +import * as path from 'node:path' +import { Hex } from 'ox' +import { Evm, ExecutedTx, StateChange } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +import { rpcDatabase } from './rpcDatabase.js' + +/** + * Replaying a real mainnet transaction against forked state. + * + * The gate the corpus differentials cannot reach: state nobody seeded, read + * through a node, compared against what the chain itself recorded. The RPC + * exchange is recorded once and committed, so the assertion runs offline. + * Re-record with `node --import tsx src/evm/_test/fork.record.ts`. + */ + +type Recording = { + $comment: string + block: { + basefee: string + beneficiary: string + gasLimit: string + number: string + prevrandao: string + timestamp: string + } + calls: readonly { body: string; result: unknown }[] + receipt: { + gasUsed: string + logs: readonly { + address: string + data: string + topics: readonly string[] + }[] + status: string + } + transaction: { from: string; hash: string; serialized: string } +} + +const file = path.join(import.meta.dirname, 'fork.json') + +/** Serves recorded exchanges, so nothing reaches the network. */ +function replay(calls: Recording['calls']): typeof fetch { + const byBody = new Map(calls.map((call) => [call.body, call.result])) + return async (_input, init) => { + const body = String(init?.body) + if (!byBody.has(body)) throw new Error(`no recorded response for ${body}`) + return new Response(JSON.stringify(byBody.get(body)), { + headers: { 'Content-Type': 'application/json' }, + }) + } +} + +/** Rebuilds the EVM the recording describes. */ +async function fork(recording: Recording, fetchFn: typeof fetch) { + return Evm.create({ + block: { + basefee: BigInt(recording.block.basefee), + beneficiary: recording.block.beneficiary as `0x${string}`, + gasLimit: BigInt(recording.block.gasLimit), + number: BigInt(recording.block.number), + prevrandao: BigInt(recording.block.prevrandao), + timestamp: BigInt(recording.block.timestamp), + }, + chainId: 1n, + // Reads resolve at the parent block, which is the state the transaction + // executed against. + database: rpcDatabase('https://recorded.invalid', { + blockNumber: BigInt(recording.block.number) - 1n, + fetchFn, + }), + specId: 'cancun', + }) +} + +describe('replay', () => { + test('behavior: a mainnet transaction matches its own receipt', async () => { + const recording = JSON.parse(fs.readFileSync(file, 'utf8')) as Recording + + const evm = await fork(recording, replay(recording.calls)) + const executed = await Evm.transact(evm, { + from: recording.transaction.from as `0x${string}`, + serialized: recording.transaction.serialized as `0x${string}`, + }) + const result = ExecutedTx.result(executed) + + // What the chain recorded for this transaction, reached from forked state. + expect(result.status).toBe(recording.receipt.status === '0x1') + expect(Hex.fromNumber(result.totalGasSpent - result.refunded)).toBe( + recording.receipt.gasUsed, + ) + expect( + result.logs.map((log) => ({ + address: log.address.toLowerCase(), + data: log.data, + topics: log.topics, + })), + ).toEqual( + recording.receipt.logs.map((log) => ({ + address: log.address.toLowerCase(), + data: log.data, + topics: log.topics, + })), + ) + + // Post-state is reachable, and committing it is what a block would do. + const { pendingState } = ExecutedTx.detach(executed) + const touched: string[] = [] + StateChange.visit(pendingState, { + account: (change) => touched.push(change.address.toLowerCase()), + }) + expect(touched).toContain(recording.transaction.from.toLowerCase()) + }) +}) diff --git a/src/evm/_test/oracle.test.ts b/src/evm/_test/oracle.test.ts new file mode 100644 index 00000000..2d6d7519 --- /dev/null +++ b/src/evm/_test/oracle.test.ts @@ -0,0 +1,633 @@ +import * as fs from 'node:fs' +import * as path from 'node:path' +import { Bytes, Hex, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { describe, expect, test } from 'vp/test' +import { + type Bal, + type BlockState, + Database as PublicDatabase, + Evm, + ExecutedTx, + type SpecId, +} from 'ox/evm' + +import * as PendingState from '../PendingState.js' +import * as StateChange from '../StateChange.js' +import * as codec from '../internal/codec.js' +import type * as Database from '../internal/database.js' +import * as engine from '../internal/engine.js' + +/** + * The WASM artifact against native evm2. + * + * `wasm/evm2/tests/oracle.rs` owns the `expected` half of this file, produced by + * native `Evm::call_tx`. This side runs the same fixtures through the compiled + * artifact and verifies the same expectations, so native and WASM evm2 + * disagreeing is a diff rather than two independently plausible results. + * + * Regenerate with `OX_UPDATE_FIXTURES=1 cargo test --test oracle` in + * `wasm/evm2`. + */ + +type Account = { + address: string + balance: string + code: string + codeHash: string + nonce: number + storage?: Record +} + +type Expectation = { + createdAddress: string | null + errorCode: string | null + floorGas: string + handlerError?: string + logs: readonly { address: string; data: string; topics: readonly string[] }[] + output: string + refunded: string + stateGasSpent: string + status: boolean + stop: number + totalGasSpent: string + txGasUsed: string +} + +/** The shape `oracle.rs` records an accumulator in. */ +type BlockEntry = { + accounts: readonly { + address: string + current: { balance: string; codeHash: string; nonce: number } | null + original: { balance: string; codeHash: string; nonce: number } | null + }[] + code: readonly { code: string; codeHash: string }[] + storage: readonly { + address: string + current: string + key: string + original: string + }[] + storageWipes: readonly string[] +} + +/** The shape `oracle.rs` records a folded list in. */ +type BalEntry = { + address: string + balanceChanges: readonly { balance: string; index: number }[] + codeChanges: readonly { code: string; index: number }[] + nonceChanges: readonly { index: number; nonce: number }[] + storageChanges: readonly { + changes: readonly { index: number; value: string }[] + slot: string + }[] + storageReads: readonly string[] +} + +type Pending = { + accounts: readonly string[] + bytecode: readonly string[] + empty: boolean + reads: readonly string[] + storage: readonly string[] + wipes: readonly string[] +} + +type Fixture = { + accounts: readonly Account[] + block: Record + chainId: string + envelope: string + expected: Record + name: string + signer: string +} + +const fixtures = JSON.parse( + fs.readFileSync( + path.join(import.meta.dirname, '../../../wasm/evm2/fixtures/call-tx.json'), + 'utf8', + ), +) as { fixtures: readonly Fixture[]; specs: readonly string[] } + +/** Serializes a result the way `oracle.rs` does, so the two are comparable. */ +function encode(result: codec.TxResult): Expectation { + const gas = (value: bigint) => Hex.fromNumber(value) + const spent = result.totalGasSpent - result.refunded + return { + createdAddress: result.createdAddress?.toLowerCase() ?? null, + errorCode: result.errorCode === undefined ? null : gas(result.errorCode), + floorGas: gas(result.floorGas), + logs: result.logs.map((log) => ({ + address: log.address.toLowerCase(), + data: log.data, + topics: log.topics, + })), + output: result.output, + refunded: gas(result.refunded), + stateGasSpent: gas(result.stateGasSpent), + status: result.status, + stop: result.stop, + totalGasSpent: gas(result.totalGasSpent), + txGasUsed: gas(spent > result.floorGas ? spent : result.floorGas), + } +} + +function database(accounts: readonly Account[]): Database.Database { + const byAddress = new Map( + accounts.map((account) => [account.address.toLowerCase(), account]), + ) + const byCodeHash = new Map( + accounts + .filter((account) => account.code !== '0x') + .map((account) => [account.codeHash.toLowerCase(), account.code]), + ) + return { + getAccount(address) { + const account = byAddress.get(address.toLowerCase()) + if (!account) return undefined + return { + balance: BigInt(account.balance), + codeHash: account.codeHash as Hex.Hex, + nonce: BigInt(account.nonce), + } + }, + getBlockHash() { + return `0x${'00'.repeat(32)}` + }, + getCodeByHash(codeHash) { + const code = byCodeHash.get(codeHash.toLowerCase()) + if (code === undefined) throw new Error(`no code for ${codeHash}`) + return Bytes.fromHex(code as Hex.Hex) + }, + getStorage(address, key) { + const slots = byAddress.get(address.toLowerCase())?.storage + return BigInt(slots?.[Hex.fromNumber(key)] ?? 0n) + }, + } +} + +function block(fields: Record): codec.Block { + return { + basefee: BigInt(fields.basefee!), + beneficiary: fields.beneficiary! as `0x${string}`, + blobBasefee: BigInt(fields.blobBasefee!), + difficulty: BigInt(fields.difficulty!), + gasLimit: BigInt(fields.gasLimit!), + number: BigInt(fields.number!), + prevrandao: BigInt(fields.prevrandao!), + slotNum: BigInt(fields.slotNum!), + timestamp: BigInt(fields.timestamp!), + } +} + +/** + * Serializes detached state the way `oracle.rs` does. + * + * Sorted, because the grouped decoding on this side does not preserve the + * interleaving the visit produced; the sets are what both halves agree on. + */ +function encodePending(state: PendingState.PendingState): Pending { + const accounts: string[] = [] + const bytecode: string[] = [] + const reads: string[] = [] + const storage: string[] = [] + const wipes: string[] = [] + + const info = (value?: codec.ChangeAccount) => + value + ? `${Hex.fromNumber(value.balance)}/${value.nonce}/${value.codeHash}` + : 'absent' + + StateChange.visit(state, { + bytecode(codeHash, code) { + bytecode.push(`${codeHash}|${Hex.fromBytes(code)}`) + }, + account(change) { + accounts.push( + [ + change.address.toLowerCase(), + info(change.original), + info(change.current), + change.created, + change.selfdestructed, + ].join('|'), + ) + }, + accountRead(change) { + reads.push(`${change.address.toLowerCase()}|${info(change.current)}`) + }, + storage(change) { + storage.push( + [ + change.address.toLowerCase(), + Hex.fromNumber(change.key), + Hex.fromNumber(change.original!), + Hex.fromNumber(change.current), + ].join('|'), + ) + }, + storageRead(change) { + storage.push( + [ + change.address.toLowerCase(), + Hex.fromNumber(change.key), + 'read', + Hex.fromNumber(change.current), + ].join('|'), + ) + }, + storageWipe(address) { + wipes.push(address.toLowerCase()) + }, + }) + + return { + accounts: accounts.sort(), + bytecode: bytecode.sort(), + empty: PendingState.isEmpty(state), + reads: reads.sort(), + storage: storage.sort(), + wipes: wipes.sort(), + } +} + +describe('transact', () => { + for (const spec of fixtures.specs) + for (const fixture of fixtures.fixtures) + test(`${spec}: ${fixture.name} detaches the state native evm2 records`, async () => { + const expected = fixture.expected[spec]! + if (expected.handlerError) return + + const evm = await engine.create({ + block: block(fixture.block), + chainId: BigInt(fixture.chainId), + database: database(fixture.accounts), + specId: codec.specId[spec as keyof typeof codec.specId], + }) + + // Same execution as `callTx`, resolved by detaching so the pending state + // native evm2 recorded is comparable rather than discarded. + const { result, token } = evm.transact({ + envelope: Bytes.fromHex(fixture.envelope as Hex.Hex), + signer: fixture.signer as `0x${string}`, + }) + const state = PendingState.from(evm.detach(token)) + + const { pendingState, ...rest } = expected + expect(encode(result)).toEqual(rest) + expect(encodePending(state)).toEqual(pendingState) + }) +}) + +describe('callTx', () => { + for (const spec of fixtures.specs) + for (const fixture of fixtures.fixtures) + test(`${spec}: ${fixture.name} matches native evm2`, async () => { + const expected = fixture.expected[spec]! + const evm = await engine.create({ + block: block(fixture.block), + chainId: BigInt(fixture.chainId), + database: database(fixture.accounts), + specId: codec.specId[spec as keyof typeof codec.specId], + }) + + const call = () => + evm.callTx({ + envelope: Bytes.fromHex(fixture.envelope as Hex.Hex), + signer: fixture.signer as `0x${string}`, + }) + + // A fixture native evm2 rejected must be rejected here too, for the + // same stated reason. + if (expected.handlerError) { + expect(call).toThrowError(expected.handlerError) + return + } + // `pendingState` belongs to the `transact` block below: `callTx` discards + // state before a caller can observe it. + const { pendingState: _, ...result } = expected + expect(encode(call())).toEqual(result) + }) +}) + +describe('fixtures', () => { + test('every fixture is exercised on every declared spec', () => { + for (const fixture of fixtures.fixtures) + expect(Object.keys(fixture.expected).sort()).toEqual( + [...fixtures.specs].sort(), + ) + }) + + test('every recorded envelope recovers to its recorded signer', () => { + // evm2 takes the signer from `Recovered` and never re-derives it, so a + // fixture whose envelope and signer disagree would still execute, just not + // as the transaction it claims to be. + for (const fixture of fixtures.fixtures) { + const envelope = TxEnvelopeLegacy.deserialize(fixture.envelope as Hex.Hex) + const { r, s, yParity } = envelope + const recovered = Secp256k1.recoverAddress({ + payload: TxEnvelopeLegacy.getSignPayload({ + ...envelope, + r: undefined, + s: undefined, + v: undefined, + yParity: undefined, + } as never), + signature: { r: r!, s: s!, yParity: yParity! }, + }) + expect([fixture.name, recovered.toLowerCase()]).toEqual([ + fixture.name, + fixture.signer.toLowerCase(), + ]) + } + }) +}) + +/** + * Generated-corpus differential. + * + * `wasm/evm2/tests/oracle.rs` emits `fixtures/fuzz.json` from a seeded generator + * and records what native evm2 does with each case. This replays the same corpus + * through the artifact, so a divergence the curated fixtures never shaped still + * shows up as a diff rather than as two plausible results. + */ +const corpus = JSON.parse( + fs.readFileSync( + path.join(import.meta.dirname, '../../../wasm/evm2/fixtures/fuzz.json'), + 'utf8', + ), +) as { + cases: readonly (Fixture & { + bal: readonly BalEntry[] | null + blockState: BlockEntry | null + expected: Expectation & { pendingState?: Pending } + spec: string + })[] + seed: string +} + +/** + * The same corpus, read asynchronously. + * + * An asynchronous source is served by abandoning the attempt on an unfetched read + * and repeating it, so every case executes many times rather than once. This is + * the gate that says the two paths reach identical answers. + */ +describe('generated corpus, asynchronously', () => { + for (const entry of corpus.cases) + test(`${entry.spec}: ${entry.name} matches the synchronous path`, async () => { + const options = { + block: block(entry.block), + chainId: BigInt(entry.chainId), + specId: entry.spec as SpecId.SpecId, + } + const transaction = { + from: entry.signer as `0x${string}`, + serialized: entry.envelope as Hex.Hex, + } + + const sync = await Evm.create({ + ...options, + database: database(entry.accounts), + }) + const memory = database(entry.accounts) + const fork = await Evm.create({ + ...options, + database: PublicDatabase.fromAsync({ + getAccount: async (address) => memory.getAccount(address), + getBlockHash: async (number) => memory.getBlockHash(number), + getCodeByHash: async (codeHash) => memory.getCodeByHash(codeHash), + getStorage: async (address, key) => memory.getStorage(address, key), + }), + }) + + const expected = (() => { + try { + return { value: Evm.callTx(sync, transaction) } + } catch (error) { + return { message: (error as Error).message } + } + })() + + if ('message' in expected) { + await expect(Evm.callTx(fork, transaction)).rejects.toThrowError( + expected.message, + ) + return + } + expect(await Evm.callTx(fork, transaction)).toEqual(expected.value) + }) +}) + +describe('generated corpus', () => { + for (const entry of corpus.cases) + test(`${entry.spec}: ${entry.name} matches native evm2`, async () => { + const evm = await engine.create({ + block: block(entry.block), + chainId: BigInt(entry.chainId), + database: database(entry.accounts), + specId: codec.specId[entry.spec as keyof typeof codec.specId], + }) + + const transaction = { + envelope: Bytes.fromHex(entry.envelope as Hex.Hex), + signer: entry.signer as `0x${string}`, + } + + // A case native evm2 refused must be refused here for the same reason. + if (entry.expected.handlerError) { + expect(() => evm.transact(transaction)).toThrowError( + entry.expected.handlerError, + ) + return + } + + const { result, token } = evm.transact(transaction) + const state = PendingState.from(evm.detach(token)) + + const { pendingState, ...rest } = entry.expected + expect(encode(result)).toEqual(rest) + expect(encodePending(state)).toEqual(pendingState) + }) + + test('the corpus is the one the recorded seed produces', () => { + expect(corpus.cases.length).toBeGreaterThan(0) + expect(corpus.seed).toMatchInlineSnapshot(`"0x5eed1eafc0ffee01"`) + }) +}) + +/** + * The same corpus, traced. + * + * Recording must not change what executes. An inspector runs on every + * instruction, so a bug there is a bug in execution, and the curated fixtures + * would not shape it. The claim is checked per case against the untraced result, + * which is itself already pinned to native evm2 above. + */ +describe('generated corpus, traced', () => { + for (const entry of corpus.cases) + test(`${entry.spec}: ${entry.name} executes identically while traced`, async () => { + if (entry.expected.handlerError) return + + const options = { + block: block(entry.block), + chainId: BigInt(entry.chainId), + specId: entry.spec as SpecId.SpecId, + } + const transaction = { + from: entry.signer as `0x${string}`, + serialized: entry.envelope as Hex.Hex, + } + + const plain = await Evm.create({ + ...options, + database: database(entry.accounts), + }) + const untraced = Evm.callTx(plain, transaction) + + // Steps included, so every hook the collector implements runs. + const traced = await Evm.create({ + ...options, + database: database(entry.accounts), + }) + Evm.setInspector(traced, { memory: true, stack: true, steps: true }) + const { trace, ...result } = Evm.callTx(traced, transaction) + + expect(untraced.trace).toBeUndefined() + expect(result).toEqual(untraced) + + // Guards the assertion above against passing because nothing was recorded. + expect(trace!.events.length).toBeGreaterThan(0) + }) +}) + +/** + * The same corpus, folded into block access lists. + * + * `oracle.rs` records what native evm2's builder folds for each case, on the + * committing path. This replays each through the artifact's public surface, so a + * divergence in the fold, the canonical ordering, or the wire format is a diff + * rather than two plausible lists. + */ +function encodeBal(bal: Bal.Bal | undefined): readonly BalEntry[] | null { + if (!bal) return null + return bal.accounts.map((account) => ({ + address: account.address.toLowerCase(), + balanceChanges: account.balanceChanges.map((change) => ({ + balance: Hex.fromNumber(change.balance), + index: Number(change.index), + })), + codeChanges: account.codeChanges.map((change) => ({ + code: change.code, + index: Number(change.index), + })), + nonceChanges: account.nonceChanges.map((change) => ({ + index: Number(change.index), + nonce: Number(change.nonce), + })), + storageChanges: account.storageChanges.map((slot) => ({ + changes: slot.changes.map((change) => ({ + index: Number(change.index), + value: Hex.fromNumber(change.value), + })), + slot: Hex.fromNumber(slot.slot), + })), + storageReads: account.storageReads.map((slot) => Hex.fromNumber(slot)), + })) +} + +describe('generated corpus, block access lists', () => { + for (const entry of corpus.cases) + test(`${entry.spec}: ${entry.name} folds the list native evm2 folds`, async () => { + const evm = await Evm.create({ + block: block(entry.block), + chainId: BigInt(entry.chainId), + database: database(entry.accounts), + specId: entry.spec as SpecId.SpecId, + }) + Evm.enableBalBuilder(evm) + // Transaction 0 records at index 1, matching the EIP-7928 layout. + Evm.setBalIndex(evm, 1n) + + const transaction = { + from: entry.signer as `0x${string}`, + serialized: entry.envelope as Hex.Hex, + } + + if (entry.expected.handlerError) { + expect(() => Evm.transact(evm, transaction)).toThrowError() + // A rejected transaction folds nothing. + expect(entry.bal).toBeNull() + return + } + + ExecutedTx.commit(Evm.transact(evm, transaction)) + expect(encodeBal(Evm.takeBal(evm))).toEqual(entry.bal) + }) +}) + +/** + * The same corpus, accumulated into block state. + * + * `oracle.rs` records what native evm2 gathers for each case on the committing + * path. This replays each through the artifact, so a divergence in the fold, the + * deterministic ordering, or the wire format is a diff rather than two plausible + * accumulators. + */ +function encodeBlockState(block: BlockState.BlockState): BlockEntry | null { + const account = (value: codec.ChangeAccount | undefined) => + value + ? { + balance: Hex.fromNumber(value.balance), + codeHash: value.codeHash, + nonce: Number(value.nonce), + } + : null + return { + accounts: block.accounts.map((entry) => ({ + address: entry.address.toLowerCase(), + current: account(entry.current), + original: account(entry.original), + })), + code: block.code.map((entry) => ({ + code: Hex.fromBytes(entry.code), + codeHash: entry.codeHash, + })), + storage: block.storage.map((entry) => ({ + address: entry.address.toLowerCase(), + current: Hex.fromNumber(entry.current), + key: Hex.fromNumber(entry.key), + original: Hex.fromNumber(entry.original), + })), + storageWipes: block.storageWipes.map((address) => address.toLowerCase()), + } +} + +describe('generated corpus, block state', () => { + for (const entry of corpus.cases) + test(`${entry.spec}: ${entry.name} accumulates what native evm2 accumulates`, async () => { + const evm = await Evm.create({ + block: block(entry.block), + chainId: BigInt(entry.chainId), + database: database(entry.accounts), + specId: entry.spec as SpecId.SpecId, + }) + const token = Evm.startBlockState(evm) + + const transaction = { + from: entry.signer as `0x${string}`, + serialized: entry.envelope as Hex.Hex, + } + + if (entry.expected.handlerError) { + expect(() => Evm.transact(evm, transaction)).toThrowError() + expect(entry.blockState).toBeNull() + return + } + + ExecutedTx.commitTo(Evm.transact(evm, transaction), token) + expect(encodeBlockState(Evm.takeBlockState(evm, token))).toEqual( + entry.blockState, + ) + }) +}) diff --git a/src/evm/_test/order.test.ts b/src/evm/_test/order.test.ts new file mode 100644 index 00000000..a6c155f5 --- /dev/null +++ b/src/evm/_test/order.test.ts @@ -0,0 +1,73 @@ +import { Address, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Database, Evm, ExecutedTx, StateChange } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +function evm() { + return Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: '0x60015f55' }, + }, + }), + }) +} +function transaction() { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + to: target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} +function recorder(into: string[]) { + return { + account: (c: { address: string }) => into.push(`account:${c.address}`), + accountRead: (c: { address: string }) => + into.push(`accountRead:${c.address}`), + bytecode: (h: string) => into.push(`bytecode:${h}`), + storage: (c: { address: string }) => into.push(`storage:${c.address}`), + storageRead: (c: { address: string }) => + into.push(`storageRead:${c.address}`), + storageWipe: (a: string) => into.push(`wipe:${a}`), + } +} + +describe('visit', () => { + test('replays the order a streamed resolution observes', async () => { + const streamed: string[] = [] + const a = await evm() + ExecutedTx.commitWith(Evm.transact(a, transaction()), recorder(streamed)) + + const visited: string[] = [] + const b = await evm() + const { pendingState } = ExecutedTx.detach(Evm.transact(b, transaction())) + StateChange.visit(pendingState, recorder(visited)) + + // The detached state keeps loaded-but-unchanged accounts that the live stream + // elides, which is evm2's own behavior on the two paths. Order is what has to + // agree: a sink applying storage before finalizing accounts sees one sequence. + expect(visited.slice(0, streamed.length)).toEqual(streamed) + expect( + visited.every( + (record, index) => + index < streamed.length || record.startsWith('accountRead:'), + ), + ).toBe(true) + }) +}) diff --git a/src/evm/_test/rpcDatabase.ts b/src/evm/_test/rpcDatabase.ts new file mode 100644 index 00000000..3a27868e --- /dev/null +++ b/src/evm/_test/rpcDatabase.ts @@ -0,0 +1,109 @@ +import { Bytes, Hash, Hex } from 'ox' +import { Database } from 'ox/evm' + +/** + * An asynchronous database over a JSON-RPC endpoint. + * + * A test helper rather than public API: evm2 ships only in-memory databases and + * has no RPC-backed counterpart, so `ox/evm` does not either. This is what a + * caller writes for themselves through + * {@link ox#Database.(fromAsync:function)}, and what the fork replay reads + * through. + * + * An account needs balance, nonce, and code, which go out as one batched request + * rather than three round trips. That matters here because the retry protocol + * discovers reads one at a time, so every request is a serialized round trip. + */ +export function rpcDatabase( + url: string, + options: { + blockNumber?: bigint | undefined + fetchFn?: typeof fetch | undefined + timeout?: number | undefined + } = {}, +): Database.Async { + const { blockNumber, fetchFn = fetch, timeout = 10_000 } = options + const block = + blockNumber === undefined ? 'latest' : Hex.fromNumber(blockNumber) + + let id = 0 + + /** Sends one request, or a batch, and returns results in order. */ + async function send( + calls: readonly { method: string; params: readonly unknown[] }[], + ) { + const body = calls.map((call) => ({ ...call, id: id++, jsonrpc: '2.0' })) + const response = await fetchFn(url, { + body: JSON.stringify(body.length === 1 ? body[0] : body), + headers: { 'Content-Type': 'application/json' }, + method: 'POST', + signal: AbortSignal.timeout(timeout), + }) + if (!response.ok) throw new Error(`${url} answered ${response.status}`) + + const parsed = await response.json() + // A single-element batch is sent unwrapped, so the reply is too. + const results = Array.isArray(parsed) ? parsed : [parsed] + + // A batch may answer out of order, so replies are matched by id. + const byId = new Map(results.map((entry) => [entry.id, entry])) + return body.map(({ id: sent, method }) => { + const entry = byId.get(sent) + if (!entry) throw new Error(`${url} did not answer ${method}`) + if (entry.error) throw new Error(`${method}: ${entry.error.message}`) + return entry.result + }) + } + + return Database.fromAsync({ + async getAccount(address) { + const [balance, nonce, code] = (await send([ + { method: 'eth_getBalance', params: [address, block] }, + { method: 'eth_getTransactionCount', params: [address, block] }, + { method: 'eth_getCode', params: [address, block] }, + ])) as [Hex.Hex, Hex.Hex, Hex.Hex] + + // A node answers zero for an account that does not exist and for an empty + // one that does, so both are reported absent. evm2 reads an absent account + // as balance and nonce zero, which is the same state. + const bytes = Bytes.fromHex(code) + if ( + Hex.toBigInt(balance) === 0n && + Hex.toBigInt(nonce) === 0n && + bytes.length === 0 + ) + return undefined + + return { + balance: Hex.toBigInt(balance), + ...(bytes.length ? { code: bytes } : {}), + codeHash: Hash.keccak256(code), + nonce: Hex.toBigInt(nonce), + } + }, + async getBlockHash(number) { + const [header] = (await send([ + { + method: 'eth_getBlockByNumber', + params: [Hex.fromNumber(number), false], + }, + ])) as [{ hash: Hex.Hex } | null] + if (!header) throw new Error(`no block ${number}`) + return header.hash + }, + async getCodeByHash() { + // Nodes key code by address, and `getAccount` supplies it inline, so the + // engine never reaches this. + throw new Error('this source cannot look code up by hash') + }, + async getStorage(address, key) { + const [value] = (await send([ + { + method: 'eth_getStorageAt', + params: [address, Hex.fromNumber(key), block], + }, + ])) as [Hex.Hex] + return Hex.toBigInt(value) + }, + }) +} diff --git a/src/evm/_test/sinkGuards.test.ts b/src/evm/_test/sinkGuards.test.ts new file mode 100644 index 00000000..ffd33a7b --- /dev/null +++ b/src/evm/_test/sinkGuards.test.ts @@ -0,0 +1,164 @@ +import { Address, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Database, Evm, ExecutedTx, PendingState, StateChange } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +/** + * Guards around sinks and caller-held state. + * + * A pending state is a value the caller owns, so what it hands out must not be + * shared with what it holds, and every view of it has to agree. + */ + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +function evm() { + return Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: '0x60015f55' }, + }, + }), + }) +} + +function transaction() { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + to: target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +describe('tee', () => { + test('behavior: an asynchronous branch is refused, not hidden', async () => { + const instance = await evm() + const executed = Evm.transact(instance, transaction()) + + // A direct async sink is refused. Behind a tee it must be refused too, or + // the transaction resolves before a later rejection can be seen. + expect(() => + ExecutedTx.commitWith( + executed, + StateChange.tee(StateChange.noop(), { + account: async () => {}, + }), + ), + ).toThrowError() + }) +}) + +describe('accountInfo', () => { + test('behavior: bytecode handed out is not the state’s own', async () => { + /** Initcode returning PUSH1 42 PUSH0 MSTORE PUSH1 32 PUSH0 RETURN. */ + const initcode = '0x67602a5f5260205ff35f5260086018f3' as const + const instance = await evm() + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + data: initcode, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + const executed = Evm.transact(instance, { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + }) + const deployed = ExecutedTx.result(executed).createdAddress! + const { pendingState } = ExecutedTx.detach(executed) + + const first = PendingState.accountInfo(pendingState, deployed) + expect(first?.code).toBeDefined() + first?.code?.fill(0) + + // Zeroing what was handed out must not change what the state holds. + expect(PendingState.accountInfo(pendingState, deployed)?.code).not.toEqual( + first?.code, + ) + }) +}) + +describe('insertStorage', () => { + test('behavior: an edit is visible to both views of the state', async () => { + const instance = await evm() + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + + const edited = PendingState.insertStorage(pendingState, { + address: target, + current: 42n, + key: 0n, + original: 0n, + }) + + // `visit` reads the record stream, `commitSource` the grouped arrays. An + // edit that reached only one would stream differently than it applies. + const streamed: bigint[] = [] + StateChange.visit(edited, { + ...StateChange.noop(), + storage: (change) => { + if (change.address.toLowerCase() === target) + streamed.push(change.current) + }, + }) + expect(streamed).toContain(42n) + }) +}) + +describe('insertAccount', () => { + test('behavior: an edit keeps its place in the stream', async () => { + const instance = await evm() + const { pendingState } = ExecutedTx.detach( + Evm.transact(instance, transaction()), + ) + + const before: string[] = [] + StateChange.visit(pendingState, { + ...StateChange.noop(), + account: (change) => before.push(`account:${change.address}`), + accountRead: (change) => before.push(`accountRead:${change.address}`), + storage: (change) => before.push(`storage:${change.address}`), + storageRead: (change) => before.push(`storageRead:${change.address}`), + }) + + const account = PendingState.accountInfo(pendingState, sender)! + const edited = PendingState.insertAccount(pendingState, { + address: sender, + current: { ...account, nonce: 9n }, + original: account, + }) + + const after: string[] = [] + StateChange.visit(edited, { + ...StateChange.noop(), + account: (change) => after.push(`account:${change.address}`), + accountRead: (change) => after.push(`accountRead:${change.address}`), + storage: (change) => after.push(`storage:${change.address}`), + storageRead: (change) => after.push(`storageRead:${change.address}`), + }) + + // Same sequence: an edit replaces a record where it sat, rather than moving + // it past whatever evm2 emitted afterwards. + expect(after).toEqual(before) + }) +}) diff --git a/src/evm/_test/snapshot.test.ts b/src/evm/_test/snapshot.test.ts new file mode 100644 index 00000000..28f21861 --- /dev/null +++ b/src/evm/_test/snapshot.test.ts @@ -0,0 +1,176 @@ +import { Address, Secp256k1, TxEnvelopeLegacy } from 'ox' +import { Bytes } from 'ox' +import { Database, Evm, ExecutedTx, PendingState, StateChange } from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +/** + * Inputs are read when an operation is submitted, not when it runs. + * + * An asynchronous EVM queues every operation, so a closure reading `options.*` + * later sees whatever the caller did to that object in the meantime. evm2 takes + * values, so the binding has to as well. + */ + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) +const target = '0x00000000000000000000000000000000000000c0' as const + +function asyncEvm() { + const memory = Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [target]: { code: '0x60015f55' }, + }, + }) + return Evm.create({ + database: Database.fromAsync({ + getAccount: async (address) => memory.getAccount(address), + getBlockHash: async (number) => memory.getBlockHash(number), + getCodeByHash: async (codeHash) => memory.getCodeByHash(codeHash), + getStorage: async (address, key) => memory.getStorage(address, key), + }), + }) +} + +function transaction() { + const envelope = TxEnvelopeLegacy.from({ + chainId: 1, + gas: 200_000n, + gasPrice: 0n, + nonce: 0n, + to: target, + value: 0n, + }) + const signature = Secp256k1.sign({ + payload: TxEnvelopeLegacy.getSignPayload(envelope), + privateKey, + }) + return { + from: sender, + serialized: TxEnvelopeLegacy.serialize(envelope, { signature }), + } +} + +describe('setInspector', () => { + test('behavior: an inspector records what was submitted, not what the object became', async () => { + const evm = await asyncEvm() + + const options = { steps: false } + const queued = Evm.setInspector(evm, options) + // Mutated after submitting, before the queue drains. + options.steps = true + await queued + + const result = await Evm.callTx(evm, transaction()) + // Submitted with steps off, so no step events regardless of the mutation. + expect(result.trace?.events.some((event) => event.kind === 'step')).toBe( + false, + ) + }) +}) + +describe('setBlock', () => { + test('behavior: a block is applied as submitted', async () => { + const evm = await asyncEvm() + + const block = { number: 5n } + const queued = Evm.setBlock(evm, block) + block.number = 99n + await queued + + // NUMBER returned by the contract would be the observable; the config the + // EVM holds is the direct one. + expect(evm['~config'].block.number).toBe(5n) + }) +}) + +describe('setExecutionConfig', () => { + test('behavior: a queued spec is not undone by a later setter omitting it', async () => { + const evm = await asyncEvm() + + // Two setters in one tick: the second omits `specId`, which is documented as + // leaving it unchanged rather than reverting to what it was at submission. + const first = Evm.setExecutionConfig(evm, { specId: 'cancun' }) + const second = Evm.setExecutionConfig(evm, { + version: { maxCodeSize: 1000n }, + }) + await Promise.all([first, second]) + + expect(evm['~config'].specId).toBe('cancun') + }) +}) + +describe('systemCall', () => { + test('behavior: a system call executes what was submitted', async () => { + const evm = await asyncEvm() + + const options: { address: Address.Address; data: '0x01' } = { + address: target, + data: '0x01', + } + const queued = Evm.systemCall(evm, options) + options.address = '0x00000000000000000000000000000000000000ff' + const executed = await queued + + // Where the write landed is the observable: a call to the mutated, codeless + // address also succeeds, so success alone proves nothing. + const { pendingState } = ExecutedTx.detach(executed) + const wrote: string[] = [] + StateChange.visit(pendingState, { + ...StateChange.noop(), + storage: (change) => wrote.push(change.address.toLowerCase()), + }) + expect(wrote).toContain(target) + }) +}) + +describe('callTx', () => { + test('behavior: a serialized envelope is copied, not held', async () => { + const evm = await asyncEvm() + const submitted = transaction() + const bytes = Bytes.fromHex(submitted.serialized) + + const queued = Evm.callTx(evm, { from: submitted.from, serialized: bytes }) + // Zeroed after submitting: `Bytes.from` hands back the same array, so + // without a copy this would change the transaction that runs. + bytes.fill(0) + + expect((await queued).status).toBe(true) + }) + + test('behavior: an encoding failure rejects rather than throwing', async () => { + const evm = await asyncEvm() + + // Encoding happens before the queue now, but an asynchronous operation + // promises a rejection, so a caller catching one has to see this. + await expect( + Evm.callTx(evm, { from: sender, gas: -1n } as never), + ).rejects.toThrowError() + }) +}) + +describe('commitSource', () => { + test('behavior: state is applied as submitted', async () => { + const evm = await asyncEvm() + const executed = await Evm.transact(evm, transaction()) + const { pendingState } = ExecutedTx.detach(executed) + + const account = PendingState.accountInfo(pendingState, sender)! + const edited = PendingState.insertAccount(pendingState, { + address: sender, + current: { ...account, nonce: 9n }, + original: account, + }) + + const queued = Evm.commitSource(evm, edited) + // Mutated after submitting: the entry objects are the caller's. + const held = PendingState.changes(edited).accounts.find( + (change) => change.address.toLowerCase() === sender.toLowerCase(), + ) + if (held?.current) (held.current as { nonce: bigint }).nonce = 99n + await queued + + expect((await Evm.readAccountInfo(evm, sender))?.nonce).toBe(9n) + }) +}) diff --git a/src/evm/_test/systemCall.test.ts b/src/evm/_test/systemCall.test.ts new file mode 100644 index 00000000..7a4724ce --- /dev/null +++ b/src/evm/_test/systemCall.test.ts @@ -0,0 +1,168 @@ +import { Address, Hex, Secp256k1 } from 'ox' +import { + Database, + Evm, + ExecutedTx, + PendingState, + StateChange, + System, +} from 'ox/evm' +import { describe, expect, test } from 'vp/test' + +/** + * Protocol system calls. + * + * A system call bypasses the validation a transaction goes through, so the + * properties worth testing are what it skips and that its handle resolves the + * same way. + */ + +const privateKey = + '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' +const sender = Address.fromPublicKey(Secp256k1.getPublicKey({ privateKey })) + +/** CALLDATALOAD(0), PUSH0, SSTORE: stores the first calldata word in slot 0. */ +const code = '0x5f355f55' as const + +function evm() { + return Evm.create({ + database: Database.fromMemory({ + accounts: { + [sender.toLowerCase()]: { balance: 10n ** 18n }, + [System.historyStorage]: { code }, + }, + }), + }) +} + +const data = Hex.fromNumber(7, { size: 32 }) + +/** Collects the storage changes a pending state carries. */ +function storage(state: PendingState.PendingState) { + const changes: StateChange.Storage[] = [] + StateChange.visit(state, { + ...StateChange.noop(), + storage: (change) => changes.push(change), + }) + return changes +} + +describe('systemCall', () => { + test('behavior: the call runs and writes what it was given', async () => { + const instance = await evm() + + const executed = Evm.systemCall(instance, { + address: System.historyStorage, + data, + }) + expect(ExecutedTx.result(executed).status).toBe(true) + + // Detaching shows the write rather than inferring it from a later read. + const { pendingState } = ExecutedTx.detach(executed) + expect( + storage(pendingState).some( + (change) => + change.address.toLowerCase() === System.historyStorage && + change.key === 0n && + change.current === 7n, + ), + ).toBe(true) + }) + + test('behavior: no sender balance is needed, and no nonce moves', async () => { + // An EVM with no funded account at all: a transaction could not run here. + const instance = await Evm.create({ + database: Database.fromMemory({ + accounts: { [System.historyStorage]: { code } }, + }), + }) + + const executed = Evm.systemCall(instance, { + address: System.historyStorage, + data, + }) + const { pendingState } = ExecutedTx.detach(executed) + + // The system caller is not charged and its nonce is untouched, so it does + // not appear as a changed account the way a transaction sender would. + const caller = PendingState.accountInfo(pendingState, System.address) + expect(caller?.nonce ?? 0n).toBe(0n) + }) + + test('behavior: the handle resolves through the block accumulator', async () => { + const instance = await evm() + const block = Evm.startBlockState(instance) + + ExecutedTx.commitTo( + Evm.systemCall(instance, { address: System.historyStorage, data }), + block, + ) + + const state = Evm.takeBlockState(instance, block) + // A block records its system calls alongside its transactions. + expect( + state.storage.some( + (entry) => + entry.address.toLowerCase() === System.historyStorage && + entry.current === 7n, + ), + ).toBe(true) + }) + + test('behavior: discarding leaves nothing behind', async () => { + const instance = await evm() + ExecutedTx.discard( + Evm.systemCall(instance, { address: System.historyStorage, data }), + ) + + // A repeat sees slot 0 still at zero, so the discarded write did not land. + const { pendingState } = ExecutedTx.detach( + Evm.systemCall(instance, { address: System.historyStorage, data }), + ) + const slot = storage(pendingState).find( + (change) => change.address.toLowerCase() === System.historyStorage, + ) + expect(slot?.original).toBe(0n) + expect(slot?.current).toBe(7n) + }) + + test('behavior: calling an address with no code succeeds without effect', async () => { + const instance = await evm() + + // evm2 does not deploy system contracts, so an empty address just returns. + const executed = Evm.systemCall(instance, { + address: System.beaconRoots, + data, + }) + expect(ExecutedTx.result(executed).status).toBe(true) + ExecutedTx.discard(executed) + }) + + test('behavior: a system call is not traced', async () => { + const instance = await evm() + Evm.setInspector(instance, {}) + + const executed = Evm.systemCall(instance, { + address: System.historyStorage, + data, + }) + + // evm2 removes its inspector for the duration of a system call, and the + // collector lives outside the engine, so recording was on and captured + // nothing. An empty trace says that; an absent one would say it was off. + expect(ExecutedTx.result(executed).trace).toEqual({ + events: [], + truncated: false, + }) + ExecutedTx.discard(executed) + }) +}) + +describe('addresses', () => { + test('behavior: every address is listed once and normalized', () => { + expect(System.addresses.length).toBe(6) + expect(new Set(System.addresses).size).toBe(6) + for (const address of System.addresses) + expect(address).toBe(address.toLowerCase()) + }) +}) diff --git a/src/evm/index.ts b/src/evm/index.ts new file mode 100644 index 00000000..317033a5 --- /dev/null +++ b/src/evm/index.ts @@ -0,0 +1,118 @@ +/** @entrypointCategory EVM */ +// biome-ignore lint/complexity/noUselessEmptyExport: tsdoc + +/** + * An EVM, backed by [`alloy-rs/evm2`](https://github.com/alloy-rs/evm2) + * compiled to WebAssembly. + * + * Execution, gas accounting, transaction validation, precompiles, and fork + * behavior come from the engine. Ox supplies the TypeScript representation of + * its API and the runtime packaging. + * + * Creation is asynchronous because WebAssembly must be compiled asynchronously. + * Execution is synchronous, as it is natively. + * + * @example + * ```ts twoslash + * // @noErrors + * import { Database, Evm, TxResult } from 'ox/evm' + * + * const evm = await Evm.create({ + * database: Database.fromMemory({ + * accounts: { + * '0x0000000000000000000000000000000000000001': { + * balance: 1n + * } + * } + * }) + * }) + * + * const result = Evm.callTx(evm, { + * from: '0x0000000000000000000000000000000000000001', + * gas: 100_000n, + * to: '0x0000000000000000000000000000000000000002', + * value: 1n + * }) + * TxResult.txGasUsed(result) + * ``` + * + * @category Execution + */ +export * as Evm from './Evm.js' + +/** + * State an EVM reads through. + * + * @category Execution + */ +export * as Database from './Database.js' + +/** + * Executed transactions awaiting a decision on their state. + * + * @category Execution + */ +export * as ExecutedTx from './ExecutedTx.js' + +/** + * Block access lists. + * + * @category Execution + */ +export * as Bal from './Bal.js' + +/** + * Recorded executions. + * + * @category Execution + */ +export * as Inspector from './Inspector.js' + +/** + * State a block's transactions changed. + * + * @category Execution + */ +export * as BlockState from './BlockState.js' + +/** + * Protocol system-call addresses and limits. + * + * @category Execution + */ +export * as System from './System.js' + +/** + * A transaction's state changes, owned by the caller. + * + * @category Execution + */ +export * as PendingState from './PendingState.js' + +/** + * Streaming a transaction's state changes. + * + * @category Execution + */ +export * as StateChange from './StateChange.js' + +/** + * Transaction input shapes. + * + * @category Execution + */ +export * as Ethereum from './Ethereum.js' + +/** + * Ethereum specification identifiers. + * + * @category Execution + */ +export * as SpecId from './SpecId.js' + +/** + * Transaction results, stop reasons, and the gas each reports. + * + * @category Execution + */ +export * as TxResult from './TxResult.js' diff --git a/src/evm/internal/_test/async.test.ts b/src/evm/internal/_test/async.test.ts new file mode 100644 index 00000000..26c00da5 --- /dev/null +++ b/src/evm/internal/_test/async.test.ts @@ -0,0 +1,77 @@ +import { describe, expect, test } from 'vp/test' + +import * as async from '../async.js' + +/** + * The driver's ordering guarantee. + * + * Whether two concurrent operations interleave badly through a public entry point + * depends on timing, so the property is asserted where it lives: operations run + * one after another, never overlapping. + */ + +function driver() { + return async.driver({ + getAccount: async () => undefined, + getBlockHash: async () => `0x${'00'.repeat(32)}`, + getCodeByHash: async () => new Uint8Array(), + getStorage: async () => 0n, + }) +} + +const tick = () => new Promise((resolve) => setTimeout(resolve, 0)) + +describe('serialize', () => { + test('behavior: queued operations never overlap', async () => { + const source = driver() + const order: string[] = [] + + await Promise.all([ + source.serialize(async () => { + order.push('a:start') + await tick() + order.push('a:end') + }), + source.serialize(async () => { + order.push('b:start') + await tick() + order.push('b:end') + }), + ]) + + // Unserialized, both starts land before either end. + expect(order).toEqual(['a:start', 'a:end', 'b:start', 'b:end']) + }) + + test('behavior: a rejection does not poison the queue', async () => { + const source = driver() + const order: string[] = [] + + const [first, second] = await Promise.allSettled([ + source.serialize(async () => { + order.push('a') + throw new Error('failed') + }), + source.serialize(async () => { + order.push('b') + return 'ok' + }), + ]) + + expect(first.status).toBe('rejected') + expect(second).toEqual({ status: 'fulfilled', value: 'ok' }) + expect(order).toEqual(['a', 'b']) + }) + + test('behavior: results reach the operation that asked for them', async () => { + const source = driver() + + const results = await Promise.all([ + source.serialize(async () => 1), + source.serialize(async () => 2), + source.serialize(async () => 3), + ]) + + expect(results).toEqual([1, 2, 3]) + }) +}) diff --git a/src/evm/internal/_test/codec.test.ts b/src/evm/internal/_test/codec.test.ts new file mode 100644 index 00000000..c91f6da8 --- /dev/null +++ b/src/evm/internal/_test/codec.test.ts @@ -0,0 +1,101 @@ +import { Bytes } from 'ox' +import { describe, expect, test } from 'vp/test' + +import * as codec from '../codec.js' + +/** + * Builds an account-info record the way `wasm/evm2/src/state.rs` writes it: + * a presence flag, then `balance` as a 32-byte big-endian word, `nonce` as a + * little-endian `u64`, then the 32-byte code hash. + */ +function accountInfo(options: { + balance: bigint + codeHash: string + nonce: bigint +}) { + const balance = new Uint8Array(32) + let rest = options.balance + for (let index = 31; index >= 0; index--) { + balance[index] = Number(rest & 0xffn) + rest >>= 8n + } + const nonce = new Uint8Array(8) + let value = options.nonce + for (let index = 0; index < 8; index++) { + nonce[index] = Number(value & 0xffn) + value >>= 8n + } + return Bytes.concat( + Uint8Array.from([1]), + balance, + nonce, + Bytes.fromHex(options.codeHash as `0x${string}`), + ) +} + +describe('decodeChanges', () => { + test('behavior: reads account fields in the order the adapter writes them', () => { + const address = '0x00000000000000000000000000000000000000c0' as const + const codeHash = `0x${'ab'.repeat(32)}` as const + + const payload = Bytes.concat( + Uint8Array.from([codec.record.account]), + Bytes.fromHex(address), + // Original absent, so the presence flag stands alone. + Uint8Array.from([0]), + accountInfo({ balance: 10n ** 18n, codeHash, nonce: 7n }), + // created, selfdestructed + Uint8Array.from([1, 0]), + Uint8Array.from([codec.record.end]), + ) + + // A field-order slip decodes the nonce into the hash and the hash tail into + // the nonce, so these three assertions are what pin the two halves together. + expect(codec.decodeChanges(payload)).toMatchInlineSnapshot(` + { + "accountReads": [], + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "created": true, + "current": { + "balance": 1000000000000000000n, + "codeHash": "0xabababababababababababababababababababababababababababababababab", + "nonce": 7n, + }, + "original": undefined, + "selfdestructed": false, + }, + ], + "bytecode": [], + "records": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "created": true, + "current": { + "balance": 1000000000000000000n, + "codeHash": "0xabababababababababababababababababababababababababababababababab", + "nonce": 7n, + }, + "kind": "account", + "original": undefined, + "selfdestructed": false, + }, + ], + "storage": [], + "storageReads": [], + "storageWipes": [], + } + `) + }) + + test('behavior: an unknown record tag is rejected', () => { + expect(() => codec.decodeChanges(Uint8Array.from([0x7f]))) + .toThrowErrorMatchingInlineSnapshot(` + [Evm.DecodeError: The evm2 adapter returned a response this ABI version cannot read. + + unknown change record 127 + Expected ABI version 1.] + `) + }) +}) diff --git a/src/evm/internal/async.ts b/src/evm/internal/async.ts new file mode 100644 index 00000000..7ff4385d --- /dev/null +++ b/src/evm/internal/async.ts @@ -0,0 +1,249 @@ +import type * as Address from '../../core/Address.js' +import type * as Bytes from '../../core/Bytes.js' +import * as Errors from '../../core/Errors.js' +import type * as Hex from '../../core/Hex.js' +import * as Database from './database.js' + +/** + * Drives an asynchronous source through synchronous engine reads. + * + * evm2 reads through a synchronous trait, and its asynchronous form needs native + * fiber stacks that WebAssembly has no equivalent for. So the engine is never + * suspended: a read the cache cannot serve abandons the attempt, the caller + * awaits the source, and the operation repeats. Execution is deterministic, so + * repeating with more cached state converges. + * + * The cache lives here rather than in the adapter, which keeps a cache hit a + * plain synchronous lookup and means the source sees each distinct read once, + * however many attempts an operation takes. + * + * @internal + */ +export type Driver = { + /** Reads the engine performs, serving the cache and recording misses. */ + database: Database.Database + /** + * Awaits the recorded read and caches it. + * + * @returns Whether a read was outstanding. `false` means the attempt failed + * for some other reason and repeating it would not help. + */ + settle(): Promise + /** + * Runs `operation` after every operation queued before it. + * + * evm2 owns one EVM exclusively. Awaiting a source hands control back to the + * caller mid-operation, so without this a second operation could execute, park + * a transaction, or commit state while the first is still replaying. + */ + serialize(operation: () => Promise): Promise +} + +/** + * An asynchronous source, marked so the binding can tell it from a synchronous + * one without calling a read to find out. + * + * @internal + */ +export type Marked = Async & { + /** @internal */ + readonly '~async': true +} + +/** Whether a database reads asynchronously. @internal */ +export function isAsync(database: object): database is Marked { + return '~async' in database && database['~async'] === true +} + +/** Creates a driver over `source`. @internal */ +export function driver(source: Async): Driver { + type Request = + | { address: Address.Address; kind: 'account' } + | { address: Address.Address; key: bigint; kind: 'storage' } + | { codeHash: Hex.Hex; kind: 'code' } + | { kind: 'blockHash'; number: bigint } + + const accounts = new Map() + const blockHashes = new Map() + const code = new Map() + const storage = new Map() + + // The read that abandoned the last attempt. One per attempt, because evm2 + // unwinds on the first miss. + let request: Request | undefined + + /** Records `pending` and abandons the attempt. */ + function miss(value: Request): never { + request = value + throw new Database.PendingError() + } + + // Tail of the operation queue. Rejections are absorbed so one failed + // operation does not fail the next. + let queue: Promise = Promise.resolve() + + return { + database: { + getAccount(address) { + const key = address.toLowerCase() + if (accounts.has(key)) return accounts.get(key) + return miss({ address, kind: 'account' }) + }, + getBlockHash(number) { + const hash = blockHashes.get(number) + if (hash) return hash + return miss({ kind: 'blockHash', number }) + }, + getCodeByHash(codeHash) { + const key = codeHash.toLowerCase() + const bytes = code.get(key) + if (bytes) return bytes + return miss({ codeHash, kind: 'code' }) + }, + getStorage(address, key) { + const slot = `${address.toLowerCase()}:${key}` + const value = storage.get(slot) + if (value !== undefined) return value + return miss({ address, key, kind: 'storage' }) + }, + }, + serialize(operation) { + const next = queue.then(operation, operation) + queue = next.catch(() => {}) + return next + }, + async settle() { + const outstanding = request + if (!outstanding) return false + request = undefined + + // A source that throws propagates: the read failed rather than pended, and + // repeating the operation would ask for it again. + if (outstanding.kind === 'account') + accounts.set( + outstanding.address.toLowerCase(), + // Copied, not held: the engine has already yielded, so a source reusing + // its buffer could change what the replay reads. + account(await source.getAccount(outstanding.address)), + ) + else if (outstanding.kind === 'blockHash') + blockHashes.set( + outstanding.number, + await source.getBlockHash(outstanding.number), + ) + else if (outstanding.kind === 'code') + code.set( + outstanding.codeHash.toLowerCase(), + Uint8Array.from(await source.getCodeByHash(outstanding.codeHash)), + ) + else + storage.set( + `${outstanding.address.toLowerCase()}:${outstanding.key}`, + await source.getStorage(outstanding.address, outstanding.key), + ) + return true + }, + } +} + +/** Copies an account, so a source reusing its objects cannot change a cached read. */ +function account( + value: Database.Account | undefined, +): Database.Account | undefined { + if (!value) return undefined + return { + ...value, + ...(value.code ? { code: Uint8Array.from(value.code) } : {}), + } +} + +/** + * State an EVM reads through, asynchronously. + * + * The same reads {@link ox#Database.(Database:type)} serves, returning promises. + * A source backed by a node or a database implements this; the binding turns it + * into the synchronous reads the engine performs. + */ +export type Async = { + /** Reads an account, or `undefined` when it does not exist. */ + getAccount( + address: Address.Address, + ): Promise | Database.Account | undefined + /** Reads a historical block hash. */ + getBlockHash(number: bigint): Promise | Hex.Hex + /** Reads code by its hash. */ + getCodeByHash(codeHash: Hex.Hex): Promise | Bytes.Bytes + /** Reads a persistent storage slot, or `0n` when unset. */ + getStorage(address: Address.Address, key: bigint): Promise | bigint +} + +/** + * Runs `attempt` until no read is outstanding. + * + * Each attempt either completes or abandons on one unfetched read, so the loop + * makes progress: every pass caches one more value than the last. + * + * @internal + */ +export async function until( + driver: Driver, + attempt: () => result, +): Promise { + // Unbounded by count: `settle` reports whether a read was outstanding, so a + // source that answers nothing trips on the next pass. A counter would only add + // a ceiling on how much valid work an execution may do, which the synchronous + // path and native evm2 do not have. + type Outcome = { kind: 'pending' } | { kind: 'value'; value: result } + + for (let reads = 0; ; reads++) { + const outcome: Outcome = (() => { + try { + return { kind: 'value', value: attempt() } + } catch (error) { + if (error instanceof PendingError) return { kind: 'pending' } + throw error + } + })() + if (outcome.kind === 'value') return outcome.value + if (!(await driver.settle())) throw new StalledError({ reads }) + } +} + +/** + * Thrown when an engine operation reports a read the driver cannot resolve. + * + * Reaching this means the source answered a read and the engine asked for the + * same one again, which no correct source does. + */ +export class StalledError extends Errors.BaseError { + override readonly name = 'Evm.StalledError' + + constructor({ reads }: { reads: number }) { + super('An asynchronous state read made no progress.', { + metaMessages: [ + `Reads served: ${reads}`, + 'The source reported a value the engine then asked for again.', + ], + }) + } +} + +/** + * Thrown by the engine when an operation stopped on an unfetched read. + * + * Never surfaces to a caller: the driver catches it, awaits the source, and + * repeats the operation. + * + * @internal + */ +export class PendingError extends Errors.BaseError { + override readonly name = 'Evm.PendingError' + + constructor() { + super('An operation needs state the source has not fetched.', { + metaMessages: [ + 'This EVM reads through an asynchronous database; await the operation.', + ], + }) + } +} diff --git a/src/evm/internal/bindings.ts b/src/evm/internal/bindings.ts new file mode 100644 index 00000000..5247712d --- /dev/null +++ b/src/evm/internal/bindings.ts @@ -0,0 +1,246 @@ +import type * as Bytes from '../../core/Bytes.js' +import * as Errors from '../../core/Errors.js' +import * as instantiate from '../../wasm/internal/instantiate.js' +import { wasmBase64 } from '../../wasm/internal/evm2.wasm.js' +import * as codec from './codec.js' +import * as Database from './database.js' + +/** + * Loader and raw call boundary for the evm2 WASM adapter. + * + * Compilation is memoized per realm and instantiation is per engine, matching + * evm2's owned `Evm`. No view over linear memory outlives a call: growing + * memory detaches the previous `ArrayBuffer`. + * + * @internal + */ + +/** Exports the adapter publishes. */ +type Exports = { + memory: WebAssembly.Memory + ox_abi_version(): number + ox_alloc(length: number): number + ox_call(length: number): number + ox_reset(): void +} + +/** + * One instantiated adapter, holding one evm2 engine. + * + * A trap is unrecoverable: the adapter panics only on its own bugs, and its + * handler traps rather than unwinding. Discard the instance and create another. + */ +export type Instance = { + /** + * Sends `request` and returns the response status with a copy of its payload. + * + * @throws {@link ReentrancyError} when a host read reentered the engine. + * @throws the failure a host read recorded, once execution has unwound. + */ + call(request: Bytes.Bytes): { payload: Bytes.Bytes; status: number } + /** Releases the request and response buffers. */ + reset(): void + /** + * Runs `send` with `handler` receiving each record the adapter streams. + * + * @throws the failure `handler` raised, after evm2 has discarded. + */ + withSink( + handler: (record: codec.Change) => void, + send: () => result, + ): result +} + +/** Compiles the adapter once per realm. */ +export const compile = /*#__PURE__*/ instantiate.memoize(() => + instantiate.compile(wasmBase64), +) + +/** + * Instantiates the adapter over `database`. + * + * @throws {@link VersionError} when the artifact implements another ABI version. + */ +export async function instantiateWith( + database: Database.Database, +): Promise { + const host = Database.host(database) + const compiled = await compile() + + // The sink shares the database's import namespace: both are host callbacks the + // adapter reaches during one operation. + let sink: ((record: codec.Change) => void) | undefined + let failure: Error | undefined + const imports = { + ...host.imports, + ox_evm2: { + ...(host.imports.ox_evm2 as WebAssembly.ModuleImports), + sink_record(pointer: number, length: number) { + try { + if (!sink) throw new UnexpectedSinkError() + const bytes = new Uint8Array(exports.memory.buffer, pointer, length) + sink(codec.decodeRecord(bytes.slice())) + return 0 + } catch (error) { + // Reporting failure makes evm2 discard the transaction, and the error + // is rethrown afterwards so the caller sees its own throw. + failure ??= error as Error + return 1 + } + }, + }, + } + + const instance = await WebAssembly.instantiate(compiled, imports) + const exports = instance.exports as Exports + host.attach(exports.memory) + + const abi = exports.ox_abi_version() + if (abi !== codec.version) throw new VersionError({ actual: abi }) + + let trapped: TrapError | undefined + + return { + /** Runs `send` with `handler` receiving each streamed record. */ + withSink(handler, send) { + sink = handler + failure = undefined + try { + const result = send() + if (failure) throw failure + return result + } catch (error) { + // A sink that threw already made the adapter discard, so the caller's own + // error is the useful one; the sink status is derived from it. + throw failure ?? error + } finally { + sink = undefined + failure = undefined + } + }, + call(request) { + if (trapped) throw trapped + if (request.length > codec.maxRequest) + throw new RequestTooLargeError({ length: request.length }) + + // A trap leaves the adapter's running flag set and its heap suspect, so the + // instance is remembered as dead rather than misreported as reentrant on + // the next call. Allocation traps the same way, so it takes the same path. + const fatal = (run: () => value): value => { + try { + return run() + } catch (error) { + trapped = new TrapError({ cause: error as Error }) + throw trapped + } + } + + const pointer = fatal(() => exports.ox_alloc(request.length)) + if (pointer === 0) throw new ReentrancyError() + new Uint8Array(exports.memory.buffer).set(request, pointer) + + const response = fatal(() => exports.ox_call(request.length)) + const { payload, status } = read(exports.memory, response) + + // A recorded host failure is the real cause, so it wins over the status + // evm2 produced while unwinding. + const failure = host.takeFailure() + if (failure) throw failure + + return { payload, status } + }, + reset() { + exports.ox_reset() + }, + } +} + +/** Reads a response header and copies its payload out of linear memory. */ +function read(memory: WebAssembly.Memory, pointer: number) { + const bytes = new Uint8Array(memory.buffer) + if (pointer <= 0 || pointer + codec.headerSize > bytes.length) + throw new codec.DecodeError( + `response header at ${pointer} is outside the engine's ${bytes.length} bytes of memory`, + ) + + const header = new DataView(memory.buffer, pointer, codec.headerSize) + if (header.getUint32(0, true) !== codec.magic) + throw new codec.DecodeError('response is missing the ABI magic bytes') + const abi = header.getUint16(4, true) + if (abi !== codec.version) throw new VersionError({ actual: abi }) + + const status = header.getUint16(6, true) + const length = header.getUint32(12, true) + const start = pointer + codec.headerSize + if (start + length > bytes.length) + throw new codec.DecodeError( + `response declared ${length} payload bytes at ${start}, past the engine's ${bytes.length} bytes of memory`, + ) + + // Copied, not viewed: the next call can grow memory and detach the buffer. + return { payload: bytes.slice(start, start + length), status } +} + +/** Thrown when the compiled artifact implements a different ABI version. */ +export class VersionError extends Errors.BaseError { + override readonly name = 'Evm.VersionError' + + constructor({ actual }: { actual: number }) { + super('The evm2 adapter implements a different ABI version.', { + metaMessages: [`Expected: ${codec.version}`, `Received: ${actual}`], + }) + } +} + +/** Thrown when a request exceeds what the adapter accepts. */ +export class RequestTooLargeError extends Errors.BaseError { + override readonly name = 'Evm.RequestTooLargeError' + + constructor({ length }: { length: number }) { + super('The request is larger than the evm2 adapter accepts.', { + metaMessages: [ + `Requested: ${length} bytes`, + `Maximum: ${codec.maxRequest} bytes`, + ], + }) + } +} + +/** + * Thrown when the engine trapped. + * + * A trap is unrecoverable: the panic aborted mid-operation, so the instance is + * dead and every later call fails with the same error. Create a new EVM. + */ +export class TrapError extends Errors.BaseError { + override readonly name = 'Evm.TrapError' + + constructor(options: { cause: Error }) { + super('The evm2 engine trapped and this EVM is no longer usable.', { + cause: options.cause, + metaMessages: ['Create a new EVM; this instance cannot recover.'], + }) + } +} + +/** Thrown when the adapter streamed a record with no sink registered. */ +export class UnexpectedSinkError extends Errors.BaseError { + override readonly name = 'Evm.UnexpectedSinkError' + + constructor() { + super('The engine streamed a state change with no sink registered.') + } +} + +/** Thrown when a host read reenters the engine that is calling it. */ +export class ReentrancyError extends Errors.BaseError { + override readonly name = 'Evm.ReentrancyError' + + constructor() { + super('The evm2 engine is already executing.', { + metaMessages: [ + 'A state read cannot execute a transaction on the engine that is reading it.', + ], + }) + } +} diff --git a/src/evm/internal/codec.ts b/src/evm/internal/codec.ts new file mode 100644 index 00000000..92079eaa --- /dev/null +++ b/src/evm/internal/codec.ts @@ -0,0 +1,1532 @@ +import type * as Address from '../../core/Address.js' +import * as Bytes from '../../core/Bytes.js' +import * as Errors from '../../core/Errors.js' +import * as Hex from '../../core/Hex.js' + +/** + * ABI v1 codec for the evm2 WASM adapter. + * + * The layouts here are the other half of `wasm/evm2/src/abi.rs`: fixed-width + * little-endian integers, 256-bit values as 32 big-endian bytes, addresses as + * 20, hashes as 32, and byte sequences behind a `u32` length. + * + * @internal + */ + +/** Magic bytes prefixing every header: `EVM2` read little-endian. */ +export const magic = 0x32_4d_56_45 + +/** ABI version. Ox's compatibility boundary over evm2's Rust API. */ +export const version = 1 + +/** Request and response header size, in bytes. */ +export const headerSize = 16 + +/** + * Largest request the adapter accepts, in bytes. + * + * Mirrors `MAX_REQUEST` in `wasm/evm2/src/abi.rs`. Consensus sets no usable + * ceiling, so this is an adapter bound; the two halves must move together. + */ +export const maxRequest = 64 * 1024 * 1024 + +/** Adapter operations. */ +export const op = { + create: 1, + destroy: 2, + setBlock: 3, + callTx: 4, + readAccount: 5, + transact: 6, + commit: 7, + discard: 8, + detach: 9, + commitWith: 10, + discardWith: 11, + setInspector: 12, + setBal: 13, + setBalBuilder: 14, + takeBal: 15, + setBalIndex: 16, + commitTo: 17, + startBlockState: 18, + takeBlockState: 19, + warmPrecompiles: 20, + commitSource: 21, + systemCall: 22, +} as const + +/** + * evm2 `SpecId` discriminants, in its declaration order. + * + * The wire value is the discriminant, so this list must track evm2's enum. A + * value past the last one is rejected by the adapter rather than silently + * reinterpreted. + */ +export const specId = { + frontier: 0, + homestead: 1, + tangerine: 2, + spuriousDragon: 3, + byzantium: 4, + petersburg: 5, + istanbul: 6, + berlin: 7, + london: 8, + merge: 9, + shanghai: 10, + cancun: 11, + prague: 12, + osaka: 13, + amsterdam: 14, +} as const + +/** Response statuses. */ +export const status = { + ok: 0, + abi: 1, + engineMissing: 2, + engineBusy: 3, + handler: 4, + database: 5, + engineBorrowed: 6, + notExecuted: 7, + sink: 8, + pending: 9, + balNotCovered: 10, + noBlockState: 11, +} as const + +/** Block environment, in evm2's `BlockEnvExt` terms. */ +export type Block = { + /** Block base fee. */ + basefee: bigint + /** Block beneficiary. */ + beneficiary: Address.Address + /** Blob base fee. */ + blobBasefee: bigint + /** Pre-merge block difficulty. */ + difficulty: bigint + /** Block gas limit. */ + gasLimit: bigint + /** Block number. */ + number: bigint + /** Post-merge randomness value. */ + prevrandao: bigint + /** Beacon slot number. */ + slotNum: bigint + /** Block timestamp. */ + timestamp: bigint +} + +/** A log emitted by a transaction. */ +export type Log = { + /** Emitting account. */ + address: Address.Address + /** Log data. */ + data: Hex.Hex + /** Indexed topics. */ + topics: readonly Hex.Hex[] +} + +/** Transaction result, preserving evm2's `TxResult` fields. */ +export type TxResult = { + /** Created contract address for successful create transactions. */ + createdAddress?: Address.Address | undefined + /** Host error code raised during execution, if any. */ + errorCode?: bigint | undefined + /** EIP-7623 floor gas. Zero when not applicable. */ + floorGas: bigint + /** Logs emitted by the transaction. */ + logs: readonly Log[] + /** Return or revert output. */ + output: Hex.Hex + /** Gas refund, capped per EIP-3529, before the EIP-7623 floor adjustment. */ + refunded: bigint + /** State gas consumed by the transaction per EIP-8037. */ + stateGasSpent: bigint + /** Whether execution succeeded. */ + status: boolean + /** Interpreter stop reason, as evm2's `InstrStop` discriminant. */ + stop: number + /** Recorded execution, when an inspector was installed. */ + trace?: Trace | undefined + /** Total gas spent, regular plus state, before refund. */ + totalGasSpent: bigint +} + +/** A handler failure, as evm2 reported it. */ +export type Handler = { + /** Variant discriminant, matching `wasm/evm2/src/error.rs`. */ + kind: number + /** evm2's own message for the failure. */ + message: string + /** The variant's numeric fields, in declaration order. */ + words: readonly bigint[] +} + +/** Builds a request payload. */ +class Writer { + // A growable byte buffer rather than a number array: an envelope near the + // request ceiling would otherwise cost element storage and growth for every + // byte before `finish` allocates the payload as well. + #bytes = new Uint8Array(256) + #length = 0 + + #reserve(count: number) { + if (this.#length + count <= this.#bytes.length) return + let capacity = this.#bytes.length * 2 + while (capacity < this.#length + count) capacity *= 2 + const grown = new Uint8Array(capacity) + grown.set(this.#bytes.subarray(0, this.#length)) + this.#bytes = grown + } + + #push(...values: readonly number[]) { + this.#reserve(values.length) + for (const value of values) this.#bytes[this.#length++] = value + } + + bytes(value: Bytes.Bytes) { + this.u32(value.length) + this.#reserve(value.length) + this.#bytes.set(value, this.#length) + this.#length += value.length + } + + u8(value: number) { + if (!Number.isInteger(value) || value < 0 || value > 0xff) + throw new EncodeError({ max: '255', value: String(value) }) + this.#push(value) + } + + bool(value: boolean) { + this.#push(value ? 1 : 0) + } + + hash(value: Hex.Hex) { + const bytes = Bytes.fromHex(value) + if (bytes.length !== 32) + throw new EncodeError({ max: '32 bytes', value: `${bytes.length} bytes` }) + this.bare(bytes) + } + + // Every fixed-width writer rejects out-of-range input. Truncating instead + // would silently change which fork or chain the engine runs. + u32(value: number) { + if (!Number.isInteger(value) || value < 0 || value > 0xff_ff_ff_ff) + throw new EncodeError({ max: '4294967295', value: String(value) }) + this.#push( + value & 0xff, + (value >>> 8) & 0xff, + (value >>> 16) & 0xff, + value >>> 24, + ) + } + + u64(value: bigint) { + if (value < 0n || value > 0xff_ff_ff_ff_ff_ff_ff_ffn) + throw new EncodeError({ + max: '18446744073709551615', + value: String(value), + }) + for (let index = 0; index < 8; index++) + this.#push(Number((value >> BigInt(index * 8)) & 0xffn)) + } + + word(value: bigint) { + if (value < 0n || value >> 256n !== 0n) + throw new EncodeError({ max: '2^256 - 1', value: String(value) }) + this.bare(Bytes.fromNumber(value, { size: 32 })) + } + + address(value: Address.Address) { + const bytes = Bytes.fromHex(value) + if (bytes.length !== 20) + throw new EncodeError({ max: '20 bytes', value: `${bytes.length} bytes` }) + this.bare(bytes) + } + + bare(value: Bytes.Bytes) { + this.#reserve(value.length) + this.#bytes.set(value, this.#length) + this.#length += value.length + } + + /** Prefixes the header for `operation` and returns the request. */ + finish(operation: number): Bytes.Bytes { + const request = new Uint8Array(headerSize + this.#length) + const view = new DataView(request.buffer) + view.setUint32(0, magic, true) + view.setUint16(4, version, true) + view.setUint16(6, operation, true) + view.setUint32(8, 0, true) + view.setUint32(12, this.#length, true) + request.set(this.#bytes.subarray(0, this.#length), headerSize) + return request + } +} + +/** Reads a response payload. */ +class Reader { + #at = 0 + #bytes: Bytes.Bytes + + constructor(bytes: Bytes.Bytes) { + this.#bytes = bytes + } + + #take(length: number) { + const end = this.#at + length + if (end > this.#bytes.length) + throw new DecodeError( + `response ended after ${this.#bytes.length} bytes, needed ${end}`, + ) + const slice = this.#bytes.subarray(this.#at, end) + this.#at = end + return slice + } + + u8() { + return this.#take(1)[0]! + } + + bool() { + const value = this.u8() + if (value > 1) + throw new DecodeError(`expected a boolean byte, got ${value}`) + return value === 1 + } + + u16() { + const bytes = this.#take(2) + return bytes[0]! | (bytes[1]! << 8) + } + + u32() { + const bytes = this.#take(4) + return ( + bytes[0]! + + bytes[1]! * 0x100 + + bytes[2]! * 0x10000 + + bytes[3]! * 0x1000000 + ) + } + + u64() { + const bytes = this.#take(8) + let value = 0n + for (let index = 7; index >= 0; index--) + value = (value << 8n) | BigInt(bytes[index]!) + return value + } + + word() { + return Bytes.toBigInt(this.#take(32)) + } + + address() { + return Hex.fromBytes(this.#take(20)) as Address.Address + } + + hash() { + return Hex.fromBytes(this.#take(32)) + } + + bytes() { + return this.#take(this.u32()) + } + + string() { + return new TextDecoder().decode(this.bytes()) + } + + /** Asserts the payload was consumed exactly. */ + finish() { + if (this.#at !== this.#bytes.length) + throw new DecodeError( + `response had ${this.#bytes.length - this.#at} trailing bytes`, + ) + } +} + +/** Encodes an engine creation request. */ +export function encodeCreate(options: encodeCreate.Options): Bytes.Bytes { + return config(options).finish(op.create) +} + +export declare namespace encodeCreate { + type Options = { + /** Block environment. */ + block: Block + /** Chain id the `CHAINID` opcode reports and transactions validate against. */ + chainId: bigint + /** Overrides applied on top of the specification's own version. */ + version?: Version | undefined + /** evm2 `SpecId` discriminant. */ + specId: number + } +} + +/** Encodes a request replacing the block environment and specification. */ +export function encodeSetBlock(options: encodeCreate.Options): Bytes.Bytes { + return config(options).finish(op.setBlock) +} + +/** Encodes a request dropping the engine. */ +export function encodeDestroy(): Bytes.Bytes { + return new Writer().finish(op.destroy) +} + +/** Encodes an account read. */ +export function encodeReadAccount(address: Address.Address): Bytes.Bytes { + const writer = new Writer() + writer.address(address) + return writer.finish(op.readAccount) +} + +/** Decodes an account read response, or `undefined` when it does not exist. */ +export function decodeAccount(payload: Bytes.Bytes): Account | undefined { + const reader = new Reader(payload) + if (!reader.bool()) { + reader.finish() + return undefined + } + const balance = reader.word() + const nonce = reader.u64() + const codeHash = reader.hash() + const code = reader.bytes() + reader.finish() + return { + balance, + ...(code.length > 0 ? { code } : {}), + codeHash, + nonce, + } +} + +/** An account, as the engine reports it. */ +export type Account = { + balance: bigint + code?: Bytes.Bytes | undefined + codeHash: Hex.Hex + nonce: bigint +} + +/** Encodes a result-only transaction execution request. */ +export function encodeCallTx(options: encodeCallTx.Options): Bytes.Bytes { + const writer = new Writer() + writer.address(options.signer) + writer.bytes(options.envelope) + return writer.finish(op.callTx) +} + +export declare namespace encodeCallTx { + type Options = { + /** EIP-2718 encoded transaction envelope. */ + envelope: Bytes.Bytes + /** Recovered sender. evm2 takes the signer rather than re-deriving it. */ + signer: Address.Address + } +} + +/** Encodes a transaction execution that leaves its state changes pending. */ +export function encodeTransact(options: encodeCallTx.Options): Bytes.Bytes { + const writer = new Writer() + writer.address(options.signer) + writer.bytes(options.envelope) + return writer.finish(op.transact) +} + +/** Encodes a resolution of the outstanding executed transaction. */ +export function encodeResolve( + resolution: 'commit' | 'commitWith' | 'detach' | 'discard' | 'discardWith', +): Bytes.Bytes { + return new Writer().finish(op[resolution]) +} + +/** + * State a block's transactions changed, gathered across all of them. + * + * Each entry spans the block rather than a transaction: `original` is the value + * before the block, `current` the value after its last transaction touched it. + * Every collection enumerates deterministically. + */ +export type BlockState = { + /** Accounts the block touched, sorted by address. */ + accounts: readonly { + address: Address.Address + /** Value after the block. Absent means the account does not exist. */ + current?: ChangeAccount | undefined + /** Value before the block. Absent means it did not exist. */ + original?: ChangeAccount | undefined + }[] + /** Code the block deployed, sorted by hash. */ + code: readonly { code: Bytes.Bytes; codeHash: Hex.Hex }[] + /** Slots the block changed, sorted by account then slot. */ + storage: readonly { + address: Address.Address + current: bigint + key: bigint + original: bigint + }[] + /** Accounts whose storage the block cleared, sorted by address. */ + storageWipes: readonly Address.Address[] +} + +/** Encodes a system call. */ +export function encodeSystemCall( + options: encodeSystemCall.Options, +): Bytes.Bytes { + const writer = new Writer() + writer.address(options.caller) + writer.address(options.address) + writer.bytes(options.data) + return writer.finish(op.systemCall) +} + +export declare namespace encodeSystemCall { + type Options = { + /** Target system contract. */ + address: Address.Address + /** Account the call originates from. */ + caller: Address.Address + /** Calldata. */ + data: Bytes.Bytes + } +} + +/** + * Encodes a request applying changes to the accepted state overlay. + * + * Only changes are written. A read has the same original and current value, which + * is not a change, so applying one is a no-op; emitting it would only risk + * overwriting a real change for the same key, since the adapter rebuilds a map. + * Bytecode travels with it, or an account applied to another EVM would carry a + * hash for bytes that EVM never saw. + */ +export function encodeCommitSource(changes: Changes): Bytes.Bytes { + const writer = new Writer() + + for (const change of changes.accounts) { + writer.u8(record.account) + writer.address(change.address) + writeChangeAccount(writer, change.original) + writeChangeAccount(writer, change.current) + writer.bool(change.created ?? false) + writer.bool(change.selfdestructed ?? false) + } + for (const change of changes.storage) { + writer.u8(record.storage) + writer.address(change.address) + writer.word(change.key) + writer.word(change.original ?? change.current) + writer.word(change.current) + } + for (const address of changes.storageWipes) { + writer.u8(record.storageWipe) + writer.address(address) + } + + for (const entry of changes.bytecode) { + writer.u8(record.bytecode) + writer.hash(entry.codeHash) + writer.bytes(entry.code) + } + + writer.u8(record.end) + return writer.finish(op.commitSource) +} + +/** Writes an account's fields, or a flag saying it is absent. */ +function writeChangeAccount( + writer: Writer, + value: ChangeAccount | undefined, +): void { + if (!value) { + writer.bool(false) + return + } + writer.bool(true) + writer.word(value.balance) + writer.u64(value.nonce) + writer.hash(value.codeHash) +} + +/** Encodes a request starting a block accumulator. */ +export function encodeStartBlockState(): Bytes.Bytes { + return new Writer().finish(op.startBlockState) +} + +/** Encodes a request draining the block state a token identifies. */ +export function encodeTakeBlockState(token: bigint): Bytes.Bytes { + const writer = new Writer() + writer.u64(token) + return writer.finish(op.takeBlockState) +} + +/** Encodes a resolution recording into the block accumulator a token identifies. */ +export function encodeCommitTo(token: bigint): Bytes.Bytes { + const writer = new Writer() + writer.u64(token) + return writer.finish(op.commitTo) +} + +/** Decodes a started accumulator's token. */ +export function decodeBlockToken(bytes: Bytes.Bytes): bigint { + const reader = new Reader(bytes) + const token = reader.u64() + reader.finish() + return token +} + +/** Encodes a request prewarming the precompile addresses. */ +export function encodeWarmPrecompiles(): Bytes.Bytes { + return new Writer().finish(op.warmPrecompiles) +} + +/** + * Decodes accumulated block state. + * + * Fields go into locals before each object is built: these are sequential reads, + * so an object literal's property order would be the wire order. + */ +export function decodeBlockState(bytes: Bytes.Bytes): BlockState { + const reader = new Reader(bytes) + + const accounts: BlockState['accounts'][number][] = [] + for (let count = reader.u32(); count > 0; count--) { + const address = reader.address() + const original = readChangeAccount(reader) + const current = readChangeAccount(reader) + accounts.push({ + address, + ...(current ? { current } : {}), + ...(original ? { original } : {}), + }) + } + + const storageWipes: Address.Address[] = [] + for (let count = reader.u32(); count > 0; count--) + storageWipes.push(reader.address()) + + const storage: BlockState['storage'][number][] = [] + for (let count = reader.u32(); count > 0; count--) { + const address = reader.address() + const key = reader.word() + const original = reader.word() + const current = reader.word() + storage.push({ address, current, key, original }) + } + + const code: BlockState['code'][number][] = [] + for (let count = reader.u32(); count > 0; count--) { + const codeHash = reader.hash() + const value = reader.bytes() + code.push({ code: value, codeHash }) + } + + reader.finish() + return { accounts, code, storage, storageWipes } +} + +/** Reads an account's fields, or nothing when the flag says it is absent. */ +function readChangeAccount(reader: Reader): ChangeAccount | undefined { + if (!reader.bool()) return undefined + const balance = reader.word() + const nonce = reader.u64() + const codeHash = reader.hash() + return { balance, codeHash, nonce } +} + +/** Record tags in a serialized state-change stream. */ +export const record = { + end: 0, + bytecode: 1, + account: 2, + storageWipe: 3, + storage: 4, + accountRead: 5, + storageRead: 6, +} as const + +/** + * Decodes a state-change stream. + * + * evm2 keeps `PendingState`'s fields crate-private, so the adapter sends the + * stream its `StateChangeSource::visit` produces. For a detached pending state + * that order is deterministic. + */ +export function decodeChanges(payload: Bytes.Bytes): Changes { + const reader = new Reader(payload) + const changes: Mutable = { + accountReads: [], + accounts: [], + bytecode: [], + records: [], + storage: [], + storageReads: [], + storageWipes: [], + } + while (true) { + const record = readRecord(reader) + if (!record) break + changes.records.push(record) + collect(changes, record) + } + reader.finish() + return changes +} + +/** A change stream being built. @internal */ +type Mutable = { + accountReads: AccountChange[] + accounts: AccountChange[] + bytecode: { code: Bytes.Bytes; codeHash: Hex.Hex }[] + records: Change[] + storage: StorageChange[] + storageReads: StorageChange[] + storageWipes: Address.Address[] +} + +/** Files one record into the stream it belongs to. */ +function collect(changes: Mutable, record: Change) { + // `kind` routes a streamed record; the grouped arrays do not repeat it. + if (record.kind === 'bytecode') + changes.bytecode.push({ code: record.code, codeHash: record.codeHash }) + else if (record.kind === 'account') + changes.accounts.push({ + address: record.address, + created: record.created, + current: record.current, + original: record.original, + selfdestructed: record.selfdestructed, + }) + else if (record.kind === 'accountRead') + changes.accountReads.push({ + address: record.address, + current: record.current, + }) + else if (record.kind === 'storage') + changes.storage.push({ + address: record.address, + current: record.current, + key: record.key, + original: record.original, + }) + else if (record.kind === 'storageRead') + changes.storageReads.push({ + address: record.address, + current: record.current, + key: record.key, + }) + else changes.storageWipes.push(record.address) +} + +/** + * Reads one record, or `undefined` at the end of the stream. + * + * Every field is read into a local before the object is built: these are + * sequential reads, so an object literal would make its field order the wire + * order. + * + * @internal + */ +function readRecord(reader: Reader): Change | undefined { + const tag = reader.u8() + if (tag === record.end) return undefined + + const info = (): ChangeAccount | undefined => { + if (!reader.bool()) return undefined + const balance = reader.word() + const nonce = reader.u64() + const codeHash = reader.hash() + return { balance, codeHash, nonce } + } + + if (tag === record.bytecode) { + const codeHash = reader.hash() + const code = reader.bytes() + return { code, codeHash, kind: 'bytecode' } + } + if (tag === record.account) { + const address = reader.address() + const original = info() + const current = info() + const created = reader.bool() + const selfdestructed = reader.bool() + return { + address, + created, + current, + kind: 'account', + original, + selfdestructed, + } + } + if (tag === record.storageWipe) + return { address: reader.address(), kind: 'storageWipe' } + if (tag === record.storage) { + const address = reader.address() + const key = reader.word() + const original = reader.word() + const current = reader.word() + return { address, current, key, kind: 'storage', original } + } + if (tag === record.accountRead) { + const address = reader.address() + const current = info() + return { address, current, kind: 'accountRead' } + } + if (tag === record.storageRead) { + const address = reader.address() + const key = reader.word() + const current = reader.word() + return { address, current, key, kind: 'storageRead' } + } + throw new DecodeError(`unknown change record ${tag}`) +} + +/** Decodes a single record the adapter streamed to a sink. */ +export function decodeRecord(payload: Bytes.Bytes): Change { + const reader = new Reader(payload) + const decoded = readRecord(reader) + if (!decoded) throw new DecodeError('empty change record') + reader.finish() + return decoded +} + +/** One record from a change stream, tagged by what it describes. */ +export type Change = + | (AccountChange & { kind: 'account' | 'accountRead' }) + | (StorageChange & { kind: 'storage' | 'storageRead' }) + | { address: Address.Address; kind: 'storageWipe' } + | { code: Bytes.Bytes; codeHash: Hex.Hex; kind: 'bytecode' } + +/** + * An account as a change stream reports it. + * + * Carries the code hash only; the code itself arrives once, keyed by that hash, + * under the stream's `bytecode` records. + */ +export type ChangeAccount = { + balance: bigint + codeHash: Hex.Hex + nonce: bigint +} + +/** An account the transaction loaded, changed or not. */ +export type AccountChange = { + address: Address.Address + created?: boolean | undefined + /** Value after the change. Absent means the account does not exist. */ + current?: ChangeAccount | undefined + /** Value at the transaction boundary. */ + original?: ChangeAccount | undefined + selfdestructed?: boolean | undefined +} + +/** A storage slot the transaction loaded, changed or not. */ +export type StorageChange = { + address: Address.Address + current: bigint + key: bigint + /** Value at the transaction boundary. Absent on a read. */ + original?: bigint | undefined +} + +/** + * A decoded state-change stream. + * + * `records` preserves the adapter's emission order, which is evm2's own visit + * order; the grouped views serve keyed lookups. + */ +export type Changes = { + accountReads: readonly AccountChange[] + accounts: readonly AccountChange[] + bytecode: readonly { code: Bytes.Bytes; codeHash: Hex.Hex }[] + records: readonly Change[] + storage: readonly StorageChange[] + storageReads: readonly StorageChange[] + storageWipes: readonly Address.Address[] +} + +/** Event tags in a serialized trace stream. */ +export const events = { + end: 0, + initialize: 1, + step: 2, + stepEnd: 3, + log: 4, + call: 5, + callEnd: 6, + create: 7, + createEnd: 8, + selfdestruct: 9, +} as const + +/** Message kinds, as the ABI numbers them. */ +export const messageKinds = [ + 'call', + 'delegateCall', + 'callCode', + 'create', + 'create2', + 'staticCall', +] as const + +/** + * Reported for a kind this ABI version does not name. + * + * evm2's `MessageKind` is `#[non_exhaustive]`, so a later revision can add one. + * Naming it rather than folding it into `call` keeps an addition visible instead + * of misreporting the message. + */ +export const unknownMessageKind = 'unknown' + +/** + * A block access list, as EIP-7928 orders it. + * + * Accounts are sorted by address and each account's entries by key, which evm2 + * applies on the way out, so a list read back is canonical whatever order it was + * written in. + */ +export type Bal = { + accounts: readonly BalAccount[] +} + +/** One account's entries in a block access list. */ +export type BalAccount = { + address: Address.Address + balanceChanges: readonly { balance: bigint; index: bigint }[] + codeChanges: readonly { code: Hex.Hex; index: bigint }[] + nonceChanges: readonly { index: bigint; nonce: bigint }[] + storageChanges: readonly { + changes: readonly { index: bigint; value: bigint }[] + slot: bigint + }[] + storageReads: readonly bigint[] +} + +/** Writes a block access list. */ +function writeBal(writer: Writer, bal: Bal): void { + writer.u32(bal.accounts.length) + for (const account of bal.accounts) { + writer.address(account.address) + + writer.u32(account.storageChanges.length) + for (const slot of account.storageChanges) { + writer.word(slot.slot) + writer.u32(slot.changes.length) + for (const change of slot.changes) { + writer.u64(change.index) + writer.word(change.value) + } + } + writer.u32(account.storageReads.length) + for (const slot of account.storageReads) writer.word(slot) + writer.u32(account.balanceChanges.length) + for (const change of account.balanceChanges) { + writer.u64(change.index) + writer.word(change.balance) + } + writer.u32(account.nonceChanges.length) + for (const change of account.nonceChanges) { + writer.u64(change.index) + writer.u64(change.nonce) + } + writer.u32(account.codeChanges.length) + for (const change of account.codeChanges) { + writer.u64(change.index) + writer.bytes(Bytes.fromHex(change.code)) + } + } +} + +/** + * Decodes a block access list. + * + * Fields go into locals before the object is built: these are sequential reads, + * so an object literal's property order would be the wire order. + */ +function readBal(reader: Reader): Bal { + const accounts: BalAccount[] = [] + + for (let count = reader.u32(); count > 0; count--) { + const address = reader.address() + + const storageChanges: BalAccount['storageChanges'][number][] = [] + for (let slots = reader.u32(); slots > 0; slots--) { + const slot = reader.word() + const changes: { index: bigint; value: bigint }[] = [] + for (let entries = reader.u32(); entries > 0; entries--) { + const index = reader.u64() + const value = reader.word() + changes.push({ index, value }) + } + storageChanges.push({ changes, slot }) + } + + const storageReads: bigint[] = [] + for (let reads = reader.u32(); reads > 0; reads--) + storageReads.push(reader.word()) + + const balanceChanges: BalAccount['balanceChanges'][number][] = [] + for (let entries = reader.u32(); entries > 0; entries--) { + const index = reader.u64() + const balance = reader.word() + balanceChanges.push({ balance, index }) + } + + const nonceChanges: BalAccount['nonceChanges'][number][] = [] + for (let entries = reader.u32(); entries > 0; entries--) { + const index = reader.u64() + const nonce = reader.u64() + nonceChanges.push({ index, nonce }) + } + + const codeChanges: BalAccount['codeChanges'][number][] = [] + for (let entries = reader.u32(); entries > 0; entries--) { + const index = reader.u64() + const code = Hex.fromBytes(reader.bytes()) + codeChanges.push({ code, index }) + } + + accounts.push({ + address, + balanceChanges, + codeChanges, + nonceChanges, + storageChanges, + storageReads, + }) + } + + return { accounts } +} + +/** Encodes a request attaching a block access list. */ +export function encodeSetBal(options: encodeSetBal.Options): Bytes.Bytes { + const writer = new Writer() + writer.u32(options.fallback ? 1 : 0) + writeBal(writer, options.bal) + return writer.finish(op.setBal) +} + +export declare namespace encodeSetBal { + type Options = { + /** List consulted on reads. */ + bal: Bal + /** Whether a read the list does not cover may fall back to the database. */ + fallback: boolean + } +} + +/** Encodes a request enabling or discarding the block access list builder. */ +export function encodeSetBalBuilder(enabled: boolean): Bytes.Bytes { + const writer = new Writer() + writer.u32(enabled ? 1 : 0) + return writer.finish(op.setBalBuilder) +} + +/** Encodes a request draining the built block access list. */ +export function encodeTakeBal(): Bytes.Bytes { + return new Writer().finish(op.takeBal) +} + +/** Encodes a request setting the block access index. */ +export function encodeSetBalIndex(index: bigint): Bytes.Bytes { + const writer = new Writer() + writer.u64(index) + return writer.finish(op.setBalIndex) +} + +/** Decodes a drained block access list, absent when no builder was enabled. */ +export function decodeBal(bytes: Bytes.Bytes): Bal | undefined { + const reader = new Reader(bytes) + const built = reader.bool() ? readBal(reader) : undefined + reader.finish() + return built +} + +/** Encodes a request installing or removing the inspector. */ +export function encodeSetInspector( + options: encodeSetInspector.Options, +): Bytes.Bytes { + const writer = new Writer() + writer.u32(options.enabled ? 1 : 0) + writer.u32(options.steps ? 1 : 0) + writer.u32(options.stack ? 1 : 0) + writer.u32(options.memory ? 1 : 0) + writer.u32(options.limit) + return writer.finish(op.setInspector) +} + +export declare namespace encodeSetInspector { + type Options = { + /** Whether an inspector is installed at all. */ + enabled: boolean + /** Largest stream to keep, in bytes. */ + limit: number + /** Records memory size on each step. */ + memory?: boolean | undefined + /** Records the stack on each step. */ + stack?: boolean | undefined + /** Records each instruction. */ + steps?: boolean | undefined + } +} + +/** + * Decodes a trace, when the response carries one. + * + * Events keep the order evm2 called the hooks in. Nothing is interpreted here: + * the shape a caller wants is built from this stream rather than encoded into it. + */ +export function decodeTrace(reader: Reader): Trace | undefined { + if (!reader.bool()) return undefined + const truncated = reader.bool() + const stream = new Reader(reader.bytes()) + const events_: TraceEvent[] = [] + + while (true) { + const tag = stream.u8() + if (tag === events.end) break + events_.push(readEvent(stream, tag)) + } + return { events: events_, truncated } +} + +/** + * Reads one event. + * + * Fields go into locals before the object is built: these are sequential reads, + * so an object literal's property order would be the wire order. + * + * @internal + */ +function readEvent(reader: Reader, tag: number): TraceEvent { + if (tag === events.initialize) { + const depth = reader.u16() + const gas = reader.u64() + return { depth, gas, kind: 'initialize' } + } + if (tag === events.step) { + const pc = reader.u32() + const opcode = reader.u8() + const depth = reader.u16() + const gas = reader.u64() + const memorySize = reader.u32() + const stack: bigint[] = [] + for (let count = reader.u16(); count > 0; count--) stack.push(reader.word()) + return { depth, gas, kind: 'step', memorySize, opcode, pc, stack } + } + if (tag === events.stepEnd) { + const gas = reader.u64() + return { gas, kind: 'stepEnd' } + } + if (tag === events.log) { + const address = reader.address() + const topics: Hex.Hex[] = [] + for (let count = reader.u8(); count > 0; count--) topics.push(reader.hash()) + const data = Hex.fromBytes(reader.bytes()) + return { address, data, kind: 'log', topics } + } + if (tag === events.call || tag === events.create) { + const messageKind = messageKinds[reader.u8()] ?? unknownMessageKind + const depth = reader.u16() + const gasLimit = reader.u64() + const caller = reader.address() + const destination = reader.address() + const codeAddress = reader.address() + const value = reader.word() + const input = Hex.fromBytes(reader.bytes()) + return { + caller, + codeAddress, + depth, + destination, + gasLimit, + input, + kind: tag === events.call ? 'call' : 'create', + messageKind, + value, + } + } + if (tag === events.callEnd || tag === events.createEnd) { + const stop = reader.u8() + const gasRemaining = reader.u64() + const gasSpent = reader.u64() + const createdAddress = reader.bool() ? reader.address() : undefined + const output = Hex.fromBytes(reader.bytes()) + return { + ...(createdAddress ? { createdAddress } : {}), + gasRemaining, + gasSpent, + kind: tag === events.callEnd ? 'callEnd' : 'createEnd', + output, + stop, + } + } + if (tag === events.selfdestruct) { + const contract = reader.address() + const target = reader.address() + const value = reader.word() + return { contract, kind: 'selfdestruct', target, value } + } + throw new DecodeError(`unknown trace event ${tag}`) +} + +/** One recorded hook call. */ +export type TraceEvent = + | { + address: Address.Address + data: Hex.Hex + kind: 'log' + topics: readonly Hex.Hex[] + } + | { + caller: Address.Address + codeAddress: Address.Address + depth: number + destination: Address.Address + gasLimit: bigint + input: Hex.Hex + kind: 'call' | 'create' + messageKind: (typeof messageKinds)[number] | typeof unknownMessageKind + value: bigint + } + | { + contract: Address.Address + kind: 'selfdestruct' + target: Address.Address + value: bigint + } + | { + createdAddress?: Address.Address | undefined + gasRemaining: bigint + gasSpent: bigint + kind: 'callEnd' | 'createEnd' + output: Hex.Hex + stop: number + } + | { depth: number; gas: bigint; kind: 'initialize' } + | { + depth: number + gas: bigint + kind: 'step' + memorySize: number + opcode: number + pc: number + stack: readonly bigint[] + } + | { gas: bigint; kind: 'stepEnd' } + +/** A recorded execution. */ +export type Trace = { + /** Hook calls, in the order evm2 made them. */ + events: readonly TraceEvent[] + /** Whether the byte limit stopped recording before execution finished. */ + truncated: boolean +} + +/** Decodes a `TxResult` response payload. */ +export function decodeResult(payload: Bytes.Bytes): TxResult { + const reader = new Reader(payload) + // Locals first: these are sequential reads, so an object literal's property + // order would be the wire order. + const status = reader.bool() + const stop = reader.u8() + const totalGasSpent = reader.u64() + const stateGasSpent = reader.u64() + const refunded = reader.u64() + const floorGas = reader.u64() + const result = { + floorGas, + refunded, + stateGasSpent, + status, + stop, + totalGasSpent, + } + const createdAddress = reader.bool() ? reader.address() : undefined + const errorCode = reader.bool() ? reader.u64() : undefined + const output = Hex.fromBytes(reader.bytes()) + + const logs: Log[] = [] + for (let index = reader.u32(); index > 0; index--) { + const address = reader.address() + const topics: Hex.Hex[] = [] + for (let topic = reader.u32(); topic > 0; topic--) + topics.push(reader.hash()) + logs.push({ address, data: Hex.fromBytes(reader.bytes()), topics }) + } + + // Always present, even as a lone `false`: an execution reports whether it was + // traced so this decoder consumes the whole payload either way. + const trace = decodeTrace(reader) + reader.finish() + + return { + ...result, + createdAddress, + errorCode, + logs, + output, + ...(trace ? { trace } : {}), + } +} + +/** Decodes a handler-failure response payload. */ +export function decodeHandler(payload: Bytes.Bytes): Handler { + const reader = new Reader(payload) + const kind = reader.u16() + const words: bigint[] = [] + for (let index = reader.u8(); index > 0; index--) words.push(reader.word()) + const message = reader.string() + reader.finish() + return { kind, message, words } +} + +/** Decodes a response payload carrying only a message. */ +export function decodeMessage(payload: Bytes.Bytes): string { + const reader = new Reader(payload) + const message = reader.string() + reader.finish() + return message +} + +function config(options: encodeCreate.Options) { + const { block } = options + const writer = new Writer() + writer.u32(options.specId) + writer.u64(options.chainId) + // Wire order follows evm2's `BlockEnvExt` declaration order. + writer.word(block.number) + writer.address(block.beneficiary) + writer.word(block.timestamp) + writer.word(block.gasLimit) + writer.word(block.basefee) + writer.word(block.difficulty) + writer.word(block.prevrandao) + writer.word(block.blobBasefee) + writer.word(block.slotNum) + overrides(writer, options.version) + return writer +} + +/** Scalar version fields, paired with the presence bit the ABI gives each. */ +export const fields = { + txGasLimitCap: 1 << 0, + memoryLimit: 1 << 1, + maxCodeSize: 1 << 2, + maxInitcodeSize: 1 << 3, + maxBlobsPerTx: 1 << 4, + blobBaseFeeUpdateFraction: 1 << 5, +} as const + +/** + * evm2's feature flags, in its declaration order. + * + * The index is the wire value, so this list tracks + * `wasm/evm2/src/features.rs`. A flag absent here cannot be addressed. + */ +export const features = [ + 'txChainIdCheck', + 'nonceCheck', + 'balanceCheck', + 'balanceTopUp', + 'blockGasLimitCheck', + 'eip3607', + 'priorityFeeCheck', + 'feeCharge', + 'eip2', + 'eip150', + 'eip161', + 'codeSizeCheck', + 'eip2028', + 'eip2200', + 'eip2929', + 'eip3529', + 'eip3541', + 'baseFeeCheck', + 'eip4399', + 'eip3651', + 'eip3860', + 'eip6780', + 'eip7623', + 'eip7702', + 'eip8037', + 'eip7708', + 'eip8246', + 'eip2780', +] as const + +/** + * evm2's gas parameters, in `GasId` declaration order. + * + * The index is the wire value, matching evm2's own discriminant. + */ +export const gasIds = [ + 'expByte', + 'extcodecopyPerWord', + 'copyPerWord', + 'logdata', + 'logtopic', + 'mcopyPerWord', + 'keccak256PerWord', + 'memoryLinearCost', + 'memoryQuadraticReduction', + 'initcodePerWord', + 'create', + 'callStipendReduction', + 'transferValueCost', + 'coldAccountAdditionalCost', + 'newAccountCost', + 'warmStorageReadCost', + 'sstoreStatic', + 'sstoreSetWithoutLoadCost', + 'sstoreResetWithoutColdLoadCost', + 'sstoreClearingSlotRefund', + 'selfdestructRefund', + 'callStipend', + 'maxRefundQuotient', + 'coldStorageAdditionalCost', + 'coldStorageCost', + 'newAccountCostForSelfdestruct', + 'codeDepositCost', + 'txEip7702PerEmptyAccountCost', + 'txTokenNonZeroByteMultiplier', + 'txTokenCost', + 'txFloorCostPerToken', + 'txFloorCostBase', + 'txFloorZeroByteMultiplier', + 'txAccessListAddressCost', + 'txAccessListStorageKeyCost', + 'txAccessListFloorByteMultiplier', + 'txBaseStipend', + 'txCreateCost', + 'txInitcodeCost', + 'sstoreSetRefund', + 'sstoreResetRefund', + 'txEip7702AuthRefund', + 'sstoreSetState', + 'newAccountState', + 'codeDepositState', + 'createState', + 'txEip7702PerAuthState', + 'txTransferLogCost', + 'txValueCost', + 'txCreateAccessCost', + 'custom0', + 'custom1', + 'custom2', + 'custom3', + 'custom4', + 'custom5', + 'custom6', + 'custom7', +] as const + +/** + * Writes the caller's version overrides. + * + * Every group is partial: what the caller does not mention keeps the value the + * specification gave it, so evm2 stays the source of each default. + */ +function overrides(writer: Writer, version: Version | undefined) { + let present = 0 + for (const [name, bit] of Object.entries(fields)) + if (version?.[name as keyof typeof fields] !== undefined) present |= bit + writer.u32(present) + + for (const name of Object.keys(fields) as (keyof typeof fields)[]) { + const value = version?.[name] + if (value !== undefined) writer.u64(value) + } + + const flags = Object.entries(version?.features ?? {}).filter( + ([, on]) => on !== undefined, + ) + writer.u32(flags.length) + for (const [name, on] of flags) { + const index = features.indexOf(name as (typeof features)[number]) + if (index < 0) throw new UnknownFeatureError({ name }) + writer.u32(index) + writer.u32(on ? 1 : 0) + } + + const gas = Object.entries(version?.gas ?? {}).filter( + ([, cost]) => cost !== undefined, + ) + writer.u32(gas.length) + for (const [name, cost] of gas) { + const index = gasIds.indexOf(name as (typeof gasIds)[number]) + if (index < 0) throw new UnknownGasIdError({ name }) + writer.u32(index) + writer.u32(cost as number) + } +} + +/** Version overrides applied on top of a specification's own values. */ +export type Version = { + /** Blob base fee update fraction. */ + blobBaseFeeUpdateFraction?: bigint | undefined + /** Feature flags to turn on or off. */ + features?: Partial> | undefined + /** Gas parameters to replace. */ + gas?: Partial> | undefined + /** Blobs allowed in one transaction. */ + maxBlobsPerTx?: bigint | undefined + /** Largest deployable bytecode. */ + maxCodeSize?: bigint | undefined + /** Largest creation initcode. */ + maxInitcodeSize?: bigint | undefined + /** Hard memory limit, in bytes. */ + memoryLimit?: bigint | undefined + /** Transaction gas limit cap. */ + txGasLimitCap?: bigint | undefined +} + +/** Thrown when a feature name is not one evm2 declares. */ +export class UnknownFeatureError extends Errors.BaseError { + override readonly name = 'Evm.UnknownFeatureError' + + constructor({ name }: { name: string }) { + super(`\`${name}\` is not a feature this version knows.`) + } +} + +/** Thrown when a gas parameter name is not one evm2 declares. */ +export class UnknownGasIdError extends Errors.BaseError { + override readonly name = 'Evm.UnknownGasIdError' + + constructor({ name }: { name: string }) { + super(`\`${name}\` is not a gas parameter this version knows.`) + } +} + +/** Thrown when a value does not fit the wire width the ABI declares. */ +export class EncodeError extends Errors.BaseError { + override readonly name = 'Evm.EncodeError' + + constructor({ max, value }: { max: string; value: string }) { + super('A value does not fit the width this ABI encodes it at.', { + metaMessages: [`Value: ${value}`, `Maximum: ${max}`], + }) + } +} + +/** Thrown when a response does not match the ABI the codec expects. */ +export class DecodeError extends Errors.BaseError { + override readonly name = 'Evm.DecodeError' + + constructor(reason: string) { + super( + 'The evm2 adapter returned a response this ABI version cannot read.', + { + metaMessages: [reason, `Expected ABI version ${version}.`], + }, + ) + } +} diff --git a/src/evm/internal/database.ts b/src/evm/internal/database.ts new file mode 100644 index 00000000..ea3efef9 --- /dev/null +++ b/src/evm/internal/database.ts @@ -0,0 +1,307 @@ +import type * as Address from '../../core/Address.js' +import * as Bytes from '../../core/Bytes.js' +import * as Errors from '../../core/Errors.js' +import * as Hex from '../../core/Hex.js' +import * as codec from './codec.js' + +/** + * JavaScript side of evm2's synchronous `Database` boundary. + * + * The callbacks supply external values and nothing more: caching, journaling, + * and rollback stay inside evm2. A read a source cannot serve throws, and the + * engine reports the failure once execution has unwound. + * + * @internal + */ + +/** Account fields the engine reads. */ +export type Account = { + /** Balance in wei. */ + balance: bigint + /** + * The account's code, when the source already holds it. + * + * evm2 accepts code alongside the account and files it under its hash, so + * supplying it here means {@link Database.getCodeByHash} is never called for + * this account. That matters for a source keyed by address: JSON-RPC exposes + * `eth_getCode(address)` and nothing that looks code up by hash. + */ + code?: Bytes.Bytes | undefined + /** Hash of the account's code, or the empty code hash. */ + codeHash: Hex.Hex + /** Nonce. */ + nonce: bigint +} + +/** Synchronous state reads the engine calls back into. */ +export type Database = { + /** Reads an account, or `undefined` when it does not exist. */ + getAccount(address: Address.Address): Account | undefined + /** + * Reads a historical block hash. + * + * evm2 only asks for numbers inside the `BLOCKHASH` window, so a hash the + * source cannot provide is a failure rather than a miss. + */ + getBlockHash(number: bigint): Hex.Hex + /** + * Reads code by its hash. + * + * Only called for accounts whose {@link Account.code} was not supplied. + */ + getCodeByHash(codeHash: Hex.Hex): Bytes.Bytes + /** Reads a persistent storage slot, or `0n` when unset. */ + getStorage(address: Address.Address, key: bigint): bigint +} + +/** + * Encoded account size: `balance` (32 BE), `nonce` (8 LE), `code_hash` (32), + * `has_code` (1). + */ +const accountSize = 73 + +/** + * Checks a value a source returned fits the width the ABI encodes it at. + * + * `Bytes.fromNumber` already rejects an out-of-range balance or storage slot, + * but the nonce is written by hand and `Bytes.fromHex` right-pads a short hash + * instead of rejecting it. Truncating a nonce or padding a hash would present + * evm2 with different state than the source supplied. + */ +function u64(field: string, value: bigint) { + if (value < 0n || value > 0xff_ff_ff_ff_ff_ff_ff_ffn) + throw new codec.EncodeError({ + max: '18446744073709551615', + value: `${field} ${value}`, + }) + return value +} + +function hash(field: string, value: Hex.Hex) { + const bytes = Bytes.fromHex(value) + if (bytes.length !== 32) + throw new codec.EncodeError({ + max: '32 bytes', + value: `${field} ${bytes.length} bytes`, + }) + return bytes +} + +const found = 0 +const missing = 1 +const failed = 2 +/** Code did not fit; the length written back tells the engine what to grow to. */ +const tooLarge = 3 +/** + * The source has not fetched the value yet. + * + * An asynchronous source cannot answer inside a synchronous import, so it throws + * {@link ox#Database.(PendingError:class)} and the engine abandons the attempt + * without accepting state. Not recorded as a failure: the caller fetches the + * value and repeats the operation. + */ +const pending = 4 + +/** Host import table, bound to one engine instance. */ +export type Host = { + /** Binds the memory the imports address. Called once, after instantiation. */ + attach(memory: WebAssembly.Memory): void + /** Import object passed to `WebAssembly.instantiate`. */ + imports: WebAssembly.Imports + /** Takes the failure a read recorded, if any. */ + takeFailure(): Error | undefined +} + +/** + * Builds the `ox_evm2` import table over `database`. + * + * A callback that throws does not unwind through WebAssembly: the failure is + * recorded, the import returns a failure status, evm2 aborts the transaction + * without accepting state, and the caller rethrows once control is back in + * JavaScript. + */ +export function host(database: Database): Host { + let failure: Error | undefined + let memory: WebAssembly.Memory | undefined + + /** + * Bounds a span against linear memory and returns the current view. + * + * The view is taken per call rather than cached: growing memory detaches the + * previous `ArrayBuffer`, which silently turns a retained view into an empty + * one. + */ + function span(pointer: number, length: number) { + if (!memory) throw new UnattachedError() + const bytes = new Uint8Array(memory.buffer) + if (pointer < 0 || length < 0 || pointer + length > bytes.length) + throw new BoundsError({ length, limit: bytes.length, pointer }) + return bytes + } + + /** Runs a read, turning a throw into a recorded failure status. */ + function guard(read: () => number) { + try { + return read() + } catch (error) { + // A read the source has not fetched is not a failure, so it is not + // recorded as one: the engine unwinds and the caller repeats the call. + if (error instanceof PendingError) return pending + failure ??= error as Error + return failed + } + } + + function address(pointer: number) { + const bytes = span(pointer, 20) + return Hex.fromBytes( + bytes.subarray(pointer, pointer + 20), + ) as Address.Address + } + + /** Writes a little-endian `u32` the engine reads a length from. */ + function count(pointer: number, value: number) { + const bytes = span(pointer, 4) + for (let index = 0; index < 4; index++) + bytes[pointer + index] = (value >>> (index * 8)) & 0xff + } + + function word(pointer: number) { + const bytes = span(pointer, 32) + return Bytes.toBigInt(bytes.subarray(pointer, pointer + 32)) + } + + return { + attach(value) { + memory = value + }, + imports: { + ox_evm2: { + get_account: ( + pointer: number, + out: number, + code: number, + capacity: number, + length: number, + ) => + guard(() => { + const account = database.getAccount(address(pointer)) + if (!account) return missing + const nonce = u64('nonce', account.nonce) + const codeHash = hash('codeHash', account.codeHash) + + // Report the length first, so the engine grows and retries before + // anything is written. + if (account.code && account.code.length > capacity) { + count(length, account.code.length) + return tooLarge + } + + const bytes = span(out, accountSize) + bytes.set(Bytes.fromNumber(account.balance, { size: 32 }), out) + for (let index = 0; index < 8; index++) + bytes[out + 32 + index] = Number( + (nonce >> BigInt(index * 8)) & 0xffn, + ) + bytes.set(codeHash, out + 40) + bytes[out + 72] = account.code ? 1 : 0 + + if (account.code) { + span(code, account.code.length).set(account.code, code) + count(length, account.code.length) + } + return found + }), + get_block_hash: (pointer: number, out: number) => + guard(() => { + const blockHash = hash( + 'blockHash', + database.getBlockHash(word(pointer)), + ) + span(out, 32).set(blockHash, out) + return found + }), + get_code_by_hash: ( + pointer: number, + out: number, + capacity: number, + length: number, + ) => + guard(() => { + const bytes = span(pointer, 32) + const code = database.getCodeByHash( + Hex.fromBytes(bytes.subarray(pointer, pointer + 32)), + ) + // Reporting the required length lets the engine grow once and retry, + // so code larger than the current fork's deployment limit still + // loads. + if (code.length > capacity) { + count(length, code.length) + return tooLarge + } + span(out, code.length).set(code, out) + count(length, code.length) + return found + }), + get_storage: (pointer: number, key: number, out: number) => + guard(() => { + const value = database.getStorage(address(pointer), word(key)) + span(out, 32).set(Bytes.fromNumber(value, { size: 32 }), out) + return found + }), + }, + }, + takeFailure() { + const recorded = failure + failure = undefined + return recorded + }, + } +} + +/** + * Thrown by a synchronous read standing in for an asynchronous source. + * + * The engine abandons the attempt without accepting state, so the caller can + * fetch the value and repeat the operation. Never surfaces to a caller. + * + * @internal + */ +export class PendingError extends Errors.BaseError { + override readonly name = 'Database.PendingError' + + constructor() { + super('A state read needs a value the source has not fetched.') + } +} + +/** Thrown when a host read runs before its memory was attached. */ +export class UnattachedError extends Errors.BaseError { + override readonly name = 'Evm.UnattachedError' + + constructor() { + super('The evm2 engine called a host read before its memory was attached.') + } +} + +/** Thrown when the engine asks a host read to address memory outside its own. */ +export class BoundsError extends Errors.BaseError { + override readonly name = 'Evm.BoundsError' + + constructor({ + length, + limit, + pointer, + }: { + length: number + limit: number + pointer: number + }) { + super('The evm2 engine addressed memory outside its own.', { + metaMessages: [ + `Requested: ${length} bytes at ${pointer}`, + `Available: ${limit} bytes`, + ], + }) + } +} diff --git a/src/evm/internal/engine.ts b/src/evm/internal/engine.ts new file mode 100644 index 00000000..4359952b --- /dev/null +++ b/src/evm/internal/engine.ts @@ -0,0 +1,450 @@ +import type * as Address from '../../core/Address.js' +import type * as Bytes from '../../core/Bytes.js' +import * as Errors from '../../core/Errors.js' +import * as async from './async.js' +import * as bindings from './bindings.js' +import * as codec from './codec.js' +import type * as Database from './database.js' + +/** + * evm2 engine handle. + * + * One handle owns one evm2 `Evm`: its specification, block environment, + * accepted state overlay, and database. Creation is asynchronous because + * WebAssembly compilation is; execution is synchronous, as it is in evm2. + * + * @internal + */ + +/** + * Identifies a parked transaction. + * + * An object rather than a symbol so it can be weakly held everywhere the + * package runs; reachability through a handle is what keeps it alive. + */ +export type Token = Readonly> + +/** A created engine. */ +export type Engine = { + /** + * Executes a transaction for its result and discards its state changes. + * + * This is evm2's `call_tx`: the result-only path, with no pending state to + * resolve. + */ + callTx(options: codec.encodeCallTx.Options): codec.TxResult + /** Drops the engine and its accepted state. */ + destroy(): void + /** Resolves the outstanding transaction by moving its state out. */ + detach(token?: Token): codec.Changes + /** Reads an account through the accepted overlay and the database. */ + readAccountInfo(address: Address.Address): codec.Account | undefined + /** + * Resolves the outstanding transaction, releasing the engine. + * + * Every operation reaching the engine fails until this runs, which is how + * evm2's exclusive borrow shows up across two host calls. + */ + resolve(resolution: 'commit' | 'discard', token?: Token): void + /** + * Resolves the outstanding transaction, streaming its changes to `sink` first. + * + * A sink that throws makes evm2 discard rather than commit, and the throw is + * what surfaces. + */ + resolveWith( + resolution: 'commitWith' | 'discardWith', + sink: (record: codec.Change) => void, + token?: Token, + ): void + /** Replaces the block environment and the selected specification. */ + setBlock(options: codec.encodeCreate.Options): void + /** + * Installs or removes the execution inspector. + * + * Removing means the engine holds none, so an untraced execution pays nothing. + */ + setInspector(options: codec.encodeSetInspector.Options): void + /** Attaches a block access list and sets the database-fallback switch. */ + setBal(options: codec.encodeSetBal.Options): void + /** Whether a transaction is outstanding, so the engine is borrowed. */ + borrowed(): boolean + /** Starts a block accumulator, returning the token identifying it. */ + startBlockState(): bigint + /** Drains the block state `block` identifies. */ + takeBlockState(block: bigint): codec.BlockState + /** + * Resolves the outstanding transaction into the block accumulator `block` + * identifies. + * + * Refused when the token is not the accumulator in progress, which leaves the + * transaction outstanding rather than committing it plainly. + */ + resolveTo(block: bigint, token?: Token): void + /** Prewarms the precompile addresses. */ + warmPrecompiles(): void + /** Applies caller-supplied changes to the accepted state overlay. */ + commitSource(changes: codec.Changes): void + /** + * Executes a system call and leaves its state changes pending. + * + * Parks a handle the same way `transact` does, so a system call resolves + * through the same paths. + */ + systemCall(options: codec.encodeSystemCall.Options): { + result: codec.TxResult + token: Token + } + /** Enables the block access list builder, or discards the one in progress. */ + setBalBuilder(enabled: boolean): void + /** Drains the built list, or `undefined` when no builder was enabled. */ + takeBal(): codec.Bal | undefined + /** Sets the block access index reads are served at and writes recorded under. */ + setBalIndex(index: bigint): void + /** + * Executes a transaction and leaves its state changes pending. + * + * This is evm2's `transact`: the engine stays borrowed until the transaction + * is committed, discarded, or detached. + */ + transact(options: codec.encodeCallTx.Options): { + result: codec.TxResult + /** Identifies the transaction this call parked. */ + token: Token + } +} + +/** Creates an engine over `database`. */ +export async function create(options: create.Options): Promise { + const { database, ...config } = options + const instance = await bindings.instantiateWith(database) + resolve(instance, codec.encodeCreate(config)) + + // Identifies the parked transaction. A handle carries the token it was created + // with, so a copy of a resolved handle cannot resolve a later transaction. + // Held weakly: the token is reachable exactly while some handle references it, + // so token collection means every handle (original or copy) is gone. + let outstanding: WeakRef | undefined + + // The last-resort equivalent of the engine's `Drop`. Fires only when no + // handle can reach the parked transaction's token anymore, so a live copy + // keeps its transaction alive; dispose remains the deterministic path. + const reaper = new FinalizationRegistry>((ref) => { + if (outstanding !== ref) return + outstanding = undefined + resolve(instance, codec.encodeResolve('discard')) + }) + + function claim(token: Token | undefined) { + if (token && token !== outstanding?.deref()) throw new NotExecutedError() + if (outstanding) reaper.unregister(outstanding) + outstanding = undefined + } + + /** + * Takes ownership of a parked handle, returning its result and a claim token. + * + * Shared by every operation that leaves a transaction outstanding, so the + * decode-failure release below cannot be forgotten by one of them. + */ + function park(payload: Bytes.Bytes) { + const result = (() => { + try { + return codec.decodeResult(payload) + } catch (error) { + // The adapter already parked the transaction, so a decode failure has + // to release it or the engine stays borrowed with no handle. + resolve(instance, codec.encodeResolve('discard')) + throw error + } + })() + const token: Token = Object.freeze({}) + const ref = new WeakRef(token) + outstanding = ref + reaper.register(token, ref, ref) + return { result, token } + } + + /** + * Runs a resolution, restoring the claim when the adapter refuses. + * + * Not every resolution succeeds: `commitTo` is refused when no block state is + * being gathered, and it refuses before the transaction leaves the engine. So + * the handle is still outstanding and has to be resolvable again. + */ + function resolving(token: Token | undefined, run: () => void) { + const previous = outstanding + claim(token) + try { + run() + } catch (error) { + outstanding = previous + if (previous) reaper.register(previous.deref() ?? {}, previous, previous) + throw error + } + } + + return { + callTx(options) { + return codec.decodeResult(resolve(instance, codec.encodeCallTx(options))) + }, + destroy() { + resolve(instance, codec.encodeDestroy()) + instance.reset() + }, + detach(token) { + claim(token) + return codec.decodeChanges( + resolve(instance, codec.encodeResolve('detach')), + ) + }, + readAccountInfo(address) { + return codec.decodeAccount( + resolve(instance, codec.encodeReadAccount(address)), + ) + }, + resolve(resolution, token) { + resolving(token, () => resolve(instance, codec.encodeResolve(resolution))) + }, + resolveWith(resolution, sink, token) { + claim(token) + instance.withSink(sink, () => + resolve(instance, codec.encodeResolve(resolution)), + ) + }, + setBlock(options) { + resolve(instance, codec.encodeSetBlock(options)) + }, + setBal(options) { + resolve(instance, codec.encodeSetBal(options)) + }, + borrowed() { + return outstanding?.deref() !== undefined + }, + resolveTo(block, token) { + resolving(token, () => resolve(instance, codec.encodeCommitTo(block))) + }, + startBlockState() { + return codec.decodeBlockToken( + resolve(instance, codec.encodeStartBlockState()), + ) + }, + takeBlockState(block) { + return codec.decodeBlockState( + resolve(instance, codec.encodeTakeBlockState(block)), + ) + }, + commitSource(changes) { + resolve(instance, codec.encodeCommitSource(changes)) + }, + warmPrecompiles() { + resolve(instance, codec.encodeWarmPrecompiles()) + }, + setBalBuilder(enabled) { + resolve(instance, codec.encodeSetBalBuilder(enabled)) + }, + setBalIndex(index) { + resolve(instance, codec.encodeSetBalIndex(index)) + }, + setInspector(options) { + resolve(instance, codec.encodeSetInspector(options)) + }, + takeBal() { + return codec.decodeBal(resolve(instance, codec.encodeTakeBal())) + }, + systemCall(options) { + return park(resolve(instance, codec.encodeSystemCall(options))) + }, + transact(options) { + return park(resolve(instance, codec.encodeTransact(options))) + }, + } +} + +export declare namespace create { + type Options = codec.encodeCreate.Options & { + /** Synchronous state reads the engine calls back into. */ + database: Database.Database + } +} + +/** Sends a request and returns its payload, throwing on any failure status. */ +function resolve(instance: bindings.Instance, request: Bytes.Bytes) { + const { payload, status } = instance.call(request) + if (status === codec.status.ok) return payload + if (status === codec.status.handler) + throw new HandlerError(codec.decodeHandler(payload)) + if (status === codec.status.database) + throw new DatabaseError(codec.decodeMessage(payload)) + if (status === codec.status.abi) + throw new AbiError(codec.decodeMessage(payload)) + if (status === codec.status.engineMissing) throw new MissingError() + if (status === codec.status.engineBusy) throw new bindings.ReentrancyError() + if (status === codec.status.engineBorrowed) throw new BorrowedError() + if (status === codec.status.notExecuted) throw new NotExecutedError() + if (status === codec.status.sink) throw new SinkError() + if (status === codec.status.balNotCovered) throw new NotCoveredError() + if (status === codec.status.noBlockState) throw new NoBlockStateError() + // Not a failure: the attempt was abandoned before any state was accepted. The + // asynchronous driver catches this, awaits the source, and repeats. + if (status === codec.status.pending) throw new async.PendingError() + throw new codec.DecodeError(`unknown response status ${status}`) +} + +/** + * Transaction-rejection variants, keyed by the discriminant the adapter + * assigns. + * + * Mirrors `wasm/evm2/src/error.rs`; a rejected transaction's + * {@link ox#Evm.(HandlerError:class)}`.code` names its variant through this map. + */ +export const handlerKinds = { + fatal: 1, + external: 2, + unsupportedTransactionType: 3, + wrongTransactionType: 4, + invalidNonce: 5, + invalidChainId: 6, + missingChainId: 7, + intrinsicGasTooLow: 8, + insufficientFunds: 9, + rejectCallerWithCode: 10, + nonceOverflow: 11, + gasLimitMoreThanBlock: 12, + txGasLimitGreaterThanCap: 13, + createInitCodeSizeLimit: 14, + outOfFunds: 15, + signerRecoveryFailed: 16, + feeCapLessThanBaseFee: 17, + emptyAuthorizationList: 18, + blobFeeCapLessThanBlobBaseFee: 19, + emptyBlobs: 20, + tooManyBlobs: 21, + blobVersionNotSupported: 22, + priorityFeeGreaterThanMaxFee: 23, + unsupportedCaller: 24, +} as const + +/** The adapter's handler discriminants, keyed back to their variant names. */ +const kindNames = new Map( + Object.entries(handlerKinds).map(([name, value]) => [ + value as number, + name as keyof typeof handlerKinds, + ]), +) + +/** Thrown when the engine rejected or aborted the transaction. */ +export class HandlerError extends Errors.BaseError { + /** Variant name, or `undefined` for a discriminant this version predates. */ + readonly code: keyof typeof handlerKinds | undefined + /** Variant discriminant. Named by {@link ox#Evm.(handlerKinds:variable)}. */ + readonly kind: number + override readonly name = 'Evm.HandlerError' + /** The variant's numeric fields, in evm2's declaration order. */ + readonly words: readonly bigint[] + + constructor({ kind, message, words }: codec.Handler) { + super(message, { metaMessages: [`evm2 handler error ${kind}`] }) + this.code = kindNames.get(kind) + this.kind = kind + this.words = words + } +} + +/** + * Thrown when a state-change sink refused a record. + * + * evm2 discards the transaction in that case rather than committing it, so this + * only surfaces when the sink failed without throwing an error of its own. + */ +export class NoBlockStateError extends Errors.BaseError { + override readonly name = 'Evm.NoBlockStateError' + + constructor() { + super('No block state is being accumulated.', { + metaMessages: [ + 'A transaction was resolved into a block accumulator while none was installed, so nothing was committed.', + ], + details: 'Start one with `Evm.startBlockState` before resolving into it.', + }) + } +} + +export class NotCoveredError extends Errors.BaseError { + override readonly name = 'Evm.NotCoveredError' + + constructor() { + super('A read fell outside the attached block access list.', { + metaMessages: [ + 'The list is consulted instead of the database, so a read it does not cover is refused rather than served.', + ], + details: + 'Add the account or slot to the list, or allow fallback when executing transactions that are not part of the block.', + }) + } +} + +export class SinkError extends Errors.BaseError { + override readonly name = 'Evm.SinkError' + + constructor() { + super('A state-change sink refused a record.', { + metaMessages: ['The transaction was discarded rather than committed.'], + }) + } +} + +/** Thrown when an unresolved executed transaction still holds the engine. */ +export class BorrowedError extends Errors.BaseError { + override readonly name = 'Evm.BorrowedError' + + constructor() { + super('An executed transaction has not been resolved.', { + metaMessages: [ + 'Commit, discard, or detach it before using the EVM again.', + ], + }) + } +} + +/** Thrown when a resolution named no outstanding executed transaction. */ +export class NotExecutedError extends Errors.BaseError { + override readonly name = 'Evm.NotExecutedError' + + constructor() { + super('There is no executed transaction to resolve.', { + metaMessages: ['It was already committed, discarded, or detached.'], + }) + } +} + +/** Thrown when a state read failed. Carries the source's own message. */ +export class DatabaseError extends Errors.BaseError { + override readonly name = 'Evm.DatabaseError' + + constructor(message: string) { + super('A state read the engine needed could not be served.', { + metaMessages: [message], + }) + } +} + +/** Thrown when the adapter rejected a request this codec produced. */ +export class AbiError extends Errors.BaseError { + override readonly name = 'Evm.AbiError' + + constructor(reason: string) { + super('The evm2 adapter rejected the request.', { metaMessages: [reason] }) + } +} + +/** Thrown when an operation runs against a destroyed engine. */ +export class MissingError extends Errors.BaseError { + override readonly name = 'Evm.MissingError' + + constructor() { + super('The evm2 engine was destroyed.', { + metaMessages: ['Create a new engine to execute another transaction.'], + }) + } +} diff --git a/src/index.docs.ts b/src/index.docs.ts index 49dd1066..14ce7092 100644 --- a/src/index.docs.ts +++ b/src/index.docs.ts @@ -3,6 +3,7 @@ // biome-ignore assist/source/organizeImports: _ export * from './index.js' export * from './erc4337/index.js' +export * from './evm/index.js' export * from './erc6492/index.js' export * from './erc7821/index.js' export * from './erc8010/index.js' diff --git a/src/wasm/internal/evm2.wasm.ts b/src/wasm/internal/evm2.wasm.ts new file mode 100644 index 00000000..2e75304f --- /dev/null +++ b/src/wasm/internal/evm2.wasm.ts @@ -0,0 +1,23 @@ +// Generated by `pnpm wasm:build --target=evm2`. Do not edit. +// +// Compiled from wasm/evm2 against alloy-rs/evm2 8ff36b5359aa1ccc5bdd7eb1c98d0a7f3daac469 +// with rustc 1.97.0 (2d8144b78 2026-07-07) + wasm-opt version 123 (version_123). +// +// Cargo features: map-foldhash, parse +// +// `pnpm wasm:check --target=evm2` rebuilds this file and fails if the bytes differ, so any +// change to the adapter, its lockfile, or the pinned evm2 revision must be +// followed by `pnpm wasm:build --target=evm2`. + +/** Base64-encoded WASM binary. */ +export const wasmBase64 = + 'AGFzbQEAAAAB9wNCYAJ/fwBgBH9/f38Bf2ACf38Bf2ADf39/AGABfwBgAX8Bf2ADf39/AX9gBH9/f38AYAV/f39/fwBgBX9/f39/AX9gBn9/f39/fwBgBX9/f39+AX9gA39/fwF+YAAAYAN/fn8Bf2ACf34AYAABf2ACf38BfmAEf35/fwF/YAd/f39/f39/AGADf39+AGAIf39/f39/f38AYAJ/fgF/YAR/fn9/AGAEfn5+fwF+YAN/fn8AYAV/f39+fwBgB39/f39/f38Bf2ADf35+AGAAAX5gBH9/fn8AYAV/f39/fgBgBH9/f34AYAR/f35+AGAHf39/f35+fwF+YAd/f39/fn9/AGABfwF+YAJ/fQBgAn98AGAEf35+fwBgBX9+fn5+AGAEf35+fgBgA39/fgF/YAl/f39+f39/fn4AYAJ/fgF+YAV/f35/fwBgCH9/f39/f39/AX9gAn5/AX9gBH9+f34AYAR/f39/AX5gBX9/fn5/AGAFf39+fn4AYAZ/f39+fn8AYAZ+fn5/f38BfmAFf39/f34BfmAGf39/fn9/AGABfgF/YAJ+fgF+YAR/f35/AX5gAn5/AX5gAX4BfmAGf39/f39/AX9gC39/f39/f39/f39/AX9gCH5+fn9/fn5+AX5gCX9/f39/f39/fwF/YAZ/fn9/f38BfwJ3BQdveF9ldm0yC3NpbmtfcmVjb3JkAAIHb3hfZXZtMgtnZXRfYWNjb3VudAAJB294X2V2bTIQZ2V0X2NvZGVfYnlfaGFzaAABB294X2V2bTILZ2V0X3N0b3JhZ2UABgdveF9ldm0yDmdldF9ibG9ja19oYXNoAAID1BLSEgADBwAABQUAEAADBAMAAgQABAQFAAMCAAAFAgAAAgACAgIOAgAHDBYABAQWKhQNDgIAAwAMDgwOAg4CAAwIBAAAABAAEAMABwAHAwcHAwcABQQEBAQEAAAEBAQEAwAAAAAABAQEBAQEBAQEDQQEBA0EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAAdBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcDACsUABoCAAIAAAACAwUAAAUDAwAEAAUDBAcIHgADHwUCAxAFBwcCCAgHAAgBAAEACQMPAAkACAcCIBYsAAIBBQkDAwAAAQECAQIBAgECAQIBAgECAQIBAgECAQIBAgEGAQIBBgEBAQYBBgEBBgEBBgEGAQYBAgEBAQEBAQYBBgEBAQYBAQIBAQYBBgEGAQYBBgEBAQEBAQEBAgEBAQYBBgEGAQYBBgEGAQYBBgEGAQYBAgEGAQYBBgEGAQYBBgEGAQYBBgEGAQYBBgEGAQYBBgEGAQIBBgEGAQYBBgEGAQYBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgEBAQEBAQEBAQEBBgECAQYBBgEGAQEBAQYBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQYBAQEBAQEBAQEBAQEBAQEBAQEBBgEGAQEBAQEBAQIBAgECAQEBBgEBAQEBAQEBAQYBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQYBAQYBBgEGAQEBAQEBAgEBAQEBBgEGAQYBAQEBAQEAAAUAAC0SAAUAAAMDBQQABQMFBwMHEQICAgICAgcSAgICAgICAgICAgABAAUFAAAHBQAEAgADAwAAAAAEAAAADwAAAAQDBQADBwQSAAQAAAAAAAAABAAAAA0AAAQABAIDAwcIBAMHBwAABAQAAAAABw0EBQAFAAAFAAAQAAAEAAUFDQMJBwoGGwcAAgcGEgIFAAkFACEIBQUABQQFBQUFAAcDBAUEBgAIAgYIAQMGAwACBwYCAwUAAAUuBQUAAgACAgIHCAADBwAHBwAIAwcDAwMCAgoHBwcHBwAAAgACAgIGAgAIAgAAAAAAAgIAAAAAAAAQBQUNAgIDAAAFBQAFBQUFAAAAAAAFAAADBAAAAAADAgICAgQQBAUEBQIREQ4DBREvDgIOAg4ADgACBQcEDQcMAwMMAgwMAgARAwwCABEDDAMMDAIAAgMMAgUDBAQFBAQFAAQEBAAAAAAEAAAAAAAAAAAAAAAAAAAAAAQABAMFBAAEAwMFBQcAAgAEBAQEBAQEBAAFBAQEAAQABwcDBAUABQAHAAUIAwgEAAMIAAQDCAAEAAMDBggICAgIAwQEBAQECAgICAMFBgADAwMFBQAACgQKBAgICAgICAgCCAgIAggIAggIAAAJCQkJCQkJCQkAAAAAAAAAAAAAAAAAAAMDAAAAAAgTEwgIAAAAAAAAAAAAAAAAAAAAAQECAwADAAYDBgMDAwAAAAAAAAAAAAQDBQUDAAMHAwUFAAQABAAHAwQHBAAAAgAAAAAFBQMFBwMIBQICAAAAAAICAgICAwIABAUFCAgCBwAFAAAAAAAABQAFAAAAAAUCBQUCAggDAwAAAAMDAAMDBAQSCAMFBQMHAAUEBAQEBAMCAwACBAQEBAQDBBcGIAAIBQIAAAIAAgMAAAUABQICABcAAAMFAgcDBQcCEgMCABYEBAQEAgUCAAQFFwgICAgICAUEBgYwBgAAAAAAAAAAAAUDAwAABQMFAwMHAyIxMgAHBwccHgchFDMiBAQCGgAaBzQECBgjGBgPNQ8PAgACAAAAAAAAAAAAAAAABAACAAAACAMACAMDCAIAAgIDAwACAwUDAwMAAAIAAgIHBAQAAAUFBQUAAAAAAgIAAAAFAAADAgMDAgUFAgICAAAAAAACAAAEAAAAAAAAAAAAAgUFAgQEAAICAgIFAAAAAwAAAgAFBQIFAgIDAAAFBQYAAAICAgIAAAADAAADAgAAAgMCAwAAAgAACgoKBwcHBwoDAwcIBwEVBwcAAAgACAgICgMGCgIIBQgAADYHAAcDCAcAAA8HDAg3AAMHCAMDCgMVBwgHAAcDBR8HAwIAAAgFCCMHDwMCAAADAwMAAwMDAAADAAcAAAMCAAAAAAEEAAAFBAgDCgMVBwgHBwMIAAIAAAAAAAAABQMAAAAABQAFAwMFAAMAAAAUAwMFBQMAAAQEBQMAAgICAwIGAgAEAgICAgICAgICAgICBQUAADgFACQBAwMFAwACAwMDBQACAAAEBAAFBQUABQACBQAABQQFAAUDAwUABwMABAAAAAAIAAQAAAQEBQAFBQAFAAIFAAAEBQAFBQQABQUAAAQCAAAGAAADAwQEAwcAAwEDAwAAAAADAwMDAAUAAAAEAAQICAMIAAQkAwMDCAIDCBQAAwABBwEDCgMDAwMDAAMDAAEIAgcDFQMCAwMIBwMHCBMEAAMDAwMHEAMDAgIAAAAAAwMAAAAAAAAAAAQCAgcEAAMAAAAABQMAAgACAAAFAAMDAgIlJhkZHAUlACYPABkc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QQFrNgIAIAFBAUYEQCMAQRBrIgEkACABIABBCGo2AgwgASAAKAIEIgI2AgggASAAKAIAIgA2AgQgAigCACIDBEAgACACKAIIQQFrQXhxakEIaiADEQQACwJAIAFBBGoiAigCACIAQX9GDQAgACAAKAIEIgNBAWs2AgQgA0EBRw0AQQQgAigCBCIDKAIIIgIgAkEETRshAiAAIAIgAygCBGpBB2pBACACa3EQmwcLIAFBEGokAAsLWQEBfwJ/IAFBD08EQEEAIAFB/////wFLDQEaQX8gAUEDdEEHbkEBa2d2QQFqIQFBAQwBC0EEIAFBCHFBCGogAUEESRshAUEBCyECIAAgATYCBCAAIAI2AgALEgAgACgCBARAIAAgAUEIEFILC5cBAgR/AX4gACgCBARAIwBBIGsiASQAAkAgACgCDCIDRQ0AIAAoAgAiAikDACEFIAAoAgQhBCABIAM2AhggASACNgIQIAEgAiAEakEBajYCDCABIAJBCGo2AgggASAFQn+FQoCBgoSIkKDAgH+DNwMAA0AgARBVIgJFDQEgAkEEaxBWDAALAAsgAUEgaiQAIABBJEEIEFILC5cBAgR/AX4gACgCBARAIwBBIGsiASQAAkAgACgCDCIDRQ0AIAAoAgAiAikDACEFIAAoAgQhBCABIAM2AhggASACNgIQIAEgAiAEakEBajYCDCABIAJBCGo2AgggASAFQn+FQoCBgoSIkKDAgH+DNwMAA0AgARBVIgJFDQEgAkEQaxBYDAALAAsgAUEgaiQAIABBJEEIEFILC4sCAgR/AX4gACgCBARAIwBBMGsiASQAAkAgACgCDCIDRQ0AIAAoAgAiAikDACEFIAAoAgQhBCABIAM2AiggASACNgIgIAEgAiAEakEBajYCHCABIAJBCGo2AhggASAFQn+FQoCBgoSIkKDAgH+DNwMQQQEhAgNAIAJFDQEDQCABQQhqIAFBEGoQIyABKAIIQQFxRQRAIAEgASgCIEHABWs2AiAgASABKAIYIgJBCGo2AhggASACKQMAQn+FQoCBgoSIkKDAgH+DNwMQDAELCyABKAIMIQMgASABKAIoQQFrIgI2AiggASgCICADQah/bGpBQGoQWQwACwALIAFBMGokACAAQdgAQQgQUgsLiQICBH8BfiAAKAIEBEAjAEEwayIBJAACQCAAKAIMIgNFDQAgACgCACICKQMAIQUgACgCBCEEIAEgAzYCKCABIAI2AiAgASACIARqQQFqNgIcIAEgAkEIajYCGCABIAVCf4VCgIGChIiQoMCAf4M3AxBBASECA0AgAkUNAQNAIAFBCGogAUEQahAjIAEoAghBAXFFBEAgASABKAIgQeAAazYCICABIAEoAhgiAkEIajYCGCABIAIpAwBCf4VCgIGChIiQoMCAf4M3AxAMAQsLIAEoAgwhAyABIAEoAihBAWsiAjYCKCABKAIgIANBdGxqQQhrEFoMAAsACyABQTBqJAAgAEEMQQgQUgsLOAEBfyABKALgAiIDBEAgACABLwGQAzYCCCAAIAJBAWo2AgQLIAAgAzYCACABQcQDQZQDIAIbEGILDQAgAQRAIAAgARBUCws0ACAAIAEQ3gUiAQR/IAAgASgAEDYAESAAIAEpAAg3AAkgACABKQAANwABQQEFQQALOgAAC50EAgp/AX4jAEEwayIEJAAjAEFAaiIFJAAgASgCCCEHIwBB4ABrIgIkACAFQQhqIgYgASgCACIIIAEoAgRGBH5CAAUgASAIQRhqNgIAIAJBMGohAyMAQdAAayIBJAAgASAIELIBAkACQCABAn8gASgCBCABKAIIQdCswwAQgw9FBEAgASABKQIINwMoIAEgASkCADcDICABQSBqEKgLDAELIAEgASkCCCIMNwMYIAEgASkCADcDECAMp0EXRw0BQQEhCSABKAIUIgpBF0HQrMMAEIMPRQ0BQQIhCSAKLQACDQEgASABKQIINwI4IAEgASkCADcCMCABQRc2AkAgAUEBOgBIIAFBADYCRCABQgA3AiggAUKAgICAEDcCICABQSBqEPUHCyILNgIgIANBCGogAUEgahDmBSADIAgpAxA3AwAMAQsgAUEQahBzIAMgCToAAAsgAyALNgIoIAFB0ABqJAAgAi0AMCEBAkAgAigCWCIDRQRAIAcgAToAAAwBCyACKAJcIQcgAkEJaiACQTBqQQFyQSf8CgAACyAGIAE6AAggBkEJaiACQQlqQSf8CgAAIAYgBzYCNCAGIAM2AjBCAQs3AwAgAkHgAGokAAJAIAUpAwhCAVEEQCAEIAVBEGpBMPwKAAAMAQsgBEEANgIoCyAFQUBrJAACQCAEKAIoBEAgACAEQTD8CgAADAELIABBADYCKAsgBEEwaiQAC5IGAgl/An4jAEEgayIDJAAjAEEwayIEJAAgBCABQSBqNgIMAkACQANAIAEQ3gUiBUUNASAEQRBqIQcjAEHQAGsiAiQAIAIgBSgAEDYCGCACIAUpAAg3AxAgAiAFKQAANwMIAkAgBEEMaigCACgCACIGIAYoAgQgBigCABsgAkEIahDnBiIGRQRAIAdBfjYCFAwBCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBigCAEGAgICAeHMOEgABAgMEBQYHCAkKCwwNDg8QERILIAJBgICAgHg2AkQMEgsgAkGBgICAeDYCRAwRCyACQYKAgIB4NgJEDBALIAJBg4CAgHg2AkQMDwsgAkGEgICAeDYCRAwOCyACQYWAgIB4NgJEDA0LIAJBhoCAgHg2AkQMDAsgAkGHgICAeDYCRAwLCyACQYiAgIB4NgJEDAoLIAJBiYCAgHg2AkQMCQsgAkGKgICAeDYCRAwICyACQYuAgIB4NgJEDAcLIAJBjICAgHg2AkQMBgsgAkGNgICAeDYCRAwFCyACQY6AgIB4NgJEDAQLIAJBj4CAgHg2AkQMAwsgAkGQgICAeDYCRAwCCyACQZGAgIB4NgJEDAELIAJBxABqIQggBigCCCEJIAYoAgQhCgJAIAYoAgBBf0cEQCAIIAogCRDwBQwBCyAIIAk2AgggCCAKNgIEIAhBfzYCAAsLIAIgAikCRDcCNCACIAIoAkw2AjwgAiAFKAAQNgIwIAIgBSkACCILNwMoIAIgBSkAACIMNwMgIAcgAikDODcCGCAHIAIpAzA3AhAgByALNwIIIAcgDDcCAAsgAkHQAGokACAEKAIkIgVBfkYNAAsgAyAEKAIgNgIQIAMgBCkCGDcCCCADIAQpAhA3AgAgAyAEKQIoNwIYIAMgBTYCFAwBCyADQX42AhQLIARBMGokAAJAIAMoAhRBfkcEQCAAIAMpAhg3AhggACADKQIQNwIQIAAgAykCCDcCCCAAIAMpAgA3AgAMAQsgAEF+NgIUCyADQSBqJAALHwAgACABEFUiAUEEazYCBCAAIAFBJGtBACABGzYCAAsRACAAKQMAQn9SBEAgABBXCwuDAQECfwJAIAAoAgAiAUUNACABIAEoAgAiAUEBazYCACABQQFHDQAjAEEQayIBJAAgASAAQQRqNgIMIAEgACgCACIANgIIIABBCGoQXwJAIAFBCGooAgAiAEF/Rg0AIAAgACgCBCICQQFrNgIEIAJBAUcNACAAQSAQmwcLIAFBEGokAAsLPgEDfwJAIAAoAgAiAkUNACAAKAIEIgAoAgAiAQRAIAIgAREEAAsgACgCBCIBRQ0AIAAoAgghAyACIAEQYgsL4QgCBn8BfiMAQSBrIgQkACAAKAKECEF/RwRAIABBuAJqEGAgAEHYAmoQsgggAEHwAmoQswggAEGIA2oiASgCBARAIAFB2ABBCBBSCyAAQeADaiICKAIEBEAjAEEwayIBJAACQCACKAIMIgVFDQAgAigCACIDKQMAIQcgAigCBCEGIAEgBTYCKCABIAM2AiAgASADIAZqQQFqNgIcIAEgA0EIajYCGCABIAdCf4VCgIGChIiQoMCAf4M3AxBBASEDA0AgA0UNAQNAIAFBCGogAUEQahAjIAEoAghBAXFFBEAgASABKAIgQYAHazYCICABIAEoAhgiA0EIajYCGCABIAMpAwBCf4VCgIGChIiQoMCAf4M3AxAMAQsLIAEoAgwhBSABIAEoAihBAWsiAzYCKCABKAIgIAVBkH9sakHYAGsQVwwACwALIAFBMGokACACQfAAQQgQUgsgAEH4A2oQXSAAQZAEaiICKAIEBEAjAEEwayIBJAACQCACKAIMIgVFDQAgAigCACIDKQMAIQcgAigCBCEGIAEgBTYCKCABIAM2AiAgASADIAZqQQFqNgIcIAEgA0EIajYCGCABIAdCf4VCgIGChIiQoMCAf4M3AxBBASEDA0AgA0UNAQNAIAFBCGogAUEQahAjIAEoAghBAXFFBEAgASABKAIgQcADazYCICABIAEoAhgiA0EIajYCGCABIAMpAwBCf4VCgIGChIiQoMCAf4M3AxAMAQsLIAEoAgwhBSABIAEoAihBAWsiAzYCKCABKAIgIAVBSGxqQSBrQcAAELAIDAALAAsgAUEwaiQAIAJBOEEIEFILIABBqARqQcAAEFwgACgCxAQiASgCACICBEAgACgCwAQgAhEEAAsgASgCBCICBEAgASgCCBogACgCwAQgAhBiCyAAQaAFahBoIABBgAVqEGsgBEEMaiICIABBuANqIgEQ4QggBCgCFCEDIAQtABAhBSAEKAIMIAJB1IXDABDhCCAEKAIMRyAFIAQtABBHckUgBCgCFCADRnFFBEAgACgCwAMhAyAEIAApA7gDNwIYIARBGGoiBRDcCiEGIAQgBRDiCDYCFCAEIAY2AhAgBCADNgIMIAIQbyABIAEoAgBBA3EgBCgCEEF8cXI2AgAgACAEKAIMNgLAAwsgAEGgA2oiASgCBARAIAEQqgggAUEwQQgQqQgLIABBqAVqIgMiASgCCCECIAEoAgQhAQNAIAIEQCACQQFrIQIgARDcCCABQfgAaiEBDAELCyADQQhB+AAQrQ0gAEG0BWoQbCAAQcgDahBtIABB0AJqEG4gAEH4B2oiBSICKAIIIQEgAigCBCEDA0AgAQRAIAMoAgAiAkGYAWoQViACQfAAahCmDyACQUBrEHMgAigCnAFBgIACEFQgAkGoARBUIAFBAWshASADQQRqIQMMAQsLIAUQbyAAQaACahBpIAAoAqgCBEAgAEGoAmoQWgsgAEGwAmoQQwsgBEEgaiQACw4AIAAoAgAEQCAAEF8LCz4BAn8gACgCCCECIAAoAgQhAQNAIAIEQCABEHcgAUEMahBzIAJBAWshAiABQTBqIQEMAQsLIABBBEEwENYQCwkAIABBFBCwCAs3AQR/IAAoAgQiAigCACIBBEAgACgCACABEQQACyACKAIEIgEEQCAAKAIAIAIoAgghBCABEGILCwsAIABBBEEEEK0NCxgAQfDuxQAoAgBBf0cEQEHw7sUAEKYPCwsOACAAKAIABEAgABBWCwsUACAALQBWQQJHBEAgAEEwahBzCwsfACAAQQxqKAIAIAAoAgQgACgCCCAAKAIAKAIQEQMACxcAQcTuxQAoAgBBfkcEQEGQ7sUAEBYLCxEAIAApAwBCAlQEQCAAEFcLCw0AIAAQcyAAQTRqEGwLCwAgAEEBQSAQ1hALCwAgAEEBQTAQ1hALNwECfyAAKAIIIQEgACgCBCECA0AgAQRAIAFBAWshASACEHMgAkEYaiECDAELCyAAQQhBGBDWEAs3AQJ/IAAoAgRBIGohASAAKAIIIQIDQCACBEAgAkEBayECIAEQrRAgAUEwaiEBDAELCyAAEKoQCzQBAn8gACgCCCEBIAAoAgQhAgNAIAEEQCABQQFrIQEgAhCLASACQdAAaiECDAELCyAAEHwLDAAgAEEEQdAAEK0NCwwAIAAQ5AggABDlCAsSACAAKAIAQX9HBEAgABCmDwsLEAAgABCAASAAQdgBahCvCgsPACAAQegAahCIASAAEHMLEAAgABCCASAAQcgBahCvCgsPACAAQdgAahCIASAAEHMLEAAgABCEASAAQfgBahCvCgsbACAAQYwBahCIASAAQZgBahB3IABB0ABqEHMLEAAgABCGASAAQegBahCvCgsbACAAQfwAahCIASAAQYgBahDrDyAAQUBrEHMLlQEBAX8CQAJAAkACQAJAQQMgACgCsAEiAUECayABQQFMGw4EAQIDBAALIABB/ABqEIgBIABBiAFqQQhBkAEQrQ0gAEGUAWoQ6w8gAEFAaxBzDwsgAEEQahBzDwsgABCCAQ8LIAAQgAEPCyAAEIQBIAFBf0cEQCAAQbQBakEBQYCACBDWECAAQcABahB4IABBzAFqEHgLCzcBAn8gACgCCCEBIAAoAgQhAgNAIAEEQCABQQFrIQEgAhB3IAJBIGohAgwBCwsgAEEEQSAQ1hALDgAgABCmDyAAQQxqEEMLBwAgABCmDwslACAAEHogAEEMahCrECAAQRhqEK0QIABBJGoQrBAgAEEwahB5Cw4AIAAoAgAEQCAAEF4LCw0AIAAQdyAAQQxqEHMLFAAgAC0AAEEBRgRAIABBBGoQWgsLEgAgAEEcahDuCiAAQShqEO4KC68CAgR/AX4gACgCBARAIwBBMGsiASQAAkAgACgCDCIDRQ0AIAAoAgAiAikDACEFIAAoAgQhBCABIAM2AiggASACNgIgIAEgAiAEakEBajYCHCABIAJBCGo2AhggASAFQn+FQoCBgoSIkKDAgH+DNwMQQQEhAgNAIAJFDQEDQCABQQhqIAFBEGoQIyABKAIIQQFxRQRAIAEgASgCIEHADGs2AiAgASABKAIYIgJBCGo2AhggASACKQMAQn+FQoCBgoSIkKDAgH+DNwMQDAELCyABKAIMIQMgASABKAIoQQFrIgI2AiggASgCICADQbh+bGoiA0GwAWsQVyADQdgAaxBXDAALAAsgAUEwaiQAIABByAFBCBBSCyAAQRhqEG0gAEEwakH4ABBcIABByABqEF0LWwIBfwF+IwBBgAFrIgEkACAAKQMAIQIgAEJ/NwMAIAJCf1IEQCABIAI3AwggAUEQaiAAQQhqQfAA/AoAACAAKAJ8QYgCaiABQQhqEJIBCyAAEHUgAUGAAWokAAsMACAAIAFB+AAQpxILFgAgABCyCCAAQRhqELMIIABBMGoQbQsOACAAEFcgAEHwAGoQVwuLEQIHfwF+IwBBgANrIgIkABCWASEJIwBBEGsiBCQAIAJBMGoiA0EkQSAQlBAgBEEQaiQAIAIgCTcDKCACIAIpAzA3AxggAiACKQM4NwMgIAJBADYATyACQgA3AkggAkIANwJAIAJCADcCZCACQgA3AmwgAkEANgBzIAJCADcCiAEgAkIANwKQASACQQA2AJcBIAJCADcCrAEgAkIANwK0ASACQQA2ALsBIAJBAzYCqAEgAkGDgICAeDYCnAEgAkEDOgCbASACQQQ2AoQBIAJBgoCAgHg2AnggAkECOgB3IAJBBTYCYCACQYGAgIB4NgJUIAJBAToAUyACQQY2AjwgAkGAgICAeDYCMCACQQQ6AL8BIAJBGGoiBCADEBICQCABQQRJDQAgAkEANgBPIAJCADcCSCACQgA3AkAgAkIANwJkIAJCADcCbCACQQA2AHMgAkIANwKIASACQgA3ApABIAJBADYAlwEgAkIANwKsASACQgA3ArQBIAJBADYAuwEgAkEIOgC/ASACQQc2AqgBIAJBh4CAgHg2ApwBIAJBBzoAmwEgAkEINgKEASACQYaAgIB4NgJ4IAJBCTYCYCACQYWAgIB4NgJUIAJBBToAUyACQQo2AjwgAkGEgICAeDYCMCACQQY6AHcgBCADEBIgAUEGSQ0AIAJBADYATyACQgA3AkggAkIANwJAIAJCADcCZCACQgA3AmwgAkEANgBzIAJCADcCiAEgAkIANwKQASACQQA2AJcBIAJCADcCrAEgAkIANwK0ASACQQA2ALsBIAJBCToAvwEgAkELNgKoASACQYiAgIB4NgKcASACQQg6AJsBIAJBDDYChAEgAkGHgICAeDYCeCACQQc6AHcgAkENNgJgIAJBhoCAgHg2AlQgAkEONgI8IAJBhYCAgHg2AjAgAkEGOgBTIAQgAxASIAFBBkYNACACQQA2AE8gAkIANwJIIAJCADcCQCACQQU6AFMgAkEPNgI8IAJBhICAgHg2AjAgBCADEA4gAUELSQ0AIAJBADYATyACQgA3AkggAkIANwJAIAJBCjoAUyACQRA2AjwgAkGJgICAeDYCMCAEIAMQDiABQQtGDQAgAkEANgBXIAJCADcCUCACQgA3AkggAkIANwJsIAJCADcCdCACQQA2AHsgAkIANwKQASACQgA3ApgBIAJBADYAnwEgAkIANwK0ASACQgA3ArwBIAJBADYAwwEgAkIANwLYASACQgA3AuABIAJBADYA5wEgAkIANwL8ASACQgA3AoQCIAJBADYAiwIgAkEANgCvAiACQgA3AqgCIAJCADcCoAIgAkGKgICAeDYCOCACQRE2AkQgAkGLgICAeDYCXCACQRI2AmggAkGMgICAeDYCgAEgAkETNgKMASACQY2AgIB4NgKkASACQRQ2ArABIAJBjoCAgHg2AsgBIAJBFTYC1AEgAkGPgICAeDYC7AEgAkEWNgL4ASACQZCAgIB4NgKQAiACQRc2ApwCIAJCgICAgPAANwIwIAJBEToAswIgAkEQOgCPAiACQQ86AOsBIAJBDjoAxwEgAkENOgCjASACQQs6AFsgAkG8AmohBSACQThqIAJBDDoAfyACQTxqIQNBASEEA0ACQCAEQQhGBEBBByEEDAELIAIgBDYCMCADQQRrKAIAIgZBfkYNACAFIAMpAgA3AgAgBSADKQIINwIIIAUgAykCEDcCECAFIAMpAhg3AhggAiAGNgK4AiADQSRqIQMgBEEBaiEEIAJB3AJqIgYgAkEYaiACQbgCahAPIAYQEAwBCwsgBEEHEBEgAUEMTQ0AIAJBADYAVyACQgA3AlAgAkIANwJIIAJCADcCbCACQgA3AnQgAkGAgAQ2AnwgAkEYNgJoIAJBkYCAgHg2AlwgAkEFOgBbIAJBGTYCRCACQYSAgIB4NgI4IAJCgICAgCA3AjAgAkE8aiEDIAJBvAJqIQQgAkE4akEBIQEDQAJAIAFBA0YEQEECIQEMAQsgAiABNgIwIANBBGsoAgAiB0F+Rg0AIAQgAykCADcCACAEIAMpAgg3AgggBCADKQIQNwIQIAQgAykCGDcCGCACIAc2ArgCIANBJGohAyABQQFqIQEgAkHcAmoiByACQRhqIAJBuAJqEA8gBxAQDAELCyABQQIQEQsCQCACKAIkIgNFBEAgAiACKQMgNwM4IAIgAikDGDcDMCACQejnwgApAwA3AxggAkHw58IAKQMANwMgIAJBMGoQXgwBCyACQRBqIAMQWyACKAIQQQFHDQAgAigCFCACKAIcQQFqTw0AIAJBCGohByMAQdAAayIBJAAgASACQShqNgIMIAEgAUEMajYCECABQTBqIAJBGGoiBEEQakEkIAMQKiABKAI4IQMgASgCNCEFIAEoAjAiBgRAIAEgASkCRDcCKCABIAEpAjw3AiAgASADNgIcIAEgBTYCGCABIAY2AhQgBCgCACIFKQMAIQkgBCgCDCEDIAEgBTYCQCABIAM2AjwgAUEANgI4IAEgCUJ/hUKAgYKEiJCgwIB/gzcDMCABQSBqIQUDQCADBEADQCABIAFBMGoQIyABKAIAQQFxRQRAIAEgASgCQCIDQQhqNgJAIAEgASgCOEEIajYCOCABIAMpAwhCf4VCgIGChIiQoMCAf4M3AzAMAQsLIAEoAgQhBiABIAEoAjxBAWsiAzYCPCAFIAFBEGogBCAGIAEoAjhqIgYQOxAsIQggASgCICAIQX9zQSRsaiAEKAIAIAZBf3NBJGxqQST8CgAADAELCyABIAQoAgwiAzYCLCABIAEoAiggA2s2AiggBCAFEC0gAUEUahAuQX8hBQsgByADNgIEIAcgBTYCACABQdAAaiQACyAAIAIpAyg3AxAgACACKQMgNwMIIAAgAikDGDcDACACQYADaiQACxgBAX4Q1RBBiPTFAC0AAEECRwRAENMQCwtaAQJ+AkAgAigCRCEBIAMgAykDACIEIAIoAkgiAkEfcUEAR60gAkEFdq18QgN+Qg98IgV9NwMAIAQgBVQEQCAAENELDAELIABBBGogASACEKgRIABBfzYCAAsLnwECAX8CfiACKAJEIQQgAigCSCECIwBBQGoiASQAIAMgAykDACIFIAJBH3FBAEetIAJBBXatfEL4AH5C2AR8IgZ9NwMAAkAgBSAGVARAIAAQ0QsMAQsgAUEIahDSCyABQRRqIgMgASgCCCAEIAIgASgCDCgCFBEHACABQTRqIgIgA0EgEPAFIABBBGogAhCpESAAQX82AgALIAFBQGskAAudAQIBfwJ+IAIoAkQhBCACKAJIIQIjAEFAaiIBJAAgAyADKQMAIgUgAkEfcUEAR60gAkEFdq18Qgx+Qjx8IgZ9NwMAAkAgBSAGVARAIAAQ0QsMAQsgAUEIahDSCyABQRRqIgMgASgCCCAEIAIgASgCDCgCEBEHACABQTRqIgIgA0EgEPAFIABBBGogAhCpESAAQX82AgALIAFBQGskAAvgAwIEfwF+IAIoAkQhBCACKAJIIQIjAEHgAWsiASQAIAMgAykDACIIQrgXfTcDAAJAIAhCtxdYBEAgABDRCwwBCyABQQhqIgUgBCACEOsIIAFBKWogASgCDCIDQSBqIAEtAAgiBBshBiAFQQFyIQVBACECAkACQANAIAJBH0cEQCACIAZqIAJBAWohAi0AAEUNAQwCCwsgAUHIAGogA0E/aiAEGy0AAEEbayICQf8BcUECSQ0BCyAAQQA2AhAgAEIBNwIIIABB6KbDADYCBCAAQX82AgAMAQsgARDSCyABQbABaiABKAIAIAFByQBqIANBQGsgBBsgAiAFIAMgBBsgASgCBCgCJBEIAEEBIQICfwJAAkAgAS0AsAFBAUYEQCABQbQBahDeCAwBCyABIAEpAMkBNwCoASABIAEpAMEBNwCgASABIAEpALkBNwCYASABIAEpALEBNwCQASABQQE6AI8BIAFB1AFqIgMgAUGQAWpBIBDwBSABQbABaiADEKkRIAEoArABIgMNAQtB6KbDACEDQQAhBEEADAELIAEoArwBIQQgASgCtAEhAiABKAK4AQshBSAAIAQ2AhAgACAFNgIMIAAgAjYCCCAAIAM2AgQgAEF/NgIACyABQeABaiQACxsAIAAgAigCRCACKAJIQoDxBEKgjQYgAxDYCwsXACAAIAIoAkQgAigCSELAuAIgAxDWCwsWACAAIAIoAkQgAigCSEL0AyADENQLCxoAIAAgAigCRCACKAJIIANCAEEAQdkDENwLC7cDAgV/An4gACEEIAIoAkQhASACKAJIIQAjAEHQAmsiAiQAAkAgAEHVAUYEQCADIAMpAwAiCSABKAAAIgBB/4H8B3FBCHggAEEYeEH/gfwHcXIiBa0iCn03AwAgCSAKVARAIAQQ0QsMAgtBACEAQQAhAwJAAkACQCABLQDUAQ4CAgEACyAEQoGAgICggICAgH83AgAMAwtBASEDCyACQRBqIgYgAUEEakHAAPwKAAAgAkHQAGoiByABQcQAakGAAfwKAAAgASkAxAEhCSABKQDMASEKIAJBCGoQ0gsgAigCCCACKAIMIQggAiAKNwOYAiACIAk3A5ACIAUgBiAHIAJBkAJqIAMgCCgCLBEKACACQdABakEAQcAA/AsAA0AgAEHAAEcEQCACIAJB0AFqIAAgAEEIaiIBQaDXwwAQ2gsgAigCBCEDIAIoAgAgAiACQRBqIABqKQMANwOQAiADIAJBkAJqQQhBsNfDABCRDSABIQAMAQsLIAJBkAJqIgAgAkHQAWpBwAD8CgAAIARBBGogABDVCyAEQX82AgAMAQsgBEKBgICAkICAgIB/NwIACyACQdACaiQACxsAIAAgAigCRCACKAJIQtCJAkLI3wIgAxDYCwsWACAAIAIoAkQgAigCSELwLiADENYLCxYAIAAgAigCRCACKAJIQpYBIAMQ1AsLGwAgACACKAJEIAIoAkggA0LIAUEAQdcDENwLC6UCAgF/AX4gAigCRCEEIAIoAkghAiMAQTBrIgEkACADIAMpAwAiBULQhgN9NwMAAkAgBULPhgNYBEAgABDRCwwBCwJAIAJBwAFGBEAgAUEIahDSCyABQRBqIgIgASgCCCAEQeAAaiIDQTAgASgCDCgCEBEHACABQQE6ABAgAiAEENMLDQEgARDSCyACIAEoAgAgBEEgaiAEQUBrIAMgBEGQAWogASgCBCgCNBEKACABKAIQIgJBfkcEQCAAIAEpAhQ3AgggACACNgIEIABBATYCAAwDCyAAQsAANwIMIABBwNbDADYCCCAAQeimwwA2AgQgAEF/NgIADAILIABCgYCAgKCBgICAfzcCAAwBCyAAQoGAgICwgYCAgH83AgALIAFBMGokAAvRAwIDfwF+IAIoAkQhBCACKAJIIQIjAEGQBGsiASQAIAMgAykDACIHQvcCfTcDAAJAIAdC9gJYBEAgABDRCwwBCyACQYACRgRAIAFBkANqIAQQpAogASgCmAMhAiABKAKUAyEDIAEoApADIgVBfkcEQCAAIAI2AgwgACADNgIIIAAgBTYCBCAAQQE2AgAMAgsgAUGQA2ogBEGAAWoQpAogASgCkAMiBEF+RwRAIAAgASkClAM3AgggACAENgIEIABBATYCAAwCCyABKAKYAyEEIAEoApQDIQUgAUEQaiIGIANBMPwKAAAgAUFAayACQTD8CgAAIAFB8ABqIgIgBUEw/AoAACABQaABaiAEQTD8CgAAIAFBCGoQ0gsgAUGQA2ogASgCCCAGIAIgASgCDCgCOBEHACABLQCQA0EBRgRAIAEgASgCnAMiAjYAuwIgASABKQKUAyIHNwCzAiAAIAI2AAwgACAHNwAEIABBATYCAAwCCyABQbACaiIDIAFBkANqIgJBAXJB4AD8CgAAIAFB0AFqIgQgA0HgAPwKAAAgAiAEEO4LIABBBGogAhDvCyAAQX82AgAMAQsgAEKBgICAsIKAgIB/NwIACyABQZAEaiQAC+cCAgJ+An8gAigCRCEHIAIoAkghAiMAQeACayIBJAACQCACQQAgAiACQaABbiIGQaABbEYbRQRAIABCgYCAgMCCgICAfzcCAAwBCyADIAMpAwAiBSACQaABTwRAQf8AIAZBAWsiAyADQf8ATxtBAXQzAcDSQyAGrX5C4N0AfkLoB4AhBAsgBH03AwAgBCAFVgRAIAAQ0QsMAQsgASAGNgIcIAFBADYCGCABIAI2AhQgASAHNgIQIAFBCGoQ0gsgAUHgAWogASgCCCABQRBqQdDbwwAgASgCDCgCPBEHACABLQDgAUEBRgRAIAEgASgC7AEiAjYAiwEgASABKQLkASIENwCDASAAIAI2AAwgACAENwAEIABBATYCAAwBCyABQYABaiIDIAFB4AFqIgJBAXJB4AD8CgAAIAFBIGoiBiADQeAA/AoAACACIAYQ7gsgAEEEaiACEO8LIABBfzYCAAsgAUHgAmokAAuYBAIHfwF+IAIoAkQhBCACKAJIIQIjAEGQCGsiASQAIAMgAykDACILQtgEfTcDAAJAIAtC1wRYBEAgABDRCwwBCyACQYAERgRAIAFBkAZqIAQQpQogASgCnAYhAiABKAKYBiEDIAEoApQGIQUgASgCkAYiCEUEQCAAIAI2AgwgACADNgIIIAAgBTYCBCAAQQE2AgAMAgsgAUGQBmogBEGAAmoQpQogASgCnAYhBCABKAKYBiEGIAEoApQGIQcgASgCkAYiCUUEQCAAIAQ2AgwgACAGNgIIIAAgBzYCBCAAQQE2AgAMAgsgAUEQaiIKIAhBMPwKAAAgAUFAayAFQTD8CgAAIAFB8ABqIANBMPwKAAAgAUGgAWogAkEw/AoAACABQdABaiICIAlBMPwKAAAgAUGAAmogB0Ew/AoAACABQbACaiAGQTD8CgAAIAFB4AJqIARBMPwKAAAgAUEIahDSCyABQZAGaiABKAIIIAogAiABKAIMKAJAEQcAIAEtAJAGQQFGBEAgASABKAKcBiICNgDbBCABIAEpApQGIgs3ANMEIAAgAjYADCAAIAs3AAQgAEEBNgIADAILIAFB0ARqIgMgAUGQBmoiAkEBckHAAfwKAAAgAUGQA2oiBCADQcAB/AoAACACIAQQ8AsgAEEEaiACEPELIABBfzYCAAwBCyAAQoGAgIDQgoCAgH83AgALIAFBkAhqJAAL5wICAn4CfyACKAJEIQcgAigCSCECIwBBoAVrIgEkAAJAIAJBACACIAJBoAJuIgZBoAJsRhtFBEAgAEKBgICA4IKAgIB/NwIADAELIAMgAykDACIFIAJBoAJPBEBB/wAgBkEBayIDIANB/wBPG0EBdDMBwNRDIAatfkLkrwF+QugHgCEECyAEfTcDACAEIAVWBEAgABDRCwwBCyABIAY2AhwgAUEANgIYIAEgAjYCFCABIAc2AhAgAUEIahDSCyABQaADaiABKAIIIAFBEGpB7NvDACABKAIMKAJEEQcAIAEtAKADQQFGBEAgASABKAKsAyICNgDrASABIAEpAqQDIgQ3AOMBIAAgAjYADCAAIAQ3AAQgAEEBNgIADAELIAFB4AFqIgMgAUGgA2oiAkEBckHAAfwKAAAgAUEgaiIGIANBwAH8CgAAIAIgBhDwCyAAQQRqIAIQ8QsgAEF/NgIACyABQaAFaiQAC7cGAhB/An4gAigCRCEIIAIoAkghAiMAQeAEayIBJAACQCACQQAgAiACQYADbiIGQYADbEYbRQRAIABCgYCAgPCCgICAfzcCAAwBCyADIAMpAwAiFCAGrULY/gF+QsSmAnwiFX03AwAgFCAVVARAIAAQ0QsMAQsgAUEIaiAGQQFBoAIQ8QVBACEDIAFBADYCHCABIAEoAgwiCTYCGCABIAEoAgg2AhQgAUGAAWohCiABQbAEaiELIAFBgARqIQwgAUHQA2ohDSABQfACaiEOAkACQANAAkACQCADIAZHBEAgA0GAA2wiBEGAAWohBSAEQf8AciACTw0CIARBgANqIgcgAksNBCABQSBqIAQgCGoQpAogASgCICIEQX5GDQEgACABKQIkNwIIIAAgBDYCBAwFCyABENILIAFBIGogASgCACABKAIYIAEoAhwgASgCBCgCSBEHACABLQAkIQIgASgCICIDQX5HBEAgACABKAAoNgAMIAAgASgAJTYACSAAIAI6AAggACADNgIEDAULIAFCADcANyABQgA3AzAgAUIANwMoIAFCADcDICABIAI6AD8gAEEEaiABQSBqEOQLIABBfzYCACABQRRqEPILDAULIAEoAighBCABKAIkIQcgAUEgaiIPIAUg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AQR/IwBBIGsiAiQAAn8CQANAIARBE0cEQCABIARqIARBAWohBC0AAEUNAQwCCwsgAS0AEyIEQf8BRg0AIAJBEGogACgCGCAAKAIcEJMLIAIoAhAiASACKAIUIgMQJSEFIwBBMGsiACQAIAAgBDYCDCABIAMQJRogACAFNgIUIABBADYCECAEIAVPBEAgACAAQRRqNgIcIABBATYCGCAAQQE2AiwgAEECNgIkIAAgAEEYajYCKCAAIABBDGo2AiBBvYzAACAAQSBqQdTmwgAQ4hEACyAAQTBqJAAgAkEIaiIAIANBACABGzYCBCAAIAFBBCABGzYCACACKAIIIQEgAigCDCEDIwBBEGsiACQAIAAgAzYCDCAAIAE2AgggAEEIaiIBENwKIQMgAkEYaiIFIAEoAgBBA3RBGHEgASgCBEEHcXI6AAQgBSADNgAAIABBEGokACACIAItABwgBGoiAEEfcToABCACIABBBXU2AgAgAigCGCACKAIAQQJ0aiIAIAAoAgBBASACLQAEdHI2AgBBAQwBC0EACyACQSBqJAALZQIBfwF+AkAgASABQRBqIAIQ/gciBCACEDoiAwRAIAAgATYCDCAAIAM2AghBACEBDAELIABBCGoiAyACKAAQNgAQIAMgAikACDcACCADIAIpAAA3AAALIAAgATYCHCAAIAQ3AwALuQcCDH8DfiMAQTBrIgUkAAJAIAAoAhwiAgRAEJYBIQ8gACkDACEOIAVB6OfCACkDADcDICAFQfDnwgApAwA3AyggBSAAKAIYNgIYIAUgACkDEDcDECAFIAApAwg3AwggAiAOEDAhACACKAIAIQMCQCACKAIIDQAgACADai0AAEEBcUUNACMAQdAAayIBJAAgASACQRBqIgY2AgwgAigCDCEHIAEgAUEMajYCEAJ/AkAgByAHQQFqIgBNBEAgAigCBCIEIARBAWoiC0EDdkEHbCAEQQhJGyIDQQF2IABJBEAgAUEwaiAGQTAgA0EBaiIDIAAgACADSRsQKiABKAI4IQAgASgCNCIDIAEoAjAiBEUNAxogASABKQJENwIoIAEgASkCPDcCICABIAA2AhwgASADNgIYIAEgBDYCFCACKAIAIgApAwAhDSABIAA2AkAgASAHNgI8IAFBADYCOCABIA1Cf4VCgIGChIiQoMCAf4M3AzAgAUEgaiEDA0Ag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AAwBCyAIIAMoApAEIgE2AvQHIAAgATYCDCAAQQA6AAggAEIBNwMAIANB2ABqEHYLIANB4AVqJAALQQEBfyAAQdgCaiIDIAEQwgEgAC0AAkEIcQRAIAMgAEGIAmoQwgELIAItAABBAUYEQCADIAJBAWoQwgELIAAQwwELWgEBfyMAQUBqIgIkACAAQcgAaiIAIAEQugFFBEAgAiABKAAQNgI4IAIgASkACDcDMCACIAEpAAA3AyggAkEIaiIBIAAgAkEoahC7ASABELwBGgsgAkFAayQAC7cBAQR/IwBBMGsiASQAIAFBGGogACgC0AIgACgC1AIoAhARAAAgASgCGCEDIAEgASgCHCICIAEoAiBBFGwiBGo2AhQgASADNgIQIAEgAjYCDCABIAI2AgggAEHYAmohAwNAIAQEQCABIAJBFGoiADYCDCABIAIoABA2AiggASACKQAINwMgIAEgAikAADcDGCADIAFBGGoQwgEgBEEUayEEIAAhAgwBCwsgAUEIahDvCiABQTBqJAALgAQBBH8jAEEwayIDJAAgAxCWATcDKCADQfDnwgApAwA3AyAgA0Ho58IAKQMANwMYIwBBEGsiAiQAQQRBDBAiIgRBADoACCAEQoGAgIAQNwIAIAIgA0EYaiIFQQAgBEHE6MIAEEIgAiACKQMANwIIIAJBCGoQQyACQRBqJAAgAyAFIgIpAxA3AxAgAyACKQMINwMIIAMgAikDADcDAAJAIAFBB0kNACMAQRBrIgIkAEEEQQwQIiIEQQE6AAggBEKBgICAEDcCACACIANBASAEQeTowgAQQiACIAIpAwA3AgggAkEIahBDIAJBEGokACABQQdGDQAjAEEQayICJABBBEEMECIiBEECOgAIIARCgYCAgBA3AgAgAiADQQIgBEHU6MIAEEIgAiACKQMANwIIIAJBCGoQQyACQRBqJAAgAUELSQ0AIwBBEGsiAiQAQQRBDBAiIgRBAzoACCAEQoGAgIAQNwIAIAIgA0EDIARB9OjCABBCIAIgAikDADcCCCACQQhqEEMgAkEQaiQAIAFBC0YNACMAQRBrIgEkAEEEQQwQIiICQQQ6AAggAkKBgICAEDcCACABIANBBCACQbTowgAQQiABIAEpAwA3AgggAUEIahBDIAFBEGokAAsgACADKQMQNwMQIAAgAykDCDcDCCAAIAMp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zwENAAJAIAUoAlAiBQRAIAUoAigNAQsgBCAGKQAYNwPoAiAEIAYpABA3A+ACIAQgBikACDcD2AIgBCAGKQAANwPQAiAEQQhqIAQoAqwBQUBrIARB0AJqENABIAQoAgwhBSAEKAIIDAMLIAUgBSgCACIGQQFqNgIAIAZBAE4NAQALENEBIQULQQALQQFxBEAgACAFNgIEIABBADoAACABIAU2AvQHDAELIAQgBTYCyAEgBS0AMCEBIARByAFqEFYgACADEL4KENIBOgAYIAAgB0EARzoAFyAAIAE6ABYgACAIPAAVIABB/wE6AAAgACAEKAIoNgARIAAgBCkDIDcACSAAIAQpAxg3AAEgBEHsA2oQViAEQTBqEJEBDAMLIARB7ANqEFYLIARBMGoQkQEMAQsgAEH/AToAACAAQQI6ABULIARB8ANqJAAL/AIBB38jAEHgAGsiAiQAIAACfyABENIBRQRAIAIgASgAEDYCECACIAEpAAg3AwggAiABKQAANwMAIAJBFDYCSCACQQE2AkAgAkH/9cAANgI8IAJBAjYCOCACQfj3wgA2AjQgAiACNgJEIAJBKGohBiMAQSBrIgEkACACQTRqIggiBUEEaiEDQQMhBwNAIAMoAgAgBGohBCADQQhqIQMgB0EBayIHDQALQRghAyABQQhqIARBAUEBEPEFIAFBADYCHCABIAEpAwg3AhQDQCADBEAgAUEUaiAFKAIAIgQgBCAFKAIEahDaDyADQQhrIQMgBUEIaiEFDAELCyAGIAEoAhw2AgggBiABKQIUNwIAIAFBIGokACACQRhqIAYQqREgAigCICEBIAJBAToAXCACIAE2AlQgAkEANgJYIAJCADcCPCACQoCAgIAQNwI0IAIgAikCGDcCRCACIAIpAiA3AkwgCBD7BgwBCxDRAQsQ9QYgABDHASACQeAAaiQAC7ABAQJ/IwBB8ABrIgMkACACQdgCaiABKAIMIAEoAhAgAikDqAcQ9AogASgCACEEIANCADcDICADQgA3AyggA0IANwMwIAMgAjYCYCADQgA3A2ggA0EAOgBeIANBIDsBSCADQQA2AkQgA0IBNwI8IANBhPPCADYCOCADQgA3AwggAyABKAIIKQMANwMYIAMgASgCBCkDADcDECAAIAQgAiADQQhqQgAQzQEgA0HwAGokAAufAgICfwR+IwBBsAFrIgUkACADQv///////////wAgAykDKCIIQv///////////wAgASgCACkDACIHIAdC////////////AFobIgd8IgkgB0IAUyAIIAlVcxs3AyggBSABKAIIIgYpAAA3A5gBIAUgBikACDcDoAEgBSAGKAAQNgKoASAFIAEoAgwiBikDADcDACAFIAYpAwg3AwggBSAGKQMQNwMQIAUgBikDGDcDGCABKAIYKQMAIQggASgCECkDYCEHIAEoAhQpAwAhCSABKAIcKQMAIQogBUFAayADQdgA/AoAACAFIAo3AzggBSAJNwMoIAUgBzcDICAFQn8gBCAIfCIEIAQgCFQbNwMwIAAgAiAFEMABIAVBsAFqJAALDAAgAEHQ6sIAEM8BCwwAIAAgAUEgEI8SRQvjAQECfyMAQeAAayIDJAAgAyACKQAYNwNYIAMgAikAEDcDUCADIAIpAAg3A0ggAyACKQAANwNAIANBEGoiBCABQRhqIANBQGsQGgJAAn8CQCADKAI4BEAgA0EIaiABKAJgIAIgASgCZCgCFBEDACADKAIMIQJBASADKAIIQQFxDQIaIAQgAhAbKAIAIgIgAigCACIBQQFqNgIAIAFBAE4NAQwDCyADKAIYQQRrKAIAIgIgAigCACIBQQFqNgIAIAFBAEgNAgtBAAshASAAIAI2AgQgACABNgIAIANB4ABqJAAPCwALJAECfxDzBygCACIAIAAoAgAiAUEBajYCACABQQBIBEAACyAACwwAIABBwOzCABCQBwtGAQF/AkAgASACQQFqIgRNDQAgASACQX9zakECdCIBRQ0AIAAgBEECdGogACACQQJ0aiAB/AoAAAsgACACQQJ0aiADNgIAC2kBAX8CQCABIAJBAWoiBE0NACABIAJBf3NqQQV0IgFFDQAgACAEQQV0aiAAIAJBBXRqIAH8CgAACyAAIAJBBXRqIgAgAykAGDcAGCAAIAMpABA3ABAgACADKQAINwAIIAAgAykAADcAAAuPAQEBfyMAQUBqIgIkACACIAAoAgAiACkAADcDACACIAApAAg3AwggAiAAKQAQNwMQIAIgACkAGDcDGCACIAEoAgAiACkAADcDICACIAApAAg3AyggAiAAKQAQNwMwIAIgACkAGDcDOCACQSAgAkEgakEgEMgRIQAgAkFAayQAIABB/wFxQf4BRyAAwEEASHELhBMCCH8BfiMAQRBrIggkACADQQFrIQMDQAJAAn8CQAJAAkAgAUEhTwRAIANBf0YEQCAAIQIgASIDIAFBAXZqIQQDQCAEBEACfyADIARBAWsiBE0EQCAEIANrDAELIAIpAgAhDSACIAIgBEEDdGoiACkCADcCACAAIA03AgBBAAshASADIAQgAyAESRshBgNAIAFBAXQiBUEBciIAIAZPDQIgBiAFQQJqIgVLBEAgAiAAQQN0aiACIAVBA3RqENUBIABqIQALIAIgAUEDdGoiASACIABBA3RqIgUQ1QFFDQIgASAFQQIQuQ4gACEBDAALAAsLDAILIAAgAUEDdiIHQThsaiEGIAAgB0EFdGohBQJ/IAFBwABPBEAgACAFIAYgByAEEO8BDAELIAAgACAFENUBIgcgACAGENUBRw0AGiAGIAUgBSAGENUBIAdzGwsgAGsiBkEDdiEFIAINAgwDCyAAIQMjAEGAAmsiBCQAAkACQAJAIAEiAkECSQ0AIAFBIEsNASABIAFBAXYiBSABQRJJIgcbIQEgAiAFayEGIAAgBUEDdGohBQNAIAAgAQJ/IAFBDE0EQEEBIAFBCE0NARoCQCABQQlPBEAgAEEAQQMQ8AEgAEEBQQcQ8AEgAEECQQUQ8AEgAEEEQQgQ8AEgAEEAQQcQ8AEgAEECQQQQ8AEgAEEDQQgQ8AEgAEEFQQYQ8AEgAEEAQQIQ8AEgAEEBQQMQ8AEgAEEEQQUQ8AEgAEEHQQgQ8AEgAEEBQQQQ8AEgAEEDQQYQ8AEgAEEFQQcQ8AEgAEEAQQEQ8AEgAEECQQQQ8AEgAEEDQQUQ8AEgAEEGQQgQ8AEgAEECQQMQ8AEgAEEEQQUQ8AEgAEEGQQcQ8AEgAEEBQQIQ8AEgAEEDQQQQ8AEgAEEFQQYQ8AEMAQsAC0EJDAELAkAgAUENTwRAIABBAEEMEPABIABBAUEKEPABIABBAkEJEPABIABBA0EHEPABIABBBUELEPABIABBBkEIEPABIABBAUEGEPABIABBAkEDEPABIABBBEELEPABIABBB0EJEPABIABBCEEKEPABIABBAEEEEPABIABBAUECEPABIABBA0EGEPABIABBB0EIEPABIABBCUEKEPABIABBC0EMEPABIABBBEEGEPABIABBBUEJEPABIABBCEELEPABIABBCkEMEPABIABBAEEFEPABIABBA0EIEPABIABBBEEHEPABIABBBkELEPABIABBCUEKEPABIABBAEEBEPABIABBAkEFEPABIABBBkEJEPABIABBB0EIEPABIABBCkELEPABIABBAUEDEPABIABBAkEEEPABIABBBUEGEPABIABBCUEKEPABIABBAUECEPABIABBA0EEEPABIABBBUEHEPABIABBBkEIEPABIABBAkEDEPABIABBBEEFEPABIABBBkEHEPABIABBCEEJEPABIABBA0EEEPABIABBBUEGEPABDAELAAtBDQsQ8QEgBw0BIAAgA0YgBiEBIAUhAA0ACyACQQN0QQhrIgYgBCIBaiEJIAYgAyIAaiEFIAAgAkEBdiIKQQN0aiIGQQhrIQcDQCAKBEAgASAGIAAgBiAAENUBIgsbKQIANwIAIAkgByAFIAUgBxDVASIMGykCADcCACAKQQFrIQogCUEIayEJIAFBCGohASAGIAtBA3RqIQYgACALQQFzQQN0aiEAIAcgDEEDdCILayEHIAUgC2pBCGshBQwBBQJAIAdBCGohByACQQFxBH8gASAAIAYgACAHSSIBGykCADcCACAGIAAgB09BA3RqIQYgACABQQN0agUgAAsgB0YgBiAFQQhqRnENABCCEgALCwsgAkEDdCIARQ0AIAMgBCAA/AoAAAsgBEGAAmokAAwBCwALCyAIQRBqJAAPCyACIAAgBmoQ1QENACAIIAQ2AgAjAEEQayIGJAACQCABRQRAQQAhAgwBCwJAAkAgASAFTQ0AIAApAgAhDSAAIAAgBUEDdGoiAikCADcCACACIA03AgAgBiAAIAFBAUHI7cIAENcBIAYoAgRFDQEgBigCCCEFIAYoAgwhCSAGKAIAIQcjAEEwayICJAAgAiAFNgIIIAkEfyACIAc2AhAgAiAINgIMIAIgAkEIajYCFCACIAUpAgA3AhggAkEANgIsIAIgBUEIaiIHNgIoIAIgBTYCICAFIAlBA3RqQQhrIQUgAiACQRhqNgIkA38gBSAHTQR/IAIoAgggCUEDdGohBQNAIAUgB0cEQCACQQxqIAJBIGoQ8gEgAigCKCEHDAELCyACIAIoAiQ2AiggAkEMaiACQSBqEPIBIAIoAiwFIAJBDGoiByACQSBqIgoQ8gEgByAKEPIBIAIoAighBwwBCwsFQQALIAJBMGokACIC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AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBCxDDEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhCoA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBDBDDEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhCqA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBDRDDEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhCsA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBDhDDEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhCuA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBDxDDEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhCwA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBEBDDEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhCyA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBARDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhC0A0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBAhDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhC2A0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBAxDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhC4A0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBBBDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhC6A0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBBRDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhC8A0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBBhDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhC+A0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBBxDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhDAA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBCBDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhDCA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBCRDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhDEA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBChDEEgtEAgF/AX4gAyADKQMAIgVCCH03AwBBICEEAkAgBUIIWgRAIAEgAhDGA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagv+JgIPfhV/IwBBgAFrIhYkAEErIRIgASgCACIUQQNPBEAgASAUQQJrNgIAIBYgACAUQQV0aiIBQSBrIgApAxg3AzggFiAAKQMQNwMwIBYgACkDCDcDKCAWIAApAwA3AyAgFiABQUBqIgApAxg3A1ggFiAAKQMQNwNQIBYgACkDCDcDSCAWIAApAwA3A0AgFiABQeAAayIbKQMYNwN4IBYgGykDEDcDcCAWIBspAwg3A2ggFiAbKQMANwNgIBZBIGohASAWQUBrIRlBACESIwBBgAVrIhEkAAJAIBZB4ABqIhoQzgENAANAIBJBwABHBEAgEUGwBGogEmoiAEIANwMIIABCADcDACASQRBqIRIMAQsLIAFBIGohACARQbAEaiEVQQQhEkEIIRcgEUGoBGoDfyASBH8gASkDAFAEfyAVQQhBACAXG2ohFSASQQFrIRIgAUEIaiEBIBcgF0EAR2shFwwCBSABCwUgAAsLIBIQvQYCQCARKAKsBCIARQ0AIBEoAqgEIRwgGUEgaiEBQQQhEiARQaAEagN/IBIEfyAZKQMAUAR/IBVBCEEAIBcbaiEVIBJBAWshEiAZQQhqIRkgFyAXQQBHayEXDAIFIBkLBSABCwsgEhC9BiARKAKkBCISRSAXRXINACARKAKgBCETAkAgACASSQRAIBIhGCATIRQgACESIBwhEwwBCyAAIRggHCEUCyATIBJBA3RqIRwDQCATIBxGDQEgEykDACECAkAgFyAYSQRAIBdFDQNCACEFIBchACAVIRIgFCEBA0AgAEUNAiARQYAEaiABKQMAQgAgAhCVEiASIBEpA4AEIgMgBXwiBCASKQMAfCIFNwMAIAQgBVatIBEpA4gEIAMgBFatfHwhBSAAQQFrIQAgEkEIaiESIAFBCGohAQwACwALIBFB8ARqIBUgFyAYQYD+wgAQ1wEgESgC/AQgESgC+AQhGSARKALwBCESQgAhBSAYIQAgFCEBA0AgAARAIBFBkARqIAEpAwBCACACEJUSIBIgESkDkAQiAyAFfCIEIBIpAwB8IgU3AwAgBCAFVq0gESkDmAQgAyAEVq18fCEFIABBAWshACASQQhqIRIgAUEIaiEBDAELCyAFUA0AQQN0IRIDQCASRQ0BIBkgGSkDACICIAV8IgQ3AwAgEkEIayESIBlBCGohGUIBIQUgAiAEVg0ACwsgE0EIaiETIBFB8ARqIBUgF0EBQZD+wgAQ1wEgESgC/AQhFyARKAL4BCEVDAALAAsgEUH4A2ogGkEEEL0GAkACQCARKAL8AyIUBEAgESgC+AMhGCARQfADaiARQbAEakEIEL0GIBEoAvQDIhNFDQEgESgC8AMhFQJAIBMgFEYEQCARQfAEaiAVIBQgGBC+BiARLQD4BA0BDAQLIBMgFE8NAwsgEUHwBGogGCAUIBNB4P3CABDXASARKAL8BCEAIBEoAvgEIBEoAvAEIBEoAvQEIBUgE0Hw/cIAEJINIAAQrA0gFSATEKwNDAMLQdD9wgAQgBIACyAYIBQQrA0MAQsCQAJAAkACQAJAAkACQAJAAkACQCAUQQFrDgIAAQILIBgpAwAhAiATQQFGBEAgFSAVKQMAIgQgAoAiAzcDACAYIAQgAiADfn03AwAMCgsCQCACeSIFUARAIBFBwAFqQgAgAkIBg31CgICAgICAgIAQIAJCN4inQQF0Qdy/xQBqMwEAIgRCC4YgAkIYiEIBfCIDIAR+IAR+QiiIQn+FfCIEIAN+fSAEfkIviCAEQg2GfCIEQgGIgyAEIAJCAXxCAYh+fUIAIAQQlRIgEUGwAWogBEIfhiARKQPIAUIBiHwiBEIBfCIDIANQrSACEJUSIAQgAiARKQO4AXx9IQUgE0EDdCESIBVBCGshAEIAIQMDQCASRQ0CIBFBoAFqIAVCASADEJUSIBEpA6gBIBEpA6ABIgQgACASaiIBKQMAIgN8IgYgBFStfCIEIARCAXwiBCADIAIgBH59IgMgBlYiFBshBCABIAIgAkIAIBQbIAN8IgNYBH4gAyACfSEDIARCAXwFIAQLNwMAIBJBCGshEgwACwALIBFBgAJqQgAgAiAFhiIEQgGDfUKAgICAgICAgBAgBEI3iKdBAXRB3L/FAGozAQAiAkILhiAEQhiIQgF8IgMgAn4gAn5CKIhCf4V8IgIgA359IAJ+Qi+IIAJCDYZ8IgJCAYiDIAIgBEIBfEIBiH59QgAgAhCVEiARQfABaiACQh+GIBEpA4gCQgGIfCICQgF8IgMgA1CtIAQQlRIgAiAEIBEpA/gBfH0hAiAVIBNBA3RqIgBBCGspAwBCwAAgBX0iB4ghAyAFQj+DIQUgAEEQayESA0AgE0ECTwRAIBFB0AFqIAJCASADEJUSIBEpA9gBIBEpA9ABIgMgEkEIaiIAKQMAIAWGIBIpAwAgB4iEIgZ8IgggA1StfCIDIANCAXwiAyAGIAMgBH59IgMgCFYiARshBiAAIAQgBEIAIAEbIAN8IgNYBH4gAyAEfSEDIAZCAXwFIAYLNwMAIBNBAWshEyASQQhrIRIMAQsLIBFB4AFqIAJCASADEJUSIBEpA+gBIBEpA+ABIgIgFSkDACAFhiIDfCIGIAJUrXwiAiACQgF8IgIgAyACIAR+fSICIAZWIgAbIQMgBCAEQgAgABsgAnwiAlgEQCADQgF8IQMgAiAEfSECCyAVIAM3AwAgAiAFiCEDCyAYIAM3AwAMCQsgGCkDACEGIBgpAwgiA3kiBVAEQCARQdACakIAIANCAYN9QoCAgICAgICAECADQjeIp0EBdEHcv8UAajMBACICQguGIANCGIhCAXwiBCACfiACfkIoiEJ/hXwiAiAEfn0gAn5CL4ggAkINhnwiAkIBiIMgAiADQgF8QgGIfn1CACACEJUSIBFBwAJqIAJCH4YgESkD2AJCAYh8IgJCAXwiBCAEUK0gAxCVEiACIAMgESkDyAJ8fSIHIAN+IgQgBnwiAiAEVA0CDAcLIBFB4ANqIAYgAyAFpyIBEJASIBFB0ANqQgAgESkD6AMiAkIBg31CgICAgICAgIAQIAJCN4inQQF0Qdy/xQBqMwEAIgRCC4YgAkIYiEIBfCIDIAR+IAR+QiiIQn+FfCIEIAN+fSAEfkIviCAEQg2GfCIEQgGIgyAEIAJCAXxCAYh+fUIAIAQQlRIgEUHAA2ogBEIfhiARKQPYA0IBiHwiBEIBfCIDIANQrSACEJUSIAIgBCACIBEpA8gDfH0iB34iBCARKQPgAyIGfCIDIARUDQIMBQsgGCAUQQJrIhxBA3RqKQMAIQggGCAUQQN0aiIAQQhrKQMAIgZ5IgpQIh9FBEAgEUGQAWogCCAGIAqnEJASIBEpA5ABIABBGGspAwBCwAAgCn2IhCEIIBEpA5gBIQYLIBFBgAFqQgAgBkIBg31CgICAgICAgIAQIAZCN4inQQF0Qdy/xQBqMwEAIgJCC4YgBkIYiEIBfCIEIAIgAn5+QiiIQn+FfCICIAR+fSACfkIviCACQg2GfCICQgGIgyACIAZCAXxCAYh+fUIAIAIQlRIgEUHwAGogAkIfhiARKQOIAUIBiHwiAkIBfCIEIARQrSAGEJUSIAIgBiARKQN4fH0iCSAGfiICIAh8IgUgAlQNAgwDC0J/Qn4gAiADVCIAGyAHfCEHIAIgA0IAIAMgABt8fSECDAQLQn9CfiACIANWIgAbIAd8IQcgA0IAIAIgABsgAnx9IQMMAgtCf0J+IAUgBlQiABsgCXwhCSAFQgAgBiAAGyAGfH0hBQsgEUHgAGogCEIAIAkQlRIgBSAFIBEpA2h8IgJWBEBCf0J+IBEpA2AgCFQgAiAGVCACIAZRGxsgCXwhCQsgFUEIayEhIApCP4MhDkLAACAKfSENIBVBAEchIiATIBRrIiNBAWoiICEdQgAhBANAICEgHUEDdGohFwNAAkACQCAdBEAgFSAdQQFrIh0gFGoiAEEDdGohGkIAIQUgACATSSIkICJxIhkEQCAaKQMAIQULIBpBCGsiHikDACEDIBpBEGsiJSkDACECIB9FBEAgEUHQAGogAyAFIAqnEJASIBEpA1AgAiANiIQhAyARKQNYIQUgAiAOhiAaQRhrKQMAIA2IhCECCyADIAhUIAUgBlQgBSAGURtFBEBCACEFQQAhGSAUIQAgFyESIBghAQNAIAAEQCARQUBrIAEpAwBCAEJ/EJUSIBIgEikDACIDIAUgESkDQCIFfCICfSIHIBmtQgGDIgt9NwMAIAcgC1QgAiADVnIhGSAAQQFrIQAgEkEIaiESIAFBCGohASARKQNIIAIgBVStfCEFDAEFQn8hAgwFCwALAAsgEUEwaiAFQgAgCRCVEiARQSBqIBEpAzAiByADfCILIAdUrSARKQM4IAV8fCIFQgAgCBCVEiAFIAsgAyAFIAZ+fSARKQMoIAIgESkDICIDVK18fSIHIAZ9IAIgA30iAyAIVK19IgxWIgCtfCECIAMgCH0gAyAAGyIDIAhUIgEgDCAHIAAbIgcgBlQgBiAHURtFBEAgByAGfSABrX0hByADIAh9IQMgAkIBfCECCyACUARAQgAhAgwDCwJAIB9FBEBCACEFQQAhASAUIQBBACESA0AgAARAIBFBEGogEiAYaikDAEIAIAIQlRIgEiAXaiIeIB4pAwAiByAFIBEpAxAiC3wiA30iBSABrUIBgyIMfTcDACAFIAxUIAMgB1ZyIQEgAEEBayEAIBJBCGohEiARKQMYIAMgC1StfCEFDAELCyAFIAGtQgGDfCEDIBkEfiAaKQMABUIACyADUQ0EDAELQgAhBUEAIQEgHCEAQQAhEgNAIAAEQCARIBIgGGopAwBCACACEJUSIBIgF2oiGSAZKQMAIgsgESkDACIMIAV8IgV9Ig8gAa1CAYMiEH03AwAgDyAQVCAFIAtWciEBIABBAWshACASQQhqIRIgESkDCCAFIAxUrXwhBQwBCwsgJSADIAUgAa1CAYN8IgV9NwMAIB4gByADIAVUIgCtfTcDACAAIAdQcUUNAwtBACEBIBQhAEEAIRIDQCAARQ0CIBIgF2oiGSASIBhqKQMAIgUgGSkDAHwiAyABrUIBg3wiBzcDACADIAVUIAMgB1ZyIQEgAEEBayEAIBJBCGohEgwACwALIBggFCAVIBRBwP7CABCSDSAVIBMgFEHQ/sIAELIQIBUgI0EDdGogBDcDACAVICBBA3RqIBMgIGsQrA0MBwsgAkIBfSECCyAkBEAgGiACNwMAIBdBCGshFwwBBSACIQQMAgsACwALAAsgEUGwA2ogBkJ+gyIIQgAgBxCVEiADIAMgESkDuAN8IgRWBEBCf0J+IBEpA7ADQn6DIAZUIAIgBFYgAiAEURsbIAd8IQcLIBUgE0EDdGoiAEEIaykDAELAACAFfSIKiCEEIAVCP4MhCSAAQRBrIRJCACEDA0AgE0ECTwRAIBFB8AJqIANCACAHEJUSIBFB4AJqIBEpA/ACIgUgBHwiDSAFVK0gESkD+AIgA3x8IgNCACAIEJUSIAMgDSAEIAIgA359IBEpA+gCfSARKQPgAiIFQgBSrX0gEkEIaiIUKQMAIAmGIBIpAwAgCoiEIAV9IgRCACAFfVStfCIOIAJ9IAQgBlStfSILViIArXwhBSAEIAZ9IAQgABsiBCAGVCIXIAsgDiAAGyIDIAJUIAIgA1EbRQRAIAMgAn0gF619IQMgBUIBfCEFIAQgBn0hBAsgFCAFNwMAIBNBAWshEyASQQhrIRIMAQsLIBFBoANqIANCACAHEJUSIBFBkANqIBEpA6ADIgUgBHwiByAFVK0gESkDqAMgA3x8IgNCACAIEJUSIAMgBCACIAN+fSARKQOYA30gESkDkAMiBUIAUq19IBUpAwAgCYYgBX0iBEIAIAV9VK18IgggAn0gBCAGVK19IgkgB1QiAK18IQcgFSAEIAZ9IAQgABsiBSAGVCISIAkgCCAAGyIDIAJUIAIgA1EbBH4gBwUgAyACfSASrX0hAyAFIAZ9IQUgB0IBfAs3AwAgEUGAA2ogBSADIAEQkRIgESkDiAMhAiARKQOAAyEEDAELIBFBsAJqIAdCACAGEJUSIAIgAiARKQO4AnwiBFYEQEJ/Qn4gESkDsAIgBlQgAyAEViADIARRGxsgB3whBwsgE0EDdCESIBVBCGshAUIAIQRCACECA0AgEkUNASARQaACaiACQgAgBxCVEiARQZACaiARKQOgAiIFIAR8IgggBVStIBEpA6gCIAJ8fCIFQgAgBhCVEiAFIAggBCADIAV+fSARKQOYAn0gESkDkAIiBEIAUq19IAEgEmoiFCkDACAEfSICQgAgBH1UrXwiCSADfSACIAZUrX0iClYiAK18IQUgAiAGfSACIAAbIgQgBlQiEyAKIAkgABsiAiADVCACIANRG0UEQCAEIAZ9IQQgBUIBfCEFIAIgA30gE619IQILIBQgBTcDACASQQhrIRIMAAsACyAYIAI3AwggGCAENwMACyARQYAFaiQAIBYgFikDeCICNwMYIBYgFikDcCIENwMQIBYgFikDaCIDNwMIIBYgFikDYCIFNwMAIBsgAjcDGCAbIAQ3AxAgGyADNwMIIBsgBTcDAEEAIRILIBZBgAFqJAAgEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhDIA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBCxDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhDKA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBDBDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhDMA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBDRDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhDOA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBDhDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhDQA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBDxDEEgtEAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAhDSA0H/AXEiBEUNAQsgAyAEOgCkAUEADwsgAEEBagsLACAAIAFBEBDEEgtrAgF/AX4jAEEQayIEJAAgAyADKQMAIgVC9wJ9NwMAIAQgADYCDEEgIQACfwJAIAVC9wJaBEAgBEEMaiABIAIgAxDUA0H/AXEiAEUNAQsgAyAAOgCkAUEADAELIAQoAgxBAWoLIARBEGokAAsPACAAIAEgAiADQQAQxRILawIBfwF+IwBBEGsiBCQAIAMgAykDACIFQvcCfTcDACAEIAA2AgxBICEAAn8CQCAFQvcCWgRAIARBDGogASACIAMQ1gNB/wFxIgBFDQELIAMgADoApAFBAAwBCyAEKAIMQQFqCyAEQRBqJAALDwAgACABIAIgA0EBEMUSC2sCAX8BfiMAQRBrIgQkACADIAMpAwAiBUL3An03AwAgBCAANgIMQSAhAAJ/AkAgBUL3AloEQCAEQQxqIAEgAiADENgDQf8BcSIARQ0BCyADIAA6AKQBQQAMAQsgBCgCDEEBagsgBEEQaiQACw8AIAAgASACIANBAhDFEgtrAgF/AX4jAEEQayIEJAAgAyADKQMAIgVC9wJ9NwMAIAQgADYCDEEgIQACfwJAIAVC9wJaBEAgBEEMaiABIAIgAxDaA0H/AXEiAEUNAQsgAyAAOgCkAUEADAELIAQoAgxBAWoLIARBEGokAAsPACAAIAEgAiADQQMQxRILawIBfwF+IwBBEGsiBCQAIAMgAykDACIFQvcCfTcDACAEIAA2AgxBICEAAn8CQCAFQvcCWgRAIARBDGogASACIAMQ3ANB/wFxIgBFDQELIAMgADoApAFBAAwBCyAEKAIMQQFqCyAEQRBqJAALDwAgACABIAIgA0EEEMUSC0YCAX8BfiADIAMpAwAiBUIKfTcDAEEgIQQCQCAFQgpaBEAgASACIAMQ3gNB/wFxIgRFDQELIAMgBDoApAFBAA8LIABBAWoL+AgCBn8DfiMAQcABayIDJAACf0ErIAEoAgAiBUECSQ0AGiABIAVBAWs2AgAgACAFQQV0aiIAQUBqIgYQzwZFBEAgAigCkAE1AgBChwIgBikDCCIJeSAGKQMAeUJAfSAJQgBSG0KAAXwgAEEwayIBKQMIIgl5IAEpAwAiCnlCQH0gCUIAUhsgCSAKhFAbfUIDiH4hCQsgAiACKQMAIgogCX03AwBBICAJIApWDQAaIAMgAEEgayIAKQMYNwNYIAMgACkDEDcDUCADIAApAwg3A0ggAyAAKQMANwNAIAMgBikDGDcDeCADIAYpAxA3A3AgAyAGKQMINwNoIAMgBikDACIJNwNgIANBkPDCACkDADcDOCADQYjwwgApAwA3AzAgA0GA8MIAKQMANwMoIANB+O/CACkDADcDIANAIANB4ABqEM8GRQRAIAmnQQFxBEAgAyADKQNYNwOYASADIAMpA1A3A5ABIAMgAykDSDcDiAEgAyADKQNANwOAASADQgA3A7gBIANCADcDsAEgA0IANwOoASADQgA3A6ABQQAhBEEDIQUgA0GgAWohAANAIARBBEcEQCADQYABaiAEQQN0aiEIQgAhCSADQSBqIQcgBSECIAAhAQNAIAIEQCADQRBqIAgpAwBCACAHKQMAEJUSIAEgAykDECIKIAl8IgkgASkDAHwiCzcDACAJIAtWrSADKQMYIAkgClStfHwhCSACQQFrIQIgAUEIaiEBIAdBCGohBwwBCwsgAyADKQO4ASAJfCAIKQMAQQAgBGtBA3QgA2pBOGopAwB+fDcDuAEgAEEIaiEAIAVBAWshBSAEQQFqIQQMAQsLIAMgAykDuAE3AzggAyADKQOwATcDMCADIAMpA6gBNwMoIAMgAykDoAE3AyALIAMgAykDWDcDmAEgAyADKQNQNwOQASADIAMpA0g3A4gBIAMgAykDQDcDgAEgA0IANwO4ASADQgA3A7ABIANCADcDqAEgA0IANwOgAUEAIQRBAyEFIANBoAFqIQADQCAEQQRHBEAgA0FAayAEQQN0aiEIQgAhCSADQYABaiEHIAUhAiAAIQEDQCACBEAgAyAIKQMAQgAgBykDABCVEiABIAMpAwAiCiAJfCIJIAEpAwB8Igs3AwAgCSALVq0gAykDCCAJIApUrXx8IQkgAkEBayECIAFBCGohASAHQQhqIQcMAQsLIAMgAykDuAEgCXwgCCkDAEEAIARrQQN0IANqQZgBaikDAH58NwO4ASAAQQhqIQAgBUEBayEFIARBAWohBAwBCwsgAyADKQO4ATcDWCADIAMpA7ABNwNQIAMgAykDqAE3A0ggAyADKQOgATcDQCADIAMpA3giCUIBiDcDeCADIAlCP4YgAykDcCIJQgGIhDcDcCADIAlCP4YgAykDaCIJQgGIhDcDaCADIAlCP4YgAykDYEIBiIQiCTcDYAwBCwsgBiADKQM4NwMYIAYgAykDMDcDECAGIAMpAyg3AwggBiADKQMgNwMAQQALIANBwAFqJAALRAIBfwF+IAMgAykDACIFQgV9NwMAQSAhBAJAIAVCBVoEQCABIAIQ4ANB/wFxIgRFDQELIAMgBDoApAFBAA8LIABBAWoLwQMBBH8jAEGwAWsiAiQAQSshBAJAIAEoAgAiA0ECSQ0AIAEgA0EBazYCAEEAIQQgACADQQV0aiIDQSBrIgBByITDABC6B8BBAE4NACACQRBqQgFCACAAKAIAQQN0IgFBB3IiABCQEiACQgFCACABQfkAaxCQEiACIAIpAwhCACABQYABa0H5AEkiBRs3A2AgAiACKQMAQgAgBRs3A1ggAkIAIAIpAxggAUH/AEsiARs3A1AgAkIAIAIpAxAgARs3A0ggAkGIAWogAkHIAGpB+O/CABCuASACIAIpA6ABNwNAIAIgAikDmAE3AzggAiACKQOQATcDMCACIAIpA4gBNwMoIANBQGohASAAQf8BTQR/IAEgAEEDdkH4////AXFqKQMAIACtiKcFQQALQQFxIQAgAiABKQMYNwOAASACIAEpAxA3A3ggAiABKQMINwNwIAIgASkDADcDaAJAIABFBEAgAkHoAGogAkEoahC2BwwBCyACQYgBaiIAIAJBKGoQuQcgAkHoAGogABC3BwsgASACKQOAATcDGCABIAIpA3g3AxAgASACKQNwNwMIIAEgAikDaDcDAAsgAkGwAWokACAECyQAIAEgAiADEOIDQf8BcSIBBEAgAyABOgCkAUEADwsgAEEBagsTACAAIAEgAiACQQAQ4wFB/wFxCw8AIAAgASACIANCKBDGEgsTACAAIAEgAiACQQAQ3wFB/wFxCw8AIAAgASACIANCKBDHEgsTACAAIAEgAiACQQIQ3wFB/wFxCzEBAX8jAEEQayIEJAAgBCAANgIMIAMgBEEMaiABIAIgAxDoAzoApAEgBEEQaiQAQQALDwAgACABIAIgA0ECEMgSCwwAIANBKDoApAFBAAsTACADIAEgAiADEOsDOgCkAUEAC54PAgt/A34jAEHwAGsiBSQAAkAgASgCACIJRQRAQSshAQwBCyABIAlBAWs2AgAgAi0ApQEEQEEnIQEMAQsgBUEMaiIBIAAgCUEFdGpBIGsQ2QEgBUHIAGohBCACKAKMASEHIAIoAogBQeAAaiEKIAIpAwAiDyACKAKQASILNQI8IAs1AjR8VCEGIwBB8ANrIgMkACAHQdgCaiEJAkACQCAHLQABQcAAcUUEQCADQbABaiAJIAFBABDeCiADKQOwAUJ+UQRAIAMoArgBIQAgBEECOgAjIARBNjoAACAHIAA2AvQHDAMLIANByAJqIgAgA0GwAWpBmAH8CgAAIAAQvwEaIAAQkQEMAQsgA0GwAWoiACAJIAEgBhDeCiADKQOwAUJ+UgRAIANByAJqIgkgAEGYAfwKAAAgCRC/ASEMIAkQkQEgBkUgDEVyDQEgBEECOgAjIARBIDoAAAwCCyADKAK4ASIAQQJHBEAgBEECOgAjIARBNjoAACAHIAA2AvQHDAILIARBAjoAIyAEQSA6AAAMAQsgA0EYaiAHIAEgBykDABDoASADLQAZIQ0gAy0AGARAIARBAjoAIyAEIA06AAAMAQsgA0GwAWogB0HYAmoiCCAKQQAQ3gogAykDsAFCflEEQCAHIAMoArgBNgL0ByAEQQI6ACMgBEE2OgAADAELIANByAJqIgAgA0GwAWpBmAH8CgAAIAMoAsQDQShqIANByANqEB8hCSAAEJEBIAAgCCAKEPAKIAMpA8gCIg5Cf1EEQCAHIAMoAtACNgL0ByAEQQI6ACMgBEE2OgAADAELIAMtANACIQYgA0HBAGoiACADQdECakHPAPwKAAACQCAOQgFRBEAgAyAGOgDIAiADQcgCakEBciAAQc8A/AoAACADIAY6ACAgAyADKQBBNwAhIAMgAykASTcAKSADIAMpAFE3ADEgAyADKQBYNwA4IANBkANqEHEMAQsgA0IANwM4IANCADcDMCADQgA3AyggA0IANwMgC0EBIQYgBy0AAkEgcQRAQQAhBiADQbABaiAIIApBABDeCiADKQOwAUJ+UQRAIAcgAygCuAE2AvQHIARBAjoAIyAEQTY6AAAMAgsgA0HIAmogA0GwAWpBmAH8CgAAIAMoAsADIgApA1hQRQRAIAAtALMBIQYLIANByAJqEJEBCwJAAkACQAJAIAogARDsAUUEQCAGQQFxRQ0EIANBIGoiARDOAQ0CIActAANBBHENAiADQgA3A8gBIANCADcDwAEgA0IANwO4ASADQgA3A7ABIANByAJqIANBsAFqIgAgARCuASADIAMpA+ACNwOoASADIAMpA9gCNwOgASADIAMpA9ACNwOYASADIAMpA8gCNwOQASAAIAggCkEAEN4KIAMpA7ABQn5SDQEgByADKAK4ATYC9AcgBEECOgAjIARBNjoAAAwFCyADQcgCaiAIIAogASADQSBqIgAQ9gogAy0AyAINAiADLQDJAkEBRgRAIAcgCiABIAAQzAYLIAZBAXENAQwDCyADQcgCaiIAIANBsAFqQZgB/AoAACAAIANBkAFqEK8BIAAQkQELIANBsAFqIgEgCCAKQQAQ3gogAykDsAFCflENASADQcgCaiIAIAFBmAH8CgAAAkAgAygCwAMtALIBDQAgABCBByADKALAA0EBOgCyASADKALEAyEGIAMgAygC2AM2AqABIAMgAykD0AM3A5gBIAMgAykDyAM3A5ABIAZBKGohCCAGQThqIgEgA0GQAWoiABD+ByEOIAMgADYC5AMgBigCMEUEQCADQRBqIAggARClCAsgAyAINgLsAyADIANB5ANqNgLoAyADQQhqIAggDiADQegDakGM6MIAEOEFIAMoAghBAXFFDQAg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IgVCA303AwBBICEEIAVCA1oEQCAAIAEgAiADEJsCQf8BcSIERWohAAsgAyAEOgCkASAAC4EBAgJ/AX4gAyADKQMAIgZCAn03AwBBICEEIAZCAloEQEEsIQQgAigCACIFQYAIRwRAIAIgBUEBajYCACABIAVBBXRqIgFCADcDCCABIAMoAogBNQJINwMAIAFCADcDECABQgA3AxhBACEECyAAIAVBgAhHaiEACyADIAQ6AKQBIAALQAIBfwF+IAMgAykDACIFQgN9NwMAQSAhBCAFQgNaBEAgACABIAIgAxCeAkH/AXEiBEVqIQALIAMgBDoApAEgAAtAAgF/AX4gAyADKQMAIgVCAn03AwBBICEEIAVCAloEQCAAIAEgAiADEKACQf8BcSIERWohAAsgAyAEOgCkASAAC0ACAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACIAMQogJB/wFxIgRFaiEACyADIAQ6AKQBIAALPgIBfwF+IAMgAykDACIFQgN9NwMAQSAhBCAFQgNaBEAgACABIAIQpAJB/wFxIgRFaiEACyADIAQ6AKQBIAALjAECAn8BfiADIAMpAwAiBkICfTcDAEEgIQQgBkICWgRAQSwhBCACKAIAIgVBgAhHBEAgAiAFQQFqNgIAIAEgBUEFdGoiASADKAKEASICKQMANwMAIAEgAikDCDcDCCABIAIpAxA3AxAgASACKQMYNwMYQQAhBAsgACAFQYAIR2ohAAsgAyAEOgCkASAACw8AIAAgASACIANCFBDKEgsPACAAIAEgAiADQhQQyxILQAIBfwF+IAMgAykDACIFQhR9NwMAQSAhBCAFQhRaBEAgACABIAIgAxCrAkH/AXEiBEVqIQALIAMgBDoApAEgAAtAAgF/AX4gAyADKQMAIgVCAn03AwBBICEEIAVCAloEQCAAIAEgAiADEK0CQf8BcSIERWohAAsgAyAEOgCkASAAC4wBAgJ/AX4gAyADKQMAIgZCAn03AwBBICEEIAZCAloEQEEsIQQgAigCACIFQYAIRwRAIAIgBUEBajYCACABIAVBBXRqIgEgAygCjAEiAikDKDcDACABIAIpAzA3AwggASACKQM4NwMQIAEgAikDQDcDGEEAIQQLIAAgBUGACEdqIQALIAMgBDoApAEgAAuMAQICfwF+IAMgAykD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IgUbaiEACyADIAU6AKQBIARBEGokACAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEJADQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEJIDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEJQDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEJYDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEJgDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEJoDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEJwDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEJ4DQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEKADQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEKIDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIIfTcDAEEgIQQgBUIIWgRAIAAgASACEKQDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEKYDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEKgDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEKoDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEKwDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEK4DQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACELADQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACELIDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACELQDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACELYDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACELgDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACELoDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACELwDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEL4DQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEMADQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEMIDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEMQDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIIfTcDAEEgIQQgBUIIWgRAIAAgASACEMYDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEMgDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEMoDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEMwDQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEM4DQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACENADQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACENIDQf8BcSIERWohAAsgAyAEOgCkASAAC2UCAn8BfiMAQRBrIgQkACADIAMpAwAiBkL3An03AwAgBCAANgIMQSAhBSAGQvcCWgRAIARBDGogASACIAMQ1AMhACAEKAIMIABB/wFxIgVFaiEACyADIAU6AKQBIARBEGokACAAC2UCAn8BfiMAQRBrIgQkACADIAMpAwAiBkL3An03AwAgBCAANgIMQSAhBSAGQvcCWgRAIARBDGogASACIAMQ1gMhACAEKAIMIABB/wFxIgVFaiEACyADIAU6AKQBIARBEGokACAAC2UCAn8BfiMAQRBrIgQkACADIAMpAwAiBkL3An03AwAgBCAANgIMQSAhBSAGQvcCWgRAIARBDGogASACIAMQ2AMhACAEKAIMIABB/wFxIgVFaiEACyADIAU6AKQBIARBEGokACAAC2UCAn8BfiMAQRBrIgQkACADIAMpAwAiBkL3An03AwAgBCAANgIMQSAhBSAGQvcCWgRAIARBDGogASACIAMQ2gMhACAEKAIMIABB/wFxIgVFaiEACyADIAU6AKQBIARBEGokACAAC2UCAn8BfiMAQRBrIgQkACADIAMpAwAiBkL3An03AwAgBCAANgIMQSAhBSAGQvcCWgRAIARBDGogASACIAMQ3AMhACAEKAIMIABB/wFxIgVFaiEACyADIAU6AKQBIARBEGokACAAC0ACAX8BfiADIAMpAwAiBUIKfTcDAEEgIQQgBUIKWgRAIAAgASACIAMQ3gNB/wFxIgRFaiEACyADIAQ6AKQBIAALPgIBfwF+IAMgAykDACIFQgV9NwMAQSAhBCAFQgVaBEAgACABIAIQ4ANB/wFxIgRFaiEACyADIAQ6AKQBIAALHQAgAyABIAIgAxDiA0H/AXEiAToApAEgACABRWoLDwAgACABIAIgA0IoEM0SCw8AIAAgASACIANCKBDOEgs0AQF/IwBBEGsiBCQAIAQgADYCDCADIARBDGogASACIAMQ6AM6AKQBIAQoAgwgBEEQaiQACwwAIANBKDoApAEgAAsTACADIAEgAiADEOsDOgCkASAACw8AIAAgASACIANCKBDPEgsTACAAIAEgAiACQQEQ3wFB/wFxCw8AIAAgASACIANCKBDQEgsQACAAIAEgAiADQpADEL0SCxAAIAAgASACIANCvAUQvxILEAAgACABIAIgA0K8BRDAEgsQACAAIAEgAiADQsgBEMESCxAAIAAgASACIANCvAUQxhILEAAgACABIAIgA0K8BRDHEgsQACAAIAEgAiADQrwFEM8SCzUBAX4gAyADKQMAIgRCiCd9NwMAQSAhACADIARCiCdaBH8gASACIAMQ6wMFQSALOgCkAUEACxAAIAAgASACIANCkAMQyRILEAAgACABIAIgA0K8BRDKEgsQACAAIAEgAiADQrwFEMsSCxAAIAAgASACIANCyAEQzBILEAAgACABIAIgA0K8BRDNEgsQACAAIAEgAiADQrwFEM4SCxAAIAAgASACIANCvAUQ0BILNwIBfgF/IAMgAykDACIEQognfTcDAEEgIQUgAyAEQognWgR/IAEgAiADEOsDBUEgCzoApAEgAAtxAgF/AX4gAyADKQMAIgVCAn03AwACQCADIAVCAlQEf0EgBSACKAIAIgRBgAhHDQFBLAs6AKQBQQAPCyACIARBAWo2AgAgASAEQQV0aiIBQgA3AwggASADNQJINwMAIAFCADcDECABQgA3AxggAEEBagtGAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAiADEIMFQf8BcSIERQ0BCyADIAQ6AKQBQQAPCyAAQQFqC9MCAgV/An4jAEEwayIDJAACf0ErIAEoAgAiBEEDSQ0AGiABIARBA2s2AgAgAyAAIARBBXRqIgRB4ABrIgAp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fTcDAEEgIQQgBUIDWgRAIAAgASACEI8FQf8BcSIERWohAAsgAyAEOgCkASAACz4CAX8BfiADIAMpAwAiBUIDfTcDAEEgIQQgBUIDWgRAIAAgASACEJEFQf8BcSIERWohAAsgAyAEOgCkASAACxAAIAAgASACIANCkAMQ1BILHQAgAyABIAIgAxCVBUH/AXEiAToApAEgACABRWoLEAAgACABIAIgA0K8BRC9EgsQACAAIAEgAiADQrwFENMSC4ABAgF/AX4gAyADKQMAIgVCAn03AwACQCADIAVCAlQEf0EgBSACKAIAIgRBgAhHDQFBLAs6AKQBQQAPCyACIARBAWo2AgAgASAEQQV0aiIBIAMoAoQBIgIpAyA3AwAgASACKQMoNwMIIAEgAikDMDcDECABIAIpAzg3AxggAEEBagtGAgF/AX4gAyADKQMAIgVCBX03AwBBICEEAkAgBUIFWgRAIAEgAiADEJ8FQf8BcSIERQ0BCyADIAQ6AKQBQQAPCyAAQQFqC98BAQN/IwBBoAFrIgMkAEEsIQQCQCABKAIAIgVBgAhGDQAgASAFQQFqNgIAQQAhBCADQdAAaiACKAKMASACKAKIAUHgAGpBAEEAENoBIAMtAJ4BIgFBAkYEQCADLQBQIQQMAQsgAy0AUCECIANBAXIgA0HQAGpBAXJBzQD8CgAAIAMgAjoAACADLQCfASECIAAgBUEFdGoiACADKQMANwMAIAAgAykDCDcDCCAAIAMpAxA3AxAgACADKQMYNwMYIAMgAToATiADIAI6AE8gA0HIAGoQVgsgA0GgAWokACAECxAAIAAgASACIANCoAYQwRILEAAgACABIAIgA0K8BRDJEgsQACAAIAEgAiADQrwFENQSC4wBAgJ/AX4gAyADKQMAIgZCAn03AwBBICEEIAZCAloEQEEsIQQgAigCACIFQYAIRwRAIAIgBUEBajYCACABIAVBBXRqIgEgAygChAEiAikDIDcDACABIAIpAyg3AwggASACKQMwNwMQIAEgAikDODcDGEEAIQQLIAAgBUGACEdqIQALIAMgBDoApAEgAAtAAgF/AX4gAyADKQMAIgVCBX03AwBBICEEIAVCBVoEQCAAIAEgAiADEJ8FQf8BcSIERWohAAsgAyAEOgCkASAACxAAIAAgASACIANCoAYQzBILEAAgACABIAIgA0LkABC9EgsQACAAIAEgAiADQuQAEL8SCxAAIAAgASACIANC5AAQwBILEAAgACABIAIgA0LkABDTEgsQACAAIAEgAiADQuQAEMESCxAAIAAgASACIANC5AAQxhILEAAgACABIAIgA0LkABDHEgsQACAAIAEgAiADQuQAEM8SCxAAIAAgASACIANC5AAQ0RILEAAgACABIAIgA0LkABDJEgsQACAAIAEgAiADQuQAEMoSCxAAIAAgASACIANC5AAQyxILEAAgACABIAIgA0LkABDUEgsQACAAIAEgAiADQuQAEMwSCxAAIAAgASACIANC5AAQzRILEAAgACABIAIgA0LkABDOEgsQACAAIAEgAiADQuQAENASCxAAIAAgASACIANC5AAQ0hILgQECAX8BfiADIAMpAwAiBUICfTcDAAJAIAMgBUICVAR/QSAFIAIoAgAiBEGACEcNAUEsCzoApAFBAA8LIAIgBEEBajYCACABIARBBXRqIgEgAygCjAEiAikDaDcDACABIAIpA3A3AwggASACKQN4NwMQIAEgAikDgAE3AxggAEEBaguNAQICfwF+IAMgAykDACIGQgJ9NwMAQSAhBCAGQgJaBEBBLCEEIAIoAgAiBUGACEcEQCACIAVBAWo2AgAgASAFQQV0aiIBIAMoAowBIgIpA2g3AwAgASACKQNwNwMIIAEgAikDeDcDECABIAIpA4ABNwMYQQAhBAsgACAFQYAIR2ohAAsgAyAEOgCkASAAC2wBAX4gAyADKQMAIgRCAn03AwACQCADIARCAlQEf0EgBSACKAIAIgNBgAhHDQFBLAs6AKQBQQAPCyACIANBAWo2AgAgASADQQV0aiIBQgA3AxggAUIANwMQIAFCADcDCCABQgA3AwAgAEEBagt6AgJ/AX4gAyADKQMAIgZCAn03AwBBICEEIAZCAloEQEEsIQQgAigCACIFQYAIRwRAIAIgBUEBajYCACABIAVBBXRqIgFCADcDGCABQgA3AxAgAUIANwMIIAFCADcDAEEAIQQLIAAgBUGACEdqIQALIAMgBDoApAEgAAtGAgF/AX4gAyADKQMAIgVCA303AwBBICEEAkAgBUIDWgRAIAEgAiADEL0FQf8BcSIERQ0BCyADIAQ6AKQBQQAPCyAAQQFqC+gBAQF/IwBBIGsiAyQAIAEoAgAiAQR/IAMg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ACABQQV0a0EgaxDzBQseACAAKAIAKAIAIAAoAgQoAgAgAUFcbGpBJGsQzwELHQAgACgCACAAKAIEKAIAIAFBkH9sakHwAGsQ9wULDAAgACgCACABEP8LCyIAIAAoAgAoAgAtAAAgACgCBCgCACABQXRsakEMay0AAEYLRgEBfyAAKAIAIgQgAWogAzoAACAAIAAoAgggAkEBcWs2AgggACAAKAIMQQFqNgIMIAQgACgCBCABQQhrcWpBCGogAzoAAAsRACAAIAEgAiADQTBBUBDVEgsnAQF/IwBBEGsiAiQAIAIgACkCADcCCCACQQhqIAEQKCACQRBqJAALJwEBfyMAQRBrIgIkACACIAApAgA3AgggAkEIaiABEDUgAkEQaiQACygBAX8jAEEQayICJAAgAiAAKQIANwIIIAJBCGogARD0BSACQRBqJAALKAEBfyMAQRBrIgIkACACIAApAgA3AgggAkEIaiABEPUFIAJBEGokAAsoAQF/IwBBEGsiAiQAIAIgACkCADcCCCACQQhqIAEQ9gUgAkEQaiQACycBAX8jAEEQayICJAAgAiAAKQIANwIIIAJBCGogARA9IAJBEGokAAsnAQF/IwBBEGsiAiQAIAIgACkCADcCCCACQQhqIAEQPyACQRBqJAALJwEBfyMAQRBrIgIkACACIAApAgA3AgggAkEIaiABECQgAkEQaiQACxsBAX8jAEEQayICJAAgACABEIQGIAJBEGokAAueAgEEfyABQQlPBEACQCAAENcGQRAgASABQRBNGyICa08NACACQRAgAEELakF4cSAAQQtJGyIEakEMahCIBiIARQ0AIAAQ2QchAQJAIAJBAWsiAyAAcUUEQCABIQAMAQsgACADakEAIAJrcRDZByEAIAEoAgQiBUF4cSAAIAJBACAAIAFrQRBNG2oiACABayICayEDIAVBA3EEQCAAIAMQ2gcgASACENoHIAEgAhDbBgwBCyABKAIAIQEgACADNgIEIAAgASACajYCAAsCQCAAKAIEIgFBA3FFDQAgAUF4cSICIARBEGpNDQAgACAEENMHIQEgACAEENoHIAEgAiAEayICENoHIAEgAhDbBgsgABDYByEDCyADDwsgABCIBgsTACAAIAEQhwYgAARAIAAQzgYLC8wFAQZ/IwBBEGsiCSQAIAAgARCHBgJAAkAgAkEJ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IAFBiO/FAGoiAkGYAWogAkGQAWoiBTYCACACQZwBaiAFNgIAIAFBCGohAQwBCwsgAyAEQShrENUGC0Gs8sUAKAIAIgEgAE0NAEGs8sUAIAEgAGsiAjYCAEG08sUAQbTyxQAoAgAiASAAENMHIgM2AgAgAyACQQFyNgIEIAEgAEEDcjYCBCABENgHIQkLIAdBEGokACAJDwtBrPLFACABIABrIgI2AgBBtPLFAEG08sUAKAIAIgEgABDTByIDNgIAIAMgAkEBcjYCBCABIABBA3I2AgQgARDYByEBCyABDwtBsPLFACgCACEBAkAgAiAAayIDQRBPBEAgASAAENMHIQJBqPLFACADNgIAQbDyxQAgAjYCACACIAMQ1wcgASAAQQNyNgIEDAELQbDyxQBBADYCAEGo8sUAQQA2AgAgASACENYHCyABENgHC3cCAX8CfiMAQSBrIgEkACABQQhqIAAQISABQRBqIAEoAggiACABKAIMKAIcEQAAIAEpAxghAiABKQMQIQMgAUEgaiQAIABBACADQv2Zz7GohOSABoUgAkLWpMXu7YWNqNUAhYRQGyIARQRAQQAPCyAALQAAQQFGC5YBAgJ/AX4jAEEgayICJAAgAkEIaiABEIsGAkAgAi0ACCIDQf8BRwRAIAAgAigADDYABCAAIAIoAAk2AAEgAikDECEEIAAgAikDGDcDECAAIAQ3AwggACADOgAADAELIAEoAgQiAQRAIAAgATYCBCAAQQU6AAAMAQsgAikDECEEIABB/wE6AAAgACAENwMICyACQSBqJAALqgEBAX8jAEEgayICJAAgAiABQQgQwQYCQAJAIAItAAAiAUH/AUcEQCAAIAItAAM6AAMgACACLwABOwABIAAgAikCDDcCDCAAIAIoAhQ2AhQgACACKQIENwIEIAAgAToAAAwBCyACKAIIQQhHDQEgAigCBCEBIABB/wE6AAAgACABKQAANwMICyACQSBqJAAPC0GY8cIAQSsgAkEfakGI8cIAQaTywgAQ/BEAC6sBAgF/AX4jAEEgayIEJAAgBEEIaiABEIsGAkAgBC0ACCIBQf8BRwRAIAAgBCgADDYABCAAIAQoAAk2AAEgBCkDECEFIAAgBCkDGDcDECAAIAU3AwggACABOgAADAELIAACfyAEKQMQIgVCgICAgBBaBEAgACACNgIQIAAg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QQUhBQwTCyACQgA3AwggAkIANwMQIAJCADcDGCACQgA3AyggAkIANwMwIAJCADcDOCACIAEpAxA3AyAgAiABKQMINwMAIAIhBEECIQNBBiEFDBILQQchBQwRCyACQgA3AwggAkIANwMQIAJCADcDGCACQgA3AyggAkIANwMwIAJCADcDOCACIAEpAxA3AyAgAiABKQMINwMAIAIhBEECIQNBCCEFDBALQQkhBQwPC0EKIQUMDgtBCyEFDA0LIAJCADcDCCACQgA3AxAgAkIANwMYIAIgASkDEDcDICACIAEpAxg3AyggAiABKQMgNwMwIAIgASkDKDcDOCACIAEpAwg3AwAgAiEEQQIhA0EMIQUMDAsgAkIANwMIIAJCADcDECACQgA3AxggAkIANwMoIAJCADcDMCACQgA3AzggAiABKQMQNwMgIAIgASkDCDcDACACIQRBAiEDQQ0hBQwLCyACQgA3AwggAkIANwMQIAJCADcDGCACQgA3AyggAkIANwMwIAJCADcDOCACIAE1Agg3AyAgAiABNQIENwMAIAIhBEECIQNBDiEFDAoLQQ8hBQwJC0EQIQUMCAsgAiABKQMgNwMYIAIgASkDGDcDECACIAEpAxA3AwggAiABKQMINwMAIAIgASkDKDcDICACIAEpAzA3AyggAiABKQM4NwMwIAIgASkDQDcDOCACIQRBAiEDQREhBQwHC0ESIQUMBgsgAiABKQMgNwMYIAIgASkDGDcDECACIAEpAxA3AwggAiABKQMINwMAIAIgASkDKDcDICACIAEpAzA3AyggAiABKQM4NwMwIAIgASkDQDcDOCACIQRBAiEDQRMhBQwFC0EUIQUMBAsgAkIANwMIIAJCADcDECACQgA3AxggAkIANwMoIAJCADcDMCACQgA3AzggAiABNQIINwMgIAIgATUCBDcDACACIQRBAiEDQRUhBQwDC0EWIQUMAgtBFyEFDAELIAJCADcDGCACQgA3AxAgAkIANwMIIAJCADcDAEEBIQMgAkEMakEUIAFBAWpBFEGs+MIAEJENIAIgAikDGDcDWCACIAIpAxA3A1AgAiACKQMINwNIIAIgAikDADcDQCACIAJBQGtBzILDABAGIAIhBEEYIQULIAIgBTsBQCAAIAJBQGtBAhDZDyAAIAMQmQYgA0EFdCEDA0AgAwRAIAIgBCkDGDcDWCACIAQpAxA3A1AgAiAEKQMINwNIIAIgBCkDADcDQCAAIAJBQGsQswYgA0EgayEDIARBIGohBAwBCwsgAkEANgJ4IAJCgICAgBA3AnAgAkHMhMMANgJEIAJCoICAgAY3AkggAiACQfAAajYCQCACQUBrIQQjAEEgayIDJAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABLQAAQQFrDhcBAgMEBQYHCAkKCwwNDg8QERITFBUWFwALIAMgAUEEajYCHCADQd4DNgIQIAMgA0EcajYCDCAEQdiFwAAgA0EMahCPBwwXCyABQQRqIAQQggwMFgsgAyABQQFqNgIcIANB3wM2AhAgAyADQRxqNgIMIARBmLjEACADQQxqEI8HDBULIAMgAUEBajYCHCADQd8DNgIQIAMgA0EcajYCDCAEQcC4xAAgA0EMahCPBwwUCyADIAFBCGo2AgggAyABQRBqNgIcIANBITYCGCADQSE2AhAgAyADQRxqNgIUIAMgA0EIajYCDCAEQceCwAAgA0EMahCPBwwTCyADIAFBCGo2AgggAyABQRBqNgIcIANBITYCGCADQSE2AhAgAyADQRxqNgIUIAMgA0EIajYCDCAEQeqCwAAgA0EMahCPBwwSCyAEQf64xABBEBD1EQwRCyADIAFBCGo2AgggAyABQRBqNgIcIANBITYCGCADQSE2AhAgAyADQRxqNgIUIAMgA0EIajYCDCAEQZCDwAAgA0EMahCPBwwQCyAEQY65xABBEhD1EQwPCyAEQaC5xABBDxD1EQwOCyAEQa+5xABBHRD1EQwNCyADIAFBCGo2AgggAyABQRBqNgIcIANBJjYCGCADQSE2AhAgAyADQRxqNgIUIAMgA0EIajYCDCAEQdqDwAAgA0EMahCPBwwMCyADIAFBCGo2AgggAyABQRBqNgIcIANBITYCGCADQSE2AhAgAyADQRxqNgIUIAMgA0EIajYCDCAEQf2FwAAgA0EMahCPBwwLCyADIAFBBGo2AgggAyABQQhqNgIcIANBHzYCGCADQR82AhAgAyADQRxqNgIUIAMgA0EIajYCDCAEQfGBwAAgA0EMahCPBwwKCyAEQcy5xABBDBD1EQwJCyAEQdi5xABBGBD1EQwICyADIAFBCGo2AgggAyAB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CyAFQbADaiQADAELIA1BDGoQVgsgDUHQAGokAAsgES0ASCICQQRPBEAgESkDICEeIBFCADcDICARKQMoIR0gEUIANwMoIBFCADcDMCARQn8gHSARKQMIIhx8IhsgGyAcVBs3AwggESAeIBEpAxh8IhtCACAbIB5UIgGtfSAeQgBZIAFzGyIcIB19IhtCACAbIBxYGzcDGAsgAkEVTUEAQQEgAnRBjoD8AXEbRQRAIBFCADcDCAsgACARQQhqQdgA/AoAACARQeAAaiQACxAAIABBxPfCABC6B8BBAEoLLQECfwJAIAAoAggiAkUNACAAKAIEIAJBAnRqQQRrIgBFDQAgACgCACEBCyABC3QBAn8jAEEwayICJAAgAiABNgIMIAJBEGogAkEMahDmBSAAEP8GIAAQgAciAyACKQAoNwA4IAMgAikAIDcAMCADIAIpABg3ACggAyACKQAQNwAgIANByABqEHEgAyABNgJIIAAoAnhBAToAtAEgAkEwaiQAC5ABAQN/IwBBgAFrIgEkACAAKAI0IgItAEAiA0UEQCACQQE6AEAgACgCOCABQgQ3AwggASAAKAIwNgJAIAEgACkDKDcDOCABIAApAyA3AzAgASAAKQMANwMQIAEgACkDCDcDGCABIAApAxA3AyAgASAAKQMYNwMoQYgCaiABQQhqEJIBCyABQYABaiQAIANBAXMLCwAgAEEEQQQQmRILDAAgACAAQUBrEM8BCw8AIABBQGsgAEEgahDPAQsMACAAIABBIGoQzwELJAEBf0EEQTQQIiIBQoGAgIAQNwIAIAFBCGogAEEs/AoAACABCycBAX8jAEEQayICJAAgAiABOgAPIAAgAkEPakEBEP4GIAJBEGokAAsPACAAIAEgAiADQQgQmhILsgEBAn8jAEEQayIDJAAgAiAAKAIEIgRNBEAgAyACIAAoAgAgBEGggcMAEKgHIAMoAgAgAygCBCABIAJBsIHDABCRDSMAQRBrIgEkAAJAIAIgACgCBCIETQRAIAAgBCACazYCBCAAIAAoAgAgAmo2AgAgAUEQaiQADAELIAEgBDYCDCABIAI2AgggAUEIahClEQALIANBEGokAA8LIAMgBDYCDCADIAI2AgggA0EIahClEQALHwAgACgCeC0AsQFFBEAgABCBByAAKAJ4QQE6ALEBCwtXAQF/IwBB0ABrIgEkACAAEIEHAkAgACgCeCIAKQNYQgFRBEAgAEHgAGohAAwBCyABEMAGIABCATcDWCAAQeAAaiIAIAFB0AD8CgAACyABQdAAaiQAIAALfwEDfyMAQfAAayIBJAAgACkDAEJ/UQRAIAEgACgCkAE2AmggASAAKQOIATcDYCABIAApA4ABNwNYIAEgACgCeCICQdgAahCuBiACKAKwASEDIAItALQBIQIgABB1IAAgAUHsAPwKAAAgACACOgBwIAAgAzYCbAsgAUHwAGokAAunBgIJfwF+IwBBMGsiAyQAAkACQAJAIAJFBEBBACEBDAELIAAoAgQiBCgCACIHIAJBH2pBBXZqIgVBgAhLBEBBLCEBDAELIAQgBTYCACACQR9xIAAoAgAiCSAHQQV0aiEIIAEgAkFgcWohCiABIAJB4P///wdxaiEGQQAhBANAIAEgCkcEQCADQoCAgICAATcCJCADIAE2AiAgAyABNgIYIAggBEEDdGohACADQSA2AhwgAUEgaiEBA0AgA0EQaiADQRhqEIMHIAMoAhAiC0UNAiADKAIUQQhHDQUgACALKQAAIgxCOIYgDEKA/gODQiiGhCAMQoCA/AeDQhiGIAxCgICA+A+DQgiGhIQgDEIIiEKAgID4D4MgDEIYiEKAgPwHg4QgDEIoiEKA/gODIAxCOIiEhIQ3AwAgAEEIaiEAIARBAWohBAwACwALC0EAIQFFDQAgA0EINgIoIAMgAkEHcSIFNgIkIAMgAkEYcTYCHCADIAY2AiAgAyAFIAZqNgIYIAkgB0EFdGogBEEDdGohAANAAkAgA0EIaiADQRhqEIMHIAMoAggiAkUNACADKAIMQQhHDQMgACACKQAAIgxCOIYgDEKA/gODQiiGhCAMQoCA/AeDQhiGIAxCgICA+A+DQgiGhIQgDEIIiEKAgID4D4MgDEIYiEKAgPwHg4QgDEIoiEKA/gODIAxCOIiEhIQ3AwAgAEEIaiEAIARBAWohBAwBCwsgBQRAIANCADcDGCADQQggBWsgA0EYakEIQbz4wgAQhAcgAygCACADKAIEIAYgBUHM+MIAEJENIAAgAykDGCIMQjiGIAxCgP4Dg0IohoQgDEKAgPwHg0IYhiAMQoCAgPgPg0IIhoSEIAxCCIhCgICA+A+DIAxCGIhCgID8B4OEIAxCKIhCgP4DgyAMQjiIhISENwMAIARBAWohBAsgBEEDcSIARQ0AQSAgAEEDdGsiAEUNACAIIARBA3RqQQAgAPwLAAsgA0EwaiQAIAEPC0GY8cIAQSsgA0EvakGI8cIAQdz4wgAQ/BEAC0GY8cIAQSsgA0EvakGI8cIAQez4wgAQ/BEAC2sBA38jAEEQayICJAACQCABKAIEIgMgASgCECIESQRAQQAhAwwBCyACIAEoAgAgAyADIARrQdyCwwAQvwYgAigCDCEEIAIoAgghAyABIAIpAgA3AgALIAAgBDYCBCAAIAM2AgAgAkEQaiQACysAIAEgA00EQCAAIAMgAWs2AgQgACABIAJqNgIADwsgASADIAMgBBDmEQALfwICfwN+IAAoAgQiAygCACICIAFJIAJBgAhGckUEQCAAKAIAIAJBBXRqIgAgAUEFdGsiASkDCCEEIAEpAxAhBSABKQMYIQYgACABKQMANwMAIAAgBjcDGCAAIAU3AxAgACAENwMIIAMgAkEBajYCAEEADwtBLEErIAJBgAhGGwtGAQJ/QSshBCABIAAoAgQoAgAiA08gAiADT3IEf0ErBSAAKAIAIANBBXRqQSBrIgAgAUEFdGsgACACQQV0a0EIELkOQQALC0QBAX8jAEEQayIFJAAgBUEIaiACIAMgASgCBCABKAIIIAQQsAcgBSgCDCEBIAAgBSgCCDYCACAAIAE2AgQgBUEQaiQACxQAIAEgAiAAKAIEIAAoAgggAxABCzYAIAACfyACQYCAgAhNBEAgASACQQAQ9w9B/wEMAQsgAEGAgIAINgIIIAAgAjYCBEEECzoAAAsSACABIAAoAgQgACgCCCACEAIL1gEBAn8jAEFAaiIDJAACQCABKAIIIgQgAk8EQCADIAEgAkGs+sIAEKUGIANBMGoiASADKAIAIAMoAgQQ8AUgA0EIaiICIAEQqREgASACELIBIANBGGogARCwBiADIAMpAhA3AyggAyADKQIINwMgAkAgAy0AGEEBRgRAIAMgAykCEDcDOCADIAMpAgg3AzAgARCoCyECDAELIAMoAhwhAiADQSBqEHMLIABB/wE6AAAgACACNgIEDAELIAAgBDYCCCAAIAI2AgQgAEEEOgAACyADQUBrJAALaAECfyMAQRBrIgIkAEEIQcAAECIiA0KBgICAEDcDACADQQhqIAFBOPwKAAAgAkEIaiIBQaj2wAA2AgQgASADNgIAIAIoAgghASAAQQxqEEMgAEGo9sAANgIQIAAgATYCDCACQRBqJAALLgAgACgCACIAIAFqLAAAQQBOBH8gACkDAEKAgYKEiJCgwIB/g3qnQQN2BSABCws3AQF+IAAgAikDAEKAgYKEiJCgwIB/gyIEQgBSNgIAIAAgASgCBCADKAIAIAR6p0EDdmpxNgIECxMAIAAoAgAgACgCBCABIAIQ5RELDAAgACABQRQQjxJFCwIACwQAQQALWgIBfwF+IAEQ7AYhAiABKQMAIgOnIQEgAAJ/IAIgA0KAgICAEFpyRQRAQQQhAkEADAELIAAgATYCCCAAQYACNgIEQX8hAUEMIQJBAQs2AgAgACACaiABNgIACw8AIAAgAUEUQcD9wgAQBwswAQJ/IwBBEGsiASQAIAEgABCTByABKAIAIQAgASgCBCECIAFBEGokAEF/IAIgABsLwgEBAn8jAEEwayIIJAACQCAFRQ0AIAggAykDGDcDKCAIIAMpAxA3AyAgCCADKQMINwMYIAggAykDADcDECAIQQhqIAhBEGoQ3AEgCC0ACEEBRgRAIAgtAAkhCQwBCyABIAAgAiAIKAIMIgAgBRDgBkH/AXEiCQ0AIAggBCkDGDcDKCAIIAQpAxA3AyAgCCAEKQMINwMYIAggBCkDADcDECABIAAgCEEQahCVByAFIAYgBxDiBkEAIQkLIAhBMGokACAJC1cBAn8jAEEgayIBJAAgABCYByICQf8BcUH/AUYEQCABIAAQmQcgACABKQMYNwMYIAAgASkDEDcDECAAIAEpAwg3AwggACABKQMANwMACyABQSBqJAAgAgsZACAAKQMYQgBTBEBB/wEPCyAAEM4BQQFzC2kBAX8jAEHQAGsiAiQAIAJCADcDSCACQgA3A0AgAkIANwM4IAJCADcDMCACQQhqIAJBMGogARCuASAAIAIpAyA3AxggACACKQMYNwMQIAAgAikDEDcDCCAAIAIpAwg3AwAgAkHQAGokAAtiAQN/IwBBEGsiAiQAAn8gABCYByIDQf8BcSABEJgHIgRB/wFxRwRAIAPAIgAgBMAiAUogACABSGsMAQsgAiAAQQQgARC+BkEAQX9BASACLQAIGyACKQMAUBsLIAJBEGokAAsIACAAIAEQYgsMACAAKAIAIAEQ/xELDAAgACgCACABEIoSCwwAIAAoAgAgARD2EQsPACAAIAEgAiADQQgQmxILugEAQfDuxQAoAgBBf0cEQCMAQSBrIgAkAAJAQYTvxQAtAAANAEH87sUAKAIAQfjuxQAoAgBByQBqSQRAQYTvxQBBAToAAAwBC0Hw7sUAQQkQmQYgACABKAAQNgIYIAAgASkACDcDECAAIAEpAAA3AwhB8O7FACAAQQhqIgEQnQYgACACKAAQNgIYIAAgAikACDcDECAAIAIpAAA3AwhB8O7FACABEJ0GQfDuxQAgAxCzBgsgAEEgaiQACwt2AEHw7sUAKAIAQX9HBEACQEGA78UALQAAQQFHDQBBhO/FAC0AAA0AQfzuxQAoAgBB+O7FACgCAEELakkEQEGE78UAQQE6AAAMAQtB8O7FAEEBEJkGQfDuxQAgASgCiAEvAZwBEMUGQfDuxQAgASkDABCcBgsLC44CAQF/QfDuxQAoAgBBf0cEQCMAQSBrIgAkAAJAQYTvxQAtAAANAEH87sUAKAIAQfjuxQAoAgAgASgCFCABKAIIIgJBBXRqakEaakkEQEGE78UAQQE6AAAMAQtB8O7FAEEEEJkGIAAgASgALDYCECAAIAEpACQ3AwggACABKQAcNwMAQfDuxQAgABCdBkHw7sUAIAIQmQYgASgCCEEFdCEDIAEoAgQhAgNAIAMEQCAAIAIpABg3AxggACACKQAQNwMQIAAgAikACDcDCCAAIAIpAAA3AwBB8O7FACAAQSAQ2Q8gA0EgayEDIAJBIGohAgwBCwtB8O7FACABKAIQIAEoAhQQkgYLIABBIGokAAsLDwAgACABIAIgA0EFEJ0SC4EDAQN/QfDuxQAoAgBBf0cEQCMAQSBrIgAkAAJAQYDvxQAtAABBAUcNAEGB78UALQAABEAgASgClAEhAwtBhO/FAC0AAA0AQfzuxQAoAgBB+O7FACgCACADQQV0akEWakkEQEGE78UAQQE6AAAMAQtB8O7FAEECEJkGQfDuxQAgASgCgAEiAiABKAKYASgCHGsQngZB8O7FACACLQAAEJkGQfDuxQAgASgCiAEvAZwBEMUGQfDuxQAgASkDABCcBkEAIQJB8O7FAEGC78UALQAAQQFGBH8gASgCeAVBAAsQngZB8O7FACADEMUGIAEoApwBIAEoApQBIgRBBXRqQSBrIQEDQCACIANGDQECQCACIARJBEAgACABKQMYNwMYIAAgASkDEDcDECAAIAEpAwg3AwggACABKQMANwMADAELIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDAAtB8O7FACAAELMGIAJBAWohAiABQSBrIQEMAAsACyAAQSBqJAALCw8AIAAgASACIANBBxCdEgsPACAAIAEgAiADQQYQmxILZABB8O7FACgCAEF/RwRAAkBBgO/FAC0AAEEBRw0AQYTvxQAtAAANAEH87sUAKAIAQfjuxQAoAgBBCWpJBEBBhO/FAEEBOgAADAELQfDuxQBBAxCZBkHw7sUAIAEpAwAQnAYLCws+AQF/IwBBEGsiBSQAIAVBCGpBACABIAIgAyAEELAHIAUoAgwhASAAIAUoAgg2AgAgACABNgIEIAVBEGokAAuVBAIFfwF+IwBB4ABrIgYkACAGQQhqIQQjAEHQAWsiAyQAIANBC2oiBUEAQckA/AsAIANBADYCVAJAAkACfwJAAkACQAJAIAEgAiAFIANB1ABqEIgHIgVBA0YEfyADQdgAaiIFIAEgAygCVBCJByADLQBYIgdB/wFHBEAgBEEJaiAFQQFyQTf8CgAAIARCfzcDACAEIAc6AAgMCAsgASACIANBC2ogA0HUAGoQiAcFIAULDgUAAQUFAgULIAMtAFMNAkEADAMLIARCADcDAAwECyAEQn83AwAgBEEBOgAIDAMLIANB2ABqIAEgAygCVBCLByADLQBYIgJB/wFHBEAgBCADLQBbOgALIAQgAy8AWTsACSADKAJcIQUgBEEQaiADQeAAakEw/AoAACAEIAU2AgwgBCACOgAIIARCfzcDAAwDCyADKAJcCyECIANBkAFqIgUgA0ELakEgQfCAwwAQByADKQArIQggA0GwAWogA0EzakEgQYCBwwAQwgYgBEIBNwMAIARBCGogBUHAAPwKAAAgBCACNgJQIAQgCDcDSAwBCyAEQQA6AAggBEJ/NwMAIAQgAikAADcACSAEIAIpAAg3ABEgBCACKAAQNgAZCyADQdABaiQAAkAgBikDCEJ/UQRAIAEgBkEQahCMByAAQn83AwAgAEEBNgIIDAELIAAgBkEIakHYAPwKAAALIAZB4ABqJAAL7AIBBH8jAEFAaiIGJAAgBkEIaiEFIwBB0ABrIgQkACAEQgA3AyAgBEIANwMYIARCADcDECAEQgA3AwggBEEoaiIHIAMQBQJAAkACQAJAIAIgByAEQQhqEAMOBQECAgIAAgsgBUEBOgAADAILIAQgBCkDIDcDQCAEIAQpAxg3AzggBCAEKQMQNwMwIAQgBCkDCDcDKCAFQQhqIARBKGpBkIHDABAGIAVB/wE6AAAMAQsgBUEFOgAAIAUgAikAADcAASAFIAIpAAg3AAkgBSACKAAQNgARIAQgAykAGDcAQyAEIAMpABA3ADsgBCADKQAINwAzIAQgAykAADcAKyAFQRVqIARBKGpBI/wKAAALIARB0ABqJAAgAAJ/IAYtAAhB/wFHBEAgASAFEIwHIABBATYCBEEBDAELIAAgBikDKDcDICAAIAYpAyA3AxggACAGKQMYNwMQIAAgBikDEDcDCEEACzYCACAGQUBrJAALuwIBBH8jAEFAaiIFJAAgBUEIaiEEIwBB0ABrIgMkACADQgA3AyAgA0IANwMYIANCADcDECADQgA3AwggA0EpaiIGIAIQBQJAAkACQAJAIAYgA0EIahAEDgUBAgICAAILIARBAToAAAwCCyAEIAMpAyA3ABkgBCADKQMYNwARIAQgAykDEDcACSAEIAMpAwg3AAEgBEH/AToAAAwBCyAEQQI6AAAgAyACKQAYNwBIIAMgAikAEDcAQCADIAIpAAg3ADggAyACKQAANwAwIARBAWogA0EpakEn/AoAAAsgA0HQAGokACAAAn8gBS0ACEH/AUcEQCABIAQQjAcgAEEBNgIEQQEMAQsgACAFKQAhNwAZIAAgBSkAGTcAESAAIAUpABE3AAkgACAFKQAJNwABQQALOgAAIAVBQGskAAuaAgEFfyMAQUBqIgUkACAFQQhqIQMjAEFAaiIEJAAgBEEANgIEAkACQAJAAkAgASACIARBBGoQigciBkEDRgR/IARBCGoiBiABIAQoAgQQiQcgBC0ACCIHQf8BRwRAIANBAWogBkEBckE3/AoAACADIAc6AAAMBQsgASACIARBBGoQigcFIAYLDgUBAgICAAILIANBAToAAAwCCyADIAEgBCgCBBCLBwwBCyADQQM6AAAgAyACKQAANwABIAMgAikACDcACSADIAIpABA3ABEgAyACKQAYNwAZCyAEQUBrJAAgAAJ/IAUtAAhB/wFHBEAgASADEIwHQQEhAkEBDAELQQAhAiAFKAIMCzYCBCAAIAI2AgAgBUFAayQAC8QBAQJ/IwBBEGsiBCQAAn8CQAJAIAJBAUcNACABKAIMIgNFDQAgAyADKAIAIgJBAWo2AgAgAkEATg0BAAsjAEEQayIBJABBBEEMEPAHIgMgAjYCCCADQoGAgIAQNwIAIAFBCGoiAkHgh8MANgIEIAIgAzYCACABKAIMIQIgBEEIaiIDIAEoAgg2AgAgAyACNgIEIAFBEGokACAEKAIIIQMgBCgCDAwBCyABKAIQCyEBIAAgAzYCACAAIAE2AgQgBEEQaiQAC9gCAQF/IwBBIGsiAiQAAn8CQAJAAkACQAJAAkAgAC0AAEEBaw4FAQIDBAUACyACIABBAWo2AgwgAkElNgIUIAIgAkEMajYCECABQbuDwAAgAkEQahCPBwwFCyABQdCBwwBB2QAQjwcMBAsgAiAAQQhqNgIMIAJBJjYCFCACIAJBDGo2AhAgAUGiiMAAIAJBEGoQjwcMAwsgAiAAQQFqNgIMIAJBJzYCFCACIAJBDGo2AhAgAUHQicAAIAJBEGoQjwcMAgsgAiAAQQRqNgIIIAIgAEEIajYCDCACQR82AhwgAkEfNgIUIAIgAkEMajYCGCACIAJBCGo2AhAgAUGJ8cAAIAJBEGoQjwcMAQsgAiAAQQFqNgIIIAIgAEEYajYCDCACQSY2AhwgAkElNgIUIAIgAkEMajYCGCACIAJBCGo2AhAgAUGhgcAAIAJBEGoQjwcLIAJBIGokAAsMACAAKAIAIAEQ2w0LMgAgASACSyACIARLckUEQCAAIAIgAWs2AgQgACABIANqNgIADwsgASACIAQgBRDmEQALzTICGn8GfiMAQdAAayIPJAAgAigCsAEhBiAPQQM6AAggDyABLQAAOgAJAkAgBkEGRwRAIAAgD0EIakEBciIBLQACOgALIAAgAS8AADsACSAAQgE3AwAgAEEDOgAIDAELIA9BCGoiARCOASAPIAM2AiQgDyACNgIMIA8gAjYCCCAPIAIoAvABNgIgIA8gAikC6AE3AhggDyACKQLgATcCECAAIQYjAEGACGsiBCQAIAQgASgAGDYCMCAEIAEpABA3AyggBCABKQAINwMgAkACQAJAAkAgASgCBCIIKAKQAQRAIAgpAyAhIAJAIAgpAygiH1AEQCAEQgA3A4gGIARCADcDgAYMAQsgBEIANwOIBiAEQgA3A4AGIB8hHgsgASgCACEaIAQgHjcDQCAEICA3AzggBCAEKQOABjcDSCAEIAQpA4gGNwNQQgAhHiAIKQMwISACQCAIKQM4Ih9QBEAgBEIANwOIBiAEQgA3A4AGDAELIARCADcDiAYgBEIANwOABiAfIR4LIAQgHjcDYCAEICA3A1ggBCAEKQOABjcDaCAEIAQpA4gGNwNwIAQgASgCHCIKKQNoNwPYBCAEIAopA3A3A+AEIAQgCikDeDcD6AQgBCAKKQOAATcD8AQgBCAEKQNQNwPIAyAEIAQpA0g3A8ADIAQgBCkDQDcDuAMgBCAEKQM4NwOwAyAEIAQpA3A3A5gGIAQgBCkDaDcDkAYgBCAEKQNgNwOIBiAEIAQpA1g3A4AGIARB+ABqIARBsANqIgAgBEGABmoiAiAEQdgEahDICyAEIAQpA1A3A8gDIAQgBCkDSDcDwAMgBCAEKQNANwO4AyAEIAQpAzg3A7ADIAIgCkHABWoiDSAAIARB2ABqEMkLIAQtAIAGIgBB/wFHBEAgBkEJaiACQQFyQccA/AoAACAGQgE3AwAgBiAAOgAIDAULIAQgCkHoAGoiACkDGDcD8AQgBCAAKQMQNwPoBCAEIAApAwg3A+AEIAQgACkDADcD2AQgBCAEKQOQATcDyAMgBCAEKQOIATcDwAMgBCAEKQOAATcDuAMgBCAEKQN4NwOwAyAEQYAGaiICIA0gBEGwA2ogBEHYBGoQxwsgBC0AgAYiAEH/AUcEQCAGQQlqIAJBAXJBxwD8CgAAIAZCATcDACAGIAA6AAgMBQsgBEGABmoiAiANQgEgCCkDUEEAEMULIAQtAIAGIgBB/wFHBEAgBkEJaiACQQFyQccA/AoAACAGQgE3AwAgBiAAOgAIDAULIARBgAZqIgIgDSAIKQNgEM4LIAQtAIAGIgBB/wFHBEAgBkEJaiACQQFyQccA/AoAACAGQgE3AwAgBiAAOgAIDAULIAgpA2AhHiAEIAopA2A3A8gDIAQgCikDWDcDwAMgBCAKKQNQNwO4AyAEIAopA0g3A7ADIARBgAZqIgIgDSAeIARBsANqEMsLIAQtAIAGIgBB/wFHBEAgBkEJaiACQQFyQccA/AoAACAGQgE3AwAgBiAAOgAIDAULIARBAToAsAMgBCAIKAB4NgDBAyAEIAgpAHA3ALkDIAQgCCkAaDcAsQMgBEGABmoiAiANIARBsANqIAhBQGsiGBDMCyAELQCABiIAQf8BRwRAIAZBCWogAkEBckHHAPwKAAAgBkIBNwMAIAYgADoACAwFCyAIKQNYQn9RBEAgBkIBNwMAIAZBCjoACAwFCyAEQYAGaiICIAhB/ABqIhAQxgsgBCkDiAYhISAEKQOABiEiIARBAToAsAMgBCAIQegAaiIOKAAQNgDBAyAEIA4pAAg3ALkDIAQgDikAADcAsQMgBCAIKQMYNwOYBiAEIAgpAxA3A5AGIAQgCCkDCDcDiAYgBCAIKQMANwOABiAEIAFBCGoiACgAEDYC6AQgBCAAKQAINwPgBCAEIAApAAA3A9gEIA0gBEHYBGogBEGwA2ogGCAiICEgAhDDCyEgIAo1AqwGIR8gCDUCkAEhHiAEQgA3A5gBIAIgCCkDYCAgIB4gH358IiMQygsgBC0AgAYiAEH/AUcEQCAGQQlqIAJBAXJBxwD8CgAAIAZCATcDACAGIAA6AAgMBQsgBEEBOgCwAyAEIA4oABA2AMEDIAQgDikACDcAuQMgBCAOKQAANwCxAyAEIAgpAxg3A5gGIAQgCCkDEDcDkAYgBCAIKQMINwOIBiAEIAgpAwA3A4AGIAQgBCgCMDYC6AQgBCAEKQMoNwPgBCAEIAQpAyA3A9gEIAQgDSAEQdgEaiAEQbADaiAYICIgISAEQYAGahDQCyIfNwOgASAfIAgpA2AiHlYEQCAGIB43AxggBiAfNwMQIAZBBzoACCAGQgE3AwAMBQsgBEGABmoiASANIB4gIyAfEM8LIAQtAIAGIgBB/wFHBEAgBkEJaiABQQFyQccA/AoAACAGQgE3AwAgBiAAOgAIDAULIARCADcDuAMgBEIANwPAAyAEQgA3A8gDIAQgCCkDYDcDsAMgBEIANwOYBiAEQgA3A5AGIARCADcDiAYgBEIANwOABiAEQYAGaiECQQMhAQNAIAxBBEcEQCAEQThqIAxBA3RqIRNCACEeIARBsANqIQsgASEAIAIhAwNAIAAEQCAEQRBqIBMpAwBCACALKQMAEJUSIAMgBCkDECIfIB58IiAgAykDAHwiHjcDACAeICBUrSAEKQMYIB8gIFatfHwhHiAAQQFrIQAgC0EIaiELIANBCGohAwwBCwsgBCAEKQOYBiAefCATKQMAQQAgDGtBA3QgBGpByANqKQMAfnw3A5gGIAJBCGohAiABQQFrIQEgDEEBaiEMDAELCyAEIAQpA5gGNwPAASAEIAQpA5AGNwO4ASAEIAQpA4gGNwOwASAEIAQpA4AGNwOoASAIKQNYIR4gBEHIAWogBEGoAWogCBDGAQJAIAQtAOgBRQRAIAQgBCkD4AE3A9ACIAQgBCkD2AE3A8gCIAQgBCkD0AE3A8ACIAQgBCkDyAE3A7gCDAELIARCfzcD0AIgBEJ/NwPIAiAEQn83A8ACIARCfzcDuAILIAQgBCgCMDYC2AEgBCAEKQMoNwPQASAEIAQpAyA3A8gBIARBgAZqIAogBEHIAWogHiAEQbgCahCzASAEQYgGaiEBIAQpA4AGQgFRBEAgBEGwA2oiACABQcgA/AoAACAGQQhqIABByAD8CgAAIAZCATcDAAwFCyAEQbADaiIAIAFB0AD8CgAAIARB2ARqIABB0AD8CgAAIARBoAVqEHEgBEEBOgCABiAEIA4oABA2AJEGIAQgDikACDcAiQYgBCAOKQAANwCBBiAKIARBIGogBEGABmoQwQEgCiAQELkBIARCADcDuAMgBEIANwPAAyAEQgA3A8gDIAQgCCkDYDcDsAMgBEIANwPgByAEQgA3A+gHIARCADcD8AcgBEIANwP4ByAEIAQpA5ABNwOYBiAEIAQpA4gBNwOQBiAEIAQpA4ABNwOIBiAEIAQpA3g3A4AGQQAhDCAEQeAHaiECQQMhAQNAIAxBBEcEQCAEQYAGaiAMQQN0aiEQQgAhHiAEQbADaiELIAEhACACIQMDQCAABEAgBCAQKQMAQgAgCykDABCVEiADIAQpAwAiHyAefCIgIAMpAwB8Ih43AwAgHiAgVK0gBCkDCCAfICBWrXx8IR4gAEEBayEAIAtBCGohCyADQQhqIQMMAQsLIAQgBCkD+AcgHnwgECkDAEEAIAxrQQN0IARqQcgDaikDAH58NwP4ByACQQhqIQIgAUEBayEBIAxBAWohDAwBCwsgBEGABmogCkHYAmogBEEgakEAEN4KIAQpA4AGIh5CflEEQCAKIAQoAogGIgA2AvQHIAYgADYCDCAGQQA6AAggBkIBNwMADAULIAQgBC8AiQY7ALkDIAQgBC0AiwY6ALsDIAQtAIgGIQIgBCgCjAYhASAEQdgEaiIAIARBkAZqQYgB/AoAACAEQcADaiAAQcAA/AoAACAEQYAEaiAEQZgFakHIAPwKAAAgBCABNgK8AyAEIAI6ALgDIAQgHjcDsAMgBEGwA2oiABDHASAAEJEBIAQgBCgCMDYCwAMgBCAEKQMoNwO4AyAEIAQpAyA3A7ADIARBgAZqIgEgCiAAIARB4AdqEMgBIAQtAIAGIgBB/wFHBEAgBkEJaiABQQFyQccA/AoAACAGQgE3AwAgBiAAOgAIDAULIAopA7AHISIgBEIANwOAAiAEQgA3A/gBIARCADcD8AEgBCAEKQMgNwOIAiAEIAQpAyg3A5ACIAQgBCgCMDYCmAIgBCAEKQN4NwPIASAEIAQpA4ABNwPQASAEIAQpA4gBNwPYASAEIAQpA5ABNwPgASAEQQA2AqQCIARCgICAgIABNwKcAiAEICI3A+gBIARBgAZqIgsgDSAIKQNgICMQzQsgBCkDiAYhIyAEIAQpA4AGIh43A6gCIAQgIzcDsAIgBEIANwPQAiAEICM3A8gCIAQgHjcDwAIgBCAeNwO4AiAEQgA3A9gCIARCADcD4AIgBEGcAmohHSAKKAK8BSEbIAooArAFIRwgCi0AA0EIcUUEQCAEQbADaiIJQgA3AxggCUIANwMgIAkgDTUCpAE3AxAgCSANNQK4ATcDCCAJIA01AqwBNwMAIAkgDS0A6wFBAXE6ACggCCgCjAEhESAIKAKQASMAQfADayIFJABBkAFsIQwgCkHYAmohGSAFQYgBaiENIAVByABqIRMgBUHBAGohFCAFQZACaiEQIAVB6AJqIQMgBUHhAmohFSAFQRlqIRYgBUHuAmohFyAFQdgCakEBciESA0ACQAJAIAwEQCAFQdgCaiAKICIgERDKASAFIBIpAAA3AyAgBSASKQAINwMoIAUgEigAEDYCMCAFIBcvAQA7ARwgBSAXLQACOgAeIAUtAO0CIQEgBS0A2AIiAEH/AUYNASALQRlqIAVB8QJqQS/8CgAAIAsgBSgCMDYAESALIAUpAyg3AAkgCyAFKQMgNwABIAsgBS8BHDsBFiALIAUtAB46ABggCyABOgAVIAsgADoAAAwCCyALQf8BOwEADAELAkAgAUECRwRAIAUgBSgCMDYCECAFIAUpAyg3AwggBSAFKQMgNwMAIBYgBS8BHDsAACAWIAUtAB46AAIgBSABOgAYQgAhIQJAAkAgBUEYaiIALQAARQRAIAktAChFDQIMAQsgCUJ/IAkpAyAiICAJKQMQfCIfIB8gIFQbNwMgIAktAChFDQEgCSkDACEhCwJAIAAtAANFBEAgAC0AAkUEQCAALQABQQFxRQ0CCyAJKQMIICF8ISEMAQsgISAJKQMIIh98QgAgHyAALQABQQFxG0IAIAAtAAIbfCEhCyAJQn8gISAJKQMYIiB8Ih8gHyAgVBs3AxgLIAVB2AJqIBkgBUEAEN4KIAUpA9gCIh9CflEEQCAKIAUoAuACIgA2AvQHIAsgADYCBCALQQA6AAAMAwsgFCAVLwAAOwAAIBQgFS0AAjoAAiAFLQDgAiECIAUoAuQCIQEgBUHQAWoiACADQYgB/AoAACATIABBwAD8CgAAIA0gEEHIAPwKAAAgBSABNgJEIAUgAjoAQCAFIB83AzggBSAREL4KIgAoABA2AugCIAUgACkACDcD4AIgBSAAKQAANwPYAiAFQThqIgAgBUHYAmoQywEgABCRAQwBCyAJLQAoBEAgCUJ/IAkpAyAiICAJKQMQfCIfIB8gIFQbNwMgIAlCfyAJKQMYIiAgCSkDCCAJKQMAfHwiHyAfICBUGzcDGAsLIBFBkAFqIREgDEGQAWshDAwBCwsgBUHwA2okACAELQCABiIBQf8BRwRAIAQtAIEGIQAgBkEKaiALQQJyQcYA/AoAACAGIAA6AAkgBiABOgAIIAZCATcDAAwFCyAEICMgBCkDyAMiIHwiITcDyAIgBCkD0AMhHyAEICA3A+gCIAQgHzcD8AIgBCAINgKIAyAEIBo2AvwCIAQgBEHoAmo2ApQDIAQgBEGYAWo2ApADIAQgBEGgAWo2AowDIAQgBEH4AGo2AoQDIAQgBEEgajYCgAMgBCAEQfACajYC+AIgBCAbNgKsAyAEIBw2AqgDIAQgBEGwAmo2AqQDIAQgBEGoAmo2AqADIAQgBEH4Amo2ApwDQgAhIAwDCyAEIA4oABA2AogDIAQgDikACDcDgAMgBCAOKQAANwP4AiAEIAgpAxg3A5gGIAQgCCkDEDcDkAYgBCAIKQMINwOIBiAEIAgpAwA3A4AGIAQgBCgCMDYC6AQgBCAEKQMoNwPgBCAEIAQpAyA3A9gEIwBBEGsiASQAIAFBADYCDCABQoCAgIAQNwIEIAFBBGoiACAEQdgEahC/CiAEQYAGaiIJEMAKRQRAIAAgBEH4AmoQvwoLIARBsANqIgUgASkCBDcCHCAFIAEoAgw2AiQgBSAEQbgCajYCGCAFQQA2AjAgBUKAgICAEDcDKCAFQsA+NwMQIAUgDTUCuAE3AwggBSANNQKsATcDACABQRBqJAAgCCgCjAEhDCAIKAKQASMAQfADayIHJABBkAFsIQsgCkHYAmohGSAHQYgBaiENIAdByABqIRMgB0HBAGohFCAHQZACaiEQIAdB6AJqIQMgB0HhAmohFSAHQRlqIRYgB0HuAmohFyAHQdgCakEBciESA0ACQAJAIAsEQCAHQdgCaiAKICIgDBDKASAHIBIpAAA3AyAgByASKQAINwMoIAcgEigAEDYCMCAHIBcvAQA7ARwgByAXLQACOgAeIActAO0CIQEgBy0A2AIiAEH/AUYNASAJQRlqIAdB8QJqQS/8CgAAIAkgBygCMDYAESAJIAcpAyg3AAkgCSAHKQMgNwABIAkgBy8BHDsBFiAJIActAB46ABggCSABOgAVIAkgADoAAAwCCyAJQf8BOwEADAELAkAgAUECRg0AIAcgBygCMCIANgIQIAcgBykDKCIfNwMIIAcgBykDICIeNwMAIBYgBy8BHDsAACAWIActAB46AAIgByABOgAYIAcgADYC6AIgByAfNwPgAiAHIB43A9gCIAdB2AJqIQICQCAHQRhqIgEtAABFBEAgBSgCGCAFKQMAEOkBQf8BcSIRDQELIAIgBSgCICAFKAIkEOIMRQRAIAUoAhgiACAAKQMAIh8gBSkDECIefTcDAEEgIREgHiAfVg0BIAVBHGogAhC/CgtBACERIAEtAAMNACABLQACQQFxDQAgAS0AAUEBcQ0AIAIgBSgCLCAFKAIwEOIMDQAgBSgCGCAFKQMIEOkBQf8BcSIRDQAgBUEoaiACEL8KQQAhEQsgEUUEQCACIBkgB0EAEN4KIAcpA9gCIh5CflEEQCAKIAcoAuACIgA2AvQHIAkgADYCBCAJQQA6AAAMAwsgFCAVLwAAOwAAIBQgFS0AAjoAAiAHLQDgAiECIAcoAuQCIQEgB0HQAWoiACADQYgB/AoAACATIABBwAD8CgAAIA0gEEHIAPwKAAAgByABNgJEIAcgAjoAQCAHIB43AzggByAMEL4KIgAoABA2AugCIAcgACkACDcD4AIgByAAKQAANwPYAiAHQThqIgAgB0HYAmoQywEgABCRAQwBCyAJQf8DOwEADAELIAxBkAFqIQwgC0GQAWshCwwBCwsgB0HwA2okACAELQCBBiEBIAQtAIAGIgBB/wFHBEAgBkEKaiAJQQJyQcYA/AoAACAGIAE6AAkgBiAAOgAIIAZCATcDACAFEI8BDAQLIARBsANqEI8BIARCADcD6AIgBEIANwPwAiAEIBs2AqwDIAQgHDYCqAMgBCAINgKIAyAEIBo2AvwCIAQgBEGwAmo2AqQDIAQgBEGoAmo2AqADIAQgBEH4Amo2ApwDIAQgBEHoAmo2ApQDIAQgBEGYAWo2ApADIAQgBEGgAWo2AowDIAQgBEH4AGo2AoQDIAQgBEEgajYCgAMgBCAEQfACajYC+AIgAUEBcQ0BIAQpA9ACIh5CACAeQgBVGyEgIAQpA8gCISEgBCkDuAIhHgwCCyAGQgE3AwAgBkEROgAIDAMLIAYgBEGcA2ogChDMAQwBCyAIKQNYIR8gBEEBOgCzByAEIA4oABA2AMQHIAQgDikACDcAvAcgBCAOKQAANwC0ByAEIAgpAxg3A8gDIAQgCCkDEDcDwAMgBCAIKQMINwO4AyAEIAgpAwA3A7ADIAQgBCgCMDYC2AcgBCAEKQMoNwPQByAEIAQpAyA3A8gHIARBgAZqIgAgCiAEQcgHaiAfIARBswdqIBggBEGwA2ogHiAhELABIABBBHIhECAEKAKABiEDIAQtAKgHIgFBAkYEQCAEQdgEaiIAIBBBxAD8CgAAIAZBDGogAEHEAPwKAAAgBkIBNwMAIAYgAzYCCAwBCyAEQdgEaiICIBBBpAH8CgAAIAQgBCgArAc2ANQEIAQgBCgAqQc2ANEEIARBsANqIgAgBEHcBGpBoAH8CgAAIAQgAToA0AQgAiAKIARByAFqIAMgABDJASAELQCuBUUEQCAEQYAGaiIAIAJB2AD8CgAAIAQgIDcD4AYgBCAKNgLYBiAGIARB+AJqIAogACAgEM0BIARB8ANqEHMMAQsgBiAEQZwDaiAKEMwBIARBiAVqEHMgBEHwA2oQcwsgHRCrEAsgBEGACGokAAsgD0HQAGokAAvxFgIMfwd+IwBB0ABrIgckACACKAKwASEJIAdBAzoACCAHIAEtAAA6AAkCQCAJQQJHBEAgACAHQQhqQQFyIgEtAAI6AAsgACABLwAAOwAJIABCATcDACAAQQM6AAgMAQsgB0EIaiIBEI4BIAcgAzYCJCAHIAI2AgwgByACNgIIIAcgAigC8AE2AiAgByACKQLoATcCGCAHIAIpAuABNwIQIwBBgAZrIgQkACAEIAEoABg2AiggBCABKQAQNwMgIAQgASkACDcDGCABKAIEIgUpAyAhFAJAIAUpAygiEVAEQCAEQgA3A5gEIARCADcDkAQMAQsgBEIANwOYBCAEQgA3A5AEIBEhEgsgBCAEKQOYBDcDOCAEIAQpA5AENwMwIAQgASgCHCIGKQOAATcDgAMgBCAGKQN4NwP4AiAEIAYpA3A3A/ACIAQgBikDaDcD6AIgBCASNwPIASAEIBQ3A8ABIAQgBCkDMDcD0AEgBCAEKQM4NwPYASAEQZAEaiICIAZBwAVqIgogBEHAAWogBEHoAmoQxwsCQCAELQCQBCIDQf8BRwRAIABBCWogAkEBckHHAPwKAAAgAEIBNwMAIAAgAzoACAwBCyAEQZAEaiICIAogBSkDACAFKQMIQQEQxQsgBC0AkAQiA0H/AUcEQCAAQQlqIAJBAXJBxwD8CgAAIABCATcDACAAIAM6AAgMAQsgBEGQBGoiAiAKIAUpA1gQzgsgBC0AkAQiA0H/AUcEQCAAQQlqIAJBAXJBxwD8CgAAIABCATcDACAAIAM6AAgMAQsgBSkDWCERIAQgBikDYDcD2AEgBCAGKQNYNwPQASAEIAYpA1A3A8gBIAQgBikDSDcDwAEgBEGQBGoiAiAKIBEgBEHAAWoQywsgBC0AkAQiA0H/AUcEQCAAQQlqIAJBAXJBxwD8CgAAIABCATcDACAAIAM6AAgMAQsgBCAFKQBtNwDNASAEIAUpAGg3A8gBIAQgBSkAYDcDwAEgBEGQBGoiAiAKIARBwAFqIAVBEGoiDRDMCyAELQCQBCIDQf8BRwRAIABBCWogAkEBckHHAPwKAAAgAEIBNwMAIAAgAzoACAwBCyAFKQNQQn9RBEAgAEIBNwMAIABBCjoACAwBCyAEIAVB4ABqIggpAA03AM0BIAQgCCkACDcDyAEgBCAIKQAANwPAASAEIAUpA0g3A6gEIAQgBSkDQDcDoAQgBCAFKQM4NwOYBCAEIAUpAzA3A5AEIAQgAUEIaiIBKAAQNgL4AiAEIAEpAAg3A/ACIAQgASkAADcD6AIgCiAEQegCaiAEQcABaiANQgBCACAEQZAEaiICEMMLIRMgAiAFKQNYIBMQygsgBC0AkAQiA0H/AUcEQCAAQQlqIAJBAXJBxwD8CgAAIABCATcDACAAIAM6AAgMAQsgBCAIKQANNwDNASAEIAgpAAg3A8gBIAQgCCkAADcDwAEgBCAFQTBqIgspAxg3A6gEIAQgCykDEDcDoAQgBCALKQMINwOYBCAEIAspAwA3A5AEIAQgASgAEDYC+AIgBCABKQAINwPwAiAEIAEpAAA3A+gCIAogBEHoAmogBEHAAWogDUIAQgAgBEGQBGoQ0AshESARIAUpA1giEFYEQCAAIBA3AxggACARNwMQIABBBzoACCAAQgE3AwAMAQsgBEGQBGoiASAKIBAgEyAREM8LIAQtAJAEIgJB/wFHBEAgAEEJaiABQQFyQccA/AoAACAAQgE3AwAgACACOgAIDAELIARCADcDyAEgBEIANwPQASAEQgA3A9gBIAQgBSkDWDcDwAEgBEIANwPgBSAEQgA3A+gFIARCADcD8AUgBEIANwP4BSAEIBI3A5gEIAQgFDcDkAQgBCAEKQMwNwOgBCAEIAQpAzg3A6gEIARB4AVqIQJBAyEDA0AgDEEERwRAIARBkARqIAxBA3RqIQ9CACEQIARBwAFqIQ4gAyEJIAIhAQNAIAkEQCAEIA8pAwBCACAOKQMAEJUSIAEgBCkDACIVIBB8IhAgASkDAHwiFjcDACAQIBZWrSAEKQMIIBAgFVStfHwhECAJQQFrIQkgDkEIaiEOIAFBCGohAQwBCwsgBCAEKQP4BSAQfCAPKQMAQQAgDGtBA3QgBGpB2AFqKQMAfnw3A/gFIAJBCGohAiADQQFrIQMgDEEBaiEMDAELCyAFKQNQIRAgBCAEKQP4BTcD2AUgBCAEKQPwBTcD0AUgBCAEKQPoBTcDyAUgBCAEKQPgBTcDwAUgBEHgAGogBEHABWogCxDGAQJAIAQtAIABRQRAIAQgBCkDeDcDWCAEIAQpA3A3A1AgBCAEKQNoNwNIIAQgBCkDYDcDQAwBCyAEQn83A1ggBEJ/NwNQIARCfzcDSCAEQn83A0ALIAQgBCgCKDYCcCAEIAQpAyA3A2ggBCAEKQMYNwNgIARBkARqIAYgBEHgAGogECAEQUBrELMBIARBmARqIQEgBCkDkARCAVEEQCAEQcABaiICIAFByAD8CgAAIABBCGogAkHIAPwKAAAgAEIBNwMADAELIARBwAFqIgIgAUHQAPwKAAAgBEHoAmogAkHQAPwKAAAgBEGwA2oQcSAEIAgpAA03AJ0EIAQgCCkACDcDmAQgBCAIKQAANwOQBCAGIARBGGoiASAEQZAEaiICEMEBIAIgBkHYAmogAUEAEN4KIAQpA5AEIhBCflEEQCAGIAQoApgEIgE2AvQHIAAgATYCDCAAQQA6AAggAEIBNwMADAELIAQgBC8AmQQ7AMkBIAQgBC0AmwQ6AMsBIAQtAJgEIQEgBCgCnAQhAiAEQegCaiIDIARBoARqQYgB/AoAACAEQdABaiADQcAA/AoAACAEQZACaiAEQagDakHIAPwKAAAgBCACNgLMASAEIAE6AMgBIAQgEDcDwAEgBEHAAWoiARDHASABEJEBIAQgBCgCKDYC0AEgBCAEKQMgNwPIASAEIAQpAxg3A8ABIARBkARqIgIgBiABIARB4AVqEMgBIAQtAJAEIgFB/wFHBEAgAEEJaiACQQFyQccA/AoAACAAQgE3AwAgACABOgAIDAELIARBkARqIgEgCiAFKQNYIBMQzQsgBCkDmAQhEyAEKQOQBCEQIARCADcDiAEgBEIANwOQASAEQgA3A5gBIAQgBCkDGDcDoAEgBCAEKQMgNwOoASAEIAQoAig2ArABIAQgEjcDaCAEIBQ3A2AgBCAEKQMwNwNwIAQgBCkDODcDeCAEQQA2ArwBIARCgICAgIABNwK0ASAEIAYpA7AHNwOAASAFKQNQIRUgBCAIKQANNwDNBSAEIAgpAAg3A8gFIAQgCCkAADcDwAUgBCALKQMYNwPYASAEIAspAxA3A9ABIAQgCykDCDcDyAEgBCALKQMANwPAASAEIAQoAig2AlAgBCAEKQMgNwNIIAQgBCkDGDcDQCABIAYgBEFAayAVIARBwAVqIA0gBEHAAWogECATELABIAFBBHIhASAEQbQBaiAEKAKQBCECAkAgBC0AuAUiCUECRgRAIARB6AJqIgkgAUHEAPwKAAAgAEEMaiAJQcQA/AoAACAAQgE3AwAgACACNgIIDAELIARB6AJqIAFBpAH8CgAAIAQgBCgAvAU2AOQCIAQgBCgAuQU2AOECIARBwAFqIgEgBEHsAmpBoAH8CgAAIAQgCToA4AIgBEHQBGogBiAEQeAAaiACIAEQyQEgBCASNwOYBCAEIBQ3A5AEIARCADcDwAQgBCARNwO4BCAEQgA3A8gEIAQgBCkDGDcDqAUgBCAEKQMgNwOwBSAEIAQoAig2ArgFIAQgBCkDMDcDoAQgBCAEKQM4NwOoBCAEIAUpA1g3A7AEIAAgBiAEQZAEahDAASAEQYACahBzCxCrEAsgBEGABmokAAsgB0HQAGokAAvJHAIMfwV+IwBB0ABrIggkACACKAKwASEFIAhBAzoACCAIIAEtAAA6AAkCQCAFQQRHBEAgACAIQQhqQQFyIgEtAAI6AAsgACABLwAAOwAJIABCATcDACAAQQM6AAgMAQsgCEEIaiIBEI4BIAggAzYCJCAIIAI2AgwgCCACNgIIIAggAigC8AE2AiAgCCACKQLoATcCGCAIIAIpAuABNwIQIAAhBSMAQfAGayIEJAAgBCABKAAYNgIwIAQgASkAEDcDKCAEIAEpAAg3AyAgASgCBCIGKQMQIRICQCAGKQMYIhFQBEAgBEIANwPwBCAEQgA3A+gEDAELIARCADcD8AQgBEIANwPoBCARIRALIAQgEDcDQCAEIBI3AzggBCAEKQPoBDcDSCAEIAQpA/AENwNQQgAhECAGKQMgIRICQCAGKQMoIhFQBEAgBEIANwPwBCAEQgA3A+gEDAELIARCADcD8AQgBEIANwPoBCARIRALIAQgEDcDYCAEIBI3A1ggBCAEKQPoBDcDaCAEIAQpA/AENwNwIAQgASgCHCIHKQNoNwPAAyAEIAcpA3A3A8gDIAQgBykDeDcD0AMgBCAHKQOAATcD2AMgBCAEKQNQNwOwAiAEIAQpA0g3A6gCIAQgBCkDQDcDoAIgBCAEKQM4NwOYAiAEIAQpA3A3A4AFIAQgBCkDaDcD+AQgBCAEKQNgNwPwBCAEIAQpA1g3A+gEIARB+ABqIARBmAJqIgAgBEHoBGoiAiAEQcADahDICyAEIAQpA1A3A7ACIAQgBCkDSDcDqAIgBCAEKQNANwOgAiAEIAQpAzg3A5gCIAIgB0HABWoiCyAAIARB2ABqEMkLAkAgBC0A6AQiAEH/AUcEQCAFQQlqIAJBAXJBxwD8CgAAIAVCATcDACAFIAA6AAgMAQsgBCAHQegAaiIAKQMYNwPYAyAEIAApAxA3A9ADIAQgACkDCDcDyAMgBCAAKQMANwPAAyAEIAQpA5ABNwOwAiAEIAQpA4gBNwOoAiAEIAQpA4ABNwOgAiAEIAQpA3g3A5gCIARB6ARqIgIgCyAEQZgCaiAEQcADahDHCyAELQDoBCIAQf8BRwRAIAVBCWogAkEBckHHAPwKAAAgBUIBNwMAIAUgADoACAwBCyAEQegEaiICIAtCASAGKQNQQQAQxQsgBC0A6AQiAEH/AUcEQCAFQQlqIAJBAXJBxwD8CgAAIAVCATcDACAFIAA6AAgMAQsgBEHoBGoiAiALIAYpA2AQzgsgBC0A6AQiAEH/AUcEQCAFQQlqIAJBAXJBxwD8CgAAIAVCATcDACAFIAA6AAgMAQsgBikDYCEQIAQgBykDYDcDsAIgBCAHKQNYNwOoAiAEIAcpA1A3A6ACIAQgBykDSDcDmAIgBEHoBGoiAiALIBAgBEGYAmoQywsgBC0A6AQiAEH/AUcEQCAFQQlqIAJBAXJBxwD8CgAAIAVCATcDACAFIAA6AAgMAQsgBCAGKQCBATcApQIgBCAGKQB8NwOgAiAEIAYpAHQ3A5gCIARB6ARqIgIgCyAEQZgCaiAGEMwLIAQtAOgEIgBB/wFHBEAgBUEJaiACQQFyQccA/AoAACAFQgE3AwAgBSAAOgAIDAELIAYpA1hCf1EEQCAFQgE3AwAgBUEKOgAIDAELIARB6ARqIgIgBkHoAGoiDRDGCyAEKQPwBCERIAQpA+gEIRAgBCAGQfQAaiIKKQANNwClAiAEIAopAAg3A6ACIAQgCikAADcDmAIgBCAGKQNINwOABSAEIAYpA0A3A/gEIAQgBikDODcD8AQgBCAGKQMwNwPoBCAEIAFBCGoiACgAEDYC0AMgBCAAKQAINwPIAyAEIAApAAA3A8ADIAsgBEHAA2ogBEGYAmogBiAQIBEgAhDDCyEUIAIgBikDYCAUEMoLIAQtAOgEIgBB/wFHBEAgBUEJaiACQQFyQccA/AoAACAFQgE3AwAgBSAAOgAIDAELIAQgCikADTcApQIgBCAKKQAINwOgAiAEIAopAAA3A5gCIAQgBkEwaiIMKQMYNwOABSAEIAwpAxA3A/gEIAQgDCkDCDcD8AQgBCAMKQMANwPoBCAEIAQoAjA2AtADIAQgBCkDKDcDyAMgBCAEKQMgNwPAAyALIARBwANqIARBmAJqIAYgECARIARB6ARqENALIRMgEyAGKQNgIhBWBEAgBSAQNwMYIAUgEzcDECAFQQc6AAggBUIBNwMADAELIARB6ARqIgEgCyAQIBQgExDPCyAELQDoBCIAQf8BRwRAIAVBCWogAUEBckHHAPwKAAAgBUIBNwMAIAUgADoACAwBCyAEQgA3A9AGIARCADcD2AYgBEIANwPgBiAEQgA3A+gGIARCADcD8AQgBEIANwP4BCAEQgA3A4AFIAQgBikDYDcD6AQgBEHQBmohAkEDIQEDQCAJQQRHBEAgBEE4aiAJQQN0aiEPQgAhECAEQegEaiEOIAEhACACIQMDQCAABEAgBEEQaiAPKQMAQgAgDikDABCVEiADIAQpAxAiESAQfCISIAMpAwB8IhA3AwAgECASVK0gBCkDGCARIBJWrXx8IRAgAEEBayEAIA5BCGohDiADQQhqIQMMAQsLIAQgBCkD6AYgEHwgDykDAEEAIAlrQQN0IARqQYAFaikDAH58NwPoBiACQQhqIQIgAUEBayEBIAlBAWohCQwBCwsgBikDWCEQIARBuAFqIARB0AZqIAwQxgECQCAELQDYAUUEQCAEIAQpA9ABNwOwASAEIAQpA8gBNwOoASAEIAQpA8ABNwOgASAEIAQpA7gBNwOYAQwBCyAEQn83A7ABIARCfzcDqAEgBEJ/NwOgASAEQn83A5gBCyAEIAQoAjA2AsgBIAQgBCkDKDcDwAEgBCAEKQMgNwO4ASAEQegEaiAHIARBuAFqIBAgBEGYAWoQswEgBEHwBGohASAEKQPoBEIBUQRAIARBmAJqIgAgAUHIAPwKAAAgBUEIaiAAQcgA/AoAACAFQgE3AwAMAQsgBEGYAmoiACABQdAA/AoAACAEQcADaiAAQdAA/AoAACAEQYgEahBxIAQgCikADTcA9QQgBCAKKQAINwPwBCAEIAopAAA3A+gEIAcgBEEgaiAEQegEahDBASAHIA0QuQEgBEIANwOgAiAEQgA3A6gCIARCADcDsAIgBCAGKQNgNwOYAiAEQgA3A7AGIARCADcDuAYgBEIANwPABiAEQgA3A8gGIAQgBCkDkAE3A4AFIAQgBCkDiAE3A/gEIAQgBCkDgAE3A/AEIAQgBCkDeDcD6ARBACEJIARBsAZqIQJBAyEBA0AgCUEERwRAIARB6ARqIAlBA3RqIQ1CACEQIARBmAJqIQ4gASEAIAIhAwNAIAAEQCAEIA0pAwBCACAOKQMAEJUSIAMgBCkDACIRIBB8IhIgAykDAHwiEDcDACAQIBJUrSAEKQMIIBEgElatfHwhECAAQQFrIQAgDkEIaiEOIANBCGohAwwBCwsgBCAEKQPIBiAQfCANKQMAQQAgCWtBA3QgBGpBsAJqKQMAfnw3A8gGIAJBCGohAiABQQFrIQEgCUEBaiEJDAELCyAEQegEaiAHQdgCaiAEQSBqQQAQ3gogBCkD6AQiEEJ+UQRAIAcgBCgC8AQiADYC9AcgBSAANgIMIAVBADoACCAFQgE3AwAMAQsgBCAELwDxBDsAoQIgBCAELQDzBDoAowIgBC0A8AQhAiAEKAL0BCEBIARBwANqIgAgBEH4BGpBiAH8CgAAIARBqAJqIABBwAD8CgAAIARB6AJqIARBgARqQcgA/AoAACAEIAE2AqQCIAQgAjoAoAIgBCAQNwOYAiAEQZgCaiIAEMcBIAAQkQEgBCAEKAIwNgKoAiAEIAQpAyg3A6ACIAQgBCkDIDcDmAIgBEHoBGoiASAHIAAgBEGwBmoQyAEgBC0A6AQiAEH/AUcEQCAFQQlqIAFBAXJBxwD8CgAAIAVCATcDACAFIAA6AAgMAQsgBEHoBGoiACALIAYpA2AgFBDNCyAEKQPwBCESIAQpA+gEIREgBEIANwPgASAEQgA3A+gBIARCADcD8AEgBCAEKQMgNwP4ASAEIAQpAyg3A4ACIAQgBCgCMDYCiAIgBCAEKQN4NwO4ASAEIAQpA4ABNwPAASAEIAQpA4gBNwPIASAEIAQpA5ABNwPQASAHKQOwByEQIARBADYClAIgBEKAgICAgAE3AowCIAQgEDcD2AEgBikDWCEQIAQgCikADTcApQEgBCAKKQAINwOgASAEIAopAAA3A5gBIAQgDCkDGDcDsAIgBCAMKQMQNwOoAiAEIAwpAwg3A6ACIAQgDCkDADcDmAIgBCAEKAIwNgKoBiAEIAQpAyg3A6AGIAQgBCkDIDcDmAYgACAHIARBmAZqIBAgBEGYAWogBiAEQZgCaiARIBIQsAEgAEEEciENIARBjAJqIAQoAugEIQMCQCAELQCQBiIBQQJGBEAgBEHAA2oiACANQcQA/AoAACAFQQxqIABBxAD8CgAAIAVCATcDACAFIAM2AggMAQsgBEHAA2ogDUGkAfwKAAAgBCAEKACUBjYAvAMgBCAEKACRBjYAuQMgBEGYAmoiACAEQcQDakGgAfwKAAAgBCABOgC4AyAEQagFaiAHIARBuAFqIAMgABDJASAEQgA3A5gFIAQgEzcDkAUgBEIANwOgBSAEIAQpAyA3A4AGIAQgBCkDKDcDiAYgBCAEKAIwNgKQBiAEIAQpA3g3A+gEIAQgBCkDgAE3A/AEIAQgBCkDiAE3A/gEIAQgBCkDkAE3A4AFIAQgBikDYDcDiAUgBSAHIARB6ARqEMABIARB2AJqEHMLEKsQCyAEQfAGaiQACyAIQdAAaiQAC40XAgx/B34jAEHQAGsiByQAIAIoArABIQkgByABLQAAOgAJIAdBAzoACAJAIAlBA0cEQCAAIAdBCGpBAXIiAS0AAjoACyAAIAEvAAA7AAkgAEIBNwMAIABBAzoACAwBCyAHQQhqIgEQjgEgByADNgIkIAcgAjYCDCAHIAI2AgggByACKALwATYCICAHIAIpAugBNwIYIAcgAikC4AE3AhAjAEGABmsiBCQAIAQgASgAGDYCKCAEIAEpABA3AyAgBCABKQAINwMYIAEoAgQiBSkDECEUAkAgBSkDGCIRUARAIARCADcDmAQgBEIANwOQBAwBCyAEQgA3A5gEIARCADcDkAQgESESCyAEIAQpA5gENwM4IAQgBCkDkAQ3AzAgBCABKAIcIgYpA4ABNwOAAyAEIAYpA3g3A/gCIAQgBikDcDcD8AIgBCAGKQNoNwPoAiAEIBI3A8gBIAQgFDcDwAEgBCAEKQMwNwPQASAEIAQpAzg3A9gBIARBkARqIgIgBkHABWoiCiAEQcABaiAEQegCahDHCwJAIAQtAJAEIgNB/wFHBEAgAEEJaiACQQFyQccA/AoAACAAQgE3AwAgACADOgAIDAELIARBkARqIgIgCkIBIAUpA0BBABDFCyAELQCQBCIDQf8BRwRAIABBCWogAkEBckHHAPwKAAAgAEIBNwMAIAAgAzoACAwBCyAEQZAEaiICIAogBSkDUBDOCyAELQCQBCIDQf8BRwRAIABBCWogAkEBckHHAPwKAAAgAEIBNwMAIAAgAzoACAwBCyAFKQNQIREgBCAGKQNgNwPYASAEIAYpA1g3A9ABIAQgBikDUDcDyAEgBCAGKQNINwPAASAEQZAEaiICIAogESAEQcABahDLCyAELQCQBCIDQf8BRwRAIABBCWogAkEBckHHAPwKAAAgAEIBNwMAIAAgAzoACAwBCyAEIAUpAHE3AM0BIAQgBSkAbDcDyAEgBCAFKQBkNwPAASAEQZAEaiICIAogBEHAAWogBRDMCyAELQCQBCIDQf8BRwRAIABBCWogAkEBckHHAPwKAAAgAEIBNwMAIAAgAzoACAwBCyAFKQNIQn9RBEAgAEIBNwMAIABBCjoACAwBCyAEQZAEaiICIAVB2ABqIg8QxgsgBCkDmAQhESAEKQOQBCEQIAQgBUHkAGoiCCkADTcAzQEgBCAIKQAINwPIASAEIAgpAAA3A8ABIAQgBSkDODcDqAQgBCAFKQMwNwOgBCAEIAUpAyg3A5gEIAQgBSkDIDcDkAQgBCABQQhqIgEoABA2AvgCIAQgASkACDcD8AIgBCABKQAANwPoAiAKIARB6AJqIARBwAFqIAUgECARIAIQwwshEyACIAUpA1AgExDKCyAELQCQBCIDQf8BRwRAIABBCWogAkEBckHHAPwKAAAgAEIBNwMAIAAgAzoACAwBCyAEIAgpAA03AM0BIAQgCCkACDcDyAEgBCAIKQAANwPAASAEIAVBIGoiCykDGDcDqAQgBCALKQMQNwOgBCAEIAspAwg3A5gEIAQgCykDADcDkAQgBCABKAAQNgL4AiAEIAEpAAg3A/ACIAQgASkAADcD6AIgCiAEQegCaiAEQcABaiAFIBAgESAEQZAEahDQCyERIBEgBSkDUCIQVgRAIAAgEDcDGCAAIBE3AxAgAEEHOgAIIABCATcDAAwBCyAEQZAEaiIBIAogECATIBEQzwsgBC0AkAQiAkH/AUcEQCAAQQlqIAFBAXJBxwD8CgAAIABCATcDACAAIAI6AAgMAQsgBEIANwPIASAEQgA3A9ABIARCADcD2AEgBCAFKQNQNwPAASAEQgA3A+AFIARCADcD6AUgBEIANwPwBSAEQgA3A/gFIAQgEjcDmAQgBCAUNwOQBCAEIAQpAzA3A6AEIAQgBCkDODcDqAQgBEHgBWohAkEDIQMDQCAMQQRHBEAgBEGQBGogDEEDdGohDkIAIRAgBEHAAWohDSADIQkgAiEBA0AgCQRAIAQgDikDAEIAIA0pAwAQlRIgASAEKQMAIhUgEHwiECABKQMAfCIWNwMAIBAgFlatIAQpAwggECAVVK18fCEQIAlBAWshCSANQQhqIQ0gAUEIaiEBDAELCyAEIAQpA/gFIBB8IA4pAwBBACAMa0EDdCAEakHYAWopAwB+fDcD+AUgAkEIaiECIANBAWshAyAMQQFqIQwMAQsLIAUpA0ghECAEIAQpA/gFNwPYBSAEIAQpA/AFNwPQBSAEIAQpA+gFNwPIBSAEIAQpA+AFNwPABSAEQeAAaiAEQcAFaiALEMYBAkAgBC0AgAFFBEAgBCAEKQN4NwNYIAQgBCkDcDcDUCAEIAQpA2g3A0ggBCAEKQNgNwNADAELIARCfzcDWCAEQn83A1AgBEJ/NwNIIARCfzcDQAsgBCAEKAIoNgJwIAQgBCkDIDcDaCAEIAQpAxg3A2AgBEGQBGogBiAEQeAAaiAQIARBQGsQswEgBEGYBGohASAEKQOQBEIBUQRAIARBwAFqIgIgAUHIAPwKAAAgAEEIaiACQcgA/AoAACAAQgE3AwAMAQsgBEHAAWoiAiABQdAA/AoAACAEQegCaiACQdAA/AoAACAEQbADahBxIAQgCCkADTcAnQQgBCAIKQAINwOYBCAEIAgpAAA3A5AEIAYgBEEYaiIBIARBkARqIgIQwQEgBiAPELkBIAIgBkHYAmogAUEAEN4KIAQpA5AEIhBCflEEQCAGIAQoApgEIgE2AvQHIAAgATYCDCAAQQA6AAggAEIBNwMADAELIAQgBC8AmQQ7AMkBIAQgBC0AmwQ6AMsBIAQtAJgEIQEgBCgCnAQhAiAEQegCaiIDIARBoARqQYgB/AoAACAEQdABaiADQcAA/AoAACAEQZACaiAEQagDakHIAPwKAAAgBCACNgLMASAEIAE6AMgBIAQgEDcDwAEgBEHAAWoiARDHASABEJEBIAQgBCgCKDYC0AEgBCAEKQMgNwPIASAEIAQpAxg3A8ABIARBkARqIgIgBiABIARB4AVqEMgBIAQtAJAEIgFB/wFHBEAgAEEJaiACQQFyQccA/AoAACAAQgE3AwAgACABOgAIDAELIARBkARqIgEgCiAFKQNQIBMQzQsgBCkDmAQhEyAEKQOQBCEQIARCADcDiAEgBEIANwOQASAEQgA3A5gBIAQgBCkDGDcDoAEgBCAEKQMgNwOoASAEIAQoAig2ArABIAQgEjcDaCAEIBQ3A2AgBCAEKQMwNwNwIAQgBCkDODcDeCAEQQA2ArwBIARCgICAgIABNwK0ASAEIAYpA7AHNwOAASAFKQNIIRUgBCAIKQANNwDNBSAEIAgpAAg3A8gFIAQgCCkAADcDwAUgBCALKQMYNwPYASAEIAspAxA3A9ABIAQgCykDCDcDyAEgBCALKQMANwPAASAEIAQoAig2AlAgBCAEKQMgNwNIIAQgBCkDGDcDQCABIAYgBEFAayAVIARBwAVqIAUgBEHAAWogECATELABIAFBBHIhASAEQbQBaiAEKAKQBCECAkAgBC0AuAUiCUECRgRAIARB6AJqIgkgAUHEAPwKAAAgAEEMaiAJQcQA/AoAACAAQgE3AwAgACACNgIIDAELIARB6AJqIAFBpAH8CgAAIAQgBCgAvAU2AOQCIAQgBCgAuQU2AOECIARBwAFqIgEgBEHsAmpBoAH8CgAAIAQgCToA4AIgBEHQBGogBiAEQeAAaiACIAEQyQEgBCASNwOYBCAEIBQ3A5AEIARCADcDwAQgBCARNwO4BCAEQgA3A8gEIAQgBCkDGDcDqAUgBCAEKQMgNwOwBSAEIAQoAig2ArgFIAQgBCkDMDcDoAQgBCAEKQM4NwOoBCAEIAUpA1A3A7AEIAAgBiAEQZAEahDAASAEQYACahBzCxCrEAsgBEGABmokAAsgB0HQAGokAAvYLAIOfwZ+IwBB0ABrIg0kACACKAKwASEFIA1BAzoACCANIAEtAAA6AAkCQCAFQQJOBEAgACANQQhqQQFyIgEtAAI6AAsgACABLwAAOwAJIABCATcDACAAQQM6AAgMAQsgDUEIaiIBEI4BIA0gAzYCJCANIAI2AgwgDSACNgIIIA0gAigC8AE2AiAgDSACKQLoATcCGCANIAIpAuABNwIQIAAhBSMAQbAIayIEJAAgBCABKAAYNgJoIAQgASkAEDcDYCAEIAEpAAg3A1ggASgCBCIGKQMgIRMCQCAGKQMoIhRQBEAgBEIANwOIBiAEQgA3A4AGDAELIARCADcDiAYgBEIANwOABiAUIRILIAQgEjcDeCAEIBM3A3AgBCAEKQOABjcDgAEgBCAEKQOIBjcDiAFCACESIAYpAzAhEwJAIAYpAzgiFFAEQCAEQgA3A4gGIARCADcDgAYMAQsgBEIANwOIBiAEQgA3A4AGIBQhEgsgBCASNwOYASAEIBM3A5ABIAQgBCkDgAY3A6ABIAQgBCkDiAY3A6gBIAQgASgCHCIIKQNoNwPYBCAEIAgpA3A3A+AEIAQgCCkDeDcD6AQgBCAIKQOAATcD8AQgBCAEKQOIATcDyAMgBCAEKQOAATcDwAMgBCAEKQN4NwO4AyAEIAQpA3A3A7ADIAQgBCkDqAE3A5gGIAQgBCkDoAE3A5AGIAQgBCkDmAE3A4gGIAQgBCkDkAE3A4AGIARBsAFqIARBsANqIARBgAZqIARB2ARqEMgLQgAhEiAGKQNAIRMCQCAGKQNIIhRQBEAgBEIANwOIBiAEQgA3A4AGDAELIARCADcDiAYgBEIANwOABiAUIRILIAQgEjcD2AEgBCATNwPQASAEIAQpA4AGNwPgASAEIAQpA4gGNwPoASAEIAQpA4gBNwPIAyAEIAQpA4ABNwPAAyAEIAQpA3g3A7gDIAQgBCkDcDcDsAMgBEGABmoiASAIQcAFaiILIARBsANqIARBkAFqEMkLAkAgBC0AgAYiAEH/AUcEQCAFQQlqIAFBAXJBxwD8CgAAIAVCATcDACAFIAA6AAgMAQsgBCAIQegAaiIAKQMYNwPwBCAEIAApAxA3A+gEIAQgACkDCDcD4AQgBCAAKQMANwPYBCAEIAQpA8gBNwPIAyAEIAQpA8ABNwPAAyAEIAQpA7gBNwO4AyAEIAQpA7ABNwOwAyAEQYAGaiIBIAsgBEGwA2ogBEHYBGoQxwsgBC0AgAYiAEH/AUcEQCAFQQlqIAFBAXJBxwD8CgAAIAVCATcDACAFIAA6AAgMAQsgBEGABmoiASALQgEgBikDYEEAEMULIAQtAIAGIgBB/wFHBEAgBUEJaiABQQFyQccA/AoAACAFQgE3AwAgBSAAOgAIDAELIAQgCCkD4AE3A/AEIAQgCCkD2AE3A+gEIAQgCCkD0AE3A+AEIAQgCCkDyAE3A9gEIAQgBCkD6AE3A8gDIAQgBCkD4AE3A8ADIAQgBCkD2AE3A7gDIAQgBCkD0AE3A7ADIwBBMGsiAyQAIARBgAZqIgIgBEGwA2oiASAEQdgEaiIAELEJBH8gAyABKQAYNwAoIAMgASkAEDcAICADIAEpAAg3ABggAyABKQAANwAQIAJBAWogA0EJakEn/AoAACACIAApAxg3A0AgAiAAKQMQNwM4IAIgACkDCDcDMCACIAApAwA3AyhBEgVB/wELOgAAIANBMGokACAELQCABiIAQf8BRwRAIAVBCWogAkEBckHHAPwKAAAgBUIBNwMAIAUgADoACAwBCyAEQYAGaiEDIAYoApwBIQIgCCgC2AchAAJAIAYoAqABIgEEQAJAIAAgAU8EQCABQQV0IQEDQCABRQ0CIAFBIGshASACLQAAIAJBIGohAkEBRg0ACyADQRU6AAAMAwsgAyAANgIIIAMgATYCBCADQRQ6AAAMAgsgA0H/AToAAAwBCyADQRM6AAALIAQtAIAGIgBB/wFHBEAgBUEJaiADQQFyQccA/AoAACAFQgE3AwAgBSAAOgAIDAELIARBgAZqIgEgCyAGKQNwEM4LIAQtAIAGIgBB/wFHBEAgBUEJaiABQQFyQccA/AoAACAFQgE3AwAgBSAAOgAIDAELIAYpA3AhEiAEIAgpA2A3A8gDIAQgCCkDWDcDwAMgBCAIKQNQNwO4AyAEIAgpA0g3A7ADIARBgAZqIgEgCyASIARBsANqEMsLIAQtAIAGIgBB/wFHBEAgBUEJaiABQQFyQccA/AoAACAFQgE3AwAgBSAAOgAIDAELIARBAToAsAMgBCAGKACIATYAwQMgBCAGKQCAATcAuQMgBCAGKQB4NwCxAyAEQYAGaiIBIAsgBEGwA2ogBkHQAGoiERDMCyAELQCABiIAQf8BRwRAIAVBCWogAUEBckHHAPwKAAAgBUIBNwMAIAUgADoACAwBCyAGKQNoQn9RBEAgBUIBNwMAIAVBCjoACAwBCyAEQYAGaiIBIAZBjAFqIgwQxgsgBCkDiAYhFCAEKQOABiESIARBAToAsAMgBCAGQfgAaiIOKAAQNgDBAyAEIA4pAAg3ALkDIAQgDikAADcAsQMgBCAGKQMYNwOYBiAEIAYpAxA3A5AGIAQgBikDCDcDiAYgBCAGKQMANwOABiAEIAQoAmg2AugEIAQgBCkDYDcD4AQgBCAEKQNYNwPYBCALIARB2ARqIARBsANqIBEgEiAUIAEQwwshFiABIAYpA3AgFhDKCyAELQCABiIAQf8BRwRAIAVBCWogAUEBckHHAPwKAAAgBUIBNwMAIAUgADoACAwBCyAEQQE6ALADIAQgDigAEDYAwQMgBCAOKQAINwC5AyAEIA4pAAA3ALEDIAQgBikDGDcDmAYgBCAGKQMQNwOQBiAEIAYpAwg3A4gGIAQgBikDADcDgAYgBCAEKAJoNgLoBCAEIAQpA2A3A+AEIAQgBCkDWDcD2AQgCyAEQdgEaiAEQbADaiARIBIgFCAEQYAGahDQCyEVIBUgBikDcCISVgRAIAUgEjcDGCAFIBU3AxAgBUEHOgAIIAVCATcDAAwBCyAEQYAGaiIBIAsgEiAWIBUQzwsgBC0AgAYiAEH/AUcEQCAFQQlqIAFBAXJBxwD8CgAAIAVCATcDACAFIAA6AAgMAQsgBEIANwPwBCAEQgA3A+gEIARCADcD4AQgBEKAgAg3A9gEIARCADcDuAMgBEIANwPAAyAEQgA3A8gDIAQgBjUCoAE3A7ADIARCADcDmAYgBEIANwOQBiAEQgA3A4gGIARCADcDgAYgBEGABmohAkEDIQEDQCAHQQRHBEAgBEGwA2ogB0EDdGohCkIAIRIgBEHYBGohCSABIQAgAiEDA0AgAARAIARBQGsgCikDAEIAIAkpAwAQlRIgAyAEKQNAIhQgEnwiEyADKQMAfCISNwMAIBIgE1StIAQpA0ggEyAUVK18fCESIABBAWshACAJQQhqIQkgA0EIaiEDDAELCyAEIAQpA5gGIBJ8IAopAwBBACAHa0EDdCAEakHwBGopAwB+fDcDmAYgAkEIaiECIAFBAWshASAHQQFqIQcMAQsLIAQgBCkDmAYiFzcDiAIgBCAEKQOQBiITNwOAAiAEIAQpA4gGIhQ3A/gBIAQgBCkDgAYiEjcD8AEgBEIANwOoCCAEQgA3A6AIIARCADcDmAggBEIANwOQCCAEIBc3A5gGIAQgEzcDkAYgBCAUNwOIBiAEIBI3A4AGQQAhByAEQZAIaiECQQMhAQNAIAdBBEcEQCAEQdABaiAHQQN0aiEKQgAhEiAEQYAGaiEJIAEhACACIQMDQCAABEAgBEEwaiAKKQMAQgAgCSkDABCVEiADIAQpAzAiFCASfCITIAMpAwB8IhI3AwAgEiATVK0gBCkDOCATIBRUrXx8IRIgAEEBayEAIAlBCGohCSADQQhqIQMMAQsLIAQgBCkDqAggEnwgCikDAEEAIAdrQQN0IARqQZgGaikDAH58NwOoCCACQQhqIQIgAUEBayEBIAdBAWohBwwBCwsgBEIANwPwByAEQgA3A/gHIARCADcDgAggBEIANwOICCAEQgA3A4gGIARCADcDkAYgBEIANwOYBiAEIAYpA3A3A4AGQQAhByAEQfAHaiECQQMhAQNAIAdBBEcEQCAEQfAAaiAHQQN0aiEKQgAhEiAEQYAGaiEJIAEhACACIQMDQCAABEAgBEEgaiAKKQMAQgAgCSkDABCVEiADIAQpAyAiFCASfCITIAMpAwB8IhI3AwAgEiATVK0gBCkDKCATIBRUrXx8IRIgAEEBayEAIAlBCGohCSADQQhqIQMMAQsLIAQgBCkDiAggEnwgCikDAEEAIAdrQQN0IARqQZgGaikDAH58NwOICCACQQhqIQIgAUEBayEBIAdBAWohBwwBCwsgBikDaCESIARB0AJqIARB8AdqIARBkAhqEMYBAkAgBC0A8AJFBEAgBCAEKQPoAjcDyAIgBCAEKQPgAjcDwAIgBCAEKQPYAjcDuAIgBCAEKQPQAjcDsAIMAQsgBEJ/NwPIAiAEQn83A8ACIARCfzcDuAIgBEJ/NwOwAgsgBEHQAmogBEGwAmogBhDGAQJAIAQtAPACRQRAIAQgBCkD6AI3A6gCIAQgBCkD4AI3A6ACIAQgBCkD2AI3A5gCIAQgBCkD0AI3A5ACDAELIARCfzcDqAIgBEJ/NwOgAiAEQn83A5gCIARCfzcDkAILIAQgBCgCaDYC4AIgBCAEKQNgNwPYAiAEIAQpA1g3A9ACIARBgAZqIAggBEHQAmogEiAEQZACahCzASAEQYgGaiEBIAQpA4AGQgFRBEAgBEGwA2oiACABQcgA/AoAACAFQQhqIABByAD8CgAAIAVCATcDAAwBCyAIQcgBaiEKIARBsANqIgAgAUHQAPwKAAAgBEHYBGogAEHQAPwKAAAgBEGgBWoQcSAEQQE6AIAGIAQgDigAEDYAkQYgBCAOKQAINwCJBiAEIA4pAAA3AIEGIAggBEHYAGogBEGABmoQwQEgCCAMELkBIARCADcDuAMgBEIANwPAAyAEQgA3A8gDIAQgBikDcDcDsAMgBEIANwPQByAEQgA3A9gHIARCADcD4AcgBEIANwPoByAEIAQpA8gBNwOYBiAEIAQpA8ABNwOQBiAEIAQpA7gBNwOIBiAEIAQpA7ABNwOABkEAIQcgBEHQB2ohAkEDIQEDQCAHQQRHBEAgBEGABmogB0EDdGohDEIAIRIgBEGwA2ohCSABIQAgAiEDA0AgAARAIARBEGogDCkDAEIAIAkpAwAQlRIgAyAEKQMQIhQgEnwiEyADKQMAfCISNwMAIBIgE1StIAQpAxggEyAUVK18fCESIABBAWshACAJQQhqIQkgA0EIaiEDDAELCyAEIAQpA+gHIBJ8IAwpAwBBACAHa0EDdCAEakHIA2opAwB+fDcD6AcgAkEIaiECIAFBAWshASAHQQFqIQcMAQsLIARCADcDsAcgBEIANwO4ByAEQgA3A8AHIARCADcDyAcgBCAKKQMYNwOYBiAEIAopAxA3A5AGIAQgCikDCDcDiAYgBCAKKQMANwOABkEAIQcgBEGwB2ohAkEDIQEDQCAHQQRHBEAgBEGABmogB0EDdGohDEIAIRIgBEHwAWohCSABIQAgAiEDA0AgAARAIAQgDCkDAEIAIAkpAwAQlRIgAyAEKQMAIhQgEnwiEyADKQMAfCISNwMAIBIgE1StIAQpAwggEyAUVK18fCESIABBAWshACAJQQhqIQkgA0EIaiEDDAELCyAEIAQpA8gHIBJ8IAwpAwBBACAHa0EDdCAEakGIAmopAwB+fDcDyAcgAkEIaiECIAFBAWshASAHQQFqIQcMAQsLIARBgAZqIAhB2AJqIARB2ABqQQAQ3gogBCkDgAYiEkJ+UQRAIAggBCgCiAYiADYC9AcgBSAANgIMIAVBADoACCAFQgE3AwAMAQsgBCAELwCJBjsAuQMgBCAELQCLBjoAuwMgBC0AiAYhASAEKAKMBiEAIARB2ARqIgIgBEGQBmpBiAH8CgAAIARBwANqIAJBwAD8CgAAIARBgARqIARBmAVqQcgA/AoAACAEIAA2ArwDIAQgAToAuAMgBCASNwOwAyAEQbADaiIAEMcBIAAQkQEgACAEQdAHaiAEQbAHahDGASAEIAQpA8gDNwPwBCAEIAQpA8ADNwPoBCAEIAQpA7gDNwPgBCAEIAQpA7ADNwPYBCAEIAQoAmg2AsADIAQgBCkDYDcDuAMgBCAEKQNYNwOwAyAEQYAGaiIBIAggACACEMgBIAQtAIAGIgBB/wFHBEAgBUEJaiABQQFyQccA/AoAACAFQgE3AwAgBSAAOgAIDAELIARBgAZqIgogCyAGKQNwIBYQzQsgBCkDiAYhFyAEKQOABiETIARCADcD+AIgBEIANwOAAyAEQgA3A4gDIAgpA7AHIRQgBigCnAEiAyAGKAKgAUEFdGohDCMAQSBrIg8kACAPQQhqIAwgA2tBBXYiAkEIQSAQ8QUgD0EANgIcIA8gDykDCDcCFCMAQRBrIgkkACAPQRRqIgAgAhC0CCAAKQIEIRIgCSAAQQhqNgIEIAkgEkIgiTcCCCMAQSBrIhAkACAJQQRqIgEoAgQhCyABKAIAIAMgDEcEQCABKAIIIAtBBXRqIQcgAiALaiELA0AgECADEN8FIAcgECkDGDcDGCAHIBApAxA3AxAgByAQKQMINwMIIAcgECkDADcDACAHQSBqIQcgA0EgaiEDIAJBAWsiAg0ACwsgCzYCACAQQSBqJAAgCUEQaiQAIARBpANqIgwgDygCHDYCCCAMIA8pAhQ3AgAgD0EgaiQAIAQgFDcD8AIgBCAEKAJoNgKgAyAEIAQpA2A3A5gDIAQgBCkDWDcDkAMgBCAEKQOwATcD0AIgBCAEKQO4ATcD2AIgBCAEKQPAATcD4AIgBCAEKQPIATcD6AIgBikDaCESIARBAToAsAIgBCAOKAAQNgDBAiAEIA4pAAg3ALkCIAQgDikAADcAsQIgBCAGKQMYNwPIAyAEIAYpAxA3A8ADIAQgBikDCDcDuAMgBCAGKQMANwOwAyAEIAQoAmg2AqACIAQgBCkDYDcDmAIgBCAEKQNYNwOQAiAKIAggBEGQAmogEiAEQbACaiARIARBsANqIBMgFxCwASAKQQRyIQMgBCgCgAYhAgJAIAQtAKgHIgFBAkYEQCAEQdgEaiIAIANBxAD8CgAAIAVBDGogAEHEAPwKAAAgBUIBNwMAIAUgAjYCCAwBCyAEQdgEaiADQaQB/AoAACAEIAQoAKwHNgDUBCAEIAQoAKkHNgDRBCAEQbADaiIAIARB3ARqQaAB/AoAACAEIAE6ANAEIARBwAZqIAggBEHQAmogAiAAEMkBIARCADcDsAYgBCAVNwOoBiAEQgA3A7gGIAQgBCkDWDcDmAcgBCAEKQNgNwOgByAEIAQoAmg2AqgHIAQgBCkDsAE3A4AGIAQgBCkDuAE3A4gGIAQgBCkDwAE3A5AGIAQgBCkDyAE3A5gGIAQgBikDcDcDoAYgBSAIIARBgAZqEMABIARB8ANqEHMLIAwQqxALIARBsAhqJAALIA1B0ABqJAALMAECfwNAIAJBIEcEQCAAIAJqIgMgAykDACABIAJqKQMAgzcDACACQQhqIQIMAQsLCzABAn8DQCACQSBHBEAgACACaiIDIAMpAwAgASACaikDAIQ3AwAgAkEIaiECDAELCwufAgEBfyMAQRBrIgIkAAJ/AkACQAJAAkACQAJAIAAtAABBAWsOBQECAwQFAAsgAiAAQQFqNgIMIAFBrIPDAEEHIAJBDGpBnIPDABDxEQwFCyABQbODwwBBBxD1EQwECyACIABBCGo2AgwgAUHMg8MAQQkgAkEMakG8g8MAEPERDAMLIAIgAEEBajYCDCABQeiDwwBBBCACQQxqQdiDwwAQ8REMAgsgAiAAQQhqNgIMIAFBjITDAEEMQZiEwwBBBiAAQQRqQeyDwwBBnoTDAEEDIAJBDGpB/IPDABDzEQwBCyACIABBGGo2AgwgAUG0hMMAQQdBu4TDAEEHIABBAWpBpITDAEHChMMAQQMgAkEMakG8g8MAEPMRCyACQRBqJAALUwECfwNAIAJBIEZFBEAgASACaiIDIAMpAwBCf4U3AwAgAkEIaiECDAELCyAAIAEpAxg3AxggACABKQMQNwMQIAAgASkDCDcDCCAAIAEpAwA3AwALUQICfwJ+IwBBIGsiAiQAQQEhAwJAIAEoAgAiAUEASA0AIAIgABDrASACKQMAQgFRDQAgAikDCCIEIAGtIgVWIAQgBVRrIQMLIAJBIGokACADCw4AIAFBvIXDAEEFEPURC/ABAQZ/IAAoAgghBSAAAn9BASABQYABSSIDDQAaQQIgAUGAEEkNABpBA0EEIAFBgIAESRsLIgcQtQsgACgCBCAFaiECAkAgA0UEQCABQT9xQYB/ciEDIAFBBnYhBCABQYAQSQRAIAIgAzoAASACIARBwAFyOgAADAILIAFBDHYhBiAEQT9xQYB/ciEEIAFB//8DTQRAIAIgAzoAAiACIAQ6AAEgAiAGQeABcjoAAAwCCyACIAM6AAMgAiAEOgACIAIgBkE/cUGAf3I6AAEgAiABQRJ2QXByOgAADAELIAIgAToAAAsgACAFIAdqNgIIQQALPgEBfyAAIAIQtQsgACgCCCEDIAAgAgR/IAIEQCAAKAIEIANqIAEgAvwKAAALIAAoAggFIAMLIAJqNgIIQQALOAEBfyABKAIIIgJBgICAEHFFBEAgAkGAgIAgcUUEQCAAIAEQ9hEPCyAAIAEQjBIPCyAAIAEQ/xEL0gMCBn8BfiMAQTBrIgUkACABIAEoAgQgASgCABsiAygCACICKQMAIQggAygCBCEEIAMoAgwhAyAFIAE2AiggBSADNgIgIAUgAjYCGCAFIAIgBGpBAWo2AhQgBSACQQhqNgIQIAUgCEJ/hUKAgYKEiJCgwIB/gzcDCCMAQeAAayICJAAgAkEYaiAFQQhqIgMQZQJAIAIoAixBfkcEQCACQQRBBEEgEPEFIAIoAgAhBCACKAIEIgEgAikCGDcCACABIAIpAjA3AhggASACKQIoNwIQIAEgAikCIDcCCCACQQE2AhQgAiABNgIQIAIgBDYCDCACQThqIgEgA0Eo/AoAACACQQxqIQMjAEEgayIEJAADQAJAIAQgARBlIAQoAhRBfkYNACADKAIIIgcgAygCAEYEQCADKAIIIgYgAygCAEYEQCADIAZBAUEEQSAQkw0LCyADKAIEIAdBBXRqIgYgBCkCGDcCGCAGIAQpAhA3AhAgBiAEKQIINwIIIAYgBCkCADcCACADIAdBAWo2AggMAQsLIARBIGokACAAIAIoAhQ2AgggACACKQIMNwIADAELIABBADYCCCAAQoCAgIDAADcCAAsgAkHgAGokACAFQTBqJAALNgAgASABKAIEIAEoAgAbIANBiAFqEOcGIgFFBEAgAEF+NgIADwsgACACIAMgBCABKAIMEQcACy4AIAAgACgCBCAAKAIAGyIAKAIMRQRAQQAPCyAAIABBEGogARD+ByABEDxBAEcL4QMCB38BfiMAQSBrIgMkACABIAEoAgQgASgCABsiAigCACIBKQMAIQkgAigCBCEEIAMgAigCDDYCGCADIAE2AhAgAyABIARqQQFqNgIMIAMgAUEIajYCCCADIAlCf4VCgIGChIiQoMCAf4M3AwAjAEFAaiIBJAAgAUEgaiIHIAMQYwJAIAEtACBBAUYEQCABQQhqQQQgAygCGEEBaiICQX8gAhsiAiACQQRNG0EBQRQQ8QUgASgCCCEEIAEoAgwiAiABKQAhNwAAIAIgASgAMTYAECACIAEpACk3AAggAUEBNgIcIAEgAjYCGCABIAQ2AhQgASADKQMYNwM4IAEgAykDEDcDMCABIAMpAwg3AyggASADKQMANwMgIAFBFGohAiMAQSBrIgQkACAEQQxqIQYDQAJAIARBC2ogBxBjIAQtAAtBAUcNACACKAIIIgggAigCAEYEQCACIAcoAhhBAWoiBUF/IAUbELwICyACKAIEIAhBFGxqIgUgBigAEDYAECAFIAYpAAg3AAggBSAGKQAANwAAIAIgCEEBajYCCAwBCwsgBEEgaiQAIAAgASgCHDYCCCAAIAEpAhQ3AgAMAQsgAEEANgIIIABCgICAgBA3AgALIAFBQGskACADQSBqJAALmwwCCH8HfiMAQcADayIFJAAjAEGQBGsiBCQAIARBwAJqIAEQyAYgBC0AyAIhAiAEKALEAiEHAkAgBCgCwAIiA0F/RwRAIAUgBC0AywI6AAsgBSAELwDJAjsACSAFQX82AmggBSACOgAIIAUgBzYCBCAFIAM2AgAMAQsgAkEBcUUEQCAFQX82AmggBUEGNgIADAELIAEoAgQhCCAEQcACaiEDIwBBoAFrIgIkACACQUBrIAEQ5Q8CQCACKAJAQQFGBEAgAigCRCEGIAIpA0ghCiADQX82AmggAyAKNwIEIAMgBjYCAAwBCyACKQNIIQogAkFAayABEOUPIAIoAkBBAUYEQCACKAJEIQYgAikDSCEKIANBfzYCaCADIAo3AgQgAyAGNgIADAELIAIpA0ghCyACQUBrIAEQ3w8gAigCQEEBRgRAIAMgAigCTDYCCCADIAIpAkQ3AgAgA0F/NgJoDAELIAIpA1ghDCACKQNQIQ0gAkFAayABEN8PIAIoAkBBAUYEQCADIAIoAkw2AgggAyACKQJENwIAIANBfzYCaAwBCyACKQNYIQ4gAikDUCEPIAJBQGsgARDlDyACKAJAQQFGBEAgAigCRCEGIAIpA0ghCiADQX82AmggAyAKNwIEIAMgBjYCAAwBCyACKQNIIRAgAkFAayABEMgQIAItAEBBAUYEQCACIAIoAkwiBjYACyACIAIpAkQiCjcAAyADIAY2AAggAyAKNwAAIANBfzYCaAwBCyACIAIpAE43AA0gAiACKQBJNwMIIAIgAikAQTcDACACQUBrIAEQ4A8gAigCQEEBRgRAIAIgAigCTCIGNgIgIAIgAikCRCIKNwMYIAMgBjYCCCADIAo3AgAgA0F/NgJoDAELIAIgAikDYDcCNCACIAIpA1g3AiwgAiACKQNQNwIkIAIgAikDSDcCHCACQUBrIAEQ6g8gAiACKQJENwOAASACIAIoAkw2AogBIAIoAkAiBkUEQCADIAIoAogBNgIIIAMgAikDgAE3AgAgA0F/NgJoDAELIAIgAigCiAE2AnwgAiACKQOAATcCdCACIAY2AnAgAkFAayABEOYPIAIgAikCRDcDkAEgAiACKAJMNgKYASACKAJAQQFGBEAgAyACKAKYATYCCCADIAIpA5ABNwIAIANBfzYCaCACQfAAahBzDAELIAMgAigCmAE2AnAgAyACKQOQATcCaCADIAIpAwA3AHQgAyACKQMINwB8IAMgAikADTcAgQEgAyACQRxqIgYpAgA3AjAgAyAGKQIINwI4IAMgBikCEDcCQCADIAYpAhg3AkggAyACKQJ4NwIIIAMgAikCcDcCACADIAw3AyggAyANNwMgIAMgDjcDGCADIA83AxAgAyAQNwNgIAMgCzcDWCADIAo3A1ALIAJBoAFqJAAgBCgCqAMiAkF/RgRAIAQgBCgCyAIiATYCmAEgBCAEKQPAAiIKNwOQASAFIAE2AgggBSAKNwMAIAVBfzYCaAwBCyAEQZABaiIDIARBwAJqIgZB6AD8CgAAIARB7ABqIARBrANqQST8CgAAIAQgA0HoAPwKAAAgBCACNgJoIAYgARBEAkAgBC0AgAMiA0ECRgRAIAQgBCgCyAIiATYCmAEgBCAEKQPAAiIKNwOQASAFIAE2AgggBSAKNwMAIAVBfzYCaAwBCyAEQZABaiIGIARBwAJqIgJBwAD8CgAAIAQgBCgAhAM2APsBIAQgBCgAgQM2AvgBIARBgAJqIgkgBkHAAPwKAAAgCCABKAIEIgEgB2pGBEAgAiAEQZAB/AoAACAEQdADaiAJQcAA/AoAACAFIAQoAPsBNgDUASAFIAQoAvgBNgDRASAFIAJB0AH8CgAAIAUgAzoA0AEMAgsgBUF/NgJoIAUgBzYCBCAFQQg2AgAgBSAIIAFrNgIICyAEEIABCyAEQZAEaiQAAkAgBSgCaEF/RgRAIAAgBSgCCDYCCCAAIAUpAwA3AwAgAEF/NgJoDAELIAVB8AJqIAVBkAFqQcgA/AoAACAFQeABaiIBIAVBkAH8CgAAIAAgAUHYAfwKAAAgAEEANgLYAQsgBUHAA2okAAvMCwIIfwV+IwBBoANrIgUkACMAQeADayIEJAAgBEGgAmogARDIBiAELQCoAiECIAQoAqQCIQcCQCAEKAKgAiIDQX9HBEAgBSAELQCrAjoACyAFIAQvAKkCOwAJIAVBfzYCWCAFIAI6AAggBSAHNgIEIAUgAzYCAAwBCyACQQFxRQRAIAVBfzYCWCAFQQY2AgAMAQsgASgCBCEIIARBoAJqIQMjAEGgAWsiAiQAIAJBQGsgARDlDwJAIAIoAkBBAUYEQCACKAJEIQYgAikDSCEKIANBfzYCWCADIAo3AgQgAyAGNgIADAELIAIpA0ghCiACQUBrIAEQ5Q8gAigCQEEBRgRAIAIoAkQhBiACKQNIIQogA0F/NgJYIAMgCjcCBCADIAY2AgAMAQsgAikDSCELIAJBQGsgARDfDyACKAJAQQFGBEAgAyACKAJMNgIIIAMgAikCRDcCACADQX82AlgMAQsgAikDWCEMIAIpA1AhDSACQUBrIAEQ5Q8gAigCQEEBRgRAIAIoAkQhBiACKQNIIQogA0F/NgJYIAMgCjcCBCADIAY2AgAMAQsgAikDSCEOIAJBQGsgARDIECACLQBAQQFGBEAgAiACKAJMIgY2AAsgAiACKQJEIgo3AAMgAyAGNgAIIAMgCjcAACADQX82AlgMAQsgAiACKQBONwANIAIgAikASTcDCCACIAIpAEE3AwAgAkFAayABEOAPIAIoAkBBAUYEQCACIAIoAkwiBjYCICACIAIpAkQiCjcDGCADIAY2AgggAyAKNwIAIANBfzYCWAwBCyACIAIpA2A3AjQgAiACKQNYNwIsIAIgAikDUDcCJCACIAIpA0g3AhwgAkFAayABEOoPIAIgAikCRDcDgAEgAiACKAJMNgKIASACKAJAIgZFBEAgAyACKAKIATYCCCADIAIpA4ABNwIAIANBfzYCWAwBCyACIAIoAogBNgJ8IAIgAikDgAE3AnQgAiAGNgJwIAJBQGsgARDmDyACIAIpAkQ3A5ABIAIgAigCTDYCmAEgAigCQEEBRgRAIAMgAigCmAE2AgggAyACKQOQATcCACADQX82AlggAkHwAGoQcwwBCyADIAIoApgBNgJgIAMgAikDkAE3AlggAyACKQMANwBkIAMgAikDCDcAbCADIAIpAA03AHEgAyACQRxqIgYpAgA3AiAgAyAGKQIINwIoIAMgBikCEDcCMCADIAYpAhg3AjggAyACKQJ4NwIIIAMgAikCcDcCACADIAw3AxggAyANNwMQIAMgDjcDUCADIAs3A0ggAyAKNwNACyACQaABaiQAIAQoAvgCIgJBf0YEQCAEIAQoAqgCIgE2AogBIAQgBCkDoAIiCjcDgAEgBSABNgIIIAUgCjcDACAFQX82AlgMAQsgBEGAAWoiAyAEQaACaiIGQdgA/AoAACAEQdwAaiAEQfwCakEk/AoAACAEIANB2AD8CgAAIAQgAjYCWCAGIAEQRAJAIAQtAOACIgNBAkYEQCAEIAQoAqgCIgE2AogBIAQgBCkDoAIiCjcDgAEgBSABNgIIIAUgCjcDACAFQX82AlgMAQsgBEGAAWoiBiAEQaACaiICQcAA/AoAACAEIAQoAOQCNgDbASAEIAQoAOECNgLYASAEQeABaiIJIAZBwAD8CgAAIAggASgCBCIBIAdqRgRAIAIgBEGAAfwKAAAgBEGgA2ogCUHAAPwKAAAgBSAEKADbATYAxAEgBSAEKALYATYAwQEgBSACQcAB/AoAACAFIAM6AMABDAILIAVBfzYCWCAFIAc2AgQgBUEINgIAIAUgCCABazYCCAsgBBCCAQsgBEHgA2okAAJAIAUoAlhBf0YEQCAAIAUoAgg2AgggACAFKQMANwMAIABBfzYCWAwBCyAFQdACaiAFQYABakHIAPwKAAAgBUHQAWoiASAFQYAB/AoAACAAIAFByAH8CgAAIABBADYCyAELIAVBoANqJAALrQ4CCH8JfiMAQYAEayIFJAAjAEGABWsiBCQAIARBkANqIAEQyAYgBC0AmAMhAiAEKAKUAyEHAkAgBCgCkAMiA0F/RwRAIAUgBC0AmwM6AAsgBSAELwCZAzsACSAFQX82ApgBIAUgAjoACCAFIAc2AgQgBSADNgIADAELIAJBAXFFBEAgBUF/NgKYASAFQQY2AgAMAQsgASgCBCEIIARBkANqIQMjAEHAAWsiAiQAIAJBQGsgARDlDwJAIAIoAkBBAUYEQCACKAJEIQYgAikDSCEKIANBfzYCmAEgAyAKNwIEIAMgBjYCAAwBCyACKQNIIQogAkFAayABEOUPIAIoAkBBAUYEQCACKAJEIQYgAikDSCEKIANBfzYCmAEgAyAKNwIEIAMgBjYCAAwBCyACKQNIIQsgAkFAayABEN8PIAIoAkBBAUYEQCADIAIoAkw2AgggAyACKQJENwIAIANBfzYCmAEMAQsgAikDWCEMIAIpA1AhDSACQUBrIAEQ3w8gAigCQEEBRgRAIAMgAigCTDYCCCADIAIpAkQ3AgAgA0F/NgKYAQwBCyACKQNYIQ4gAikDUCEPIAJBQGsgARDlDyACKAJAQQFGBEAgAigCRCEGIAIpA0ghCiADQX82ApgBIAMgCjcCBCADIAY2AgAMAQsgAikDSCEQIAJBQGsgARDnDyACLQBAQQFGBEAgAiACKAJMIgY2AAsgAiACKQJEIgo3AAMgAyAGNgAIIAMgCjcAACADQX82ApgBDAELIAIgAigAUTYCECACIAIpAEk3AwggAiACKQBBNwMAIAJBQGsgARDgDyACKAJAQQFGBEAgAiACKAJMIgY2AiAgAiACKQJEIgo3AxggAyAGNgIIIAMgCjcCACADQX82ApgBDAELIAIgAikDYDcCNCACIAIpA1g3AiwgAiACKQNQNwIkIAIgAikDSDcCHCACQUBrIAEQ6g8gAiACKQJENwOAASACIAIoAkw2AogBIAIoAkAiBkUEQCADIAIoAogBNgIIIAMgAikDgAE3AgAgA0F/NgKYAQwBCyACIAIoAogBNgJ8IAIgAikDgAE3AnQgAiAGNgJwIAJBQGsgARDmDyACIAIpAkQ3A6ABIAIgAigCTDYCqAEgAigCQEEBRgRAIAMgAigCqAE2AgggAyACKQOgATcCACADQX82ApgBIAJB8ABqEHMMAQsgAiACKAKoATYCmAEgAiACKQOgATcDkAEgAkFAayABEN8PIAIoAkBBAUYEQCADIAIoAkw2AgggAyACKQJENwIAIANBfzYCmAEgAkGQAWoQiAEgAkHwAGoQcwwBCyACKQNYIREgAikDUCESIAJBQGsgARDoDyACIAIpAkQ3A7ABIAIgAigCTDYCuAEgAigCQEEBRgRAIAMgAigCuAE2AgggAyACKQOwATcCACADQX82ApgBIAJBkAFqEIgBIAJB8ABqEHMMAQsgAyACKAK4ATYCoAEgAyACKQOwATcCmAEgAyACKQMANwB4IAMgAikDCDcAgAEgAyACKAIQNgCIASADIAJBHGoiBikCADcCACADIAYpAgg3AgggAyAGKQIQNwIQIAMgBikCGDcCGCADIAIoApgBNgKUASADIAIpA5ABNwKMASADIAIpAnA3AlAgAyACKQJ4NwJYIAMgETcDSCADIBI3A0AgAyAMNwM4IAMgDTcDMCADIA43AyggAyAPNwMgIAMgEDcDcCADIAs3A2ggAyAKNwNgCyACQcABaiQAIAQoAqgEIgJBf0YEQCAEIAQoApgDIgE2ArgBIAQgBCkDkAMiCjcDsAEgBSABNgIIIAUgCjcDACAFQX82ApgBDAELIARBsAFqIgMgBEGQA2oiBkGYAfwKAAAgBCAEKAK8BDYCrAEgBCAEKQK0BDcCpAEgBCAEKQKsBDcCnAEgBCADQZgB/AoAACAEIAI2ApgBIAYgARBEAkAgBC0A0AMiA0ECRgRAIAQgBCgCmAMiATYCuAEgBCAEKQOQAyIKNwOwASAFIAE2AgggBSAKNwMAIAVBfzYCmAEMAQsgBEGwAWoiBiAEQZADaiICQcAA/AoAACAEIAQoANQDNgDLAiAEIAQoANEDNgLIAiAEQdACaiIJIAZBwAD8CgAAIAggASgCBCIBIAdqRgRAIAIgBEGwAfwKAAAgBEHABGogCUHAAPwKAAAgBSAEKADLAjYA9AEgBSAEKALIAjYA8QEgBSACQfAB/AoAACAFIAM6APABDAILIAVBfzYCmAEgBSAHNgIEIAVBCDYCACAFIAggAWs2AggLIAQQhAELIARBgAVqJAACQCAFKAKYAUF/RgRAIAAgBSgCCDYCCCAAIAUpAwA3AwAgAEF/NgKYAQwBCyAFQbADaiAFQbABakHIAPwKAAAgBUGAAmoiASAFQbAB/AoAACAAIAFB+AH8CgAAIABBADYC+AELIAVBgARqJAAL8RkCF38LfiMAQeADayIIJAAjAEHQBGsiBiQAIAZB8AJqIAEQyAYgBi0A+AIhAiAGKAL0AiEOAkAgBigC8AIiA0F/RwRAIAggBi0A+wI6AAsgCCAGLwD5AjsACSAIQX82AogBIAggAjoACCAIIA42AgQgCCADNgIADAELIAJBAXFFBEAgCEF/NgKIASAIQQY2AgAMAQsgASgCBCERIAZB8AJqIQQjAEGgA2siAiQAIAJBkAJqIAEQ5Q8CQCACKAKQAkEBRgRAIAIoApQCIQMgAikDmAIhGSAEQX82AogBIAQgGTcCBCAEIAM2AgAMAQsgAikDmAIhHCACQZACaiABEOUPIAIoApACQQFGBEAgAigClAIhAyACKQOYAiEZIARBfzYCiAEgBCAZNwIEIAQgAzYCAAwBCyACKQOYAiEdIAJBkAJqIAEQ3w8gAigCkAJBAUYEQCAEIAIoApwCNgIIIAQgAikClAI3AgAgBEF/NgKIAQwBCyACKQOoAiEeIAIpA6ACIR8gAkGQAmogARDfDyACKAKQAkEBRgRAIAQgAigCnAI2AgggBCACKQKUAjcCACAEQX82AogBDAELIAIpA6gCISAgAikDoAIhISACQZACaiABEOUPIAIoApACQQFGBEAgAigClAIhAyACKQOYAiEZIARBfzYCiAEgBCAZNwIEIAQgAzYCAAwBCyACKQOYAiEiIAJBkAJqIAEQ5w8gAi0AkAJBAUYEQCACIAIoApwCIgM2AAsgAiACKQKUAiIZNwADIAQgAzYACCAEIBk3AAAgBEF/NgKIAQwBCyACIAIoAKECNgIQIAIgAikAmQI3AwggAiACKQCRAjcDACACQZACaiABEOAPIAIoApACQQFGBEAgAiACKAKcAiIDNgIgIAIgAikClAIiGTcDGCAEIAM2AgggBCAZNwIAIARBfzYCiAEMAQsgAiACKQOwAjcCNCACIAIpA6gCNwIsIAIgAikDoAI3AiQgAiACKQOYAjcCHCACQZACaiABEOoPIAIgAikClAI3A1AgAiACKAKcAjYCWCACKAKQAiIDRQRAIAQgAigCWDYCCCAEIAIpA1A3AgAgBEF/NgKIAQwBCyACIAIoAlg2AkwgAiACKQNQNwJEIAIgAzYCQCACQZACaiABEOYPIAIgAikClAI3A3AgAiACKAKcAjYCeAJAAkAgAigCkAJBAUYEQCAEIAIoAng2AgggBCACKQNwNwIAIARBfzYCiAEMAQsgAiACKAJ4NgJoIAIgAikDcDcDYCACQQA2AoQBIAJCgICAgIABNwJ8IAJBkAJqIAFBARDiDyACKAKYAiEDIAIoApQCIQUgAigCkAIiB0F/RgRAIAJBHGohDSACIAM2AowBIAIgBTYCiAEgAkGgAmohEgNAIANFDQMgAkGQAmohBUIAIRojAEGwAWsiAyQAIANBiAFqIAJBiAFqIgoQ8w8gAy0AkAEhCSADKAKMASEPAkACQCADKAKIASIHQX9HBEAgBSADLQCTAToADyAFIAMvAJEBOwANIAUgCToADCAFIA82AgggBSAHNgIEDAELQQEhByAJQQFxRQRAIAVBBjYCBAwCCyAKKAIEIRMgA0GIAWoiByAKEPwPAkACQAJAAkACQCADKAKIAUEBRg0AIAMgAykDmAE3A1AgAyADKQOgATcDWCADIAMpA6gBNwNgIAMoApQBIRQgAygCkAEhFSAHIAoQ8g8gAygCkAEhCSADKAKMASEHIAMoAogBIgtBf0cNBCAJQRRHBEBBBSELDAULIAMgBy0AAjoAaiADIAcvAAA7AWggB0ETajEAACEbIAcoAAMhFiAHKAAHIRcgBygACyEYIAc1AA8gA0GIAWoiDCAKEPIPIAMoApABIQkgAygCjAEhByADKAKIASILQX9HDQQgDCAHIAkQ8Q8gAygCiAEiC0F/RwRAIAMoApABIQkgAygCjAEhBwwFCyADKQKMASEZIANBiAFqIAoQ8g8gAygCkAEhDCADKAKMASEQIAMoAogBIgtBf0cEQCAQrSAMrUIghoQhGgwECyAMBEAgEC0AAEUEQEEBIQsMBQsgDEEBRw0DCyAbQiCGhCEaIBlCOIYgGUKA/gODQiiGhCAZQoCA/AeDQhiGIBlCgICA+A+DQgiGhIQgGUIIiEKAgID4D4MgGUIYiEKAgPwHg4QgGUIoiEKA/gODIBlCOIiEhIQhGyAMQQFGIQlBACEHQgAhGQNAAkACQCAHIAxJBEAgCUEBcQ0BQX9BAUGQncUAEOgRAAsgGUL/AVgNAUIAIRoMBQsgGSAQMQAAfCEZQQAhCUEBIQcMAQsLIANBiAFqIgcgChD8DyADKAKIAUEBRg0AIAMgAykDmAE3A3AgAyADKQOgATcDeCADIAMpA6gBNwOAASADKAKUASEJIAMoApABIQsgByAKEPwPIAMoAogBQQFHDQELIAMoApQBIQkgAygCkAEhByADKAKMASELDAMLIAMgAykDmAE3AwAgAyADKQOgATcDCCADIAMpA6gBNwMQIAMgAykDUDcDOCADIAMpA1g3A0AgAyADKQNgNwNIIAMgAy8BaDsBMCADIAMtAGo6ADIgAygClAEhByADKAKQASEMIAMgAykDgAE3AyggAyADKQN4NwMgIAMgAykDcDcDGCAPIBMgCigCBGsiCkYEQCAFIBo+AD8gBSAUNgIMIAUgFTYCCCAFIAMpAzg3AxAgBSADKQNANwMYIAUgAykDSDcDICAFIBs3AyggBSADLwEwOwEwIAUgAy0AMjoAMiAFIAk2AkwgBSALNgJIIAUgGDYAOyAFIBc2ADcgBSAWNgAzIAVBwwBqIBpCIIg8AAAgBSAMNgJoIAUgBzYCbCAFIBk3A4gBIAUgAykDKDcCYCAFIAMpAyA3AlggBSADKQMYNwJQIAUgAykDADcDcCAFIAMpAwg3A3ggBSADKQMQNwOAAUEAIQcMBQsgBSAKNgIMIAUgDzYCCCAFQQg2AgQMAwtBACELCyAaQiCIpyEJIBqnIQcLIAUgCTYCDCAFIAc2AgggBSALNgIEC0EBIQcLIAUgBzYCACADQbABaiQAIAIoApACRQRAIAIoApwCIQcgAigCmAIhCSACQZABaiASQYAB/AoAACACKAKEASIFIAIoAnxGBEAjAEEQayIDJAAgA0EIaiACQfwAaiIKIAooAgBBCEGIARCYECADKAIIIgpBf0cEQCAKIAMoAgwQ2BEACyADQRBqJAALIAIoAoABIAVBiAFsaiIDIAc2AgQgAyAJNgIAIANBCGogAkGQAWpBgAH8CgAAIAIgBUEBajYChAEgAigCjAEhAwwBCwsgAigClAIiB0F/Rg0CIAIoApgCIQUgAigCnAIhAwsgAkH8AGoQ6w8gBEF/NgKIASAEIAc2AgAgBCAFrSADrUIghoQ3AgQgAkHgAGoQiAELIAJBQGsQcwwBCyACKAJ8IQMgAikCgAEhGSAEIAIoAhA2AHggBCACKQMINwBwIAQgAikDADcAaCAEIA0pAgA3AgAgBCANKQIINwIIIAQgDSkCEDcCECAEIA0pAhg3AhggBCACKQNwNwJ8IAQgAigCeDYChAEgBCACKQJINwJIIAQgAikCQDcCQCAEIB43AzggBCAfNwMwIAQgIDcDKCAEICE3AyAgBCAZNwKMASAEIAM2AogBIAQgIjcDYCAEIB03A1ggBCAcNwNQCyACQaADaiQAIAYoAvgDIgJBf0YEQCAGIAYoAvgCIgE2AqgBIAYgBikD8AIiGTcDoAEgCCABNgIIIAggGTcDACAIQX82AogBDAELIAZBoAFqIgMgBkHwAmoiBEGIAfwKAAAgBiAGKAKMBDYCnAEgBiAGKQKEBDcClAEgBiAGKQL8AzcCjAEgBiADQYgB/AoAACAGIAI2AogBIAQgARBEAkAgBi0AsAMiA0ECRgRAIAYgBigC+AIiATYCqAEgBiAGKQPwAiIZNwOgASAIIAE2AgggCCAZNwMAIAhBfzYCiAEMAQsgBkGgAWoiBCAGQfACaiICQcAA/AoAACAGIAYoALQDNgCrAiAGIAYoALEDNgKoAiAGQbACaiIFIARBwAD8CgAAIBEgASgCBCIBIA5qRgRAIAIgBkGgAfwKAAAgBkGQBGogBUHAAPwKAAAgCCAGKACrAjYA5AEgCCAGKAKoAjYA4QEgCCACQeAB/AoAACAIIAM6AOABDAILIAhBfzYCiAEgCCAONgIEIAhBCDYCACAIIBEgAWs2AggLIAYQhgELIAZB0ARqJAACQCAIKAKIAUF/RgRAIAAgCCgCCDYCCCAAIAgpAwA3AwAgAEF/NgKIAQwBCyAIQZADaiAIQaABakHIAPwKAAAgCEHwAWoiASAIQaAB/AoAACAAIAFB6AH8CgAAIABBADYC6AELIAhB4ANqJAALFQAgACABQdyFwwBBEUHshcMAEJ4SCw4AIAFB/YXDAEECEPQRCxwAIABBjOnCACkCADcCCCAAQYTpwgApAgA3AgALHAAgAEGc6cIAKQIANwIIIABBlOnCACkCADcCAAsTACAAQSg2AgQgAEH/hcMANgIACwkAIABBADYCAAscACAAQaTqwgApAgA3AgggAEGc6sIAKQIANwIACxwAIABBrOnCACkCADcCCCAAQaTpwgApAgA3AgALBABBAQtaAQF/An9BACAAQYCAgCBLDQAaQdjyxQBB2PLFAC0AACIBQQEgARs6AABBACABDQAaQYDuxQBBADYCAEH47cUAIABBABD3D0HY8sUAQQA6AABB/O3FACgCAAsL07ICAi5/Cn4jAEEQayIrJABB2PLFAEHY8sUALQAAIgNBASADGzoAAEGAgMAAIQIgA0UEQCArQQRqIRNB+O3FACECIwBB0BtrIgEkAAJAAkACQAJAAkACQAJAAkACfwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQCAAIgNBgO7FACgCACIATQRAIAFBMGpB+O3FACADQeTvwgAQpQYCQAJ/QQQgASgCNCIJQRBJDQAaQQAgASgCMCIHKAAAIgNBxay1kgNHDQAaQQEiACAHLwAEIgVBAUcNABpBAiAHKAAIIgMNABogCUEQayICIAcoAAwiA0YNAUEDCyEAIAEgAjYCmA0gASADNgKUDSABIAU7AZINIAEgADoAkA0gEyABQZANahCOBgwjCyAHLwAGIQIgASADNgI8IAEgB0EQajYCOAJAAkACQAJAAkACfwJAAn4CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACQQFrDhYKCwECAxsZGRkZGQQFBhUHGiMiIQgJAAsgAUEHOgCQDSABIAI7AZINIBMgAUGQDWoQjgYMOQtBxO7FACgC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AhBBAXEEQCAlIAEpA6gVNwAAICUgASkDsBU3AAggJSABKQC3FTcADyAkIAEpA9gYNwIAICQgASkD4Bg3AgggJCABKALoGDYCECABIAEoApAYNgKgDSABIAEpA4gYNwOYDSABIAEpA4AYNwOQDSABIAU6AKgNIAEgCTYCwA0gHiABKAKYFzYAACAeIAEoAJsXNgADIAEgCzoA3A0gASAQNgLYDSACIC8gAyAAEKcGGgwBCyABQegaaiICIAEoAuAVIANBqH9saiIDQUBqIgBBwAD8CgAAIAAgBToAACADQShrIAk2AgAgA0EMayALOgAAIANBEGsgEDYCACADQQtrIgAgASgAmxc2AAMgACABKAKYFzYAACADQT9rIgAgASkDqBU3AAAgACABKQOwFTcACCAAIAEpALcVNwAPIANBJGsiACABKQPYGDcCACAAIAEpA+AYNwIIIAAgASgC6Bg2AhAgASgCgBtBf0YNACACEFkLIAEoAsQXIQMgASgCzBchAgwACwALIAogCTEAADwAACABIAE1AqANPgDvFyABIC83AOcXIAEgBzYA4xcgASACOwHgFyABIAJBEHY6AOIXIAFBgAVqIgJBADYCOCACQoCAgICAATcCMCACQgg3AiggAkIANwIgIAJCgICAgIABNwIYIAJCCDcCECACQgA3AgggAkKAgICAgAE3AgAgAiABQeAXaiIAKAAQNgBMIAIgACkACDcARCACIAApAAA3ADwgAUGQDWogAUE4ahCVBiABLQCQDSIAQf8BRwRAIAEtAJMNQRh0IAEvAJENQQh0ciAAciENIAEpA5gNIi9CIIinIQMgASkDoA0hMCABKAKUDSEHIC+nDDMLIAhBAWohCCABKAKUDSEFQQAhBgNAAkAgBSAGRwRAIAFBkA1qIAFBOGoQlgYgASkDqA0hMCABKQOgDSE3IAEoApwNIQcgASgCmA0hDSABKAKQDUUNASA3QiCIpyEDIDenDDULIAFBkA1qIAFBOGoQlQYgAS0AkA0iAEH/AUcEQCABLQCTDUEYdCABLwCRDUEIdHIgAHIhDSABKQOYDSIvQiCIpyEDIAEpA6ANITAgASgClA0hByAvpww1CyABKAKUDSECA0ACQCACBEAgAUGQDWogAUE4ahCWBiABKQOoDSEwIAEpA6ANITEgASgCnA0hByABKAKYDSENIAEoApANRQ0BIDFCIIinIQMgMacMNwsgAUGQDWogAUE4ahCVBiABLQCQDSIAQf8BRwRAIAEtAJMNQRh0IAEvAJENQQh0ciAAciENIAEpA5gNIi9CIIinIQMgASkDoA0hMCABKAKUDSEHIC+nDDcLIAEoApQNIQIDQAJAIAIEQCABQZANaiABQThqEKgGIAEtAJANIgBB/wFGDQEgAS0Akw1BGHQgAS8AkQ1BCHRyIAByIQ0gASkDmA0iL0IgiKchAyABKQOgDSEwIAEoApQNIQcgL6cMOQsgAUGQDWogAUE4ahCVBiABLQCQDSIAQf8BRwRAIAEtAJMNQRh0IAEvAJENQQh0ciAAciENIAEpA5gNIi9CIIinIQMgASkDoA0hMCABKAKUDSEHIC+nDDkLIAEoApQNIQMDQAJAIAMEQCABQZANaiABQThqEKgGIAEtAJANIgBB/wFGDQEgAS0Akw1BGHQgAS8AkQ1BCHRyIAByIQ0gASkDmA0iL0IgiKchAyABKQOgDSEwIAEoApQNIQcgL6cMOwsgAUGQDWogAUE4ahCVBiABLQCQDSIAQf8BRwRAIAEtAJMNQRh0IAEvAJENQQh0ciAAciENIAEpA5gNIi9CIIinIQMgASkDoA0hMCABKAKUDSEHIC+nDDsLIAEoApQNIQMDQAJAIAMEQCABQZANaiABQThqEKgGIAEtAJANIgBB/wFGDQEgAS0Akw1BGHQgAS8AkQ1BCHRyIAByIQ0gASkDmA0iL0IgiKchAyABKQOgDSEwIAEoApQNIQcgL6cMPQsgAUGQDWogAUGABWpB0AD8CgAAIAEoAqAZIgIgASgCmBlGBEAjAEEQayIDJAAgA0EIaiABQZgZaiIAIAAoAgBBAUEEQdAAEJQNIAMoAggiAEF/RwRAIAAgAygCDBDYEQALIANBEGokAAsgASgCnBkiAyACQdAAbGogAUGQDWpB0AD8CgAAIAEgAkEBaiICNgKgGQwLCyABKQOYDSEvIAFBkA1qIAFBOGpBgIAEEKQGIAEtAJANIgBB/wFHBEAgAS0Akw1BGHQgAS8AkQ1BCHRyIAByIQ0gASkDoA0hMCABKAKcDSEDIAEoApQNIQcgASgCmA0MPAsgAUFAayIAIAEoApQNIAEoApgNEPAFIAFBqBlqIAAQqREgASgCuAUiAiABKAKwBUYEQCMAQRBrIgUkACAFQQhqIBYgFigCAEEBQQhBGBCUDSAFKAIIIgBBf0cEQCAAIAUoAgwQ2BEACyAFQRBqJAALIAEoArQFIAJBGGxqIgAgASkDsBk3AwggACABKQOoGTcDACAAIC83AxAgASACQQFqNgK4BSADQQFrIQMMAAsACyABKQOYDSExIAFBkA1qIAFBOGoQiwYgAS0AkA0iAEH/AUcEQCABLQCTDUEYdCABLwCRDUEIdHIgAHIhDSABKQOYDSIvQiCIpyEDIAEpA6ANITAgASgClA0hByAvpww6CyABKQOYDSEvIAEoAqwFIgIgASgCpAVGBEAgFBCoEAsgASgCqAUgAkEEdGoiACAvNwMIIAAgMTcDACABIAJBAWo2AqwFIANBAWshAwwACwALIAEpA5gNITEgAUGQDWogAUE4ahCWBiABKQOoDSEwIAEpA6ANITMgASgCnA0hByABKAKYDSENIAEpA5ANQgFRBEAgM0IgiKchAyAzpww4CyABKQOwDSEvIAEoAqAFIgAgASgCmAVGBEAgEBCYCwsgASgCnAUgAEEobGoiAyAxNwMgIAMgLzcDGCADIDA3AxAgAyAzNwMIIAMgBzYCBCADIA02AgAgASAAQQFqNgKgBSACQQFrIQIMAAsACyABKQOwDSEvIAEoApQFIgAgASgCjAVGBEAgCxCXCwsgASgCkAUgAEEFdGoiAyAvNwMYIAMgMDcDECADIDE3AwggAyAHNgIEIAMgDTYCACABIABBAWo2ApQFIAJBAWshAgwACwALIAEpA7ANITQgAUEANgJIIAFCgICAgIABNwJAIAFBkA1qIAFBOGoQlQYgAS0AkA0iA0H/AUcNMSAGQQFqIQYgASgClA0hAgNAAkAgAgRAIAFBkA1qIAFBOGoQqAYgAS0AkA0iA0H/AUYNAQw0CyABIAEoAkg2ApgNIAEgASkCQDcDkA0gASgCiAUiACABKAKABUYEQCABQYAFahDOCAsgASgChAUgAEEwbGoiAiA0NwMYIAIgMDcDECACIDc3AwggAiAHNgIEIAIgDTYCACACIAEpA5ANNwMgIAIgASgCmA02AiggASAAQQFqNgKIBQwCCyABKQOYDSEzIAFBkA1qIAFBOGoQlgYgASkDqA0hLyABKQOgDSEyIAEoApwNIQwgASgCmA0hACABKQOQDUIBUQRAIAAhDSAvITAgDAw0CyABKQOwDSExIAEoAkgiAyABKAJARgRAIAFBQGsQmAsLIAEoAkQgA0EobGoiFyAzNwMgIBcgMTcDGCAXIC83AxAgFyAyNwMIIBcgDDYCBCAXIAA2AgAgASADQQFqNgJIIAJBAWshAgwACwALAAsLIAFBwBdqEKYGIAEoAuAVIgINAQtBACEHQgAhMkEOIQ0MMgsgASgC5BUhACABKQPoFSEyIAEgASkD8BUiLzcD8BYgASAyNwPoFiABIAA2AuQWIAEgAjYC4BYgASgCPCIHBEAgAUHgFmoQX0EFIQ0MMgsgASAvNwOgDSABIDI3A5gNIAEgADYClA0gASACNgKQDUHE7sUAKAIAQX5GDQtBBgwMCyABQZANaiABQThqEJUGIAEtAJANIgNB/wFHBEAgASABKQOYDTcDgAUgASABKQOgDTcDiAUgASgClA0hAiABLwGSDSEAIAEtAJENIQUMKwsgASgCPCICRQ0NQQUhAwwqCyABQZANaiABQThqEIsGIAEtAJANIgNB/wFHBEAgASABLQCTDToAggUgASABLwCRDTsBgAUgASgClA0hAiABKQOYDSEyIAEpA6ANITAMKQsgASgCPCICRQ0cQQUhAwwoCyABQeAVahCpBiABQQA2ArAWIAFCgICAgIABNwKoFiABQQA2ArwWIAFBADYCtBYgAUHzDWohLCABQZQFaiEtIAFBpA1qIRsgAUHUAGohIyABQZwNaiEhIAFBlA5qISQgAUGMGGohJSABQewXaiEmIAFBzBdqIScgAUGzF2ohKCABQeQYaiEpIAFBxBhqIREgAUGrGGohDyABQYsZaiESIAFBgA5qIQwgAUGgBWohGiABQbANaiEdIAFB4ABqIRggAUGgDmohFCABQZANakEBciEeA0AgAUGQDWogAUE4ahCqBiABLQCRDSECIAEtAJANIgNB/wFHBEAgASABKQKcDTcD0BUgASABKAKkDTYC2BUgASgCmA0hBSABKAKUDSEAIAEvAZINIQkMJwsCQAJAAkACQAJAAkACQAJAAkACQAJAIAIOBwAHAgYEAwUBCyABKAI8IgAEQEEFIQMMMQsgASgCsBYhACABKAKsFiEYIAEgASgCqBY2AqAZIAEgGDYCnBkgASAYNgKYGSABIBggAEHIAWwiFGo2AqQZIAFBmA1qIRAgAUGIAWohCyABQYgbaiEKIAFBsBpqIQ0gAUGIBWohB0EAIQIDQCACIBRGDQogASACIBhqIgBByAFqNgKcGSAAKQMAIjBCf1ENCiAAQfAAaikCACEvIAEgAEHoAGooAAA2ArgZIAEgAEHgAGopAAA3A7AZIAEgAEHYAGopAAA3A6gZIAEgMDcDgAUgByAAQQhqQdAA/AoAACABQcAZaiIJIABB+ABqIgBB0AD8CgAAIAEgL0IBUQR+IAFBkBpqIgUgAEHQAPwKAAAjAEEQayIIJAACf0EAIAFBtBZqIgMoAgAiAEUNABogCCAAIAMoAgQgDRBRQQAgCCgCAA0AGiAIKAIEIAgoAgxBAnRqQeQCagshACAIQRBqJAAgAARAIAFBQGsgCUHQAPwKAAAgACgCACIDIAMoAgAiAEEBajYCACAAQQBIDRwgASADNgLkGiAKIAFB5BpqEOYFIAEgAzYCsBsgASABKQPYGTcDgBsgASABKQPQGTcD+BogASABKQPIGTcD8BogASABKQPAGTcD6BogASABKQOAATcDqBsgCxBxIAUgAUHoGmpB0AD8CgAACyAQIAFBkBpqQdAA/AoAAEIBBUIACzcDkA0gAkHIAWohAkEAIQZBACEIIwBBgAZrIg4kACABQYAFaiIFKQMAQgFRBEAgDiAFKQBANwCRAyAOIAUpADg3AIkDIA4gBSkAMDcAgQMgDiAFKQAoNwD5AkEBIQgLIA4gCDoA+AIgAUHgFWohFiABQagZaiEMIAFBkA1qIgApAwBCAVEEQCAOIAApAEA3AMkEIA4gACkAODcAwQQgDiAAKQAwNwC5BCAOIAApACg3ALEEQQEhBgsgDiAGOgCwBCAGIAhxBH8gDkH5AmogDkGxBGoQzwFBAXMFIAYgCHILIQkgDkEANgKoBCAOQgA3A9ADIA5CADcD+AIgDkEAOgCsBCAOQcgBaiIDIAVB2AD8CgAAIA5BoAJqIABB2AD8CgAAIBZBEGoiACAMEP4HIS8gDiAMNgIQIBYgABCjCCAOIBY2ArQEIA4gDkEQajYCsAQgDkEIaiAWIC8gDkGwBGoiAEGAicMAEOEFIA4oAgwhBQJAIA4oAghBAXEEQCAOIAwoABA2AsAEIA4gDCkACDcDuAQgDiAMKQAANwOwBCAOQcgEaiADQbAB/AoAACAOIAk6APwFIA5BADYC+AUgFiAvIAUgABDYChogDkJ/NwMQDAELIA5BEGoiAyAWKAIAIAVBsH5saiIFQbgBayIAQbgB/AoAACAAIA5ByAFqQbAB/AoAACAFQQRrIAk6AAAgBUEIa0EANgIAIA4pAxBCf1ENACADEK0ICyAOQfgCahCtCCAOQYAGaiQADAALAAtBDSEDDC8LIAFBkA1qIAFBOGoQlwYgASAhKQAANwOABSABICEtAAg6AIgFIAEoApgNIQUgASgClA0hACABLwGSDSEJIAEtAJENIQIgAS0AkA0iA0H/AUcEQCABIAEtAKcNOgDbFSABIAEvAKUNOwDZFSABIAEpA4AFNwPQFSABIAEtAIgFOgDYFQwvCyABIAEpA4AFNwPAFiABIAEtAIgFOgDIFiABQZANaiABQThqEKsGIAEgGykCADcDgAUgASAbKAIINgKIBSABKAKgDSEGIAEoApwNIQogAS8Bmg0hCCABLQCZDSEHIAEtAJgNIQMgASkDkA0iL0J/UQRAIAEgASkDgAU3A9AVIAEgASgCiAU2AtgVIAghCSAGIQUgCiEAIAchAgwvCyAYIB1BOPwKAAAgIyABKQOABTcCACAjIAEoAogFNgIIIAEgBjYCUCABIAo2AkwgASAIOwFKIAEgBzoASSABIAM6AEggASAvNwNAIAFBkA1qIAFBOGoQqwYgASAbKQIANwPoGiABIBsoAgg2AvAaIAEoAqANIQYgASgCnA0hCiABLwGaDSEIIAEtAJkNIQcgAS0AmA0hAyABKQOQDSIvQn9RBEAgASABKQPoGjcD0BUgASABKALwGjYC2BUgCCEJIAYhBSAKIQAgByECDC4LIBogHUE4/AoAACAtIAEpA+gaNwIAIC0gASgC8Bo2AgggASAGNgKQBSABIAo2AowFIAEgCDsBigUgASAHOgCJBSABIAM6AIgFIAEgLzcDgAUgAUGQDWoiCCABQThqIgcQrAYgAS0AkA0iA0H/AUcNLCAIIAcQrAYgAS0AkA0iA0H/AUcNLCAIIAFBQGtB2AD8CgAAIAwgAUGABWpB2AD8CgAAICwgASkDwBY3AAAgLCABLQDIFjoACCABIAU2AO8NIAEgADYA6w0gASAJOwDpDSABIAI6AOgNIAFBqBZqIAgQrQYMCAsgAUGQDWogAUE4ahCXBiABICEpAAA3A4AFIAEgIS0ACDoAiAUgASgCmA0hBSABKAKUDSEAIAEvAZINIQkgAS0AkQ0hAiABLQCQDSIDQf8BRwRAIAEgAS0Apw06ANsVIAEgAS8ApQ07ANkVIAEgASkDgAU3A9AVIAEgAS0AiAU6ANgVDC4LIAEgASkDgAU3A9AWIAEgAS0AiAU6ANgWIAFBkA1qIAFBOGoQqwYgASAbKQIANwNAIAEgGygCCDYCSCABKAKgDSEGIAEoApwNIQogAS8Bmg0hCCABLQCZDSEHIAEtAJgNIQMgASkDkA0iMEJ/UQRAIAEgASkDQDcD0BUgASABKAJINgLYFSAIIQkgBiEFIAohACAHIQIMLgsgAUHgFmoiECAdQTj8CgAAIC0gASkDQCIvNwIAIC0gASgCSCILNgIIIAEgBjYCkAUgASAKNgKMBSABIAg7AYoFIAEgBzoAiQUgASADOgCIBSABIDA3A4AFIAEgLzcDmBcgASALNgKgFyAaIBBBOPwKAAAgAUGQDWoiCyABQYAFahCuBiAsIAEpA9AWNwAAICwgAS0A2BY6AAggJCABKQOYFzcCACAkIAEoAqAXNgIIIAEgBTYA7w0gASAANgDrDSABIAk7AOkNIAEgAjoA6A0gASAGNgKQDiABIAo2AowOIAEgCDsBig4gASAHOgCJDiABIAM6AIgOIAEgMDcDgA4gFCAQQTj8CgAAIAFBqBZqIAsQrQYMBwsgAUGQDWogAUE4ahCXBiABICEpAAA3A4AFIAEgIS0ACDoAiAUgASgCmA0hBSABKAKUDSEAIAEvAZINIQkgAS0AkQ0hAiABLQCQDSIDQf8BRwRAIAEgAS0Apw06ANsVIAEgAS8ApQ07ANkVIAEgASkDgAU3A9AVIAEgAS0AiAU6ANgVDC0LICggASkDgAU3AAAgKCABLQCIBToACCABIAU2AK8XIAEgADYAqxcgASAJOwCpFyABIAI6AKgXIAFBkA1qIAFBOGoQlgYgASAbKQIANwOABSABIBsoAgg2AogFIAEoAqANIQUgASgCnA0hACABLwGaDSEJIAEtAJkNIQIgAS0AmA0hAyABKQOQDUIBUQRAIAEgASkDgAU3A9AVIAEgASgCiAU2AtgVDC0LIAEpA7ANIS8gJyABKQOABTcCACAnIAEoAogFNgIIIAEgBTYCyBcgASAANgLEFyABIAk7AcIXIAEgAjoAwRcgASADOgDAFyABIC83A9gXIAFBkA1qIAFBOGoQlgYgASAbKQIANwOABSABIBsoAgg2AogFIAEoAqANIQUgASgCnA0hACABLwGaDSEJIAEtAJkNIQIgAS0AmA0hAyABKQOQDUIBUQRAIAEgASkDgAU3A9AVIAEgASgCiAU2AtgVDC0LIAEpA7ANIS8gJiABKQOABTcCACAmIAEoAogFNgIIIAEgBTYC6BcgASAANgLkFyABIAk7AeIXIAEgAjoA4RcgASADOgDgFyABIC83A/gXIAFBkA1qIAFBOGoQlgYgASAbKQIANwOABSABIBsoAgg2AogFIAEoAqANIQUgASgCnA0hACABLwGaDSEJIAEtAJkNIQIgAS0AmA0hAyABKQOQDUIBUQRAIAEgASkDgAU3A9AVIAEgASgCiAU2AtgVDC0LIAEpA7ANIS8gJSABKQOABTcCACAlIAEoAogFNgIIIAEgBTYCiBggASAANgKEGCABIAk7AYIYIAEgAjoAgRggASADOgCAGCABIC83A5gYIAFB4BVqIAFBqBdqIAFBwBdqIAFB4BdqIAFBgBhqENkKDAYLIAFBkA1qIAFBOGoQlwYgASAhKQAANwOABSABICEtAAg6AIgFIAEoApgNIQUgASgClA0hACABLwGSDSEJIAEtAJENIQIgAS0AkA0iA0H/AUcEQCABIAEtAKcNOgDbFSABIAEvAKUNOwDZFSABIAEpA4AFNwPQFSABIAEtAIgFOgDYFQwsCyAPIAEpA4AFNwAAIA8gAS0AiAU6AAggASAFNgCnGCABIAA2AKMYIAEgCTsAoRggASACOgCgGCABQZANaiABQThqEJYGIAEgGykCADcDgAUgASAbKAIINgKIBSABKAKgDSEFIAEoApwNIQAgAS8Bmg0hCSABLQCZDSECIAEtAJgNIQMgASkDkA1CAVEEQCABIAEpA4AFNwPQFSABIAEoAogFNgLYFQwsCyABKQOwDSEvIBEgASkDgAU3AgAgESABKAKIBTYCCCABIAU2AsAYIAEgADYCvBggASAJOwG6GCABIAI6ALkYIAEgAzoAuBggASAvNwPQGCABQZANaiABQThqEJYGIAEgGykCADcDgAUgASAbKAIINgKIBSABKAKgDSEFIAEoApwNIQAgAS8Bmg0hCSABLQCZDSECIAEtAJgNIQMgASkDkA1CAVEEQCABIAEpA4AFNwPQFSABIAEoAogFNgLYFQws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AxCPBiATIANBABCTBgwtCyABQYAFaiABQThqEKMGIAEoArAGQX5GBEAgASABKQOQBTcDoA0gASABKQOIBTcDmA0gASABKQOABTcDkA0gEyABQZANahCOBgwtCyABQZANaiABQYAFakGAAvwKAABB8O7FACgCAEF/RwRAQYTvxQBBADoAAEH47sUAQQA2AgALIAFBQGshBSMAQdABayIJJAAgCUEIaiABQZANahC3BkIBITAgCUEQaiEDAkAgCSkDCEIBUQRAIAVBCGogA0HIAPwKAAAMAQsgCUHwAGoiAiADQeAA/AoAACAFQQhqIAIQtgZCACEwCyAFIDA3AwAgCUHQAWokACABQcgAaiEFIAEpA0BCAVEEQCABQegaaiAFQcgA/AoAABANIgIEfyACKAIMIQAgAkEANgIMIAEgACACKAIQEKEGIAEoAgQhACABKAIABUEACyEDIAEgADYCrBUgASADNgKoFSABQcAZaiICEI8GAkAgAwRAIAFBqBVqEIkGDQEgASAANgLkFiABIAM2AuAWIAFBJDYC5BUgASABQeAWaiIANgLgFSABQZAaaiIDIAFB4BVqEJEGIAIgASgClBogASgCmBoQkgYgAxCmDyABIAEoAsgZNgKYGiABIAEpAsAZNwOQGiATIANBBRCTBiAAEFoMHAsgBRCiBkUEQCABQcAZaiABQegaahCyBiABIAEoAsgZNgKYGiABIAEpAsAZNwOQGiATIAFBkBpqQQQQkwYMHAsgASABKALIGTYCmBogASABKQLAGTcDkBogEyABQZAaakEKEJMGDBsLIAEgADYC5BUgASADNgLgFSABIAEoAsgZNgKYGiABIAEpAsAZNwOQGiATIAFBkBpqQQkQkwYgAUHgFWoQWgwaCyABQegaaiIAIAVB2AD8CgAAIAFBwBlqIgIQjwYgAiAFEJsGIAIQmAYgASABKALIGTYCmBogASABKQLAGTcDkBogEyABQZAaakEAEJMGIAAQdgwaCyABQZANaiABQThqEJcGIAEgAS8AkQ07AZAaIAEgAS0Akw06AJIaIAEgASkDmA03A0AgASABKQCdDTcARSABKAKUDSEAAkACQCABLQCQDSIDQf8BRwRAIAEgAS0Apw06AM8ZIAEgAS8ApQ07AM0ZIAEgAS8BkBo7AagVIAEgAS0Akho6AKoVIAEgASkDQDcDwBkgASABKQBFNwDFGSAAIQIMAQsgASABLwGQGjsB6BogASABLQCSGjoA6hogASABKQNANwOABSABIAEpAEU3AIUFQQUhAyABKAI8IgJFDQELIAEgAzoAkA0gASABLwGoFTsAkQ0gASABLQCqFToAkw0gASACNgKUDSABIAEpA8AZNwOYDSABIAEpA8gZNwOgDSATIAFBkA1qEI4GDCwLIAEgAS0A6hoiAzoAqhUgASABLwHoGiICOwGoFSABIAEpA4AFNwPAGSABIAEpAIUFNwDFGSABIAM6AOoaIAEgAjsB6BogASAANgDrGiABIAEpA8AZNwDvGiABIAEpAMUZNwD0GiABQZANakHA6MUAIAFB6BpqEPAKAkACQCABKQOQDSIvQn9RBEAgASgCmA0hBRANIgMEfyADKAIMIQAgA0EANgIMIAFBCGogACADKAIQEKEGIAEoAgwhAiABKAIIBUEACyEAIAEgAjYC5BYgASAANgLgFiABQUBrIgMQjwYgAEUNASABQeAWahCJBg0CIAEgAjYC5BUgASAANgLgFSABQSQ2ApQaIAEgAUHgFWoiADYCkBogAUGABWoiAiABQZAaahCRBiADIAEoAoQFIAEoAogFEJIGIAIQpg8gASABKAJINgKIBSABIAEpAkA3A4AFIBMgAkEFEJMGIAAQWgwuCyABQeAVaiIDEI8GAkAgL0IBUQRAIAFBgAVqIAFBmA1qIgBB0AD8CgAAQQEhAiADQQEQmQYgAyAAELMGIAMgASkDwAUQnAYgASABKQPQDTcDWCABIAEpA8gNNwNQIAEgASkDwA03A0ggASABKQO4DTcDQCADIAFBQGsiABCfBiABQcgFaiEDAn8CQCABKALIBUUNACAAIAMQtAYgASgCQEUNACABIAEpAkA3A5AaIAEgASkCSCIvNwOYGiABKAKUGiECIC+nDAELIAFBADYCnBogAUIBNwKUGiABQYTzwgA2ApAaQQALIQAgAUHgFWogAiAAEJIGIAFBkBpqEHMgAxBxDAELIAFB4BVqQQAQmQYLIAEgASgC6BU2AogFIAEgASkC4BU3A4AFIBMgAUGABWpBABCTBgwtCyAFQQRHBEAgAUEAOgCABSABIAU2AoQFIAFBQGsgAUGABWoiABCyBiAAEI4BIAEgASgCSDYCiAUgASABKQJANwOABSATIABBBBCT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ELoNIAQgCyAHELoNIAUgAyAEEM0NIAAgAikD+AM3A1ggACACKQPwAzcDUCAAIAIpA+gDNwNIIAAgAikD4AM3A0AgAkHABGokAAtlAQN/IAAgASgCECICIAEoAhRJBH8gASACQQFqNgIQIAEoAgAgASgCCCACQYgCbGoiAUEEaiEEIABBgQI2AgwgACAENgIIIABBCDYCBCAAIAEoAgA2AhAgAkGABmxqBUEACzYCAAvUAQEIfyMAQRBrIgIkACACIAAgAUEBdiIDIANBoJnDABCfCiACKAIEIQQgAigCACEHIAIgACABaiADayADIANBsJnDABCfCiACKAIEIQYgAigCACEIQQAhASADQQFrIgMhAAJAAkADQCAAQX9GDQEgASAERg0CIAMgBkkEQCABIAdqIgUtAAAhCSAFIAAgCGoiBS0AADoAACAFIAk6AAAgAEEBayEAIAFBAWohAQwBCwsgACAGQdCZwwAQ6BEACyACQRBqJAAPCyAEIARBwJnDABDoEQALtwEBAn8jAEHQAGsiAiQAIAJBKGoiAyABELwKIAACfkIBIAItAChBAUYNABogAiACKQBBNwMgIAIgAikAOTcDGCACIAIpADE3AxAgAiACKQApNwMIIwBBIGsiASQAIAEgAkEIahDmCCADIAEQig4gAUEgaiQAQgEgAi0ASEEBRw0AGiAAIAIpA0A3AyAgACACKQM4NwMYIAAgAikDMDcDECAAIAIpAyg3AwhCAAs3AwAgAkHQAGokAAs+AQF/IwBBIGsiASQAIAFCADcDGCABQgA3AxAgAUIANwMIIAFCADcDACAAIAEQqwwgAUEgaiQAQf8BcRCuDgvMAwIHfwJ+IwBB0ABrIgIkACACQShqIgYgARC8CiAAAn5CASACLQAoQQFGDQAaIAIgAikAQTcDICACIAIpADk3AxggAiACKQAxNwMQIAIgAikAKTcDCCMAQSBrIgEkACABIAJBCGoQ5ggjAEEgayIEJAAgBEG4z8QAKQMANwMYIARBsM/EACkDADcDECAEQajPxAApAwA3AwggBEGgz8QAKQMANwMAIwBBEGsiBSQAA0AgA0EgRwRAQgAgASADaikDACIKIAlCP4giCVQgAyAEaikDACAKIAl9VnKtfSEJIANBCGohAwwBCwsgBUEIaiAEQQRBBEHAz8QAELYNIAUoAgggBSgCDBDJCiEDIAUgAUEEQQRB0M/EABC2DSAFKAIAIAUoAgQQyQohByAJELEOIQggBUEQaiQAIAYgCCAHQf8BcUEBc3EgA0H/AXFyEK4OOgAgIAYgASkDGDcDGCAGIAEpAxA3AxAgBiABKQMINwMIIAYgASkDADcDACAEQSBqJAAgAUEgaiQAQgEgAi0ASEEBRw0AGiAAIAIpA0A3AyAgACACKQM4NwMYIAAgAikDMDcDECAAIAIpAyg3AwhCAAs3AwAgAkHQAGokAAvWAQICfwF+IwBBIGsiAkIANwMYIAJCADcDECACQgA3AwggAkIANwMAIAFBGGohA0EAIQEDQCABQSBGRQRAIAEgAmogAykAACIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwMAIAFBCGohASADQQhrIQMMAQsLIAAgAikDGDcDGCAAIAIpAxA3AxAgACACKQMINwMIIAAgAikDADcDAAs6ACAAAn8gASkDAEIBUQRAIABBCGogAUEIakEw/AoAACACEOgHQQAMAQsgACACKQIANwIEQQELNgIACxIAIAAtAABBAU0EQCAAEN8ICwtJAQF/IwBBwAFrIgIkAAJAIAEpAwBCAVEEQCACIAFBCGpBwAH8CgAAIAAgAhDqBwwBCyAAQZCNwwBBkAH8CgAACyACQcABaiQAC6ABAQJ/IwBBMGsiAiQAAkAgARCcC0UEQCACIAFBMPwKAAAgAiABQeAAaiIDENkOIAAgAkEw/AoAACACIAFBMGpBMPwKAAAgAiABQZABahDZDiAAQTBqIAJBMPwKAAAgAEHgAGogA0Ew/AoAAAwBCyAAQeAAakEAQTD8CwAgAEGwiMQAQTD8CgAAIABBMGpBsIjEAEEw/AoAAAsgAkEwaiQAC0kBAX8jAEGAA2siAiQAAkAgASkDAEIBUQRAIAIgAUEIakGAA/wKAAAgACACEOwHDAELIABB8IrDAEGgAvwKAAALIAJBgANqJAALhAEBAn8jAEHgAGsiAiQAAkAgARCgC0UEQCACIAFB4AD8CgAAIAIgAUHAAWoiAxDICCAAIAJB4AD8CgAAIAIgAUHgAGpB4AD8CgAAIAIgAUGgAmoQyAggAEHgAGogAkHgAPwKAAAgAEHAAWogA0HgAPwKAAAMAQsgABD3CAsgAkHgAGokAAueAQECfyMAQSBrIgMkACADIAEoAggiBDYCCCADIAI2AgwgAiAETQRAAkAgAgRAIAAgARCyASAAIAI2AggMAQsgASgCBCEBIABCADcCCCAAIAE2AgQgAEHQyMUANgIACyADQSBqJAAPCyADQdADNgIcIANB0AM2AhQgAyADQQhqNgIYIAMgA0EMajYCEEGOi8AAIANBEGpB5IbDABDiEQALtAEBA38jAEHwAGsiAiQAIAJBGGoiAyAAEIIKIAIgACgCEDYCECACIAApAgg3AwggAiAAKQIANwMAIAJB0ABqIgQgARCCCiACIAEoAhA2AkggAiABKQIINwNAIAIgASkCADcDOAJ/QQAgAiACQThqENcIIgBB/wFxIgFB/gFGDQAaQQIgAUUNABogAEGAAXFBB3YLQf8BcSIAQQJGBEAgAyAEELEJIQALIAJB8ABqJAAgAEEBcQtaAQF/IwBBMGsiAiQAIAIgACgAEDYCECACIAApAAg3AwggAiAAKQAANwMAIAIgASgAEDYCKCACIAEpAAg3AyAgAiABKQAANwMYIAIgAkEYahCuCSACQTBqJAALHQACQCABRQ0AIAEgABCDBiIADQAgARDaEQALIAALiwEBAX8gACgCACICBH8gAgUjAEEgayICJAAgAiABKAIAIgEoAhwgASgCKBC0EEEBQSAQ8AciASACKQAYNwAYIAEgAikAEDcAECABIAIpAAg3AAggASACKQAANwAAIAAgACgCACIAIAEgABs2AgACQCAARQRAIAEhAAwBCyABEPIHCyACQSBqJAAgAAsLIwEBfyMAQRBrIgEkACABIAA2AgwgAUEMahD0ByABQRBqJAALkgIBA39B0PPFACgCACIBRQRAIwBBMGsiACQAIABBADYCLEEBQSAQ8AciAUGon8MAKQAANwAYIAFBoJ/DACkAADcAECABQZifwwApAAA3AAggAUGQn8MAKQAANwAAIAAgACgCLCICIAEgAhs2AiwgAgRAIAAgATYCACAAEPQHCyAAQQA6ACggAEEANgIgIABCATcCGCAAQf/1wAA2AhQgAEHopsMANgIQIAAgACgCLDYCJCAAQgA3AgggAEKAgICAEDcCACAAEPUHIQFBBEEEEPAHIgIgATYCAEHQ88UA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IA5CgICA+A+DQgiGhIQgDkIIiEKAgID4D4MgDkIYiEKAgPwHg4QgDkIoiEKA/gODIA5COIiEhIQ3AwAgB0EBayEHIAlBCGohCSAEIAprIQQMAQsLQf8BIQQgA0E/cSICRQ0AIANBBnYiAUEETw0BIAggAUEDdGoiASABKQMAQn9BwAAgAmutiIM3AwALIAZBMGokACAEDAELIAFBBEGU58QAEOgRAAtB/wFxQf8BRwRAIAVBAjYCPCAFQQI2AjQgBUGMp8MANgIwIAUgBUEMajYCOEHdjMAAIAVBMGpB3LrEABDiEQALIAAgBSkDKDcDGCAAIAUpAyA3AxAgACAFKQMYNwMIIAAgBSkDEDcDACAFQUBrJAALlgQCA38EfiMAQSBrIgMkACADQeiKwwApAwA3AxggA0HgisMAKQMANwMQIANB2IrDACkDADcDCCADQdCKwwApAwA3AwAgAxDTCCECIANBADoAACADIAJBA3YgAkEHcUEAR2o2AgQgAyABQSAgAxDUCCIBIAFBIEsbIAIQ1QhBACEBIwBBQGoiAiQAIAJCADcDOCACQgA3AzAgAkIANwMoIAJCADcDIANAIAFBIEcEQCACQSBqIAFqIAEgA2opAwAiBiAFQj+IIgV9IgcgAUGgz8QAaikDACIIfTcDAEIAIAcgCFQgBSAGVnKtfSEFIAFBCGohAQwBCwsgAiACKQM4NwMYIAIgAikDMDcDECACIAIpAyg3AwggAiACKQMgNwMAIAVCP4inEK4OELsNIQQjAEFAaiIBJAAgASADKQMYNwM4IAEgAykDEDcDMCABIAMpAwg3AyggASADKQMANwMgIAFBIGogAiAEELYOIAEgASkDODcDGCABIAEpAzA3AxAgASABKQMoNwMIIAEgASkDIDcDACABQgA3AzggAUIANwMwIAFCADcDKCABQgA3AyBBACEEA0AgBEEgRwRAIAFBIGogBGogASAEaikDADcDACAEQQhqIQQMAQsLIAAgASkDODcDGCAAIAEpAzA3AxAgACABKQMoNwMIIAAgASkDIDcDACABQUBrJAAgAkFAayQAIANBIGokAAsNACAAQRQgAUEUEMgRC0gBAX4QlgEhAiAAIAEpAxA3AxAgACABKQMINwMIIAAgASkDADcDACABQdCJwwApAwA3AwAgAUHYicMAKQMANwMIIAEgAjcD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CwALCyAONgIAIAZBkAlqJAAgDUEQaiQAIAJBnANqIgYgBygCHDYCCCAGIAcpAhQ3AgAgB0EgaiQAIAIgAigCpAMEfiACQdAFaiACKAKgA0GAA/wKAABCAQVCAAs3A8gFIAJBqANqIgYgAkHIBWoiBRDrByACIAJBnANqIg1B4JHDABD9CCACKAIEIQ4gAigCACEHIAUQ9wggAkHQCGoiCiAHIAcgDkGAA2xqIAUgAkEUahD+CCAGIAoQ/wggASAGQaAC/AoAACANEIAJIAJB8ApqJAAgECAPQaAC/AoAACAPIBAgARDsCSAVQQFrIRUgEyARayETIAQgHWohBCAUIBJrIRQgAyAeaiEDDAELCyAAIA9BoAL8CgAAIBBBwARqJAAgD0GgAmokAAwBCyAAEPcICyAJQUBrJAALMwEBfyMAQaACayIDJAAgAyABQaAC/AoAACADIAIQ0AwgACADQaAC/AoAACADQaACaiQACzkCAn8BfkGAAiECQRghAQNAIAFBeEcEQCACIAAgAWopAwAiA3mnayECIAFBCGshASADUA0BCwsgAgseACABBEAgACABbiICIAAgASACbEdqDwsgAhCAEgALwgICBX8BfiMAQZABayICJAAgAkEgaiIFIAEQxggCQCACKQMgQgFRBEAgAikDKCEHIAJBFGoiAyABEMcIIAJBCGpBBCACKAIUQQFqIgRBfyAEGyIEIARBBE0bQQhBCBDxBSACKAIIIQQgAigCDCIGIAc3AwAgAkEBNgIcIAIgBjYCGCACIAQ2AhQgBSABQfAA/AoAACADIQEjAEEgayIDJAADQAJAIAMgBRDGCCADKQMAQgFSDQAgAykDCCEHIAEoAggiBCABKAIARgRAIANBFGogBRDHCCABIAMoAhRBAWoiBkF/IAYbELoICyABKAIEIARBA3RqIAc3AwAgASAEQQFqNgIIDAELCyADQSBqJAAgACACKAIcNgIIIAAgAikCFDcCAAwBCyAAQQA2AgggAEKAgICAgAE3AgALIAJBkAFqJAALMwEBfyMAQZABayIDJAAgAyABQZAB/AoAACADIAIQ+wggACADQZAB/AoAACADQZABaiQACzMBAX8jAEGgAmsiAyQAIAMgAUGgAvwKAAAgAyACEP8IIAAgA0GgAvwKAAAgA0GgAmokAAuAAQEEfyABEMUMIQQCf0EA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IAMpAxA3AzAgAiADKQMYNwM4IAMQxA4gAiAAKQMYNwOYASACIAApAxA3A5ABIAIgACkDCDcDiAEgAiAAKQMANwOAASACIAMpAwA3A6ABIAIgAykDCDcDqAEgAiADKQMQNwOwASACIAMpAxg3A7gBIAIgASkDODcD+AEgAiABKQMwNwPwASACIAEpAyg3A+gBIAIgASkDIDcD4AEgAiABKQMANwPAASACIAEpAwg3A8gBIAIgASkDEDcD0AEgAiABKQMYNwPYASACQUBrIgMgAkGAAWogAkHAAWoQvQ4gAiABKQM4NwO4AiACIAEpAzA3A7ACIAIgASkDKDcDqAIgAiABKQMgNwOgAiACIAEpAwA3A8ACIAIgASkDCDcDyAIgAiABKQMQNwPQAiACIAEpAxg3A9gCIAJBgAJqIAIgAkGgAmoQvQ4gAiACKQOYAjcDeCACIAIpA5ACNwNwIAIgAikDiAI3A2ggAiACKQOAAjcDYCAAIANBwAD8CgAAIAJB4AJqJAALjgECAn8DfiADQfj///8BcQRAIAAgACADQQN2IgNB4ABsIgVqIAAgA0GoAWwiBmogAyAEELYJIQAgASABIAVqIAEgBmogAyAEELYJIQEgAiACIAVqIAIgBmogAyAEELYJIQILIAAgAiABIAApAxAiByABKQMQIghUIgAgCCACKQMQIglUcxsgACAHIAlUcxsLjQECAn8DfiADQfj///8BcQRAIAAgACADQQN2IgNBBnQiBWogACADQfAAbCIGaiADIAQQtwkhACABIAEgBWogASAGaiADIAQQtwkhASACIAIgBWogAiAGaiADIAQQtwkhAgsgACACIAEgACkDACIHIAEpAwAiCFQiACAIIAIpAwAiCVRzGyAAIAcgCVRzGwuOAQICfwN+IANB+P///wFxBEAgACAAIANBA3YiA0GgAWwiBWogACADQZgCbCIGaiADIAQQuAkhACABIAEgBWogASAGaiADIAQQuAkhASACIAIgBWogAiAGaiADIAQQuAkhAgsgACACIAEgACkDICIHIAEpAyAiCFQiACAIIAIpAyAiCVRzGyAAIAcgCVRzGwuGAQECfyADQfj///8BcQRAIAAgACADQQN2IgNBwAJsIgVqIAAgA0GwBGwiBmogAyAEELkJIQAgASABIAVqIAEgBmogAyAEELkJIQEgAiACIAVqIAIgBmogAyAEELkJIQILIAAgARCqCSIDIAAgAhCqCUYEfyACIAEgASACEKoJIANzGwUgAAsLlQECAn8DfiADQfj///8BcQRAIAAgACADQQN2IgNBBXQiBWogACADQThsIgZqIAMgBBC6CSEAIAEgASAFaiABIAZqIAMgBBC6CSEBIAIgAiAFaiACIAZqIAMgBBC6CSECCyAAIAIgASAAKQMAQjyIIgcgASkDAEI8iCIIVCIAIAggAikDAEI8iCIJVHMbIAAgByAJVHMbC4YBAQJ/IANB+P///wFxBEAgACAAIANBA3YiA0HQAGwiBWogACADQYwBbCIGaiADIAQQuwkhACABIAEgBWogASAGaiADIAQQuwkhASACIAIgBWogAiAGaiADIAQQuwkhAgsgACABEK4JIgMgACACEK4JRgR/IAIgASABIAIQrgkgA3MbBSAACwuGAQECfyADQfj///8BcQRAIAAgACADQQN2IgNBwAFsIgVqIAAgA0HQAmwiBmogAyAEELwJIQAgASABIAVqIAEgBmogAyAEELwJIQEgAiACIAVqIAIgBmogAyAEELwJIQILIAAgARCxCSIDIAAgAhCxCUYEfyACIAEgASACELEJIANzGwUgAAsLhgEBAn8gA0H4////AXEEQCAAIAAgA0EDdiIDQeABbCIFaiAAIANBiANsIgZqIAMgBBC9CSEAIAEgASAFaiABIAZqIAMgBBC9CSEBIAIgAiAFaiACIAZqIAMgBBC9CSECCyAAIAEQ7gciAyAAIAIQ7gdGBH8gAiABIAEgAhDuByADcxsFIAALC4YBAQJ/IANB+P///wFxBEAgACAAIANBA3YiA0HgAGwiBWogACADQagBbCIGaiADIAQQvgkhACABIAEgBWogASAGaiADIAQQvgkhASACIAIgBWogAiAGaiADIAQQvgkhAgsgACABEO8HIgMgACACEO8HRgR/IAIgASABIAIQ7wcgA3MbBSAACwuuAQICfwF+IwBBIGsiAiQAIAEpAwAiBCABQRBrIgMpAwBUBEAgAiAENwMAIAIgASkDCDcDCCACQQE2AhwgAiACNgIUA0ACQCADIgFBGGogASkDCDcDACABQRBqIAEpAwA3AwAgACABRg0AIAIpAwAgAUEQayIDKQMAVA0BCwsgAiABNgIYIAJBFGoiACgCCEEEdCIBBEAgACgCBCAAKAIAIAH8CgAACwsgAkEgaiQAC7ABAgJ/AX4jAEFAaiICJAAgASkDICABQQhrKQMAVARAIAJBCGoiAyABQSj8CgAAIAJBATYCPCABQTBrIQEgAiADNgI0IAIpAyghBANAAkAgASIDQTBqIAFBCGoiAUEo/AoAACAAIAFGDQAgA0EoayEBIAQgAykDAFQNAQsLIAIgA0EIajYCOCACQTRqIgAoAghBKGwiAQRAIAAoAgQgACgCACAB/AoAAAsLIAJBQGskAAubAQECfyMAQeAAayICJAAgASABQdAAaxCqCQRAIAJBBGoiAyABQdAA/AoAACACQQE2AlwgAiADNgJUA0ACQCABIAFB0ABrIgFB0AD8CgAAIAIgATYCWCAAIAFGDQAgAkEEaiABQdAAaxCqCQ0BCwsgAkHUAGoiACgCCEHQAGwiAQRAIAAoAgQgACgCACAB/AoAAAsLIAJB4ABqJAALpgEBAn8jAEEgayICJAAgASABQRRrIgMQrgkEQCACIAEoABA2AhggAiABKQAINwMQIAIgASkAADcDCANAAkAgAyIBQSRqIAEoABA2AAAgAUEcaiABKQAINwAAIAFBFGogASkAADcAACAAIAFGDQAgAkEIaiABQRRrIgMQrgkNAQsLIAEgAigCGDYAECABIAIpAxA3AAggASACKQMINwAACyACQSBqJAALYQECfyMAQTBrIgIkACABIAFBMGsiAxCxCQRAIAIgAUEw/AoAAANAAkAgAyIBQTBqIAFBMPwKAAAgACABRg0AIAIgAUEwayIDELEJDQELCyABIAJBMPwKAAALIAJBMGokAAtqAQJ/IwBBQGoiAiQAIAEgAUE4ayIDEO4HBEAgAkEIaiABQTj8CgAAA0ACQCADIgFBOGogAUE4/AoAACAAIAFGDQAgAkEIaiABQThrIgMQ7gcNAQsLIAEgAkEIakE4/AoAAAsgAkFAayQAC6YBAQJ/IwBBIGsiAiQAIAEgAUEYayIDEO8HBEAgAiABKQIQNwMYIAIgASkCCDcDECACIAEpAgA3AwgDQAJAIAMiAUEoaiABKQIQNwIAIAFBIGogASkCCDcCACABQRhqIAEpAgA3AgAgACABRg0AIAJBCGogAUEYayIDEO8HDQELCyABIAIpAxg3AhAgASACKQMQNwIIIAEgAikDCDcCAAsgAkEgaiQAC/IBAgd/An4gACAAKQMQIgkgACkDACIKVEEEdGoiAyAAQTBBICAAKQMwIAApAyBUIgQbaiICIAAgCSAKWkEEdGoiBSAAQSBBMCAEG2oiACkDACAFKQMAVCIEGyACKQMAIAMpAwBUIgYbIgcpAwAhCSAAIAUgAiAGGyAEGyIIKQMAIQogASACIAMgBhsiAikDCDcDCCABIAIpAwA3AwAgASAIIAcgCSAKViICGyIDKQMINwMYIAEgAykDADcDECABIAcgCCACGyICKQMINwMoIAEgAikDADcDICABIAUgACAEGyIAKQMINwM4IAEgACkDADcDMAvSAQIHfwJ+IAAgACkDSCIJIAApAyAiClRBKGxqIgUgAEH4AEHQACAAKQOYASAAKQNwVCIDG2oiAiAAIAkgClpBKGxqIgQgAEHQAEH4ACADG2oiACkDICAEKQMgVCIDGyACKQMgIAUpAyBUIgYbIgcpAyAhCSAAIAQgAiAGGyADGyIIKQMgIQogASACIAUgBhtBKPwKAAAgAUEoaiAIIAcgCSAKViICG0Eo/AoAACABQdAAaiAHIAggAhtBKPwKAAAgAUH4AGogBCAAIAMbQSj8CgAAC8oBAQh/IABB0ABqIAAQqgkhAiAAQfABQaABIABB8AFqIABBoAFqEKoJIgMbaiEEIABBoAFB8AEgAxtqIgUgACACQQFzQdAAbGoiAyAEIAQgACACQdAAbGoiABCqCSICGyAFIAMQqgkiBhsiByAAIAQgAyAGGyACGyIIEKoJIQkgASAEIAAgAhtB0AD8CgAAIAFB0ABqIAcgCCAJG0HQAPwKAAAgAUGgAWogCCAHIAkbQdAA/AoAACABQfABaiADIAUgBhtB0AD8CgAAC4kCAQh/IABBFGogABCuCSECIABBPEEoIABBPGogAEEoahCuCSIDG2ohBCAAQShBPCADG2oiBSAAIAJBAXNBFGxqIgMgBCAEIAAgAkEUbGoiABCuCSICGyAFIAMQrgkiBhsiByAAIAQgAyAGGyACGyIIEK4JIQkgASAEIAAgAhsiACgAEDYAECABIAApAAg3AAggASAAKQAANwAAIAEgByAIIAkbIgAoABA2ACQgASAAKQAINwAcIAEgACkAADcAFCABIAggByAJGyIAKAAQNgA4IAEgACkACDcAMCABIAApAAA3ACggASADIAUg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IgUpAyBaDQIgBCAFQQoQuQ4gAyEEDAALAAsLIAZBMGokAAuWAQIDfwR+IAAoAggoAgAgASgCDCIEQRhsaiICKQMQIQUgAikDCCEGIAEoAggiAykDECEHIAAoAgQpAxAhCCABKAIAIgAgAikDADcDACAAIAY3AwggACAFNwMQIAIgAykDADcDACACIAMpAwg3AwggAiADKQMQNwMQIAEgBCAHIAhYajYCDCABIAM2AgAgASADQRhqNgIIC5YBAgN/BH4gACgCCCgCACABKAIMIgRBGGxqIgIpAxAhBSACKQMIIQYgACgCBCkDECEHIAEoAggiACkDECEIIAEoAgAiAyACKQMANwMAIAMgBjcDCCADIAU3AxAgAiAAKQMANwMAIAIgACkDCDcDCCACIAApAxA3AxAgASAEIAcgCFZqNgIMIAEgADYCACABIABBGGo2AggLfgIDfwN+IAAoAggoAgAgASgCDCIEQQR0aiIDKQMIIQUgASgCCCICKQMAIQYgACgCBCkDACEHIAEoAgAiACADKQMANwMAIAAgBTcDCCADIAIpAwg3AwggAyACKQMANwMAIAEgBCAGIAdYajYCDCABIAI2AgAgASACQRBqNgIIC34CA38DfiAAKAIIKAIAIAEoAgwiA0EEdGoiAikDCCEFIAAoAgQpAwAhBiABKAIIIgApAwAhByABKAIAIgQgAikDADcDACAEIAU3AwggAiAAKQMINwMIIAIgACkDADcDACABIAMgBiAHVmo2AgwgASAANgIAIAEgAEEQajYCCAtkAgJ/An4gASgCCCICKQMgIQQgACgCBCkDICEFIAEoAgAgACgCCCgCACABKAIMIgBBKGxqIgNBKPwKAAAgAyACQSj8CgAAIAEgACAEIAVYajYCDCABIAI2AgAgASACQShqNgIIC2QCAn8CfiAAKAIEKQMgIQQgASgCCCICKQMgIQUgASgCACAAKAIIKAIAIAEoAgwiAEEobGoiA0Eo/AoAACADIAJBKPwKAAAgASAAIAQgBVZqNgIMIAEgAjYCACABIAJBKGo2AggLYQEDfyAAKAIEIAEoAggiAhCqCSEDIAEoAgAgACgCCCgCACABKAIMIgBB0ABsaiIEQdAA/AoAACAEIAJB0AD8CgAAIAEgACADQQFzajYCDCABIAI2AgAgASACQdAAajYCCAteAQN/IAEo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AAAgAEHgAGogBUHgAPwKAAAgBEHwA2oiARDoDiAAQcABaiABQeAA/AoAACABEOgOIABBoAJqIAFB4AD8CgAACyAEQfAMaiQACw4AIAAgASACQcABEKQSC3YBA38jAEHQAWsiAyQAIAMgACkCADcDACADIAApAgg3AwggAygCBCEEIAMoAgwhAANAIAAgBEZFBEAgA0EQaiIFIABBwAFrIgBBwAH8CgAAIAEgBRCICiACIAEQiAoMAQsLIAMgADYCDCADEIkKIANB0AFqJAALDgAgACABIAJBgAMQpBILuwEBA38jAEGQA2siAyQAIAMgACkCADcDACADIAApAgg3AwggAygCBCEEIAMoAgwhAANAIAAgBEcEQCADQRBqIgUgAEGAA2siAEGAA/wKAAAgASAFEIoKIAIgARCKCgwBCwsgAyAANgIMIwBBEGsiASQAIAEgAzYCDCMAQRBrIgAkACAAIAFBDGooAgAiAigCADYCDCAAIAIoAgg2AgggAEEIahCACSAAQRBqJAAgAUEQaiQAIANBkANqJAALogIBBH8jAEHgAWsiAyQAIAJBoAFsIgRBgAFqIQICQCABKAIEIgUgAkkgBEH/fktyRQRAIARBoAFqIgYgAkkgBSAGSXINASADQeAAaiABKAIAIgEgBGoQpAogAAJ/IAMoAmAiBEF+RwRAIAAgAykCZDcCCCAAIAQ2AgRBAQwBCyADKAJoIQQgAygCZCEFIAMgASACaiIBKQAYNwDYASADIAEpABA3ANABIAMgASkACDcAyAEgAyABKQAANwDAASADIAVBMPwKAAAgA0EwaiAEQTD8CgAAIANB4ABqIgEgA0HgAPwKAAAgAEEBaiABQYAB/AoAAEEACzoAACADQeABaiQADwsgBCACIAVBjKLDABDmEQALIAIgBiAFQZyiwwAQ5hEAC8kCAgV/AX4jAEGgA2siAyQAIAJBoAJsIgRBgAJqIQICQCABKAIEIgUgAkkgBEH/fUtyRQRAIARBoAJqIgYgAkkgBSAGSXINASADIAEoAgAiASAEahClCiAAAn8gAygCACIERQRAIAMpAgQhCCAAIAMoAgw2AgwgACAINwIEQQEMAQsgAygCDCEFIAMoAgghBiADKAIEIQcgAyABIAJqIgEpABg3ANgBIAMgASkAEDcA0AEgAyABKQAINwDIASADIAEpAAA3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QegCaiICIAFB2ABqIAFBCGoQ1g8gAUGoAmogBSACEL8LDAULIAEgASgC8AE2AmAgASABKQLoATcDWCABQegCaiICIAFB2ABqIAFBCGoQ1Q8gAUGoAmpBAiAFayACEL8LDAQLIAFB3OHDACkCADcDsAIgAUHU4cMAKQIANwOoAgwCCyABIAEoAvABNgJgIAEgASkC6AE3A1ggAUHoAmoiAiABQQhqIAFB2ABqEKkPIAFBqAJqIAUgAhC/CwwCCyABIAEoAvABNgKwAiABIAEpAugBNwOoAiABIAEvAPUBOwC1AiABIAEtAPcBOgC3AiABQQIgAms6ALQCDAELIAFB6AFqENoICyABQdgAaiABQagCahDuDAJAAkACQAJAIAEtAGQEQCABIAEoAmA2AvACIAEgASkCWDcD6AIMAQsgASABKQJcNwPoAiABIAEoAmQ2AvACIAEoAlgiAkF+Rw0BCyABIAEoAvACNgLAAiABIAEpA+gCNwO4AiABQQIgAS0ApAJrOgCkAiABIAEpApgCNwPIAiABIAEpAqACNwPQAiABQdgAaiABQZgCahDuDAJAIAEtAGQEQCABIAEoAmA2AvACIAEgASkCWDcD6AIMAQsgASABKQJcNwPoAiABIAEoAmQ2AvACIAEoAlgiAkF+Rw0CCyABIAEoAvACNgLgAiABIAEpA+gCNwPYAiABLQC0AiECIAFB2ABqIgUgAUG4AmoQpgwgASABKQNwNwCHAyABIAEpA2g3AP8CIAEgASkDYDcA9wIgASABKQNYNwDvAiABLQDUAiEHIAFBkANqIAFB2AJqEKYMIAEgASkDqAM3AHcgASABKQOgAzcAbyABIAEpA5gDNwBnIAEgASkDkAM3AF8gBCACQQJGOgAAIARBAWogAUHoAmpBJ/wKAAAgBCAHQQJGOgAoIARBKWogBUEn/AoAACABQcgCahDaCCABQagCahDaCCABQbgBahDaCCABQagBahDaCCABQZgBahDaCCABQcgAahDaCCABQThqENoIIAFBKGoQ2gggAUEYahDaCCABQQhqENoIIAFBsANqJAAMAgsgASACNgJYIAEgASkD6AI3AlwgASABKALwAjYCZEH8pcMAQSsgAUHYAGpByKbDAEHov8QAEPwRAAsgASACNgJYIAEgASkD6AI3AlwgASABKALwAjYCZEH8pcMAQSsg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CEEBcQRAIAUgAikDGDcDaCAFIAIpAxA3A2AgBSACKQMINwNYIAUgAikDADcDUCAFQfAAaiAFQRBqQcAA/AoAACAFQQA6ALABIAAgASAAKAIAIAFqLQAAIAenQRl2EPkFIAAoAgAgAUGYf2xqQegAayAGQegA/AoAAAwBCyAAKAIAIAFBmH9saiIAQcgAayAFQRBqQcAA/AoAACAAQQhrQQA6AAALIAVBwAFqJAALZgIBfwF+AkAgASABQRBqIAIQ/gciBCACEIQIIgMEQCAAIAE2AgwgACADNgIIQQAhAQwBCyAAQQhqIgMgAigAEDYAECADIAIpAAg3AAggAyACKQAANwAACyAAIAE2AhwgACAENwMAC/sBAgN/An4jAEEwayICJAACQCAAKAIcIgEEQBCWASEFIAApAwAhBCACQdCJwwApAwA3AyAgAkHYicMAKQMANwMoIAIgACgCGDYCGCACIAApAxA3AxAgAiAAKQMINwMIIAEgBBAwIQAgASgCACEDAkAgASgCCA0AIAAgA2otAABBAXFFDQAgAiABIAFBEGoQnQggASAEEDAhACABKAIAIQMLIAEgACAAIANqLQAAIASnQRl2EPkFIAEoAgAgAEFIbGoiAEE4ayACQQhqQSj8CgAAIABBCGtBADoAACAAQRBrIAU3AwAMAQsgACgCCCEACyACQTBqJAAgAEEgawsKACAAKAIAQXxxC30BAn8jAEFAaiIDJAAgAyACKAAQNgI4IAMgAikACDcDMCADIAIpAAA3AyggA0EIaiIEIAFBGGogA0EoahDaCiAEENsKIQQgACABQcgAajYCBCAAIAQ2AgAgACACKAAQNgAYIAAgAikACDcAECAAIAIpAAA3AAggA0FAayQAC64DAgR/AX4jAEHABGsiBCQAIAQgAigAEDYCmAMgBCACKQAINwOQAyAEIAIpAAA3A4gDIARBCGogASAEQYgDahDmCiABQcgAaiEFIAACfiAAAn8CQAJAAkAgBCgCJARAIAUgAhDnCiIGIANFcg0BDAMLIAQoAhAiBkG4AWshASADRQ0BIAZBCGstAAANASAFIAIQ5wpFDQIMAQsgBEGIA2oiByABQYgBaiACEOgKIAQoApADIgEgBCkDiAMiCEJ/UQ0CGiAEQYQBaiIDIARBlANqQcwA/AoAACAEIAE2AjAgBCAINwMoIARB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B0HQAPwKAAAgAxBXIANCATcDACAKIAFB0AD8CgAADAELIANB6AJqEHELIAAgA0HYAPwKAAALIANB8AJqJAALxAECA38BfiMAQUBqIQICQCABKQMAQgFRBEAgASkDSCEFIAEoAlAiBARAIAQgBCgCACIDQQFqNgIAIANBAEgNAgsgAiABQQhqIgMpAxg3AxggAiADKQMQNwMQIAIgAykDCDcDCCACIAMpAwA3AwAgAiABKQMoNwMgIAIgASkDMDcDKCACIAEpAzg3AzAgAiABKQNANwM4IABBCGogAkHAAPwKAAAgACAENgJQIAAgBTcDSCAAQgE3AwAPCyAAQgA3AwAPCwALlgECAn8BfiMAQdABayIDJAAgACkDACEEIAAoAhwhAiADIAAoAhg2AhAgAyAAKQMQNwMIIAMgACkDCDcDACADQRhqIAFBuAH8CgAAIAIgBBAwIQACQCACKAIIDQAgAigCACAAai0AAEEBcUUNACACIAJBEGoQowggAiAEEDAhAAsgAiAEIAAgAxDYCiADQdABaiQAQbgBawsbACAAQaifwwBBoJ/DAEGYn8MAQZCfwwAQlxILFgAgACgCeCIAQdgAahBXIABCADcDWAv7AQIDfwF+IwBBIGsiASQAIAAoAgAiAEEBOgAYIAAoAgwhAiAAKAIAIgMpAwAhBCAAKAIEIQAgASADNgIYIAEgACADakEBajYCFCABIANBCGo2AhAgASAEQn+FQoCBgoSIkKDAgH+DNwMIA0AgASABQQhqECMgASgCAEEBRgRAIAEoAhggASgCBEGYf2xqQShrIgBCADcDACAAQgA3AwggAEIANwMQIABCADcDGCACQQFrIQIMAQsgAgRAIAEgASgCGEHABms2AhggASABKAIQIgBBCGo2AhAgASAAKQMAQn+FQoCBgoSIkKDAgH+DNwMIDAELCyABQSBqJAALCwAgAEEBQRQQrQ0LTwECfyMAQRBrIgEkACABIAA2AgwjAEEQayIAJAAgACABQQxqKAIAIgIoAgA2AgwgACACKAIINgIIIABBCGoQ7gogAEEQaiQAIAFBEGokAAspAQF/IAEgAhCBCCIDBEAgACADQdgAahDpCg8LIAAgAUGIAWogAhDoCgv6BAIJfwF+IwBBIGsiBSQAIAAQ4wogAEEYahDkCiAAKAI8BEAgAEEwahDXCgsgACgC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AiADNgI4IAIgAikDCDcCQCACIAIpAxA3AkggAiACKQMYNwJQIAIgBDYCWCAAIAkQMCEDAkAgACgCCA0AIAAoAgAgA2otAABBAXFFDQAgACAHEDggACAJEDAhAwsgACAJIAMgAkE4ahCHCwwBCwALIAFBIGoiABDACgRAIABBqJ/DACkAADcAGCAAQaCfwwApAAA3ABAgAEGYn8MAKQAANwAIIABBkJ/DACkAADcAAAsgAkHgAGokAAswACAAIAIgACgCACACai0AACABp0EZdhD5BSAAKAIAIAJBXGxqQSRrIANBJPwKAAALIgAgACABEKwIIgFBuAFrNgIEIAAgAUHQAWtBACABGzYCAAsgACAAIAEQrwgiAUEgazYCBCAAIAFBOGtBACABGzYCAAtmAgF/AX4CQCABIAFBEGogAhD+ByIEIAIQgAgiAwRAIAAgATYCDCAAIAM2AghBACEBDAELIABBCGoiAyACKAAQNgAQIAMgAikACDcACCADIAIpAAA3AAALIAAgATYCHCAAIAQ3AwALrwICA38CfiMAQTBrIgIkAAJAIAAoAhwiAQRAEJYBIQUgACkDACEEIAJB0InDACkDADcDICACQdiJwwApAwA3AyggAiAAKAIYNgIYIAIgACkDEDcDECACIAApAwg3AwggASAEEDAhACABKAIAIQMCQCABKAIIDQAgACADai0AAEEBcUUNACACIAEgAUEQahCfCCABIAQQMCEAIAEoAgAhAwsgASAAIAAgA2otAAAgBKdBGXYQ+QUgASgCACAAQah/bGoiAEHYAGsgAkEIakEo/AoAACAAQQhrQQA2AgAgAEEQa0KAgICAgAE3AwAgAEEYa0IINwMAIABBIGtCADcDACAAQShrQoCAgICAATcDACAAQTBrIAU3AwAMAQsgACgCCCEACyACQTBqJAAgAEFAagtYAgF/An4gACkDACIDIAEpAwAiBINQBEAgAyAEhKcPC0EBIQICQCAAQQhqIAFBCGoQzwFFDQAgACkDSCABKQNIUg0AIABBKGogAUEoahDPAUEBcyECCyACC9cBAgN/AX4jAEGAAWsiBCQAIAFBEGoiBSACEP4HIQcgBCACNgJ8IAEgBRCbCCAEIAE2AgwgBCAEQfwAajYCCCAEIAEgByAEQQhqIgZB7IjDABDhBSAEKAIEIQUCQCAEKAIAQQFxBEAgBCACKAAQNgIYIAQgAikACDcDECAEIAIpAAA3AwggBEEgaiADQdgA/AoAACABIAcgBSAGEJILGiAAQn83AwAMAQsgACABKAIAIAVBkH9sakHYAGsiAEHYAPwKAAAgACADQdgA/AoAAAsgBEGAAWokAAvCAgIGfwR+IwBBIGsiAyQAIAFBEGogAhD+ByEJIAMgAjYCDCADIAE2AhQgCUIZiEL/AINCgYKEiJCgwIABfiELIAEoAgQiBSAJp3EhBCADIANBDGo2AhAgASgCACEGAkADQCADIAQgBmopAAAiCiALhSIMQn+FIAxCgYKEiJCgwIABfYNCgIGChIiQoMCAf4M3AxgCQANAIAMgA0EYahAjIAMoAgBBAUcNASADQRBqIAMoAgQgBGogBXEiCBCkCEUNAAsgACABNgIMIAAgCTcDAEEAIQEgACAGIAhBSGxqNgIIDAILIAogCkIBhoNCgIGChIiQoMCAf4NQBEAgBCAHQQhqIgdqIAVxIQQMAQsLIAAgCTcDACAAIAIoABA2ABggACACKQAINwAQIAAgAikAADcACAsgACABNgIcIANBIGokAAsRACAAQdCJwwBB2InDABDWEgtEAQF/IAEoAgAhBEEAIQECQCADEOwFRQ0AIAQoAgAtABhBAUYEQCADQSBqEMAKDQELIAIhAQsgACADNgIEIAAgATYCAAuWAQICfwF+IwBB8ABrIgMkACAAKQMAIQQgACgCHCECIAMgACgCGDYCECADIAApAxA3AwggAyAAKQMINwMAIANBGGogAUHYAPwKAAAgAiAEEDAhAAJAIAIoAggNACACKAIAIABqLQAAQQFxRQ0AIAIgAkEQahCbCCACIAQQMCEACyACIAQgACADEJILIANB8ABqJABB2ABrCxMAIAAgASACIANB8ABBkH8Q1RILEAAgACACNgIEIAAgATYCAAvIAgEIfyMAQZABayIEJAAgBCABEMIMIwBB0AJrIgIkACAAEKQMIgEgBBCkDCIDcSEGAkAgASADcg0AIAIgAEHgAGoiCBDECiACQTBqIgcgBEHgAGoiCRDECiACQaACaiIBIABBMPwKAAAgASAHENkOIAJBwAFqIgUgAUEw/AoAACABIARBMPwKAAAgASACENkOIAJB8AFqIgMgAUEw/AoAAEEAIQYgBSADEPgKRQ0AIAMgAEEwakEw/AoAACABIAdBMPwKAAAgASAJENkOIAJBkAFqIgAgAUEw/AoAACADIAAQ2Q4gAkHgAGoiACADQTD8CgAAIAUgBEEwakEw/AoAACABIAJBMPwKAAAgASAIENkOIAMgAUEw/AoAACAFIAMQ2Q4gASAFQTD8CgAAIAAgARD4CiEGCyACQdACaiQAIARBkAFqJAAgBgtOAQN/IwBB4ABrIgIkACACQTBqIgMgAUEwaiIEQTD8CgAAIAMQ3Q4gAiADQTD8CgAAIAQgAkEw/AoAACAAIAFBkAH8CgAAIAJB4ABqJAAL5gECBH8BfiAAKAIIIgNBBU8EQCAAKAIEIQQDQCADQQFNBEAgASAEIAJBKGxqKQMgIgZSBEAgAiABIAZWaiECCyACRQRAQQAPCyAAIAJBAWtBkKDDABCtCw8FIAIgA0EBdiIFIAJqIgIgBCACQShsaikDICABVhshAiADIAVrIQMMAQsACwALAn8gACgCCCICQShsIQMgACgCBCEEA0ACQCADBEAgBCkDICABVA0BIAUhAgtBACACRQ0CGiAAIAJBAWtBgKDDABCtCwwCCyADQShrIQMgBUEBaiEFIARBKGohBAwACwALCwsAIABBIEEIEJkSCwsAIABBKEEIEJkSCwwAIABBoAJBCBCZEgsLACAAQRBBBBCZEgsMACAAIAEQ+ApBAXMLJgEBfyAAQeAAakHwj8MAEPgKBH8gAEGQAWpB8I/DABD4CgVBAAsLDAAgACABEP0KQQFzCxYAIAAgARDlDiAAQTBqIAFBMGoQ5Q4LYwEDfyMAQaACayIBJAAgABDoDiABEOgOIAFB4ABqIgIQ+Q4gAUHAAWoiAxD5DiAAQeAAaiABQeAA/AoAACAAQcABaiACQeAA/AoAACAAQaACaiADQeAA/AoAACABQaACaiQACyYBAX8gAEHAAWpB8KvDABD9CgR/IABBoAJqQfCrwwAQ/QoFQQALC8MCAQV/IwBBMGsiBCQAIAAoAgQiCCAAKAIIIgZBKGxqIgdBKGshBQJAAkACQAJAAkACQCAGRSAFRXJFBEAgB0EIaykDACABUg0BIAIgAxDPAQ0GCyAGQQFLDQEgBkEBRw0DIAghBQwCCyAFIAMQtAFFDQQgBCABNwMoIAQgAykDADcDCCAEIAMpAwg3AxAgBCADKQMQNwMYIAQgAykDGDcDICAAIARBCGoQrgsMBAsgB0HQAGshAgsgAiADEM8BDQEgBSADKQMYNwMYIAUgAykDEDcDECAFIAMpAwg3AwggBSADKQMANwMADAILIAIgAxC0AUUNASAEIAE3AyggBCADKQMANwMIIAQgAykDCDcDECAEIAMpAxA3AxggBCADKQMYNwMgIAAgBEEIahCuCwwBCyAAIAZBAWs2AggLIARBMGokAAs+ACAAQSA6ABEgACADOgAQIAAgA0EgEOkJNgIMIAAgATYCCCAAQQA2AhQgACACQQFrNgIEIAAgAUEEajYCAAtQACAAIAQ6AB0gAEEAOgAcIAAgATYCACAAQQA2AgggACACQQFrIgI2AgQgAEF/QX8gBHRBf3MgBEH/AXFBIEYbNgIYIAAgASACQQJ0ajYCFAsXACAAQQA2AhQgAEIENwIAIABBADYCCAsqACAAIAQ6AA0gACADOgAMIAAgAyAEEOkJNgIIIAAgATYCBCAAQQA2AgALbgAgAEEgOgARIAAgAzoAECAAIANBIBDpCTYCDCAAIAE2AgggACAEOgAdIABBADoAHCAAIAJBAms2AgQgACABQQRqNgIAIABBf0F/IAR0QX9zIARB/wFxQSBGGzYCGCAAIAEgAkECdGpBBGs2AhQLHgAgAEEANgIUIAAgAjYCBCAAIAE2AgAgAEEANgIIC4EFAgp/AX4jAEGQAWsiASQAAkAgACgCCCIKBEAgASAAKQIIIgs3AzAgASAAKQIANwMoIAFB5ABqIAunIgZBA3YgBkEHcUEAR2oQjg0gASAGNgJwIAEoAiwiByAGaiEJIAchAgNAIAghBAJAAkACQAJAIAIgCU8EQCACIAlrQQJBASAEQRpqQf8BcUEDSRsgA0EaakH/AXFBA0kgBEH/AXEbaiIEDQEgASABKQJsNwMQIAEgASkCZDcDCCABIAApAgA3AxggASAAKQIINwMgDAILIAIsAAAiCEHbAEYNAiAIQd8ATA0DIAIgCGpB3gBrIQIgBCEDDAQLIAEgBCAGakEBQQEQ8QUgAUEANgJ8IAEgASkDADcCdCABQfQAaiIAIAcgBhDZDyAAIAEoAnwgBGpBABD3DyABIAEoAnw2AogBIAEgASkCdDcDgAEgAUE4aiABQYABahCpESABIAEpAmQ3AwggASABKQJsNwMQIAEgASkCODcDGCABIAEpAkA3AyAgAUEoahBzCyABIAEpAxA3A0AgASABKQMINwM4IAEgASkDGDcDSCABIAEpAyA3A1AgAUEANgJcIAEgCjYCWCABQQA6AGAgAUE4ahD1ByECDAQLIwBBEGsiBSQAAkAgAUHkAGoiAygCAEF/Rw0AIAVBBGogAygCBCADKAIIEPAFIAMQfiADIAUoAgw2AgggAyAFKQIENwIAIAMoAgBBf0cNAEGApcMAQShB3KvDABDhEQALIAVBEGokACABKAJoIAIgB2siA0EDdmoiBSAFLQAAQQEgA0EHcXRyOgAACyACQQFqIQIgBCEDDAALAAsQ0QEhAiAAEHMLIAFBkAFqJAAgAgscAEGY88UAQZjzxQAoAgAgACgCAGtB+ABtEIcICw0AIAAgASACQTAQpBILJgEBfyAAKAIIIgMgAU0EQCABIAMgAhDoEQALIAAoAgQgAUEEdGoL5AEBBX8gACgCBCIHIAAoAggiBUEEdGoiBkEQayEEAkACQAJAAkACQAJAAkAgBUUgBEVyRQRAIAQpAwAgAVIiCEUEQCACKQMAIANRDQcLIAgNAQsgBUEBSw0BIAVBAUcNAyAHIQQMAgsgBkEIaykDACADUQ0EDAULIAZBGGshAgsgAikDACADUQ0BIAQgAzcDCA8LIAIpAwAgA1INAgwBCyAAIAVBAWs2AggLDwsgACgCCCICIAAoAgBGBEAgABCoEAsgACgCBCACQQR0aiIEIAM3AwggBCABNwMAIAAgAkEBajYCCAsNACAAIAEgAkEoEKQSCzYBAX8gACgCCCICIAAoAgBGBEAgABCYCwsgACgCBCACQShsaiABQSj8CgAAIAAgAkEBajYCCAtWAQJ/IAAoAggiAyAAKAIARgRAIAAQlwsLIAAoAgQgA0EFdGoiAiABKQMYNwMYIAIgASkDEDcDECACIAEpAwg3AwggAiABKQMANwMAIAAgA0EBajYCCAsMACAAIAFBwAEQpxILOAEBfyAAKAIIIgIgACgCAEYEQCAAEJkLCyAAKAIEIAJBoAJsaiABQaAC/AoAACAAIAJBAWo2AggLXQECfyMAQdAAayICJAAgAiABKQM4NwMgIAIgASkDMDcDGCACIAEpAyg3AxAgAiABKQMgNwMIIAJBMGoiAyACQQhqIgEQ0w0gASADEJIOIAAgARCzCyACQdAAaiQAC2YBAn8jAEEQayICJAAgAiABLQAgIgM6AA8gA0EBRgRAIAAgASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIIAAgASkDADcDACACQRBqJAAPCyACQQ9qQeCuwwAgAUHkrsMAEO4NAAsOACAAIAFB4ABBCBCgEgsNACAAIAFBAUEBEKASCw0AIAAgAUECQQIQoBILDAAgAEGwiMQAEPgKC6cCAQh/IwBBwARrIgMkACADIABB4AD8CgAAIANB4ABqIgcgAEHgAGoiCUHgAPwKAAAgAyABEMgIIAcgAhDICCADQcABaiIFIAJB4AD8CgAAIANB4ANqIgQgCUHgAPwKAAAgBCAAQcABaiIKEPwKIAUgBBDICCAFIAcQngsgBRDkDiAFIAMQ/AogA0GgAmoiCCABQeAA/AoAACAEIABB4AD8CgAAIAQgChD8CiAIIAQQyAggCCADEJ4LIAggBxD8CiADQYADaiIGIAFB4AD8CgAAIAYgAhD8CiAEIABB4AD8CgAAIAQgCRD8CiAGIAQQyAggBiADEJ4LIAYgBxCeCyAAIAVB4AD8CgAAIAkgBkHgAPwKAAAgCiAIQeAA/AoAACADQcAEaiQAC8MFAQl/IwBB4ANrIgMkACADIABBwAD8CgAAIANBQGsiCCAAQUBrIglBwAD8CgAAIAMgARC1CSAIIAIQtQkgA0GAAWoiBiACQcAA/AoAACADQcABaiIHIAlBwAD8CgAAIAcgAEGAAWoiChDPCiAGIAcQtQkgBiAIEM4KIANBgAJqIgUgBkHAAPwKAAAgBRDJDhDJDhDJDhogAyADKQO4ATcD2AIgAyADKQOwATcD0AIgAyADKQOoATcDyAIgAyADKQOgATcDwAIgA0HAAmoiBBDEDiAEIAUQwg4gBCAGEMIOIAMgAykDuAI3A5gDIAMgAykDsAI3A5ADIAMgAykDqAI3A4gDIAMgAykDoAI3A4ADIAMgAykDuAE3A7gDIAMgAykDsAE3A7ADIAMgAykDqAE3A6gDIAMgAykDoAE3A6ADIANBgANqIgsgA0GgA2oiBBDCDiADIAMpA5gDNwP4AiADIAMpA5ADNwPwAiADIAMpA4gDNwPoAiADIAMpA4ADNwPgAiADIAMpA5gBNwOYAyADIAMpA5ABNwOQAyADIAMpA4gBNwOIAyADIAMpA4ABNwOAAyADQeACaiALEMIOIAMgAykD+AI3A9gDIAMgAykD8AI3A9ADIAMgAykD6AI3A8gDIAMgAykD4AI3A8ADIAMgAykDwAI3A6ADIAMgAykDyAI3A6gDIAMgAykD0AI3A7ADIAMgAykD2AI3A7gDIAYgBEHAAPwKAAAgBiADEM8KIAcgAUHAAPwKAAAgBCAAQcAA/AoAACAEIAoQzwogByAEELUJIAcgAxDOCiAHIAgQzwogBSABQcAA/AoAACAFIAIQzwogBCAAQcAA/AoAACAEIAkQzwogBSAEELUJIAUgAxDOCiAFIAgQzgogACAGQcAA/AoAACAJIAVBwAD8CgAAIAogB0HAAPwKAAAgA0HgA2okAAsnACAAIAEQngsgAEHgAGogAUHgAGoQngsgAEHAAWogAUHAAWoQngsLJQAgACABEM4KIABBQGsgAUFAaxDOCiAAQYABaiABQYABahDOCgstAQJ/QQEhAgNAIAFBIEZFBEAgAiAAIAFqKQMAUHEhAiABQQhqIQEMAQsLIAILqAECAn8DfiMAQSBrIgMgASkDGDcDGCADIAEpAxA3AxAgAyABKQMINwMIIAMgASkDADcDAEEAIQEDQCABQSBGRQRAIAEgA2oiBCAEKQMAIgYgASACaikDACIHIAV8IgV9NwMAIAUgB1StIAUgBlatfEIBUa0hBSABQQhqIQEMAQsLIAAgAykDGDcDGCAAIAMpAxA3AxAgACADKQMINwMIIAAgAykDADcDAAsNACAAQah/QcAFEJwSC5oDAQN/IAIoAgAhBAJAAkACQAJAIAFB/wFxQQFHBEAgBEF/Rg0BIAIoAghFDQIMBAsgAkEEQQggBEF/RhtqQQA2AgAgAkEEQQAQlw8CQCACKAIAIgVBf0cEQCACKAIIIgQNAQwEC0EBIQEgAigCBEEBRw0EIAIoAggNBCACQQA2AgQMBAsgAigCBCIDIARBAnQiAWpBBGsoAgAEQCAEIQMMAwsgA0EEayEDIARB/////wNxIQUCfwNAQQAgAUUNARogBUEBayEFIAEgA2ogAUEEayEBKAIARQ0ACyAFQQFqCyIBIAIoAghNBEAgAiABNgIICyACKAIAIQUgAigCCCEDDAILIAIoAgQNAgtBASEBDAELQQEhASADIAVBAXZPDQACQAJAAkAgAw4CAAECCyACENoIIAJB3KXDACgCADYCCCACQdSlwwApAgA3AgAMAgsgAigCBCgCACEDIAIQ2gggAiADNgIIIAJC/////x83AgAMAQsgAiADQQFqEJ8PCyAAIAE6AAwgACACKAIINgIIIAAgAikCADcCAAt8AQF/IwBBMGsiAyQAIANCADcDKCADQgA3AyAgA0IANwMYIANCADcDECADQQhqIANBEGpBDCACEMELIAMoAgggAygCDCABQRQgAhCRDSAAIAMpAyg3ABggACADKQMgNwAQIAAgAykDGDcACCAAIAMpAxA3AAAgA0EwaiQACw8AIAAgASACIANBIBCaEgtgAQR/IABBAUEBIAIoAgQiAyABKAIEIgQbIAMgBHEiAxs2AgQgACACKAIAIgUgASgCACIGIAUgBkkbNgIAIAAgAigCCCIAIAEoAggiASAAIAFJGyABIAAgBBsgAxs2AggL+gECA34Cf0LEAEIQIAApA+gBIghCgCCDUBshCSADKAIEIQogAygCCCILIQMDQCADBEAgCUIEIAotAAAbIAd8IQcgA0EBayEDIApBAWohCgwBCwsgBCAANQKEAX4gB3wgBSAANQKIAX58IQQgAi0AACEDAkACQCAIQoCAgMAAg1AEQCAEQoikAXwhByADDQIgCEKAAoNQDQEgByAANQKUAXwhBwwBC0EAIQogACADRSADQQFxBH8gAkEBaiABEJAHBUEACyAGEMQLIAR8IQcgAw0BCyAIQoCAwACDUA0AIAA1ApgBIAtBBXYgC0EfcUEAR2qtfiAHfA8LIAcLXgEBfgJAAkACQCABRQRAIAJFDQFC4N0ADwsgADUCxAFC4N0AfCEEIAMQwAoNASAEIAA1ArwBfA8LIAMQwApFDQFCmPUAIQQLIAQPCyAANQK8ASAANQLAAXxCmPUAfAtoACABLQDoAUEBcUUEQCAAQf8BOgAADwsCQAJAIAKnQQFxRQRAIAQNASAAQQY6AAAPCyADIAEpA/ABIgJRDQEgACADNwMQIAAgAjcDCCAAQQU6AAAPCyAAQf8BOgAADwsgAEH/AToAAAtiAgN/AX4gATUCCCEFIAEoAgQiAiABKAIIQQV0aiIEIAJHBEAgAkEIaiEBIAQgAmtBBXYhAgNAIAEoAgAgA2ohAyABQSBqIQEgAkEBayICDQALCyAAIAU3AwAgACADrTcDCAuhAQEBfyMAQTBrIgQkAAJAAkAgAS0A6gFBAnFFDQAgAiADELEJRQ0AIABBEDoAACAEIAIpABg3ACggBCACKQAQNwAgIAQgAikACDcAGCAEIAIpAAA3ABAgAEEBaiAEQQlqQSf8CgAAIAAgAykDGDcDQCAAIAMpAxA3AzggACADKQMINwMwIAAgAykDADcDKAwBCyAAQf8BOgAACyAEQTBqJAALrQEBAX8jAEHQAGsiBCQAIARBKGogAyACEMYBAkAgBC0ASEUEQCAEIAQpA0A3AyAgBCAEKQM4NwMYIAQgBCkDMDcDECAEIAQpAyg3AwgMAQsgBEJ/NwMgIARCfzcDGCAEQn83AxAgBEJ/NwMICyAAIARBCGoiAiABIAIgARCxCRsiASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIIAAgASkDADcDACAEQdAAaiQACysBAX9B/wEhBCAAIAEtAOgBQcAAcQR/QRZBfyACIAMQsQkbBUH/AQs6AAALIwAgACACIAFWBH8gACABNwMQIAAgAjcDCEEHBUH/AQs6AAALjAEBAX8jAEEgayIEJAACQAJAIAEtAOgBQRBxRQ0AIARCADcDGCAEQgA3AxAgBEIANwMIIAQgAjcDACADIAQQsQlFDQAgACACNwMIIABBCzoAACAAIAMpAwA3AxAgACADKQMINwMYIAAgAykDEDcDICAAIAMpAxg3AygMAQsgAEH/AToAAAsgBEEgaiQAC0gAAkAgAS0A6gFBEHFFDQAgAi0AAA0AIAMoAggiAiABKAKUAiIBTQ0AIAAgAjYCCCAAIAE2AgQgAEENOgAADwsgAEH/AToAAAtYAQF+AkAgAS0A6wFBAXFFBEAgAiADfSECQgAhAwwBCyACIAMgASkD+AEiBCACIAIgBFYbIgIgA30iBEIAIAIgBFobIgJ8fSEDCyAAIAM3AwggACACNwMAC0UCAX8BfkH/ASEDAkAgAiABKQP4ASIEWA0AIAEpA+gBQoCAgAiDQgBSDQAgACAENwMQIAAgAjcDCEEMIQMLIAAgAzoAAAtSAQF+AkAgAiABKQP4ASIFWA0AIAEpA+gBQoCAgAiDUA0AIAMgBCADIARWGyICIAVYDQAgACAFNwMQIAAgAjcDCCAAQQw6AAAPCyAAQf8BOgAAC9gBAgN/A34CfkIAIAApA+gBIgpCgICAAoNQDQAaQgAgADUCeCILUA0AGiAANQKMASAEQhR+IAVCBYZ8fiAANQKAASEFIAA1AnAhDAJAIAMoAggiB0UEQAwBCyADKAIEIQMgByEJA0AgCCADLQAARWohCCADQQFqIQMgCUEBayIJDQALCyAIrSIEIAV+fCAHrSAEfSAMfnwgC34CfiAKQoCAgMAAg1AEQCAANQJ8DAELQQAhAyACLQAAIgcEQCACQQFqIAEQkAchAwsgACAHRSADIAYQxAsLfAsLMAEBfyMAQRBrIgEkACAAQaSHwwA2AgggAEGAgICAeDYCBCAAQQE2AgAgAUEQaiQAC5ABAQN/IABBzPPFACgCACIABH8gAAUCf0EEQQgQ8AciAEGgoMMANgIEIABBATYCAEHM88UAQczzxQAoAgAiASAAIAEbNgIAIAAgAUUNABogACgCBCIDKAIAIgIEQCAAKAIAIAIRBAALIAMoAgQiAgRAIAMoAggaIAAoAgAgAhBiCyAAQQgQVCABCwspAgA3AwALDgAgACABQSAQjxJBAEcLhwICAX8BfiMAQdACayIFJAAgBCAEKQMAIgYgA303AwACQCADIAZWBEAgABDRCwwBCyAFQQhqIgQgASACEOsIIAUtAAghASAFKAIMIQIgBRDSCyAFQcwBaiAFKAIAIARBAXIgAiABG0HAACAFQckAaiACQUBrIAEbQcAAIAUoAgQoAhgRCgAgBS0AzAFBAUYEQCAFIAUoAtgBIgE2AJcBIAUgBSkC0AEiAzcAjwEgACABNgAMIAAgAzcABCAAQQE2AgAMAQsgBUGMAWoiASAFQcwBakEBckHAAPwKAAAgBUGQAmoiAiABQcAA/AoAACAAQQRqIAIQ1QsgAEF/NgIACyAFQdACaiQACwwAIAAgAUHAABCoEgvfAgIBfwF+IwBB4AJrIgUkACAEIAQpAwAiBiADfTcDAAJAIAMgBlYEQCAAENELDAELIAUCfyACQeAATwRAIAUgATYCIEEADAELIAVBgAJqIgRBAEHgAPwLACAFQRBqIAQgAkHAj8MAENcLIAUoAhAgBSgCFCABIAJB0I/DABCRDSAFQRxqQQFyIARB4AD8CgAAIAUoAiAhAUEBCyIEOgAcIAVBCGoQ0gsgBUGAAmogBSgCCCAFQRxqQQFyIAEgBBtBwAAgBUHdAGogAUFAayAEG0EgIAUoAgwoAhwRCgAgBS0AgAJBAUYEQCAFIAUoAowCIgE2AIsBIAUgBSkChAIiAzcAgwEgACABNgAMIAAgAzcABCAAQQE2AgAMAQsgBUGAAWoiASAFQYACakEBckHAAPwKAAAgBUHAAWoiAiABQcAA/AoAACAAQQRqIAIQ1QsgAEF/NgIACyAFQeACaiQACxAAIAAgASACIANB4AAQoRIL5QMCB38BfiMAQTBrIgYkACAFIAUpAwAiDSADIAJBwAFuIgWtfiAEfCIDfTcDAAJAAkACQCADIA1WBEAgABDRCwwBCyAFQcABbCIJIAJHBEAgAEKBgICAkIGAgIB/NwIADAELIAZBEGogBUEEQRAQ8QUgBiAGKQMQNwIYQQwhCEEAIQUDQAJAIAYgBzYCICAFIAlGDQAgBUE/aiACTw0DIAVBwAFqIgogAksNBCABIAVqIgtBQGshDCAGKAIYIAdGBEAgBkEYahCaCwsgBigCHCAIaiIFQYABNgIAIAVBBGsgDDYCACAFQQhrQcAANgIAIAVBDGsgCzYCACAIQRBqIQggB0EBaiEHIAohBQwBCwsgBkEIahDSCyAGQSRqIAYoAgggBigCHCAGKAIgIAYoAgwoAiARBwAgBi0AKCEBIAYoAiQiAkF+RwRAIAAgBigALDYADCAAIAYoACk2AAkgACABOgAIIAAgAjYCBCAAQQE2AgAgBkEYahDZCwwBCyAAQiA3AgwgAEHopsMANgIEIABBfzYCACAAQcyvwwBBsJ/DACABQQFxGzYCCCAGQRhqENkLCyAGQTBqJAAPCyAFIAVBQGsgAkGA18MAEOYRAAsgBUFAayAFQcABaiACQZDXwwAQ5hEACwsAIABBBEEQEK0NCxIAIAAgASACIAMgBEHAABCpEgsXACAAIAEgAiADQdgDQsgBQghCAxCqEgu9CwIGfwJ+IwBBsAJrIgckACADIAMpAwAiDSAEfSIONwMAAkAgBCANVgRAIAAQ0QsMAQsgB0HMAWoiCSABIAJBABDpCCAHIAlBAXIiCiAHKALQASAHLQDMARsiCCkAADcDqAEgByAIKQAINwOwASAHIAgpABA3A7gBIAcgCCkAGDcDwAEgB0EoaiIMIAdBqAFqIgsQ5gcgCSABIAJBIBDpCCAHIAogBygC0AEgBy0AzAEbIggpAAA3A6gBIAcgCCkACDcDsAEgByAIKQAQNwO4ASAHIAgpABg3A8ABIAdByABqIAsQ5gcgCSABIAJBwAAQ6QggByAKIAcoAtABIActAMwBGyIIKQAANwOoASAHIAgpAAg3A7ABIAcgCCkAEDcDuAEgByAIKQAYNwPAASAHQegAaiALEOYHIAkgDBCTByAHKALMAUEBRgRAIABCgYCAgOCAgICAfzcCAAwBCyAHKALQASEIIAdBzAFqIAdB6ABqEJMHIAcoAswBQQFGBEAgAEKBgICA4ICAgIB/NwIADAELIAcoAtABIQkgB0HMAWogB0HIAGoQkwcgBUUgCEGACEsgCUGACEtyRUF/IAcoAtABIAcoAswBGyIKQYEISXFyRQRAIABCgYCAgOCAgICAfzcCAAwBC0EAIQUgB0GoAWoiDEEBIAFB4ABqIAJB4ABJGyIBIAJB4ABrIgtBACACIAtPGyILIAgQ6QggDEEBciAHKAKsASAHLQCoARshAgJAIApBIE8EQCAHIAI2AtABDAELIAdCADcDmAIgB0IANwOQAiAHQgA3A4gCIAdCADcDgAIgB0EgaiAHQYACakEgIAprQaCPwwAQwQsgBygCICAHKAIkIAIgCkGwj8MAEJENIAcgBykDmAI3AOUBIAcgBykDkAI3AN0BIAcgBykDiAI3ANUBIAcgBykDgAI3AM0BIAcoAtABIQJBASEFCyAHIAU6AMwBIAdBiAFqIgwgB0HMAWpBAXIgAiAFGxDmByADIA4gCK0gCq0gCa0gDCAGERgAIg0gBH0iBEIAIAQgDVgbIgR9NwMAIAQgDlYEQCAAENELDAELIAggCXIEQAJAIAtBf0F/IAggCmoiAiACIAhJGyICIAlqIgMgAiADSxsiA08EQCAHIAM2AvgBIAcgATYC9AEgB0F/NgLwAQwBCyAHQcwBaiADEI4NIAdBGGogCyAHKALQASAHKALUAUHsr8MAEKgHIAcoAhggBygCHCABIAtB/K/DABCRDSAHIAcpAswBNwPwASAHIAcoAtQBIgM2AvgBIAcoAvQBIQELIAdBzAFqIgIgASADIAhBwNfDABCfCiAHKALQASEBIAcoAswBIQMgAiAHKALUASAHKALYASAKQdDXwwAQnwogBygC2AEhBSAHKALUASEGIAcoAtABIQggBygCzAEhCiAHQRBqENILIAIgBygCECADIAEgCiAIIAYgBSAHKAIUKAIoERUAIAcgBykC0AE3A6gBIAcgBygC2AE2ArABIAcoAswBBEAgACAHKAKwATYCDCAAIAcpA6gBNwIEIABBATYCACAHQfABahB+DAILIAcgBygCsAEiATYCiAIgByAHKQOoATcDgAIgBygChAIhAgJAIAEgCU8EQCAHQQhqIAEgCWsgAiABQYywwwAQhAcgB0F/NgKkAiAHIAcpAwg3AqgCDAELIAdBpAJqIAkQjg0gByAJIAFrIAcoAqgCIAcoAqwCQZywwwAQhAcgBygCACAHKAIEIAIgAUGssMMAEJENCyAHQcwBaiEBAkAgB0GkAmoiAigCAEF/RwRAIAEgAigCCDYCCCABIAIpAgA3AgAMAQsgASACKAIEIAIoAggQ8AULIABBBGogARCpESAAQX82AgAgB0GAAmoQpg8gB0HwAWoQfgwBCyAAQQA2AhAgAEIBNwIIIABB6KbDADYCBCAAQX82AgALIAdBsAJqJAALFgAgACABIAIgA0HaA0IAQghCFBCqEgsXACAAIAEgAiADQdsDQvQDQhBCARCqEguYBQIIfwJ+IwBBoAFrIgIkAAJAIAFCIVoEQCACQgA3AzggAkIANwMwIAJCADcDKCACQgA3A4ABIAJCADcDiAEgAkIANwOQASACQgA3A5gBIAIgAUIHg0IAUq0gAUIDiHw3AyAgAkGAAWohBkEDIQcDQCADQQRGRQRAIAJBIGoiBCADQQN0aiEJQgAhASAEIQggByEEIAYhBQNAIAQEQCACQRBqIAkpAwBCACAIKQMAEJUSIAUgAikDECILIAF8IgogBSkDAHwiATcDACABIApUrSACKQMYIAogC1StfHwhASAEQQFrIQQgCEEIaiEIIAVBCGohBQwBCwsgAiACKQOYASABfCAJKQMAQQAgA2tBA3QgAmpBOGopAwB+fDcDmAEgBkEIaiEGIAdBAWshByADQQFqIQMMAQsLIAJCADcDWCACQgA3A1AgAkIANwNIIAJCAjcDQCACQgA3A3ggAkIANwNwIAJCADcDaCACQgA3A2BBACEDIAJB4ABqIQZBAyEHA0AgA0EERkUEQCACQUBrIANBA3RqIQlCACEBIAJBgAFqIQggByEEIAYhBQNAIAQEQCACIAkpAwBCACAIKQMAEJUSIAUgAikDACILIAF8IgogBSkDAHwiATcDACABIApUrSACKQMIIAogC1StfHwhASAEQQFrIQQgCEEIaiEIIAVBCGohBQwBCwsgAiACKQN4IAF8IAkpAwBBACADa0EDdCACakGYAWopAwB+fDcDeCAGQQhqIQYgB0EBayEHIANBAWohAwwBCwsgACACKQN4NwMYIAAgAikDcDcDECAAIAIpA2g3AwggACACKQNgNwMADAELIABCADcDGCAAQgA3AxAgAEIANwMIIABCEDcDAAsgAkGgAWokAAvWBAEGfyMAQaABayIGJAAgBkEgaiACIAAgACACVBsgBREPAAJ+IAFCIFgEQEIAIAMQwAoNARogAxCwCq1CAX0MAQsgBkEQaiAEKQMIQgAgAUIgfRCVEkJ/Qn9BASADELAKIgMgA0EBTRutIAYpAxAiAHxCAX0iASAAIAFWGyAGKQMYQgBSGwshACAGQgA3A3ggBkIANwNwIAZCADcDaCAGQgEgACAAQgFYGzcDYCAGQgA3A5gBIAZCADcDkAEgBkIANwOIASAGQgA3A4ABIAZBgAFqIQhBAyEJA0AgB0EERkUEQCAGQeAAaiAHQQN0aiELQgAhACAGQSBqIQogCSEFIAghAwNAIAUEQCAGIAspAwBCACAKKQMAEJUSIAMgBikDACIBIAB8IgAgAykDAHwiAjcDACAAIAJWrSAGKQMIIAAgAVStfHwhACAFQQFrIQUgCkEIaiEKIANBCGohAwwBCwsgBiAGKQOYASAAfCALKQMAQQAgB2tBA3QgBmpBOGopAwB+fDcDmAEgCEEIaiEIIAlBAWshCSAHQQFqIQcMAQsLIAYgBikDmAE3A1ggBiAGKQOQATcDUCAGIAYpA4gBNwNIIAYgBikDgAE3A0AgBkIANwOIASAGQgA3A5ABIAZCADcDmAEgBiAEKQMQNwOAASAGQUBrIAZBgAFqELoQIAYgBikDWDcDeCAGIAYpA1A3A3AgBiAGKQNINwNoIAYgBikDQDcDYCAEKQMAIQAgBkHgAGoQ7AYhAyAGKQNgIQEgBkGgAWokAEJ/IAEgACAAIAFUGyADGwvRAgIIfwJ+IwBB0ABrIgIkACACQgA3AyggAkIANwMgIAJCADcDGCACIAFCB4NCAFKtIAFCA4h8NwMQIAJCADcDSCACQgA3A0AgAkIANwM4IAJCADcDMCACQTBqIQVBAyEGA0AgA0EERkUEQCACQRBqIgcgA0EDdGohCUIAIQEgBiEIIAUhBANAIAgEQCACIAkpAwBCACAHKQMAEJUSIAQgAikDACILIAF8IgogBCkDAHwiATcDACABIApUrSACKQMIIAogC1StfHwhASAIQQFrIQggB0EIaiEHIARBCGohBAwBCwsgAiACKQNIIAF8IAkpAwBBACADa0EDdCACakEoaikDAH58NwNIIAVBCGohBSAGQQFrIQYgA0EBaiEDDAELCyAAIAIpA0g3AxggACACKQNANwMQIAAgAikDODcDCCAAIAIpAzA3AwAgAkHQAGokAAvSBwIIfwJ+IwBB8AFrIgIkAAJAIAFCwQBaBEAgAUKBCFoEQCACQgA3A0AgAkIANwM4IAJCADcDMCACIAE3AyggAkIANwPgASACQgA3A9gBIAJCADcD0AEgAkIANwPIASACQcgBaiEHQQMhBQNAIANBBEZFBEAgAkEoaiIEIANBA3RqIQlCACEBIAQhCCAFIQQgByEGA0AgBARAIAJBEGogCSkDAEIAIAgpAwAQlRIgBiACKQMQIgsgAXwiCiAGKQMAfCIBNwMAIAEgClStIAIpAxggCiALVK18fCEBIARBAWshBCAIQQhqIQggBkEIaiEGDAELCyACIAIpA+ABIAF8IAkpAwBBACADa0EDdCACakFAaykDAH58NwPgASAHQQhqIQcgBUEBayEFIANBAWohAwwBCwsgAiACKQPgATcDYCACIAIpA9gBNwNYIAIgAikD0AE3A1AgAiACKQPIATcDSCACQgA3A+ABIAJCADcD2AEgAkIANwPQASACQhA3A8gBIAJByABqIAJByAFqELoQIAIgAikDYDcDoAEgAiACKQNYNwOYASACIAIpA1A3A5ABIAIgAikDSDcDiAEgAkIANwOoASACQgA3A7ABIAJCADcDuAEgAkIANwPAASACQgA3A+ABIAJCADcD2AEgAkIANwPQASACQuADNwPIAUEAIQMgAkGoAWohB0EDIQUDQCADQQRGRQRAIAJBKGogA0EDdGohCUIAIQEgAkHIAWohCCAFIQQgByEGA0AgBARAIAIgCSkDAEIAIAgpAwAQlRIgBiACKQMAIgsgAXwiCiAGKQMAfCIBNwMAIAEgClStIAIpAwggCiALVK18fCEBIARBAWshBCAIQQhqIQggBkEIaiEGDAELCyACIAIpA8ABIAF8IAkpAwBBACADa0EDdCACakHgAWopAwB+fDcDwAEgB0EIaiEHIAVBAWshBSADQQFqIQMM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ACABIAAQ/AogBkHACmoiACABQeAA/AoAACAFIAAQygggBigCoAtFDQIgBkHgCWoiACAGQagLakHgAPwKAAAgASAAQeAA/AoAACABIA0QyAggBSABQeAA/AoAACABIABB4AD8CgAAIAEgBBDICCAGQYAMaiABQeAA/AoAACAAIAMQyAggBkHgDGogAEHgAPwKAAAgEkEIaiAFQaAC/AoAACASQgE3AwAMAQsgEkIANwMACyAGQaAOaiQADAELQYCJxAAQ+hEACyATIAspA6gCQgFRBH4gC0GQCWoiAyAPQaAC/AoAACADIAtBsAJqIgAQlQogC0GwC2oiASACQaAC/AoAACABIAAQlQogC0HwBmogARDBCiARIANBoAL8CgAAIBNBCGogEUHABPwKAABCAQVCAAs3AwAMAQsgE0IANwMACyALQdANaiQAIBZBCGoiACAKKQOICUIBUQR+IApB0A1qIgEgCkGQCWpBwAT8CgAAIApB0B9qIgQgF0HABPwKAAAgBCABEO4IIApBkBJqIgIgBEHABPwKAAAgASACQcAE/AoAACACQQIQtQwgAiABEO4IIwBBwARrIgEkACABIAJBwAT8CgAAIApB0BZqIgMgARDtCEHABPwKAAAgAUHABGokACAKQZAbaiIBQQBBwAT8CwAgAiABELsKIAQgAkHABPwKAAAgBBCgChogASAEEO4IIAEgBBC7CiABEKAKGiABIAQQ7gggASAEELsKIAFBARC1DCABIAQQ7gggAiADEO4IIAEgAxC7CiADIAQQuwogAyABQcAE/AoAACADQQIQtQwgARCgChogASAEEO4IIAEgAxDuCCACIAEQ7gggAEEIaiACQcAE/AoAAEIBBUIACzcDACAKQZAkaiQAIBYoAghFBEBBgJrDABD6EQALIBAgFkEQakHABPwKAAAgFkGQCWokAEEAIQECQCAQEJcMRQ0AIBBB4ABqEPgORQ0AIBBBwAFqEPgOIQELIAEEfyAQQaACahCYDAVBAAshASAZEPwIIAwQjAkLIAxB4ARqJAAgAQvLAQEFfyMAQeACayICJAAgAkEIaiIDQQBB4AD8CwAgAkHIAWoiBCABELkKAkAgAikDyAFCAVEEQCACQegAaiIBIAJB0AFqQTD8CgAAIAJBmAFqIgUgAkGAAmpBMPwKAAAgAkGwAmoiBiABEPYLIAQg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AwAgACAFQvLquLzpraW/6ABC8+q4vOmtpb/oACAGQsf688PtgqOQPFQbfCICNwMIIABCos/685fJ7tfHAEKjz/rzl8nu18cAIAIgBVobIgUgB3wiAjcDECAAQta/ufbRsezNT0LXv7n20bHszU8gAiAFWhsgCHw3AxgLIAALNgECfyAAKAIEIgFFBEBBAA8LIAAoAggiAARAIAEgAG4iAiABIAAgAmxHag8LQYCHxAAQgBIACxUAIAAgAUGIksQAQRBBmJLEABCeEguNAQEEfiAAIAApAwAiAULH+vPD7YKjkDx8IgI3AwAgACAAKQMIIgMgASACVq18IgFC8+q4vOmtpb/oAH0iAjcDCCAAIAApAxAiBCABIANUrSABIAJWrXx8IgFCo8/685fJ7tfHAH0iAjcDECAAIAApAxggASAEVK0gASACVq18fEKpwMaJrs6TsjB8NwMYCwkAIABBGBCtEgveAQEHfiAAIAApAwAiAiABKQMAIgN9NwMAIABCf0IAIAIgA1QbIgIgASkDCCIDfSIEIAApAwh8IgU3AwggACAAKQMQIgYgASkDECIHfSIIIAQgBVatIAIgAiADVK19fEJ/Ua0iAn03AxAgACAAKQMYIgMgASkDGCIEfSIFIAYgB1StIAIgCFatfEIBUa0iAn03AxggACAAKQMgIgYgASkDICIHfSIIIAMgBFStIAIgBVatfEIBUa0iAn03AyAgACAAKQMoIAEpAyh9IAYgB1StIAIgCFatfEIBUa19NwMoCwkAIAAgARDLDAsRACAAKAIEIAAoAgggARCNEgsJACAAIAEQzQwLEQAgACgCBCAAKAIIIAEQiRILEQAgABD4DiAAQeAAahD4DnELSgEDfyMAQcABayICJAAgAkHgAGoiAyABQeAAaiIEQeAA/AoAACACIAMQgAsgBCACQeAA/AoAACAAIAFBoAL8CgAAIAJBwAFqJAALNQECfyMAQcAEayICJAAgAkGgAmoiAyABQaAC/AoAACACIAMQzwwgACACEP8IIAJBwARqJAALjAIBBX8jAEHwA2siAiQAAkACQCABENcMRQRAIAFBwAFqIgQQlwxFBEAgAkHoAGoiAyAEEMoIIAIoAmhFDQIgAkEIaiIEIAJB8ABqQeAA/AoAACACQdABaiIFIAQQ7w4gAyABQeAA/AoAACADIAUQyAggACAD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IRMMAwUgA0EQaiAGIA5qKQMAQgAgJRCVEiADIAYgEGopAwBCACAkEJUSIANB6ABqIAZqIgogIiADKQMQIiEgCkEIaikDAHwiKHwiJyADKQMAfCIiNwMAICIgKFQgIiAnVK0gAykDCCAnIChUrSAjIAMpAxggISAoVq18IiF8fHx8IiIgIVQgISAiURutISMgBkEIaiEGDAELAAsACwsgD0EBaiIPQQRHBEBCACEjIANCADcD6AEgA0IANwPgASADQgA3A9gBIANCADcD0AFBACEGA0AgBkEgRwRAIANB0AFqIAZqIANB6ABqIAZqKQMAIiUgI0I/iCIifSIkQgAgBiAMaikDACAmUBsiIX03AwBCACAhICRWICIgJVZyrX0hIyAGQQhqIQYMAQsLICMQsQ4aIAMgAykD6AE3A4ABIAMgAykD4AE3A3ggAyADKQPYATcDcCADIAMpA9ABNwNoDAELCyADICY3A6gBQgAhIyADQgA3A+gBIANCADcD4AEgA0IANwPYASADQgA3A9ABQQAhBgNAIAZBIEcEQCADQdABaiAGaiADQegAaiAGaikDACIlICNCP4giIn0iJCAGIAxqKQMAIiF9NwMAQgAgISAkViAiICVWcq19ISMgBkEIaiEGDAELCyADIAMpA+gBNwPIASADIAMpA+ABNwPAASADIAMpA9gBNwO4ASADIAMpA9ABNwOwASADQdABaiADQbABaiADQegAaiAjELEOIANBqAFqELIOcSIGELcNIAMgAykD0AE3A2ggAyADKQPYATcDcCADIAMpA+ABNwN4IAMgAykD6AE3A4ABQgAhIiADQn9CACAGrUL/AYNCAX0gI4NCP4ggJlYbNwOoASADQgA3A+gBIANCADcD4AEgA0IANwPYASADQgA3A9ABQQAhBgNAIAZBIEcEQCADQdABaiAGaiADQegAaiAGaikDACIlICJCP4giIn0iJCAGIAxqKQMAIiF9NwMAQgAgIiAlViAhICRWcq19ISIgBkEIaiEGDAELCyADIAMpA+gBNwPIASADIAMpA+ABNwPAASADIAMpA9gBNwO4ASADIAMpA9ABNwOwASADQcgAaiADQbABaiADQegAaiAiELEOIANBqAFqELIOcRC3DQtCDyArIBEgGkcbQg8gCBshIiAaQQJ0QTxxrSEkQQEhEyALIQYDQCATRQ0B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//8PgyIKfiIpIBNCIIgiEyAKfiIqIBEgCUIgiCIJfnwiDEIghnwiFSABKQMIIg9C/////w+DIgIgBX4iKyAPQiCIIg8gBX4iLCACIBB+fCIeQiCGfCIfIAApAxAiGkL/////D4MiGCABKQMAIgtC/////w+DIg1+IjUgGCALQiCIIgt+IjYgGkIgiCIaIA1+fCIZQiCGfCIbIAsgEH4gBSALfiIGIA0gEH58IgQgBlStQiCGIARCIIiEfCAFIA1+IgYgBEIghnwiBCAGVK18IAQgCSALfiAKIAt+IgMgCSANfnwiBiADVK1CIIYgBkIgiIR8IAogDX4iCCAGQiCGfCIDIAhUrXx8IgggBFStfHwiHCADQv////9vfiIGQv////8PgyIEQoWwh80AfnwiIiAEQoiw55kDfiAGQiCIIgZChbCHzQB+fCI3QiCGfCIjIAggCCAEQv63+f8PfnwiCFatIAZCgsj2nQV+hCAEQoLI9p0FfiIOIAZC/rf5/w9+fCIHIA5UrUIghiAHQiCIhHwgCCAIIAdCIIZ8IghWrXwgCCAIIAMgAyAEfCIDVq0gBkL/////D358IARC/////w9+Ig4gBnwiByAOVK1CIIYgB0IgiIR8IAMgB0IghnwgA1StfHwiCFatfHwiOHwiJCAJIA9+IAogD34iByACIAl+fCIDIAdUrUIghiADQiCIhHwgAiAKfiIHIANCIIZ8IgMgB1StfCADIAh8IgcgA1StfHwiJSAHQv////9vfiIIQv////8PgyIDQv63+f8PfnwiJiADQoLI9p0FfiI5IAhCIIgiCEL+t/n/D358IidCIIZ8IiggByADIAd8IgdWrSAIQv////8PfnwgA0L/////D34iFiAIfCIOIBZUrUIghiAOQiCIhHwgByAOQiCGfCAHVK18fCI6fCIXQv////9vfiI7Qv////8PgyIHQoWwh80AfiI8IBEgGH4iPSATIBh+Ij4gESAafnwiLkIghnwiLyADQsj69cwCfiI/IANC0862nwd+IAhCyPr1zAJ+fCJAQiCGfCIwIAIgACkDGCIWQv////8PgyIOfiJBIA4gD34iQiACIBZCIIgiFn58IjFCIIZ8IjIgBkLTzrafB34gBELTzrafB34gBkLI+vXMAn58Ih1CIIh8IARCyPr1zAJ+Ii0gHUIghnwiBCAtVK18IAQg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A3A3AyAMAwsgACABKQM4NwM4IAAgASkDMDcDMCAAIAEpAyg3AyggACABKQMgNwMgIAAgASkDADcDACAAIAEpAwg3AwggACABKQMQNwMQIAAgASkDGDcDGAwCCyAAQQBBwAD8CwAMAQtBrLvEABD6EQALIAJBsAFqJAALVgECfwJAIAAtAAwiAyABLQAMIgJHBEAgAiADSCACIANKayECDAELQQAhAgJAAkAgA0EBaw4CAgEACyABIAAQhgwhAgwBCyAAIAEQhgwhAgsgAsBBAEoLEwAgAEEoNgIEIABBkL7EADYCAAscACAAQcC+xAApAgA3AgggAEG4vsQAKQIANwIAC7kEAQF+IwBBwAJrIgEkACABQeABaiACIAMQiwwCQCABKALgAUEBRgRAIAEgASgC7AEiAjYCiAEgASABKQLkASIGNwOAASAAIAI2AgwgACAGNwIEIABBAToAAAwBCyABQYQBaiICIAFB6AFqIgNBwAD8CgAAIAEgAkHAAPwKAAAgAUHgAWogBCAFEIsMIAEoAuABQQFGBEAgASABKALsASICNgKIASABIAEpAuQBIgY3A4ABIAAgAjYCDCAAIAY3AgQgAEEBOgAADAELIAIgA0HAAPwKAAAgAUFAayACQcAA/AoAACABQYABaiABEI0MIAFBgAJqIQMCQCABKQOAAUIBUQRAIAMgASkDwAE3AxggAyABKQO4ATcDECADIAEpA7ABNwMIIAMgASkDqAE3AwAgASABKQOIATcD4AEgASABKQOQATcD6AEgASABKQOYATcD8AEgASABKQOgATcD+AEgAUGgAmohAwwBCyABQgA3A7gCIAFCADcDsAIgAUIANwOoAiABQgA3A6ACIAFB4IjEACkDADcD4AEgAUHoiMQAKQMANwPoASABQfCIxAApAwA3A/ABIAFB+IjEACkDADcD+AELIANB+IjEACkDADcDGCADQfCIxAApAwA3AxAgA0HoiMQAKQMANwMIIANB4IjEACkDADcDACABQeABaiICIAFBQGsQ6gwgAUGAAWoiAyACQeAA/AoAACACIAMQ+AwgAEEBaiACEIwMIABBADoAAAsgAUHAAmokAAvrEgILfwl+IwBBkAJrIgEkACABQbABaiACIAMQiwwCQAJAIAEoArABQQFGBEAgASABKAK8ASICNgIQIAEgASkCtAEiETcDCCAAIAI2AgwgACARNwIEIABBAToAAAwBCyABQQxqIgIgAUG4AWpBwAD8CgAAIAFB0ABqIg4gAkHAAPwKAAAgASAFNgKQASAFQSBHDQEgAUGQAWohCSMAQRBrIgskACALQQRqIg8gBEEgEPAFIAsoAggiAyALKAIMIgIQ4gcjAEHwAGsiBCQAIARBKGoiCiADIAIgAkEfayIDQQAgAiADTxtB8L3EABCfCiAEKAIsIQwgBCgCKCEQIAQoAjAhAiAEKAI0IQUjAEGAAWsiAyQAIANBF2oiBhCPCiADQgg3AmAgAyAFNgJcIAMgAjYCWCADQdgAaiAGIANBN2oiAhCeCiADQv//////////PzcDOCADQQA6AEggA0IANwNAIANBCGogA0FAayIFEOsMIAMoAgggAygCDCADQThqQQhB8JnDABCRDSADQQA2AnggA0IANwJwIAMgA0HJAGo2AmwgAyACNgJkIAMgA0EvajYCYCADIAI2AlwgA0EBNgJYIAMgBTYCaANAIANBzABqIANB2ABqEOQMIAMoAlAiAgRAIAIgAi0AACADKAJULQAAcToAAAwBCwsgA0HYAGohCCMAQTBrIgUkACAFQQhqIQYjAEGwAWsiAiQAIAJBF2oQjwogAkEgNgJcIAIgA0EXajYCWANAAkACQAJAAkACQCAGAn8CQCAHQRhGBEAgAkEIaiACQS9qQQhBhIfDABCQCiACQfgAaiACQdgAaiACKAIIIAIoAgwQ8QggAi0AeEECRwRAIAIpA3giEUL/AYNCAlINBQsgAkEEOgB4IAJB+ABqIgcQ6AcgAkIANwNwIAJCADcDaCACQgA3A2AgAkIANwNYIAIgAikALzcCoAEgAiACKQAnNwKYASACIAIpAB83ApABIAIgAikAFzcCiAEgAkIANwKoASACQoCAgIDAADcCgAEgAiAHNgJ8IAIgAkHYAGo2AnggBxCRCiACIAIpA1g3AzggAiACKQNgNwNAIAIgAikDaDcDSCACIAIpA3A3A1AgByACQThqEJMKIAIpA3hCAVINASAGIAIpA5gBNwMgIAYgAikDkAE3AxggBiACKQOIATcDECAGIAIpA4ABNwMIIAJBAzoAeCAHEOgHQQAMAgsgAkH4AGogAkHYAGogAkEXaiAHakEIEPEIIAItAHhBAkcNAgwFCyACQQM6AHggBiACKQN4NwIEQQELNgIADAILIAIpA3giEUL/AYNCAlENAgsgBkEBNgIAIAYgETcCBAsgAkGwAWokAAwBCyAHQQhqIQcMAQsLQQEhBwJAIAUoAghBAUYEQCAIIAUpAgw3AgQMAQsgCCAFKQMoNwMgIAggBSkDIDcDGCAIIAUpAxg3AxAgCCAFKQMQNwMIQQAhBwsgCCAHNgIAIAVBMGokACAKAn4gAygCWEEBRgRAIAhBBHIQ6AdCAAwBCyAKIAMpA3g3AyAgCiADKQNwNwMYIAogAykDaDcDECAKIAMpA2A3AwhCAQs3AwAgA0GAAWokAAJAIAQoAigEQCAEIAQpA0g3AyAgBCAEKQNANwMYIAQgBCkDODcDECAEIAQpAzA3AwgjAEEgayICJAAgAkIANwMYIAJCADcDECACQgA3AwggAkKAAjcDACAEQdAAaiACEKIMIAJBIGokACAQQQFrIQYDQCAMBEAgBEEIaiICIARB0ABqEN8MIAYgDGotAAAhBSMAQSBrIgMkACADQgA3AxggA0IANwMQIANCADcDCCADIAWtQv8BgzcDACAEQShqIgUgAxCiDCADQSBqJAAgDEEBayEMIAIgAikDACITIAUpAwB8IhE3AwAgAiARIBNUrSIVIAUpAwh8IhIgAikDCHwiEzcDCCACIAIpAxAiFiAFKQMQfCIUIBIgFVStIBIgE1atfHwiEjcDECACIAIpAxggBSkDGHwgFCAWVK0gEiAUVK18fCIUNwMYIAIQyAoEQCACIBFCgYCAgL+y/fDDAH03AwAgAiATQu6emrL49oXmV0Lvnpqy+PaF5lcgEUKBgICAv7L98MMAVBt8IhE3AwggAiASQqLP+vOXye7XxwBCo8/685fJ7tfHACARIBNaGyIRfCITNwMQIAJC1r+59tGx7M1PQte/ufbRsezNTyARIBNYGyAUfDcDGAsMAQsLIAkgBCkDIDcDGCAJIAQpAxg3AxAgCSAEKQMQNwMIIAkgBCkDCDcDACAEQfAAaiQADAELQYC+xAAQ+hEACyAPEKYPIAtBEGokACABQQhqIQUjAEEgayIEIAkpAxg3AxggBCAJKQMQNwMQIAQgCSkDCDcDCCAEIAkpAwA3AwBBASECA0AgDUEERwRAIAQgDUEDdGoiBykDACITQv////++sv3wQn4iFEL/////D4MiEUKBgICAD34iFSATfCISIBVUrSAUQiCIIhNCk+uHnwR+fCARQpPrh58EfiIVIBNCgYCAgA9+fCIUIBVUrUIghiAUQiCIhHwgEiAUQiCGfCASVK18IRJBCCEGIAIhAwNAIAZBIEYEQCAHIBI3AwAgAkEBaiECIA1BAWohDQwDBSAEIANBA3FBA3RqIgggCCkDACIWIBJ8IhIgBkG4qMMAaikDACIVQv////8PgyIXIBF+fCIUIBVCIIgiGCARfiIZIBMgF358IhVCIIZ8Ihc3AwAgFCAXVq0gEiAWVK0gEiAUVq18IBMgGH58IBUgGVStQiCGIBVCIIiEfHwhEiAGQQhqIQYgA0EBaiEDDAELAAsACwsgBSAEKQMYNwMYIAUgBCkDEDcDECAFIAQpAwg3AwggBSAEKQMANwMAIAFBsAFqIQMjAEGAAWsiAiQAIAJBoI7DAEHgAPwKAAAgAkHgAGogBUEEENsOIAIgAikCaDcDeCACIAIpAmA3A3ADQCACQfAAahD/CUH/AXEiBEECRwRAIAIQ2gwgBEEBcUUNASAOEOoMDAELCyADIAJB4AD8CgAAIAJBgAFqJAAgBSADEPgMIABBAWogBRCMDCAAQQA6AAALIAFBkAJqJAAPCyABIAU2AgggAUECNgK8ASABQfSuwwA2ArgBIAFBAjYCtAEgASABQQhqNgKwASABQZABakH0rsMAQZiKwAAgAUGwAWpB4NfDABDgEQALrggBG35ClIX5pcDKib5gQuv6htq/tfbBHyAFGyESIAQpAwhCn9j52cKR2oKbf4UhCyAEKQMAQtGFmu/6z5SH0QCFIQxCiJLznf/M+YTqACENQrvOqqbY0Ouzu38hE0Kr8NP0r+68tzwhDkLx7fT4paf9p6V/IQ9C+cL4m5Gjs/DbACEQQQAhBEHw2cMAIQUgAikDOCIWIQcgAikDMCIXIQggAikDKCIYIQkgAikDICIZIQogAikDGCIaIQYgAikDECIbIREgAikDCCIcIRQgAikDACIdIRUDQCABBEAgAyAFIARBCm5B4H5saiIAQQdqLQAAQQN0aikDACADIABBBmotAABBA3RqKQMAIAYgB3x8IgZ8IAcgDyAGIBCFQiCJIg98IhCFQiiJIgd8Ih4gAyAALQAAQQN0aikDACAKIBV8fCIGIAMgAEEBai0AAEEDdGopAwB8IAogBiAMhUIgiSIMIA18Ig2FQiiJIgp8IhUgDIVCMIkiDCANfCINIAqFQgGJIgp8IAMgAEEOai0AAEEDdGopAwB8IgYgAyAAQQ9qLQAAQQN0aikDAHwgCiAGIAMgAEEEai0AAEEDdGopAwAgCCARfHwiESADIABBBWotAABBA3RqKQMAfCAIIBEgEoVCIIkiEiAOfCIOhUIoiSIIfCIRIBKFQjCJIh+FQiCJIhIgAyAAQQJqLQAAQQN0aikDACAJIBR8fCIGIAMgAEEDai0AAEEDdGopAwB8IAkgBiALhUIgiSILIBN8IhOFQiiJIgl8IhQgC4VCMIkiCyATfCIgfCIThUIoiSIKfCIGIBKFQjCJIhIgE3wiEyAKhUIBiSEKIAcgECAPIB6FQjCJIhB8Ig+FQgGJIgcgAyAAQQxqLQAAQQN0aikDACARfHwiESADIABBDWotAABBA3RqKQMAfCAHIAsgEYVCIIkiCyANfCINhUIoiSIHfCIRIAuFQjCJIgsgDXwiDSAHhUIBiSEHIA4gH3wiDiAIhUIBiSIIIAMgAEEKai0AAEEDdGopAwAgFHx8IhQgAyAAQQtqLQAAQQN0aikDAHwgCCAMIBSFQiCJIgwgD3wiD4VCKIkiCHwiFCAMhUIwiSIMIA98Ig8gCIVCAYkhCCAJICCFQgGJIgkgAyAAQQhqLQAAQQN0aikDACAVfHwiFSADIABBCWotAABBA3RqKQMAfCAJIA4gECAVhUIgiSIQfCIOhUIoiSIJfCIVIBCFQjCJIhAgDnwiDiAJhUIBiSEJIAFBAWshASAFQRBqIQUgBEEBaiEEDAELCyACIBAgFoUgB4U3AzggAiASIBeFIAiFNwMwIAIgCyAYhSAJhTcDKCACIAwgGYUgCoU3AyAgAiAPIBqFIAaFNwMYIAIgDiAbhSARhTcDECACIBMgHIUgFIU3AwggAiANIB2FIBWFNwMAC/8CAgF+AX8jAEGABmsiASQAIAEgAkEw/AoAACABQTBqIgUgAkEwakEw/AoAACABQeAAaiADQTD8CgAAIAFBkAFqIANBMGpBMPwKAAAgAUHwBGogASAFEPkLAkAgASgC8ARBAUYEQCABIAEoAvwEIgI2AugDIAEgASkC9AQiBDcD4AMgACACNgIMIAAgBDcCBCAAQQE6AAAMAQsgAUHkA2oiAiABQfgEaiIDQeAA/AoAACABQcABaiACQeAA/AoAACABQfAEaiABQeAAaiABQZABahD5CyABKALwBEEBRgRAIAEgASgC/AQiAjYC6AMgASABKQL0BCIENwPgAyAAIAI2AgwgACAENwIEIABBAToAAAwBCyACIANB4AD8CgAAIAFBoAJqIgMgAkHgAPwKAAAgAUHgA2oiAiABQcABahClDCACIAMQ6QwgAUHwBGoiAyACQZAB/AoAACABQYADaiICIAMQ9wwgAEEBaiACEPULIABBADoAAAsgAUGABmokAAuuRwIvfwF+IwBBsAVrIgEkACABQZgEaiILIAIgAygCEBEAACABIAEoApgEIgRBCEHgABDxBSABQQA2AhAgASABKQMANwIIIAFBFGogBBCuCiABQfkEaiEHIAFByQRqIQggAUGkAWohBCABQZADaiEFIAtBAXIhCSADKAIMIQYCQAJAAkADQAJAIAFBmARqIAIgBhEAAAJAAkACQCABLQCYBA4DAgEAAQsgASgCEARAIAEgASgCECIDNgIoIAEgASkCCDcDICABIAEoAhwiAjYCWCABIAEpAhQ3A1AgASADNgKIAyABIAI2ApgEIAIgA0cNAwJAAkACQAJAIAMOAgABAgsgAUGgAWpBAEHgAPwLAAwCCyABQYgDaiICIAFB0ABqQdzewwAQ6AwQ9AkgAUGYBGoiAyABKAIkIAIQgwogAUGgAWogAxD3DAwBCyABKAIkIQIgASgCVCEEIwBBoAFrIickACABQZgEaiIpIwBBEGsiICQAICBBBGoiKiAEIAQgA0EFdGoQgwwgJ0EQaiEoICAoAgghESAgKAIMIQcjAEHQB2siBCQAIARBADYCuAYgBCARNgKwBiAEIBEgByADIAMgB0sbIglBBXRqNgK0BiAEQQRqIARBsAZqIgcQgQkgBCgCDCEDIAQoAgghBSAEIARBzwdqNgKwBgJAIANBAkkNACADQRVPBEAgBSADIAcQggkMAQsgBSADQQEQgwkLIARBsAZqIgcgBSADQQAgBSADEIQJQfCUwwAQhQkgBCgCsAYhAyAEKAK0BiEFIAcgBCgCuAYiCyAEKAK8BiIIQQEgCyAIEIQJQYCVwwAQhQkgBCgCsAYhDiAEKAK0BiESIAcgBCgCuAYiCyAEKAK8BiIIQQIgCyAIEIQJQZCVwwAQhQkgBCgCsAYhDCAEKAK0BiEXIAcgBCgCuAYiCyAEKAK8BiIIQQMgCyAIEIQJQaCVwwAQhQkgBCgCsAYhDyAEKAK0BiEdIAcgBCgCuAYiCyAEKAK8BiIIQQQgCyAIEIQJQbCVwwAQhQkgBCgCsAYhDSAEKAK0BiEeIAcgBCgCuAYiCyAEKAK8BiIIQQUgCyAIEIQJQcCVwwAQhQkgBCgCsAYhEyAEKAK0BiEaIAcgBCgCuAYiCyAEKAK8BiIIQQYgCyAIEIQJQdCVwwAQhQkgBCgCsAYhFSAEKAK0BiEfIAcgBCgCuAYiCyAEKAK8BiIIQQcgCyAIEIQJQeCVwwAQhQkgBCgCsAYhFCAEKAK0BiEhIAcgBCgCuAYiCyAEKAK8BiIIQQggCyAIEIQJQfCVwwAQhQkgBCgCsAYhGCAEKAK0BiEiIAcgBCgCuAYiCyAEKAK8BiIIQQkgCyAIEIQJQYCWwwAQhQkgBCgCsAYhGSAEKAK0BiEjIAcgBCgCuAYiCyAEKAK8BiIIQQogCyAIEIQJQZCWwwAQhQkgBCgCsAYhGyAEKAK0BiEkIARBuJbDACkDADcDKCAEQbCWwwApAwA3AyAgBEGolsMAKQMANwMYIARBoJbDACkDADcDECAEIAk2AsQBIAQgAjYCwAEgBCADIAVBA3RqNgKkBSAEIAM2AqAFIAQgBEHAAWoiHDYCqAUjAEEgayIIJAAgCEIBNwIYIAhCADcCECAIQoCAgICAATcCCCAIQQhqIQogBEGgBWoiCygCBCIDIAsoAgAiBUcEQCAKIAMgBWtBA3YQugwLIwBB8ABrIgYkACALKAIEIQMgCygCACEFIAYgCygCCDYCBCAGIAo2AgAgAyAFRwRAIAZBBGohJSADIAVrQQN2IQMDQCAlKAIAIiYoAgQiECAFKQMAIjOnIhZNBEAgFiAQQbCawwAQ6BEACyAGQQhqIhAgJigCACAWQeAAbGpB4AD8CgAAIBAgM0KAgICAgID8/w+DQoCAgICAgARROgBgIAogEBD5CSAFQQhqIQUgA0EBayIDDQALCyAGQfAAaiQAIAcgCCkCGDcCECAHIAgpAhA3AgggByAIKQIINwIAIAhBIGokACAEIAQoArgGNgLYAiAEIAQpArAGNwPQAiAEIAQoAsQGNgLoAiAEIAQpArwGNwPgAiAEIAk2AsQBIAQgAjYCwAEgBCAOIBJBA3RqNgKkBSAEIA42AqAFIAQgHDYCqAUjAEEgayIIJAAgCEIBNwIYIAhCADcCECAIQoCAgICAATcCCCAIQQhqIQogCygCBCIDIAsoAgAiBUcEQCAKIAMgBWtBA3YQugwLIwBB8ABrIgYkACALKAIEIQUgCygCACEDIAYgCygCCDYCBCAGIAo2AgAgAyAFRwRAIAZBBGohECAFIANrQQN2IQUDQCAQKAIAIhIoAgQiFiADKQMAIjOnIg5NBEAgDiAWQcCawwAQ6BEACyAGQQhqIhYgEigCACAOQeAAbGpB4AD8CgAAIBYgM0KAgICAgID8/w+DQoCAgICAgARROgBgIAogFhD5CSADQQhqIQMgBUEBayIFDQALCyAGQfAAaiQAIAcgCCkCGDcCECAHIAgpAhA3AgggByAIKQIINwIAIAhBIGokACAEIAQoArgGNgL4AiAEIAQpArAGNwPwAiAEIAQoAsQGNgKIAyAEIAQpArwGNwOAAyAEQTBqIhYgBCgC1AIgBCgC2AIgBCgC5AIgBCgC6AIQ9AggHCAEKAL0AiAEKAL4AiAEKAKEAyAEKAKIAxD0CCAEIAk2AsQHIAQgAjYCwAcgBCAMIBdBA3RqNgKkBSAEIAw2AqAFIAQgBEHAB2oiCDYCqAUjAEEgayIGJAAgBkIBNwIYIAZCADcCECAGQoCAgICAATcCCCAGQQhqIQ4gCygCBCIDIAsoAgAiBUcEQCAOIAMgBWtBA3YQugwLIwBB8ABrIgokACALKAIEIQUgCygCACEDIAogCygCCDYCBCAKIA42AgAgAyAFRwRAIApBBGohEiAFIANrQQN2IQUDQCASKAIAIhcoAgQiECADKQMAIjOnIgxNBEAgDCAQQdCawwAQ6BEACyAKQQhqIhAgFygCACAMQeAAbGpB4AD8CgAAIBAgM0IsiDwAYCAOIBAQ+QkgA0EIaiEDIAVBAWsiBQ0ACwsgCkHwAGokACAHIAYpAhg3AhAgByAGKQIQNwIIIAcgBikCCDcCACAGQSBqJAAgBCAEKAK4BjYCmAMgBCAEKQKwBjcDkAMgBCAEKALEBjYCqAMgBCAEKQK8BjcDoAMgBCAJNgLEByAEIAI2AsAHIAQgDyAdQQN0ajYCpAUgBCAPNgKgBSAEIAg2AqgFIwBBIGsiBiQAIAZCATcCGCAGQgA3AhAgBkKAgICAgAE3AgggBkEIaiEOIAsoAgQiAyALKAIAIgVHBEAgDiADIAVrQQN2ELoMCyMAQfAAayIKJAAgCygCBCEDIAsoAgAhBSAKIAsoAgg2AgQgCiAONgIAIAMgBUcEQCAKQQRqIRAgAyAFa0EDdiEDA0AgECgCACISKAIEIg8gBSkDACIzpyIMTQRAIAwgD0HgmsMAEOgRAAsgCkEIaiIPIBIoAgAgDEHgAGxqQeAA/AoAACAPIDNCLIg8AGAgDiAPEPkJIAVBCGohBSADQQFrIgMNAAsLIApB8ABqJAAgByAGKQIYNwIQIAcgBikCEDcCCCAHIAYpAgg3AgAgBkEgaiQAIAQgBCgCuAY2ArgDIAQgBCkCsAY3A7ADIAQgBCgCxAY2AsgDIAQgBCkCvAY3A8ADIAcgBCgClAMgBCgCmAMgBCgCpAMgBCgCqAMQhgkgFiAHEPsIIAcgBCgCtAMgBCgCuAMgBCgCxAMgBCgCyAMQhgkgHCAHEPsIIAQgCTYCxAcgBCACNgLAByAEIA0gHkEDdGo2AqQFIAQgDTYCoAUgBCAINgKoBSMAQSBrIgUkACAFQgI3AhggBUIANwIQIAVCgICAgIABNwIIIAVBCGohDiALKAIEIgMgCygCACIGRwRAIA4gAyAGa0EDdhC8DAsjAEHwAGsiCiQAIAsoAgQhBiALKAIAIQMgCiALKAIINgIEIAogDjYCACADIAZHBEAgCkEEaiENIAYgA2tBA3YhBgNAIA0oAgAiECgCBCIPIAMpAwAiM6ciDE0EQCAMIA9B8JrDABDoEQALIApBCGoiDyAQKAIAIAxB4ABsakHgAPwKAAAgDyAzQiyIPQFgIA4gDxD6CSADQQhqIQMgBkEBayIGDQALCyAKQfAAaiQAIAcgBSkCGDcCECAHIAUpAhA3AgggByAFKQIINwIAIAVBIGokACAEIAQoArgGNgLYAyAEIAQpArAGNwPQAyAEIAQoAsQGNgLoAyAEIAQpArwGNwPgAyAEIAk2AsQHIAQgAjYCwAcgBCATIBpBA3RqNgKkBSAEIBM2AqAFIAQgCDYCqAUjAEEgayIDJAAgA0ICNwIYIANCADcCECADQoCAgICAATcCCCADQQhqIQ4gCygCBCIFIAsoAgAiBkcEQCAOIAUgBmtBA3YQvAwLIwBB8ABrIgUkACALKAIEIQogCygCACEGIAUgCygCCDYCBCAFIA42AgAgBiAKRwRAIAVBBGohDSAKIAZrQQN2IQoDQCANKAIAIhMoAgQiDyAGKQMAIjOnIgxNBEAgDCAPQYCbwwAQ6BEACyAFQQhqIg8gEygCACAMQeAAbGpB4AD8CgAAIA8gM0IsiD0BYCAOIA8Q+gkgBkEIaiEGIApBAWsiCg0ACwsgBUHwAGokACAHIAMpAhg3AhAgByADKQIQNwIIIAcgAykCCDcCACADQSBqJAAgBCAEKAK4BjYC+AMgBCAEKQKwBjcD8AMgBCAEKALEBjYCiAQgBCAEKQK8BjcDgAQgByAEKALUAyAEKALYAyAEKALkAyAEKALoAxCHCSAWIAcQ+wggByAEKAL0AyAEKAL4AyAEKAKEBCAEKAKIBBCHCSAcIAcQ+wggBCAJNgKsBSAEIBE2AqgFIAQgCTYCpAUgBCACNgKgBSAEIBUgH0EDdGo2AsQHIAQgFTYCwAcgBCALNgLIByMAQSBrIgMkACADQgQ3AhggA0IANwIQIANCgICAgIABNwIIIANBCGohDCAIKAIEIgUgCCgCACIGRwRAIAwgBSAGa0EDdhC7DAsjAEHwAGsiCiQAIAgoAgQhBSAIKAIAIQYgCiAIKAIINgIEIAogDDYCACAFIAZHBEAgCkEEaiETIAUgBmtBA3YhBQNAIApBCGohDwJAAkAgEygCACINKAIEIhUgBigCACIOSwRAIA0oAgwiFSAOTQ0BIA0oAgggDkEFdGopAwAhMyAPIA0oAgAgDkHgAGxqQeAA/AoAACAPIDM+AmAMAgsgDiAVQZCbwwAQ6BEACyAOIBVBoJvDABDoEQALIAwgDxD1CSAGQQhqIQYgBUEBayIFDQALCyAKQfAAaiQAIAcgAykCGDcCECAHIAMpAhA3AgggByADKQIINwIAIANBIGokACAEIAQoArgGNgKYBCAEIAQpArAGNwOQBCAEIAQoAsQGNgKoBCAEIAQpArwGNwOgBCAEIAk2ArAFIAQgETYCrAUgBCAJNgKkBSAEIAI2AqAFIAQgBEEQaiIVNgKoBSAEIBQgIUEDdGo2AsQHIAQgFDYCwAcgBCALNgLIByMAQSBrIgUkACAFQgQ3AhggBUIANwIQIAVCgICAgIABNwIIIAVBCGohDyAIKAIEIgMgCCgCACIGRwRAIA8gAyAGa0EDdhC7DAsjAEHwAGsiCiQAIAgoAgQhBiAIKAIAIQMgCiAIKAIINgIEIAogDzYCACADIAZHBEAgCkEEaiEUIAYgA2tBA3YhEwNAIApBCGohDSMAQSBrIgYkAAJAAkAgFCgCACIMKAIEIhAgAygCACIOSwRAIAwoAhAiECAOTQ0BIAwoAgAhECAMKAIMIRIgBiAMKAIIIgwpAxg3AxggBiAMKQMQNwMQIAYgDCkDCDcDCCAGIAwpAwA3AwAgBiASIA5BBXRqEKMKIAYpAwAhMyANIBAgDkHgAGxqQeAA/AoAACANIDM+AmAgBkEgaiQADAILIA4gEEGwm8MAEOgRAAsgDiAQQcCbwwAQ6BEACyAPIA0Q9QkgA0EIaiEDIBNBAWsiEw0ACwsgCkHwAGokACAHIAUpAhg3AhAgByAFKQIQNwIIIAcgBSkCCDcCACAFQSBqJAAgBCAEKAK4BjYCuAQgBCAEKQKwBjcDsAQgBCAEKALEBjYCyAQgBCAEKQK8BjcDwAQgByAEKAKUBCAEKAKYBCAEKAKkBCAEKAKoBBCICSAWIAcQ+wggByAEKAK0BCAEKAK4BCAEKALEBCAEKALIBBCICSAcIAcQ+wggBCAJNgKsBSAEIBE2AqgFIAQgCTYCpAUgBCACNgKgBSAEIBggIkEDdGo2AsQHIAQgGDYCwAcgBCALNgLIByMAQSBrIgMkACADQgg3AhggA0IANwIQIANCgICAgIABNwIIIANBCGohDCAIKAIEIgUgCCgCACIGRwRAIAwgBSAGa0EDdhC9DAsjAEHwAGsiBiQAIAgoAgQhBSAIKAIAIQogBiAIKAIINgIEIAYgDDYCACAFIApHBEAgBkEEaiETIAUgCmtBA3YhBQNAIAZBCGohDwJAAkAgEygCACINKAIEIhQgCigCACIOSwRAIA0oAgwiFCAOTQ0BIA0oAgggDkEFdGopAwAhMyAPIA0oAgAgDkHgAGxqQeAA/AoAACAPIDM3A2AMAgsgDiAUQdCbwwAQ6BEACyAOIBRB4JvDABDoEQALIAwgDxD2CSAKQQhqIQogBUEBayIFDQALCyAGQfAAaiQAIAcgAykCGDcCECAHIAMpAhA3AgggByADKQIINwIAIANBIGokACAEIAQoArgGNgLYBCAEIAQpArAGNwPQBCAEIAQoAsQGNgLoBCAEIAQpArwGNwPgBCAEIAk2ArAFIAQgETYCrAUgBCAJNgKkBSAEIAI2AqAFIAQgFTYCqAUgBCAZICNBA3RqNgLEByAEIBk2AsAHIAQgCzYCyAcjAEEgayIDJAAgA0IINwIYIANCADcCECADQoCAgICAATcCCCADQQhqIQ0gCCgCBCIFIAgoAgAiBkcEQCANIAUgBmtBA3YQvQwLIwBB8ABrIgokACAIKAIEIQUgCCgCACEOIAogCCgCCDYCBCAKIA02AgAgBSAORwRAIApBBGohFSAFIA5rQQN2IQUDQCAKQQhqIRMjAEEgayIGJAACQAJAIBUoAgAiDygCBCIUIA4oAgAiDEsEQCAPKAIQIhQgDE0NASAPKAIAIRQgDygCDCEYIAYgDygCCCIPKQMYNwMYIAYgDykDEDcDECAGIA8pAwg3AwggBiAPKQMANwMAIAYgGCAMQQV0ahCjCiAGKQMAITMgEyAUIAxB4ABsakHgAPwKAAAgEyAzNwNgIAZBIGokAAwCCyAMIBRB8JvDABDoEQALIAwgFEGAnMMAEOgRAAsgDSATEPYJIA5BCGohDiAFQQFrIgUNAAsLIApB8ABqJAAgByADKQIYNwIQIAcgAykCEDcCCCAHIAMpAgg3AgAgA0EgaiQAIAQgBCgCuAY2AvgEIAQgBCkCsAY3A/AEIAQgBCgCxAY2AogFIAQgBCkCvAY3A4AFIAcgBCgC1AQgBCgC2AQgBCgC5AQgBCgC6AQQiQkgFiAHEPsIIAcgBCgC9AQgBCgC+AQgBCgChAUgBCgCiAUQiQkgHCAHEPsIIAQgCTYCrAUgBCARNgKoBSAEIAk2AqQFIAQgAjYCoAUgBCAbICRBA3RqNgLEByAEIBs2AsAHIAQgCzYCyAcjAEEgayIGJAAgBkIINwIYIAZCADcCECAGQoCAgICAATcCCCAGQQhqIQkgCCgCBCICIAgoAgAiA0cEQCAJIAIgA2tBA3YiAhC0CyAJQQxqIAIQtAgLIwBBkAFrIgokACAIKAIEIQIgCCgCACEFIAogCCgCCDYCDCAKIAk2AgggAiAFRwRAIApBDGohDyACIAVrQQN2IQMDQCAKQRBqIQICQAJAIA8oAgAiDigCBCIMIAUoAgAiEUsEQCAOKAIMIgwgEU0NASACIA4oAgggEUEFdGoiDCkDADcDYCACIAwpAwg3A2ggAiAMKQMQNwNwIAIgDCkDGDcDeCACIA4oAgAgEUHgAGxqQeAA/AoAAAwCCyARIAxBkJzDABDoEQALIBEgDEGgnMMAEOgRAAsgCSgCBCAJKAIIIhFB4ABsaiACQeAA/AoAACAJIBFBAWo2AgggCSAJKAIUIhFBAWo2AhQgCSgCECARQQV0aiIRIAIpA2A3AwAgESACKQNoNwMIIBEgAikDcDcDECARIAIpA3g3AxggBUEIaiEFIANBAWsiAw0ACwsgCkGQAWokACAHIAYpAhg3AhAgByAGKQIQNwIIIAcgBikCCDcCACAGQSBqJAAgBCAEKAK4BiICNgKYBSAEIAQpArAGNwOQBSAEIAQoAsQGIgM2AsgHIAQgBCkCvAY3A8AHIAQoApQFIQUgBCgCxAchCSMAQUBqIhEkAAJAIAMgAiACIANLGyICRQRAIAdB4ABqQQBBMPwLACAHQbCIxABBMPwKAAAgB0EwakGwiMQAQTD8CgAADAELIBEgAjYCMCARIAI2AiwgESAFNgIoIBEgAjYCPCARIAI2AjggESAJNgI0IBFBCGoiAiARQShqIBFBNGoQ9QgjAEGQAWsiDyQAIA9B4ABqQQBBMPwLACAPQbCIxABBMPwKAAAgD0EwakGwiMQAQTD8CgAAIwBBoAJrIhMkACACKAIUIhVBBXQhJCACKAIIIhRB4ABsISUgAigCHCACKAIYIgNrIQ4gAigCECADIBVsIgVrIQYgAigCBCADIBRsIgNrIQogAigCDCAFQQV0aiEYIAIoAgAgA0HgAGxqIR0gE0GQAWohIQNAIA4EQCMAQeAFayIFJAAgBSAdNgIQIAUgFSAGIAYgFUsbIgIgFCAKIAogFEsbIgMgAiADSRsiAjYCFEEDIQMgAkEgTwRAIAIQ+w5BAmohAwsgBSADNgIYIAVB/wE2AhwgBUH/ASADQdCWwwAQlgkiCTYCICAFQQA2AtADIAVBADYCoAMgBSAYNgKQAyAFIBggAkEFdGo2ApQDIAUgBUEcajYCnAMgBSAFQRhqIgI2ApgDIAVBJGoiDCAFQZADaiIDEJcJIAVBMGoiDUGgkMMAQcAB/AoAACAFIAk2AqgDIAVBADYCpAMgBSAFQRBqNgKgAyAFIAVBIGo2ApwDIAUgDDYCmAMgBSACNgKUAyAFIA02ApADIwBBIGsiDCQAIAxBCGogAygCGCICIAMoAhRrIglBACACIAlPG0EIQcABEPEFIAxBADYCHCAMIAwpAwg3AhQjAEEQayIZJAAgDEEUaiICIAMoAhgiCSADKAIUayINQQAgCSANTxsQtQggAikCBCEzIBkgAkEIajYCBCAZIDNCIIk3AggjAEHQBGsiCSQAIAMoAhgiDSADKAIUIgIgAiANSRshJiACQQN0IR4gAygCECEiIAMoAgwhKyADKAIIISMgAygCBCEsIAMoAgAhLSAZQQRqIgMoAgghLiADKAIEIRsgAygCACEvAkACQANAIAIgJkcEQCAJQZADaiINIC1BwAH8CgAAIAlBxAFqIA1BASAsKAIAdBDRCCArKAIAIhBFDQIgAkEBaiAjKAIIIRIgIygCBCEXIAkgEDYC2AEgCSASNgLUASAJIBc2AtABICIoAgAiECAiKAIEQeAAbGohEiAJQdABaiIXEMUMIRogDUEANgIUIA0gEjYCECANIBA2AgwgDSAXKAIINgIIIA0gFykCADcCACANIBIgEGtB4ABuIg0gGiANIBpJGzYCGCAJKAKoAyIQIAkoAqQDIg1rIhJBACAQIBJPGyEaIAkoApgDIhBBA3QhMCAJKAKcAyANQeAAbGohEiAJKAKUAyANIBBsIg1rIRcgCSgCkAMgHiANQQN0amohHwNAIBoEQAJAAkACQCAQIBcgECAXSRsiDSACSwRAIB8pAwAiM0IAUyAzQgBVa0H/AXEOAgMCAQsgAiANQfCcwwAQ6BEACyAJQcQBaiAzp0EBa0GAncMAEO4JIBIQ6wkMAQsgCUHEAWogM6dBf3NBkJ3DABDuCSMAQcABayINJAAgDUHgAGoiMiASQeAA/AoAACANQZABahDdDiANIDJB4AD8CgAAIA0Q6wkgDUHAAWokAAsgGkEBayEaIBJB4ABqIRIgFyAQayEXIB8gMGohHwwBCwsgCUHQAWoiEEGgkMMAQcAB/AoAACAJQZADaiICQaCQwwBBwAH8CgAAIAkgCSgCxAE2AgggCSAJKALIASINNgIEIAkgDTYCACAJIA0gCSgCzAFBwAFsajYCDCAJIBAgAhDvCSAJIAJBwAH8CgAAIC4gG0HAAWxqIAlBwAH8CgAAIB5BCGohHiAbQQFqIRshAgwBCwsgLyAbNgIAIAlB0ARqJAAMAQtByIbDAEE3QeCcwwAQ4hEACyAZQRBqJAAgBUH0AWoiAiAMKAIcNgIIIAIgDCkCFDcCACAMQSBqJAAgBSgC/AFFBEBB4JbDABD6EQALIAVBkANqIgIgBSgC+AFBwAH8CgAAIAVBgAJqIgkgAhDqByAFQQhqIAVB9AFqIgxB8JbDABD5CCAFKAIIIQMgBSgCDCENIAVB8ANqQQBBMPwLACACQbCIxABBMPwKAAAgBUHAA2pBsIjEAEEw/AoAACAFQdAEaiIZIAMgAyANQcABbGogAiAFQRhqEPoIICEgCSAZEJgJIAwQ/AggBUEkahCPCSAFQeAFaiQAIBMgD0GQAfwKAAAgDyATICEQ6gkgDkEBayEOIAYgFWshBiAYICRqIRggCiAUayEKIB0gJWohHQwBCwsgByAPQZAB/AoAACATQaACaiQAIA9BkAFqJAALIBFBQGskACAWIAcQ+wggCyAWQZAB/AoAACAHIBxBkAH8CgAAICggCyAHEIoJIAgQiwkgBEGQBWoQjAkgBEGABWoQ/w4gBEHwBGoQjAkgBEHgBGoQ/w4gBEHQBGoQjAkgBEHABGoQiQ8gBEGwBGoQjAkgBEGgBGoQiQ8gBEGQBGoQjAkgBEGABGoQjQkgBEHwA2oQjAkgBEHgA2oQjQkgBEHQA2oQjAkgBEHAA2oQpg8gBEGwA2oQjAkgBEGgA2oQpg8gBEGQA2oQjAkgBEGAA2oQjgkgBEHwAmoQjAkgBEHgAmoQjgkgBEHQAmoQjAkgBEEEahCPCSAEQdAHaiQAICoQiwkgIEEQaiQAIClBCGogKEGQAfwKAABBADYCACAnQaABaiQAIAEoApgEQQFGDQYgAUGIA2oiAiABQaAEakGQAfwKAAAgAUGgAWogAhD3DAsgAUHQAGoQiwkgAUEgahCMCSAAQQFqIAFBoAFqEPULIABBADoAAAwHCyAAQQBB4QD8CwAMBQsgACABKAKkBDYCDCAAIAEpApwENwIEIABBAToAAAwECyABQSBqIgMgCUEw/AoAACABQdAAaiILIAhBMPwKAAAgASAHKQAYNwOYASABIAcpABA3A5ABIAEgBykACDcDiAEgASAHKQAANwOAASABQYgDaiADIAsQ/QsgASgCiANBAUYEQCABIAEoApQDIgI2AqgBIAEgASkCjAMiMzcDoAEgACACNgIMIAAgMzcCBCAAQQE6AAAMBAsgBCAFQeAA/AoAACABQYgCaiAEQeAA/AoAAEEAIQMDQCADQSBGDQIgAUGAAWogA2ogA0EBaiEDLQAARQ0ACyABQYgDaiAHEPMLIAEoAogDQQFGBEAgASABKAKUAyICNgKoASABIAEpAowDIjM3A6ABIAAgAjYCDCAAIDM3AgQgAEEBOgAADAQFIAQgBSkCGDcCGCAEIAUpAhA3AhAgBCAFKQIINwIIIAQgBSkCADcCACABIAQpAgA3A+gCIAEgBCkCCDcD8AIgASAEKQIQNwP4AiABIAQpAhg3A4ADIAFBCGoiAygCCCILIAMoAgBGBEAgAxDJCAsgAygCBCALQeAAbGogAUGIAmpB4AD8CgAAIAMgC0EBajYCCCABQRRqIAFB6AJqEK8LDAILAAsLIAFBiANqIAFBmARqQZTewwBB7QBBzN7DABDgEQALIAEgASgCnAQ2AogDQezewwBBEiABQYgDakGMiMMAQYDfwwAQ/BEACyABQRRqEIsJIAFBCGoQjAkLIAFBsAVqJAALuwQCAX4DfyMAQYAMayIBJAAgASACQTD8CgAAIAFBMGoiBSACQTBqQTD8CgAAIAFB4ABqIgYgAkHgAGpBMPwKAAAgAUGQAWoiByACQZABakEw/AoAACABQcABaiADQTD8CgAAIAFB8AFqIANBMGpBMPwKAAAgAUGgAmogA0HgAGpBMPwKAAAgAUHQAmogA0GQAWpBMPwKAAAgAUHgCWogASAFIAYgBxD7CwJAIAEoAuAJQQFGBEAgASABKALsCSICNgKIBiABIAEpAuQJIgQ3A4AGIAAgAjYCDCAAIAQ3AgQgAEEBOgAADAELIAFBhAZqIgIgAUHoCWoiA0HAAfwKAAAgAUGAA2ogAkHAAfwKAAAgAUHgCWogAUHAAWogAUHwAWogAUGgAmogAUHQAmoQ+wsgASgC4AlBAUYEQCABIAEoAuwJIgI2AogGIAEgASkC5AkiBDcDgAYgACACNgIMIAAgBDcCBCAAQQE6AAAMAQsgAiADQcAB/AoAACABQcAEaiACQcAB/AoAACABQaAIaiICIAFBgANqQcAB/AoAACABQeAJaiACENMKAkAgASkD4AlCAVEEQCABQeAGaiABQcgKakHgAPwKAAAgAUHAB2oQ6A4gAUGABmogAUHoCWpB4AD8CgAADAELIAFBgAZqEPcICyABQYAGaiICIAFBwARqEPoOIAFB4AlqIgMgAkGgAvwKAAAgAUGgCGoiAiADENEMIABBAWogAhD3CyAAQQA6AAALIAFBgAxqJAAL3kYCL38BfiMAQfAJayIBJAAgAUHIB2oiDCACIAMoAhARAAAgASABKALIByIEQQhBwAEQ8QUgAUEANgIQIAEgASkDADcCCCABQRRqIAQQrgogAUGJCWohByABQdkIaiEJIAFBqQhqIQsgAUH5B2ohBiABQYQCaiEEIAFBsAVqIQUgDEEBciEMIAMoAgwhCgJAAkACQANAAkAgAUHIB2ogAiAKEQAAAkACQAJAIAEtAMgHDgMCAQABCyABKAIQBEAgASABKAIQIgM2AogBIAEgASkCCDcDgAEgASABKAIcIgI2ArgBIAEgASkCFDcDsAEgASADNgKoBSABIAI2AsgHIAIgA0cNAwJAAkACQAJAIAMOAgABAgsgAUGAAmpBAEHAAfwLAAwCCyABQagFaiICIAFBsAFqQdjfwwAQ6AwQ9AkgAUHIB2oiAyABKAKEASACEIUKIAFBgAJqIAMQ0QwMAQsgASgChAEhAiABKAK0ASEEIwBBsAJrIickACABQcgHaiIpIwBBEGsiICQAICBBBGoiKiAEIAQgA0EFdGoQgwwgJ0EQaiEoICAoAgghDyAgKAIMIQcjAEGQDGsiBCQAIARBADYC6AkgBCAPNgLgCSAEIA8gByADIAMgB0sbIgtBBXRqNgLkCSAEQQRqIARB4AlqIgcQgQkgBCgCDCEDIAQoAgghBSAEIARBjwxqNgLgCQJAIANBAkkNACADQRVPBEAgBSADIAcQggkMAQsgBSADQQEQgwkLIARB4AlqIgcgBSADQQAgBSADEIQJQfCUwwAQhQkgBCgC4AkhAyAEKALkCSEFIAcgBCgC6AkiDCAEKALsCSIJQQEgDCAJEIQJQYCVwwAQhQkgBCgC4AkhDiAEKALkCSESIAcgBCgC6AkiDCAEKALsCSIJQQIgDCAJEIQJQZCVwwAQhQkgBCgC4AkhDSAEKALkCSEXIAcgBCgC6AkiDCAEKALsCSIJQQMgDCAJEIQJQaCVwwAQhQkgBCgC4AkhCCAEKALkCSEdIAcgBCgC6AkiDCAEKALsCSIJQQQgDCAJEIQJQbCVwwAQhQkgBCgC4AkhESAEKALkCSEeIAcgBCgC6AkiDCAEKALsCSIJQQUgDCAJEIQJQcCVwwAQhQkgBCgC4AkhEyAEKALkCSEaIAcgBCgC6AkiDCAEKALsCSIJQQYgDCAJEIQJQdCVwwAQhQkgBCgC4AkhFSAEKALkCSEfIAcgBCgC6AkiDCAEKALsCSIJQQcgDCAJEIQJQeCVwwAQhQkgBCgC4AkhFCAEKALkCSEhIAcgBCgC6AkiDCAEKALsCSIJQQggDCAJEIQJQfCVwwAQhQkgBCgC4AkhGCAEKALkCSEiIAcgBCgC6AkiDCAEKALsCSIJQQkgDCAJEIQJQYCWwwAQhQkgBCgC4AkhGSAEKALkCSEjIAcgBCgC6AkiDCAEKALsCSIJQQogDCAJEIQJQZCWwwAQhQkgBCgC4AkhGyAEKALkCSEkIARBuJbDACkDADcDKCAEQbCWwwApAwA3AyAgBEGolsMAKQMANwMYIARBoJbDACkDADcDECAEIAs2AtQCIAQgAjYC0AIgBCADIAVBA3RqNgLEByAEIAM2AsAHIAQgBEHQAmoiHDYCyAcjAEEgayIJJAAgCUIBNwIYIAlCADcCECAJQoCAgICAATcCCCAJQQhqIQogBEHAB2oiDCgCBCIDIAwoAgAiBUcEQCAKIAMgBWtBA3YQvgwLIwBB0AFrIgYkACAMKAIEIQMgDCgCACEFIAYgDCgCCDYCBCAGIAo2AgAgAyAFRwRAIAZBBGohJSADIAVrQQN2IQMDQCAlKAIAIiYoAgQiECAFKQMAIjOnIhZNBEAgFiAQQbCawwAQ6BEACyAGQQhqIhAgJigCACAWQcABbGpBwAH8CgAAIBAgM0KAgICAgID8/w+DQoCAgICAgARROgDAASAKIBAQ+wkgBUEIaiEFIANBAWsiAw0ACwsgBkHQAWokACAHIAkpAhg3AhAgByAJKQIQNwIIIAcgCSkCCDcCACAJQSBqJAAgBCAEKALoCTYC+AQgBCAEKQLgCTcD8AQgBCAEKAL0CTYCiAUgBCAEKQLsCTcDgAUgBCALNgLUAiAEIAI2AtACIAQgDiASQQN0ajYCxAcgBCAONgLAByAEIBw2AsgHIwBBIGsiCSQAIAlCATcCGCAJQgA3AhAgCUKAgICAgAE3AgggCUEIaiEKIAwoAgQiAyAMKAIAIgVHBEAgCiADIAVrQQN2EL4MCyMAQdABayIGJAAgDCgCBCEFIAwoAgAhAyAGIAwoAgg2AgQgBiAKNgIAIAMgBUcEQCAGQQRqIRAgBSADa0EDdiEFA0AgECgCACISKAIEIhYgAykDACIzpyIOTQRAIA4gFkHAmsMAEOgRAAsgBkEIaiIWIBIoAgAgDkHAAWxqQcAB/AoAACAWIDNCgICAgICA/P8Pg0KAgICAgIAEUToAwAEgCiAWEPsJIANBCGohAyAFQQFrIgUNAAsLIAZB0AFqJAAgByAJKQIYNwIQIAcgCSkCEDcCCCAHIAkpAgg3AgAgCUEgaiQAIAQgBCgC6Ak2ApgFIAQgBCkC4Ak3A5AFIAQgBCgC9Ak2AqgFIAQgBCkC7Ak3A6AFIARBMGoiFiAEKAL0BCAEKAL4BCAEKAKEBSAEKAKIBRD2CCAcIAQoApQFIAQoApgFIAQoAqQFIAQoAqgFEPYIIAQgCzYChAwgBCACNgKADCAEIA0gF0EDdGo2AsQHIAQgDTYCwAcgBCAEQYAMaiIJNgLIByMAQSBrIgYkACAGQgE3AhggBkIANwIQIAZCgICAgIABNwIIIAZBCGohDiAMKAIEIgMgDCgCACIFRwRAIA4gAyAFa0EDdhC+DAsjAEHQAWsiCiQAIAwoAgQhBSAMKAIAIQMgCiAMKAIINgIEIAogDjYCACADIAVHBEAgCkEEaiESIAUgA2tBA3YhBQNAIBIoAgAiFygCBCIQIAMpAwAiM6ciDU0EQCANIBBB0JrDABDoEQALIApBCGoiECAXKAIAIA1BwAFsakHAAfwKAAAgECAzQiyIPADAASAOIBAQ+wkgA0EIaiEDIAVBAWsiBQ0ACwsgCkHQAWokACAHIAYpAhg3AhAgByAGKQIQNwIIIAcgBikCCDcCACAGQSBqJAAgBCAEKALoCTYCuAUgBCAEKQLgCTcDsAUgBCAEKAL0CTYCyAUgBCAEKQLsCTcDwAUgBCALNgKEDCAEIAI2AoAMIAQgCCAdQQN0ajYCxAcgBCAINgLAByAEIAk2AsgHIwBBIGsiBiQAIAZCATcCGCAGQgA3AhAgBkKAgICAgAE3AgggBkEIaiEOIAwoAgQiAyAMKAIAIgVHBEAgDiADIAVrQQN2EL4MCyMAQdABayIKJAAgDCgCBCEDIAwoAgAhBSAKIAwoAgg2AgQgCiAONgIAIAMgBUcEQCAKQQRqIRAgAyAFa0EDdiEDA0AgECgCACISKAIEIgggBSkDACIzpyINTQRAIA0gCEHgmsMAEOgRAAsgCkEIaiIIIBIoAgAgDUHAAWxqQcAB/AoAACAIIDNCLIg8AMABIA4gCBD7CSAFQQhqIQUgA0EBayIDDQALCyAKQdABaiQAIAcgBikCGDcCECAHIAYpAhA3AgggByAGKQIINwIAIAZBIGokACAEIAQoAugJNgLYBSAEIAQpAuAJNwPQBSAEIAQoAvQJNgLoBSAEIAQpAuwJNwPgBSAHIAQoArQFIAQoArgFIAQoAsQFIAQoAsgFEJAJIBYgBxD/CCAHIAQoAtQFIAQoAtgFIAQoAuQFIAQoAugFEJAJIBwgBxD/CCAEIAs2AoQMIAQgAjYCgAwgBCARIB5BA3RqNgLEByAEIBE2AsAHIAQgCTYCyAcjAEEgayIFJAAgBUICNwIYIAVCADcCECAFQoCAgICAATcCCCAFQQhqIQ4gDCgCBCIDIAwoAgAiBkcEQCAOIAMgBmtBA3YQwAwLIwBB0AFrIgokACAMKAIEIQYgDCgCACEDIAogDCgCCDYCBCAKIA42AgAgAyAGRwRAIApBBGohESAGIANrQQN2IQYDQCARKAIAIhAoAgQiCCADKQMAIjOnIg1NBEAgDSAIQfCawwAQ6BEACyAKQQhqIgggECgCACANQcABbGpBwAH8CgAAIAggM0IsiD0BwAEgDiAIEPwJIANBCGohAyAGQQFrIgYNAAsLIApB0AFqJAAgByAFKQIYNwIQIAcgBSkCEDcCCCAHIAUpAgg3AgAgBUEgaiQAIAQgBCgC6Ak2AvgFIAQgBCkC4Ak3A/AFIAQgBCgC9Ak2AogGIAQgBCkC7Ak3A4AGIAQgCzYChAwgBCACNgKADCAEIBMgGkEDdGo2AsQHIAQgEzYCwAcgBCAJNgLIByMAQSBrIgMkACADQgI3AhggA0IANwIQIANCgICAgIABNwIIIANBCGohDiAMKAIEIgUgDCgCACIGRwRAIA4gBSAGa0EDdhDADAsjAEHQAWsiBSQAIAwoAgQhCiAMKAIAIQYgBSAMKAIINgIEIAUgDjYCACAGIApHBEAgBUEEaiERIAogBmtBA3YhCgNAIBEoAgAiEygCBCIIIAYpAwAiM6ciDU0EQCANIAhBgJvDABDoEQALIAVBCGoiCCATKAIAIA1BwAFsakHAAfwKAAAgCCAzQiyIPQHAASAOIAgQ/AkgBkEIaiEGIApBAWsiCg0ACwsgBUHQAWokACAHIAMpAhg3AhAgByADKQIQNwIIIAcgAykCCDcCACADQSBqJAAgBCAEKALoCTYCmAYgBCAEKQLgCTcDkAYgBCAEKAL0CTYCqAYgBCAEKQLsCTcDoAYgByAEKAL0BSAEKAL4BSAEKAKEBiAEKAKIBhCRCSAWIAcQ/wggByAEKAKUBiAEKAKYBiAEKAKkBiAEKAKoBhCRCSAcIAcQ/wggBCALNgLMByAEIA82AsgHIAQgCzYCxAcgBCACNgLAByAEIBUgH0EDdGo2AoQMIAQgFTYCgAwgBCAMNgKIDCMAQSBrIgMkACADQgQ3AhggA0IANwIQIANCgICAgIABNwIIIANBCGohDSAJKAIEIgUgCSgCACIGRwRAIA0gBSAGa0EDdhC/DAsjAEHQAWsiCiQAIAkoAgQhBSAJKAIAIQYgCiAJKAIINgIEIAogDTYCACAFIAZHBEAgCkEEaiETIAUgBmtBA3YhBQNAIApBCGohCAJAAkAgEygCACIRKAIEIhUgBigCACIOSwRAIBEoAgwiFSAOTQ0BIBEoAgggDkEFdGopAwAhMyAIIBEoAgAgDkHAAWxqQcAB/AoAACAIIDM+AsABDAILIA4gFUGQm8MAEOgRAAsgDiAVQaCbwwAQ6BEACyANIAgQ9wkgBkEIaiEGIAVBAWsiBQ0ACwsgCkHQAWokACAHIAMpAhg3AhAgByADKQIQNwIIIAcgAykCCDcCACADQSBqJAAgBCAEKALoCTYCuAYgBCAEKQLgCTcDsAYgBCAEKAL0CTYCyAYgBCAEKQLsCTcDwAYgBCALNgLQByAEIA82AswHIAQgCzYCxAcgBCACNgLAByAEIARBEGoiFTYCyAcgBCAUICFBA3RqNgKEDCAEIBQ2AoAMIAQgDDYCiAwjAEEgayIFJAAgBUIENwIYIAVCADcCECAFQoCAgICAATcCCCAFQQhqIQggCSgCBCIDIAkoAgAiBkcEQCAIIAMgBmtBA3YQvwwLIwBB0AFrIgokACAJKAIEIQYgCSgCACEDIAogCSgCCDYCBCAKIAg2AgAgAyAGRwRAIApBBGohFCAGIANrQQN2IRMDQCAKQQhqIREjAEEgayIGJAACQAJAIBQoAgAiDSgCBCIQIAMoAgAiDksEQCANKAIQIhAgDk0NASANKAIAIRAgDSgCDCESIAYgDSgCCCINKQMYNwMYIAYgDSkDEDcDECAGIA0pAwg3AwggBiANKQMANwMAIAYgEiAOQQV0ahCjCiAGKQMAITMgESAQIA5BwAFsakHAAfwKAAAgESAzPgLAASAGQSBqJAAMAgsgDiAQQbCbwwAQ6BEACyAOIBBBwJvDABDoEQALIAggERD3CSADQQhqIQMgE0EBayITDQALCyAKQdABaiQAIAcgBSkCGDcCECAHIAUpAhA3AgggByAFKQIINwIAIAVBIGokACAEIAQoAugJNgLYBiAEIAQpAuAJNwPQBiAEIAQoAvQJNgLoBiAEIAQpAuwJNwPgBiAHIAQoArQGIAQoArgGIAQoAsQGIAQoAsgGEJIJIBYgBxD/CCAHIAQoAtQGIAQoAtgGIAQoAuQGIAQoAugGEJIJIBwgBxD/CCAEIAs2AswHIAQgDzYCyAcgBCALNgLEByAEIAI2AsAHIAQgGCAiQQN0ajYChAwgBCAYNgKADCAEIAw2AogMIwBBIGsiAyQAIANCCDcCGCADQgA3AhAgA0KAgICAgAE3AgggA0EIaiENIAkoAgQiBSAJKAIAIgZHBEAgDSAFIAZrQQN2EMEMCyMAQdABayIGJAAgCSgCBCEFIAkoAgAhCiAGIAkoAgg2AgQgBiANNgIAIAUgCkcEQCAGQQRqIRMgBSAKa0EDdiEFA0AgBkEIaiEIAkACQCATKAIAIhEoAgQiFCAKKAIAIg5LBEAgESgCDCIUIA5NDQEgESgCCCAOQQV0aikDACEzIAggESgCACAOQcABbGpBwAH8CgAAIAggMzcDwAEMAgsgDiAUQdCbwwAQ6BEACyAOIBRB4JvDABDoEQALIA0gCBD4CSAKQQhqIQogBUEBayIFDQALCyAGQdABaiQAIAcgAykCGDcCECAHIAMpAhA3AgggByADKQIINwIAIANBIGokACAEIAQoAugJNgL4BiAEIAQpAuAJNwPwBiAEIAQoAvQJNgKIByAEIAQpAuwJNwOAByAEIAs2AtAHIAQgDzYCzAcgBCALNgLEByAEIAI2AsAHIAQgFTYCyAcgBCAZICNBA3RqNgKEDCAEIBk2AoAMIAQgDDYCiAwjAEEgayIDJAAgA0IINwIYIANCADcCECADQoCAgICAATcCCCADQQhqIREgCSgCBCIFIAkoAgAiBkcEQCARIAUgBmtBA3YQwQwLIwBB0AFrIgokACAJKAIEIQUgCSgCACEOIAogCSgCCDYCBCAKIBE2AgAgBSAORwRAIApBBGohFSAFIA5rQQN2IQUDQCAKQQhqIRMjAEEgayIGJAACQAJAIBUoAgAiCCgCBCIUIA4oAgAiDUsEQCAIKAIQIhQgDU0NASAIKAIAIRQgCCgCDCEYIAYgCCgCCCIIKQMYNwMYIAYgCCkDEDcDECAGIAgpAwg3AwggBiAIKQMANwMAIAYgGCANQQV0ahCjCiAGKQMAITMgEyAUIA1BwAFsakHAAfwKAAAgEyAzNwPAASAGQSBqJAAMAgsgDSAUQfCbwwAQ6BEACyANIBRBgJzDABDoEQALIBEgExD4CSAOQQhqIQ4gBUEBayIFDQALCyAKQdABaiQAIAcgAykCGDcCECAHIAMpAhA3AgggByADKQIINwIAIANBIGokACAEIAQoAugJNgKYByAEIAQpAuAJNwOQByAEIAQoAvQJNgKoByAEIAQpAuwJNwOgByAHIAQoAvQGIAQoAvgGIAQoAoQHIAQoAogHEJMJIBYgBxD/CCAHIAQoApQHIAQoApgHIAQoAqQHIAQoAqgHEJMJIBwgBxD/CCAEIAs2AswHIAQgDzYCyAcgBCALNgLEByAEIAI2AsAHIAQgGyAkQQN0ajYChAwgBCAbNgKADCAEIAw2AogMIwBBIGsiBiQAIAZCCDcCGCAGQgA3AhAgBkKAgICAgAE3AgggBkEIaiELIAkoAgQiAiAJKAIAIgNHBEAgCyACIANrQQN2IgIQtQggC0EMaiACELQICyMAQfABayIKJAAgCSgCBCECIAkoAgAhBSAKIAkoAgg2AgwgCiALNgIIIAIgBUcEQCAKQQxqIQggAiAFa0EDdiEDA0AgCkEQaiECAkACQCAIKAIAIg4oAgQiDSAFKAIAIg9LBEAgDigCDCINIA9NDQEgAiAOKAIIIA9BBXRqIg0pAwA3A8ABIAIgDSkDCDcDyAEgAiANKQMQNwPQASACIA0pAxg3A9gBIAIgDigCACAPQcABbGpBwAH8CgAADAILIA8gDUGQnMMAEOgRAAsgDyANQaCcwwAQ6BEACyALKAIEIAsoAggiD0HAAWxqIAJBwAH8CgAAIAsgD0EBajYCCCALIAsoAhQiD0EBajYCFCALKAIQIA9BBXRqIg8gAikDwAE3AwAgDyACKQPIATcDCCAPIAIpA9ABNwMQIA8gAikD2AE3AxggBUEIaiEFIANBAWsiAw0ACwsgCkHwAWokACAHIAYpAhg3AhAgByAGKQIQNwIIIAcgBikCCDcCACAGQSBqJAAgBCAEKALoCSICNgK4ByAEIAQpAuAJNwOwByAEIAQoAvQJIgM2AogMIAQgBCkC7Ak3A4AMIAQoArQHIQUgBCgChAwhCyMAQUBqIg8kAAJAIAMgAiACIANLGyICRQRAIAcQ9wgMAQsgDyACNgIwIA8gAjYCLCAPIAU2AiggDyACNgI8IA8gAjYCOCAPIAs2AjQgD0EIaiICIA9BKGogD0E0ahD1CCMAQaACayIRJAAgERD3CCMAQcAEayITJAAgAigCFCIVQQV0ISQgAigCCCIUQcABbCElIAIoAhwgAigCGCIDayEOIAIoAhAgAyAVbCIFayEGIAIoAgQgAyAUbCIDayEKIAIoAgwgBUEFdGohGCACKAIAIANBwAFsaiEdIBNBoAJqISEDQCAOBEAjAEGAC2siBSQAIAUgHTYCECAFIBUgBiAGIBVLGyICIBQgCiAKIBRLGyIDIAIgA0kbIgI2AhRBAyEDIAJBIE8EQCACEPsOQQJqIQMLIAUgAzYCGCAFQf8BNgIcIAVB/wEgA0HQlsMAEJYJIgs2AiAgBUEANgKgBiAFQQA2AvAFIAUgGDYC4AUgBSAYIAJBBXRqNgLkBSAFIAVBHGo2AuwFIAUgBUEYaiICNgLoBSAFQSRqIg0gBUHgBWoiAxCXCSAFQTBqIghB8JHDAEGAA/wKAAAgBSALNgL4BSAFQQA2AvQFIAUgBUEQajYC8AUgBSAFQSBqNgLsBSAFIA02AugFIAUgAjYC5AUgBSAINgLgBSMAQSBrIg0kACANQQhqIAMoAhgiAiADKAIUayILQQAgAiALTxtBCEGAAxDxBSANQQA2AhwgDSANKQMINwIUIwBBEGsiGSQAIA1BFGoiAiADKAIYIgsgAygCFGsiCEEAIAggC00bELYIIAIpAgQhMyAZIAJBCGo2AgQgGSAzQiCJNwIIIwBBkAlrIgskACADKAIYIgggAygCFCICIAIgCEkbISYgAkEDdCEeIAMoAhAhIiADKAIMISsgAygCCCEjIAMoAgQhLCADKAIAIS0gGUEEaiIDKAIIIS4gAygCBCEbIAMoAgAhLwJAAkADQCACICZHBEAgC0GQBmoiCCAtQYAD/AoAACALQYQDaiAIQQEgLCgCAHQQ0gggKygCACIQRQ0CIAJBAWogIygCCCESICMoAgQhFyALIBA2ApgDIAsgEjYClAMgCyAXNgKQAyAiKAIAIhAgIigCBEHAAWxqIRIgC0GQA2oiFxDFDCEaIAhBADYCFCAIIBI2AhAgCCAQNgIMIAggFygCCDYCCCAIIBcpAgA3AgAgCCASIBBrQcABbiIIIBogCCAaSRs2AhggCygCqAYiECALKAKkBiIIayISQQAgECASTxshGiALKAKYBiIQQQN0ITAgCygCnAYgCEHAAWxqIRIgCygClAYgCCAQbCIIayEXIAsoApAGIB4gCEEDdGpqIR8DQCAaBEACQAJAAkAgECAXIBAgF0kbIgggAksEQCAfKQMAIjNCAFMgM0IAVWtB/wFxDgIDAgELIAIgCEHwnMMAEOgRAAsgC0GEA2ogM6dBAWtBgJ3DABDwCSASEO0JDAELIAtBhANqIDOnQX9zQZCdwwAQ8AkjAEGAA2siCCQAIAhBwAFqIjIgEkHAAfwKAAAgCEGgAmoQ6w4aIAggMkHAAfwKAAAgCBDtCSAIQYADaiQACyAaQQFrIRogEkHAAWohEiAXIBBrIRcgHyAwaiEfDAELCyALQZADaiIQQfCRwwBBgAP8CgAAIAtBkAZqIgJB8JHDAEGAA/wKAAAgCyALKAKEAzYCCCALIAsoAogDIgg2AgQgCyAINgIAIAsgCCALKAKMA0GAA2xqNgIMIAsgECACEPEJIAsgAkGAA/wKAAAgLiAbQYADbGogC0GAA/wKAAAgHkEIaiEeIBtBAWohGyECDAELCyAvIBs2AgAgC0GQCWokAAwBC0HIhsMAQTdB4JzDABDiEQALIBlBEGokACAFQbQDaiICIA0oAhw2AgggAiANKQIUNwIAIA1BIGokACAFKAK8A0UEQEHglsMAEPoRAAsgBUHgBWoiAiAFKAK4A0GAA/wKAAAgBUHAA2oiCyACEOwHIAVBCGogBUG0A2oiDUHwlsMAEP0IIAUoAgwhCCAFKAIIIQMgAhD3CCAFQeAIaiIZIAMgAyAIQYADbGogAiAFQRhqEP4IICEgCyAZEJkJIA0QgAkgBUEkahCPCSAFQYALaiQAIBMgEUGgAvwKAAAgESATICEQ7AkgDkEBayEOIAYgFWshBiAYICRqIRggCiAUayEKIB0gJWohHQwBCwsgByARQaAC/AoAACATQcAEaiQAIBFBoAJqJAALIA9BQGskACAWIAcQ/wggDCAWQaAC/AoAACAHIBxBoAL8CgAAICggDCAHEJQJIAkQiwkgBEGwB2oQ/AggBEGgB2oQ/w4gBEGQB2oQ/AggBEGAB2oQ/w4gBEHwBmoQ/AggBEHgBmoQiQ8gBEHQBmoQ/AggBEHABmoQiQ8gBEGwBmoQ/AggBEGgBmoQjQkgBEGQBmoQ/AggBEGABmoQjQkgBEHwBWoQ/AggBEHgBWoQpg8gBEHQBWoQ/AggBEHABWoQpg8gBEGwBWoQ/AggBEGgBWoQjgkgBEGQBWoQ/AggBEGABWoQjgkgBEHwBGoQ/AggBEEEahCPCSAEQZAMaiQAICoQiwkgIEEQaiQAIClBCGogKEGgAvwKAABBADYCACAnQbACaiQAIAEoAsgHQQFGDQYgAUGoBWoiAiABQdAHakGgAvwKAAAgAUGAAmogAhDRDAsgAUGwAWoQiwkgAUGAAWoQ/AggAEEBaiABQYACahD3CyAAQQA6AAAMBwsgAEEAQcEB/AsADAULIAAgASgC1Ac2AgwgACABKQLMBzcCBCAAQQE6AAAMBAsgAUEgaiIDIAxBMPwKAAAgAUHQAGoiDyAGQTD8CgAAIAFBgAFqIg4gC0Ew/AoAACABQbABaiINIAlBMPwKAAAgASAHKQAYNwP4ASABIAcpABA3A/ABIAEgBykACDcD6AEgASAHKQAANwPgASABQagFaiADIA8gDiANEP4LIAEoAqgFQQFGBEAgASABKAK0BSICNgKIAiABIAEpAqwFIjM3A4ACIAAgAjYCDCAAIDM3AgQgAEEBOgAADAQLIAQgBUHAAfwKAAAgAUHIA2ogBEHAAfwKAABBACEDA0AgA0EgRg0CIAFB4AFqIANqIANBAWohAy0AAEUNAAsgAUGoBWogBxDzCyABKAKoBUEBRgRAIAEgASgCtAUiAjYCiAIgASABKQKsBSIzNwOAAiAAIAI2AgwgACAzNwIEIABBAToAAAwEBSAEIAUpAhg3AhggBCAFKQIQNwIQIAQgBSkCCDcCCCAEIAUpAgA3AgAgASAEKQIANwOIBSABIAQpAgg3A5AFIAEgBCkCEDcDmAUgASAEKQIYNwOgBSABQQhqIAFByANqELALIAFBFGogAUGIBWoQrwsMAgsACwsgAUGoBWogAUHIB2pBkN/DAEHtAEHI38MAEOARAAsgASABKALMBzYCqAVB7N7DAEESIAFBqAVqQYyIwwBB6N/DABD8EQALIAFBFGoQiwkgAUEIahD8CAsgAUHwCWokAAvQEQILfwF+IwBBwA9rIgEkACABQaAEaiIGIAQQ5wsgAAJ/AkACQCABKAKgBEEBRgRAIAYQ3QgMAQsgASABQagEaiIEQeAA/AoAACABQaAEaiIAEN0IIAAgBRDnCyABKAKgBEEBRgRAIAAQ3QgMAQsgAUHgAGogBEHgAPwKAAAgAUGgBGoiABDdCCAAIAIQ6AsgASgCoARBAUYEQCAAEN0IDAELIAEgASkDwAQ3A9gBIAEgASkDuAQ3A9ABIAEgASkDsAQ3A8gBIAEgASkDqAQ3A8ABIAFBoARqIgAQ3QggACADEOgLIAEoAqAEQQFHDQEgABDdCAtBjICAgHgMAQsgASABKQPABDcD+AEgASABKQO4BDcD8AEgASABKQOwBDcD6AEgASABKQOoBDcD4AEgAUGgBGoiBBDdCEHU88UAKAIAIgBFBEACfyMAQZADayIJJAAjAEGQA2siBSQAIAVB4AA2AgQgBUH0oMMANgIAIAlByAFqIhACfyAFQcgBaiEDIwBB4ARrIgAkACAAQQhqIgJBAEHgAPwLACAAQbgCaiAFIAJB4AAQ8QgCQCAALQC4AkECRwRAIAAgACkDuAI3A5gDIABBmANqEN8IIANBATYCACADQgM3AgQMAQsgAC0ACCICQSBxIQgCQAJAIALAIgJBQE5BACAIG0UEQCACQQBOBEAgA0EBNgIAIANBBDoABAwECyAAQegAaiIGIABBCGoiB0HgAEEAQQEQ4g4gAEGYAWogB0HgAEEBQQAQ4g4gAkHAAHFFBEAgAEGAAmoiAiAGQTD8CgAAIABBmANqIgYgAhDgDiAAQQM6AMgBIAAgACkDyAEiETcDgAIgAEG4AmogBiACEOcHIAAoArgCBEAgACkCvAIhESADQQE2AgAgAyARNwIEDAULIAAoAsACIQYgAEHUAWogAEHEAmpBLPwKAAAgAEG4AmoiAiAAQZgBakEw/AoAACAAQZgDaiIHIAIQ4A4gACARNwO4AiAAQYACaiAHIAIQ5wcgACgCgAJBAUYEQCAAKQKEAiERIANBATYCACADIBE3AgQMBQsgACgCiAIhAiAAQbgCaiIMQQRyIABBjAJqQSz8CgAAIAAgBjYC6AIgACACNgK4AiAAQewCaiAAQdQBakEs/AoAACMAQZADayIGJAAgBkHQAWoiDSAMQeAA/AoAACMAQcAEayICJAAgAkHAAWoiDiANEO8OIAJBoAJqIgcgDUHgAPwKAAAgAkHgAGoiCiAOIAcQzAggB0HorMMAQeAA/AoAAAJAIAcQ+A5FBEAgB0HorMMAQeAA/AoAACAKIAcQ/AogAiAKQeAA/AoAAAwBCyACIAJB4ABqQeAA/AoAAAsgAkGgAmoiB0EAQeAA/AsAIAcQ+A5FBEAgBxD5DiACIAcQ9g4LIABBmANqIQogCEEARyEOIAZBCGohByACQaACaiACEP8KAkAgAigCoAJFBEAgB0IANwMADAELIAJB4ABqIgsgAkGoAmpB4AD8CgAAIAJBoAJqIgggC0HgAPwKAAAgAkHAAWogCBCACyAIIAJBkAFqQTD8CgAAIAJB4ANqIgsgCBDfDiAIIAJB8AFqQTD8CgAAIAJBkARqIg8gCBDfDgJAAkACQCALIA8Q+wpB/wFxDgIAAQILIAJBoAJqIgggAkHgAGpBMPwKAAAgAkHgA2oiCyAIEN8OIAggAkHAAWpBMPwKAAAgAkGQBGoiDyAIEN8OIAsgDxD7CsBBAEgNAQsgAkGgAmoiCCACQcABakHgAPwKAAAgAkGAA2ogAkHgAGpB4AD8CgAAIAdBCGogCEHAAfwKAAAgB0IBNwMADAELIAJBoAJqIgggAkHgAGpB4AD8CgAAIAJBgANqIAJBwAFqQeAA/AoAACAHQQhqIAhBwAH8CgAAIAdCATcDAAsgAkHABGokAAJAIAYpAwhCAVEEQCAGQbACagJ/IA5FBEAgDSAMQeAA/AoAACAGQRBqDAELIAZB0AFqIAxB4AD8CgAAIAZB8ABqC0HgAPwKAAAgCkEIaiAGQdABakHAAfwKAAAgCkIBNwMADAELIApCADcDAAsgBkGQA2okACAAKAKYA0UEQCADQQE2AgAgAyARNwIEDAULIAAoAqADIQIgA0EMaiAAQaQDakG8AfwKAAAgAEHIAWoQ6AcgA0EANgIAIAMgAjYCCAwECyAAQegAahDzCEUNAQwCCyADQQE2AgAgA0IDNwIEDAILIABBmAFqEPMIDQAgA0EIakEAQcAB/AsAIANBADYCAAwBCyADQQE2AgAgA0EDOgAECyAAQeAEaiQAAkAgBSgCyAEEQCAQIAUpAswBNwIEDAELIAUoAtABIQAgBUEIaiICQQRyIAVB1AFqQbwB/AoAACAFIAA2AgggEEEIaiACQcAB/AoAAEEADAELQQELNgIAIAVBkANqJAAgCSgCyAFBAUcEQCAJQQhqIgAgCUHQAWpBwAH8CgAAQQhBwAEQ8AciAiAAQcAB/AoAAEHU88UAQdTzxQAoAgAiACACIAAbNgIAAkAgAEUEQCACIQAMAQsgAkHAARBUCyAJQZADaiQAIAAMAQsgCSAJKQLMATcDCEHUocMAQSYgCUEIakG4psMAQfyhwwAQ/BEACyEACyABQYACaiIFQYiTxABBwAH8CgAAIAFBoA1qIgIgAUHgAWoQ9AkgBEGoksQAIAIQgwogAUHAA2oiAyAEEPcMIAIgARDCDCAEIAMQwgwgAUGAC2oiAyACIAQQigkgAUHgCGoiBiADEPcMIAIgAUHAAWoQ9AkgBCAFIAIQhQogAyAEENEMIAQgAEHAAfwKAAAgAiAEEPMOIAQgAxDzDiADIAIgBBCUCSABQYAOaiADENEMIARBiJPEAEHAAfwKAAAgAUGABWoQ6w4aIAFBwAlqIARBwAH8CgAAIAIgAUHgAGpB4AD8CgAAIAQgBkGgAvwKAAAgAUHABmogAkGgAvwKAABBfkGMgICAeCAEQQIQ9AsbCzYCACABQcAPaiQAC84ZAhd/B34jAEGAAmsiASQAIAFBmAFqIAIQ+gsCQAJAIAEoApgBQQFGBEAgASABKAKkASICNgJAIAEgASkCnAEiGjcDOCAAIAI2AgwgACAaNwIEIABBAToAAAwBCyABQTxqIgsgAUGgAWoiFEEw/AoAACABQQhqIgIgC0Ew/AoAACABQZgBaiELIwBB0AFrIgkkACAJQegAaiEHIwBBkAdrIgQkACAEQfj/wwBBMPwKAAAgBEEwakGogMQAQTD8CgAAIARB4AZqIgUgAhDECiAEQYAGaiIDQdiAxABBMPwKAAAgAyAFENkOIARB4ABqIgYgA0Ew/AoAACAFIAYQxAogAyAGQTD8CgAAIAUgAxDjDiAEQZABaiIGIAVBMPwKAAAgBSAGQTD8CgAAIANBsIjEAEEw/AoAACAFIAMQ4w4gBEGgBWoiCCAFQTD8CgAAIANBqIDEAEEw/AoAACADIAgQ2Q4gBEHAAWogA0Ew/AoAAAJAIAYQzQhFBEAgAyAGQTD8CgAAIAMQ3Q4gBSADQTD8CgAADAELIARB4AZqQdiAxABBMPwKAAALIARBgAZqIgNB+P/DAEEw/AoAACADIARB4AZqIgUQ2Q4gBEHwAWoiBiADQTD8CgAAIARBoAJqIgggBEHAAWoiChDECiAEQdACaiIPIAYQxAogBSAGQTD8CgAAIAMgD0Ew/AoAACADIAUQ2Q4gBEGAA2oiECADQTD8CgAAIAQgDxDZDiADIARBMPwKAAAgCCADEOMOIAUgCEEw/AoAACADIApBMPwKAAAgBSADENkOIARBoAVqIgYgBUEw/AoAACADIBBBMPwKAAAgBEEwaiIIIAMQ2Q4gBSAIQTD8CgAAIAYgBRDjDiAEQbADaiIIIAZBMPwKAAAgBSAEQeAAakEw/AoAACADIApBMPwKAAAgBSADENkOIARB4ANqIAVBMPwKAAAgAyAQEM8IAkACQCAEKAKABgRAIAUgBEGIBmpBMPwKAAAgCCAFENkOIARBkARqIgogCEEw/AoAACAEIAoQiAw6AIAGAkAgAxD8DiIIRQRAIAUgCkEw/AoAACADQdiAxABBMPwKAAAgAyAFENkOIAYgA0Ew/AoAACADIAYQ+gogBEHABGogA0GIgcQAQckAQdSBxAAQswoMAQsgBEGABmoiAyAEQZAEahD6CiAEQcAEaiADQeSBxABBNkGcgsQAELMKCyAEQeAGaiIGIARB4ABqQTD8CgAAIARBgAZqIgUgAkEw/AoAACAGIAUQ2Q4gBEGgBWoiAyAGQTD8CgAAIAUgBEHABGoiBkEw/AoAACADIAUQ2Q4gBEHwBGoiBSADQTD8CgAAIAMgCAR/IARB4ANqIARBwAFqQTD8CgAAIAYFIAULQTD8CgAAIARBgAZqIgUgBEHwAWoQzwggBCgCgAZFDQEgBEHgBmoiBiAEQYgGakEw/AoAACAEQeADaiIIIAYQ2Q4gBiAIQTD8CgAAAkAgAxCcCSACEJwJRwRAIAUgA0Ew/AoAACAFEN0OIARB0AVqIAVBMPwKAAAMAQsgBEHQBWogBEGgBWpBMPwKAAALIARBgAZqIgIgBEHgBmpBMPwKAAAgBEGwBmogBEHQBWpBMPwKAAAgB0EIaiACQeAA/AoAACAHQQA2AgAgBEGQB2okAAwCC0GYlsQAEPoRAAtBmJbEABD6EQALIAkoAmhBAUYEQCAJIAkpAnQ3AxAgCSAJKQJsNwMIQfylwwBBKyAJQQhqQaimwwBBxJfEABD8EQALIAlBCGoiAiAJQfAAakHgAPwKAAAjAEGgBGsiBSQAIAVBCGogAhC5CgJAIAUpAwhCAVEEQCAFQfAAaiIIIAVBEGpBMPwKAAAgBUGgAWoiFSAFQUBrQTD8CgAAIAVB0AFqIg9BqKzEACgCAEGsrMQAKAIAENEKIAVB3AFqIhBBsKzEACgCAEG0rMQAKAIAENEKIAVB6AFqIhJBuKzEACgCAEG8rMQAKAIAENEKIAVB9AFqIhNBwKzEACgCAEHErMQAKAIAENEKIAVBgAJqIgQgECAIENIKIAVBsAJqIhYgEyAIENIKQQAhByMAQTBrIgokACAKQbCIxABBMPwKAAAjAEGwA2siAyQAIANBCGpBAkEIQTAQ8QUgA0EANgIcIAMgAykDCDcCFCADQSBqQbCIxABBMPwKAAAgBCICQeAAaiEGA0ACQAJAIAdB4ABHBEAgAiAHaiIMEM0IDQEgA0EgaiIOIAwQ2Q4gA0HQAGogDkEw/AoAACADKAIcIgwgAygCFEYEQCADQRRqEM4ICyADKAIYIAxBMGxqIANB0ABqQTD8CgAAIAMgDEEBajYCHAwBCyADQdAAaiADQSBqIgcQzwggAygCUARAIAcgA0HYAGoiDEEw/AoAACAHIAoQ2Q4gAygCFCEOIAMoAhghByADKAIcIQ0gA0IBNwNQIAxBsIjEAEEw/AoAACADQgA3A6gBIAMgBjYCpAEgAyACNgKgASADQQE2ApgBIAMgByANQTBsajYClAEgAyAONgKQASADIAc2AowBIAMgBzYCiAEgA0G4AWohFyADQfwCaiEYIANBiAFqIQ4DQAJAAkACQCACIAZHBEAgBkEwayIGEM0IDQQgAyAGNgKkASADKAKIAQRAAkAgAygCmAEiB0UEQCADKAKUASICIAMoAowBRg0BDAULIAMoAowBIQ0gAygClAEhAiADQQA2ApgBIAMgAiAHIAIgDWtBMG4iESAHIBFJG0FQbGoiAjYClAEgByARSw0AIAIgDUcNBAsgDhDQCCADQQA2AogBCyADKQNQIhpCf1ENASADQfgCaiAMQTD8CgAAIANCADcDUCAap0EBcUUNAQwDCyADIAY2AqQBCyAOENAIIANBsANqJAAMBQsgAyACQTBrIgI2ApQBIANB+AJqIAJBMPwKAAALIANByAJqIgIgA0H4AmoiB0Ew/AoAACAYIAJBMPwKAAAgA0G0AWogB0E0/AoAACADQegBaiIRIBdBMPwKAAAgAiADQSBqIg1BMPwKAAAgByAGQTD8CgAAIAIgBxDZDiADQZgCaiIZIAJBMPwKAAAgByANQTD8CgAAIAcgERDZDiACIAdBMPwKAAAgBiACQTD8CgAAIA0gGUEw/AoAACADKAKkASEGIAMoAqABIQIMAAsAC0GEisMAEPoRAAsgB0EwaiEHDAELCyAKQTBqJAAgBUHgAmoiAyAPIAgQ0gogBUGQA2oiAiAEQTD8CgAAIAMgAhDZDiAFQcADaiIEIANBMPwKAAAgAiASIAgQ0gogAiAVENkOIAMgAkEw/AoAACACIBZBMPwKAAAgAyACENkOIAVB8ANqIANBMPwKAAAgC0EIaiAEQeAA/AoAACATEOUIIBIQ5QggEBDlCCAPEOUIDAELIAtBCGpBAEHgAPwLAAsgC0EANgIAIAVBoARqJAAgCUHQAWokACABKAKYAUEBRg0BIAFBOGoiAiAUQeAA/AoAACMAQbABayIJJAAjAEFAaiIEJAAgBEGQ98QAKQMANwMYIARBiPfEACkDADcDECAEQYD3xAApAwA3AwggBEH49sQAKQMANwMAIARBwPLEACkDADcDOCAEQbjyxAApAwA3AzAgBEGw8sQAKQMANwMoIARBqPLEACkDADcDICMAQSBrIgMkACADQgA3AhggAyAENgIQIAMgBEEgaiIFNgIIIAMgBTYCFCADIAVBIGo2AgwCQANAIAMgA0EIahDWDCADKAIAIgZFBEAgBCkDACEaDAILIAYpAwAiGyADKAIEKQMAIhxRDQALIAQpAwAhGiAbIBxYDQAgBCAEKQMIIhwgGiAaQv////8PfSIaVq18IhtC/rf5/6+A6d7TAHwiHTcDCCAEIAQpAxAiHiAbIBxUrSAbIB1WrXx8IhtChbCHzYCB9pwzfCIcNwMQIAQgBCkDGCAbIB5UrSAbIBxWrXx8Qsj69cyy6un28wB8NwMYCyAEIBogBSkDACIbfTcDACAEQn9CACAaIBtUGyIaIAUpAwgiG30iHCAEKQMIfCIdNwMIIAQgBCkDECIeIAUpAxAiH30iICAcIB1WrSAaIBogG1StfXxCf1GtIhp9NwMQIAQgBCkDGCAFKQMYfSAeIB9UrSAaICBWrXxCAVGtfTcDGCADQSBqJAAgCUEgaiIDIAQpAxg3AxggAyAEKQMQNwMQIAMgBCkDCDcDCCADIAQpAwA3AwAgBEFAayQAIAkgAxD0CSADIAIgCUEEEIQKIAsgAxCjDCAJQbABaiQAIABBAWogCxD1CyAAQQA6AAALIAFBgAJqJAAPCyABIAEpAqQBNwNAIAEgASkCnAE3AzhBqNzDAEEaIAFBOGpBqKbDAEHE3MMAEPwRAAu5FgIYfwF+IwBB8ANrIgEkACABQcgBaiACIAJBMGoQ/AsCQAJAIAEoAsgBQQFGBEAgASABKALUASICNgIQIAEgASkCzAEiGzcDCCAAIAI2AgwgACAbNwIEIABBAToAAAwBCyABQQxqIgQgAUHQAWoiFUHgAPwKAAAgAUGQA2oiAiAEQeAA/AoAACABQcgBaiEQIwBBkANrIggkACAIQcgBaiEHIwBB4AxrIgQkACAEQaALaiIDIAIQ7w4gBEHwg8QAIAMQzAggBEHgCWoiBSAEEO8OIAMgBEHgAPwKAAAgBEHgAGoiBiAFIAMQiQwgAxDoDiAFIAYgAxCJDCAEQcABakGQg8QAIAUQzAgCQCAGEPgORQRAIAMgBkHgAPwKAAAgBSADEIALDAELIARB4AlqQfCDxABB4AD8CgAACyAEQaACaiIGQbCCxAAgBEHgCWoiBRDMCCAEQYADaiILIARBwAFqIgkQ7w4gBEHgA2oiCiAGEO8OIARBoAtqIgMgBkHgAPwKAAAgBEHABGoiBiAKIAMQzAggA0GwgsQAIAoQzAggBSALIAMQiQwgAyAJQeAA/AoAACAEQYAJaiIKIAUgAxDMCCADIAZB4AD8CgAAIAVBkIPEACADEMwIIARBoAVqIgsgCiAFEIkMIAMgCUHgAPwKAAAgBEGABmogBCADEMwIIARB4AZqIgkgCyAGEIoMIwBBMGsiBiQAIAYgCRDDCiAGEIgMIQogBkEwaiQAIAQgCjoAoAsCQCADEPwOIgZFBEAgAyAJQeAA/AoAACAFQfCDxAAgAxDMCCADIAUQ/wogBEHAB2ogA0GIgcQAQckAQdSBxAAQsgoMAQsgBEGgC2oiAyAEQeAGahD/CiAEQcAHaiADQeSBxABBNkGcgsQAELIKCyAEQaALaiIDIAJB4AD8CgAAIARB4AlqIgUgBCADEMwIIARBoAhqIgMgBSAEQcAHaiIJEMwIIARBgAlqIgUgBgR/IARBgAZqIARBwAFqQeAA/AoAACAJBSADC0HgAPwKAAAgBEGgC2oiAyAEQaACakHgAPwKAAAgBEHgCWogBEGABmogAxCKDAJAIAUQmwkgAhCbCUcEQCADIAVB4AD8CgAAIARBwApqIAMQgAsMAQsgBEHACmogBEGACWpB4AD8CgAACyAEQaALaiICIARB4AlqQeAA/AoAACAEQYAMaiAEQcAKakHgAPwKAAAgB0EIaiACQcAB/AoAACAHQQA2AgAgBEHgDGokACAIKALIAUEBRgRAIAggCCkC1AE3AxAgCCAIKQLMATcDCEH8pcMAQSsgCEEIakGopsMAQcSXxAAQ/BEACyAIQQhqIgIgCEHQAWpBwAH8CgAAIwBBgAhrIgUkACAFQQhqIAIQ0woCQCAFKQMIQgFRBEAgBUHQAWoiCSAFQRBqQeAA/AoAACAFQbACaiIWIAVB8ABqQeAA/AoAACAFQZADaiIRQei3xAAoAgBB7LfEACgCABDUCiAFQZwDaiISQfC3xAAoAgBB9LfEACgCABDUCiAFQagDaiITQfi3xAAoAgBB/LfEACgCABDUCiAFQbQDaiIUQYC4xAAoAgBBhLjEACgCABDUCiAFQcADaiIEIBIgCRDVCiAFQcAGaiIKIBQgCRDVCiAFQaAEaiIXIApB4AD8CgAAQQAhByMAQeAAayILJAAgCxDoDiMAQeAGayIDJAAgA0EIakECQQhB4AAQ8QUgA0EANgIcIAMgAykDCDcCFCAEIgJBwAFqIQYgA0EgahDoDgNAAkACQCAHQcABRwRAIAIgB2oiDBD4Dg0BIANBIGoiDiAMEMgIIANB4AFqIA5B4AD8CgAAIAMoAhwiDCADKAIURgRAIANBFGoQyQgLIAMoAhggDEHgAGxqIANB4AFqQeAA/AoAACADIAxBAWo2AhwMAQsgA0HgAWogA0EgaiIHEMoIIAMoAuABBEAgByADQegBaiIMQeAA/AoAACAHIAsQyAggAygCFCEOIAMoAhghByADKAIcIQ0gA0GAAWoiDxDoDiADQgE3A+ABIAwgD0HgAPwKAAAgA0IANwPoAiADIAY2AuQCIAMgAjYC4AIgA0EBNgLYAiADIAcgDUHgAGxqNgLUAiADIA42AtACIAMgBzYCzAIgAyAHNgLIAiADQfgCaiEYIANB/AVqIRkgA0HIAmohDgNAAkACQAJAIAIgBkcEQCAGQeAAayIGEPgODQQgAyAGNgLkAiADKALIAgRAAkAgAygC2AIiB0UEQCADKALUAiICIAMoAswCRg0BDAULIAMoAswCIQ0gAygC1AIhAiADQQA2AtgCIAMgAiAHIAIgDWtB4ABuIg8gByAPSRtBoH9saiICNgLUAiAHIA9LDQAgAiANRw0ECyAOEMsIIANBADYCyAILIAMpA+ABIhtCf1ENASADQfgFaiAMQeAA/AoAACADQgA3A+ABIBunQQFxRQ0BDAMLIAMgBjYC5AILIA4QywggA0HgBmokAAwFCyADIAJB4ABrIgI2AtQCIANB+AVqIAJB4AD8CgAACyADQZgFaiIHIANB+AVqIgJB4AD8CgAAIBkgB0HgAPwKAAAgA0H0AmogAkHkAPwKAAAgA0HYA2oiDyAYQeAA/AoAACAHIANBIGoiDUHgAPwKAAAgAiAGQeAA/AoAACADQbgEaiIaIAcgAhDMCCACIA1B4AD8CgAAIAIgDxDICCAHIAJB4AD8CgAAIAYgB0HgAPwKAAAgDSAaQeAA/AoAACADKALkAiEGIAMoAuACIQIMAAsAC0GEisMAEPoRAAsgB0HgAGohBwwBCwsgC0HgAGokACAFQYAFaiIDIBEgCRDVCiAFQeAFaiICIARB4AD8CgAAIAogAyACEMwIIAIgEyAJENUKIAMgAiAWEMwIIAIgF0HgAPwKAAAgBUGgB2ogAyACEMwIIBBBCGogCkHAAfwKAAAgFBCMCSATEIwJIBIQjAkgERCMCQwBCyAQQQhqQQBBwAH8CwALIBBBADYCACAFQYAIaiQAIAhBkANqJAAgASgCyAFBAUYNASABQQhqIgMgFUHAAfwKAAAjAEGgEWsiBCQAIARBgA9qIgIgA0HAAfwKAAAgBCACEPMOIAIgA0GgncMAQQEQ2g4gBEGgAmoiBiACEM8MIARBwARqIgcgAxDcDiMAQaACayIDJAAgAyAEQaAC/AoAACADEPUOGiACIANBoAL8CgAAIANBoAJqJAAjAEGAA2siAyQAIAMgAkGgAvwKAAAgA0G49MQAEN4OIANBoAJqIgUgA0HgAGoiCEHgAPwKAAAgCCAFEIALIARBgAZqIgUgA0GgAvwKAAAgA0GAA2okACAEQaAIaiIDIAZBoAL8CgAAIAMgBxD6DiAEQcAKaiIIIANBoAL8CgAAIwBBwAJrIgMkACADQfCKwwBBoAL8CgAAIANBoAJqQaCdwwBBARDbDiADIAMpAqgCNwO4AiADIAMpAqACNwOwAgNAIANBsAJqEP8JQf8BcSIJQQJHBEAgAxD1DhogCUEBcUUNASADIAgQ/wgMAQsLIAIgA0GgAvwKAAAgA0HAAmokACAEQeAMaiIDIAIQzwwgCCADQaAC/AoAACACIAhBoAL8CgAAIAUgAhD/CCAFIAYQ0AwgAiAHQcAB/AoAACAEQeAPahDrDhogAyACQcAB/AoAACAFIAMQ+g4gAiAFQaAC/AoAACADIAIgBBCUCSAQIAMQ0QwgBEGgEWokACAAQQFqIBAQ9wsgAEEAOgAACyABQfADaiQADwsgASABKQLUATcDECABIAEpAswBNwMIQajcwwBBGiABQQhqQaimwwBB1NzDABD8EQALmD4CGX8CfiMAQaAIayIBJAAgAUEQaiADQQhBwAAQ8QUgAUEANgIgIAEgASkDEDcCGCABQQhqIANBCEGAARDxBSABQQA2AiwgASABKQMINwIkIANBBHQhAyABQbgBaiESIAFBsANqIRAgAUHoA2ohFiABQfAGaiERIAFBuANqIRMgAUGwBmohFyABQbQBaiENAkACfwNAAkAgAwRAIAFBqANqIAIoAgAgAigCBBCLDCABKAKoA0UNASABIAEoArQDIgI2ArgBIAEgASkCrAMiHTcDsAEgACACNgIIIAAgHTcCAAwECyABKAIgIgQEQCABQagDaiEUIAEoAhwhAiABKAIoIQMgASgCLCEFIwBBkAZrIg8kACAPQZADaiEOIwBB0ARrIgckACAHIAM2AhggByADIAVBB3RqNgIcIAcgAjYCECAHIAIgBEEGdGo2AhQgB0EEaiEFIwBBgAFrIgIkACACQSBqIgMgB0EQaiITEL4IAkAgAigCYARAIAJB8ABqIgYgExC/CCACQQhqQQQgAigCcEEBaiIEQX8gBBsiBCAEQQRNG0EIQdAAEPEFIAIoAgghBCACKAIMIgggA0HQAPwKAAAgAkEBNgIcIAIgCDYCGCACIAQ2AhQgAiATKQIINwN4IAIgEykCADcDcCACQRRqIQMjAEHgAGsiBCQAA0ACQCAEIAYQvgggBCgCQEUNACADKAIIIgggAygCAEYEQCAEQdQAaiAGEL8IIAQoAlRBAWoiCUF/IAkbIgkgAygCACADKAIIIgprSwRAIAMgCiAJQQhB0AAQkw0LCyADKAIEIAhB0ABsaiAEQdAA/AoAACADIAhBAWo2AggMAQsLIARB4ABqJAAgBSACKAIcNgIIIAUgAikCFDcCAAwBCyAFQQA2AgggBUKAgICAgAE3AgALIAJBgAFqJAAgB0EENgKYAyAHIAcoAgwiEjYClAMgByAHKAIIIgo2ApADIBJB0ABsIQwjAEHABGsiDSQAIA1BgANqIgJBwIXEAEHAAPwKAAAgDUHAA2pBAEGAAfwLACANQcABakEAQcAB/AsAIA0gAkHAAfwKAAAjAEGAD2siCyQAIAtBwAxqIRogC0GACWohFiALQYADaiERIAtBwAdqIRggB0GQA2oiAigCCCEXIAIoAgQhECACKAIAIQICQAJAAkADQCAQRSACRXJFBEAgECAXIBAgECAXSxsiA2shECACIANB0ABsIghqIAtBgAxqIgNBwIXEAEHAAPwKAAAgGkEAQYAB/AsAIBhBAEHAAfwLACALQYAGaiADQcAB/AoAAEHBACEDA0AgA0ECTwRAIANBAWsiBEHAAEcEQCALQYAGahD9CQsgCCEGIAIhBQNAIAYEQCAFKAJEIhUgBSgCTEYNBiAFIBVBwAFqNgJEIAtBgAxqIhkgFUHAAfwKAAAgC0GABmogGSAFEP4JIAZB0ABrIQYgBUHQAGohBQwBCwsgA0HGncMAai0AACIFQf8BRwRAIAQhAyAFQQFHDQILIAghBiACIQUDQCAGRQRAIAQhAwwDCyAFKAJEIgMgBSgCTEYNBiAFIANBwAFqNgJEIAtBgAxqIhUgA0HAAfwKAAAgC0GABmogFSAFEP4JIAZB0ABrIQYgBUHQAGohBQwACwALCyARIAtBgAZqIgJBgAP8CgAAIAIgDUGAA/wKAAAgFiARQYAD/AoAACALQYAMaiICIA1BgAP8CgAAIAIgFhDwCCANIAJBgAP8CgAAIQIMAQsLIBMgDUGAA/wKAAAgC0GAD2okAAwCC0GcnsMAEPoRAAtBjJ7DABD6EQALIA1BwARqJAAgCiECAkACQAJAA0ACQCAMRQRAIBJB0ABsIQIDQCACRQ0CIAooAkQiAyAKKAJMRg0FIAogA0HAAWo2AkQgB0GQA2oiBCADQcAB/AoAACAHQRBqIAQgChD+CSACQdAAayECIApB0ABqIQoMAAsACyACKAJEIgMgAigCTEYNAiACIANBwAFqNgJEIAdBkANqIgQgA0HAAfwKAAAgB0EQaiAEIAIQ/gkgDEHQAGshDCACQdAAaiECDAELCyAOIAdBEGpBgAP8CgAAIAdBBGoiBCgCBEFAayEDIAQoAgghAgNAIAIEQCACQQFrIQIgAxCJCiADQdAAaiEDDAELCyAEQQhB0AAQrQ0gB0HQBGokAAwCC0GgmsMAEPoRAAtBkJrDABD6EQALIwBBkMIAayIGJAAgBkEIaiINIA5BgAP8CgAAIAZBiANqIhUgDkGAA/wKAAAgFRC3ChogBkGIBmohFiMAQfAJayIDJAACQCANEJoKRQRAIANBCGoiBCANQcABaiIbELQMIANB8ANqIhAgDRC0DCADQfAGaiITIANByABqIgJBwAD8CgAAIAIgBEHAAPwKAAAgBCADQYgBaiICQcAA/AoAACADQbAIaiILIAJBwAD8CgAAIAsQyQ4QyQ4QyQ4aIAMgAykDwAE3A6gDIAMgAykDuAE3A6ADIAMgAykDsAE3A5gDIAMgAykDqAE3A5ADIANBkANqIgUQxA4gBSALEMIOIAUgBBDCDiADIAMpA+gINwPoAyADIAMpA+AINwPgAyADIAMpA9gINwPYAyADIAMpA9AINwPQAyADIAMpA8ABNwPgASADIAMpA7gBNwPYASADIAMpA7ABNwPQASADIAMpA6gBNwPIASADQdADaiIFIANByAFqIg4Qwg4gAyADKQPoAzcDyAMgAyADKQPgAzcDwAMgAyADKQPYAzcDuAMgAyADKQPQAzcDsAMgAyADKQOgATcD6AMgAyADKQOYATcD4AMgAyADKQOQATcD2AMgAyADKQOIATcD0AMgA0GwA2ogBRDCDiADIAMpA8gDNwOAAiADIAMpA8ADNwP4ASADIAMpA7gDNwPwASADIAMpA7ADNwPoASADIAMpA5ADNwPIASADIAMpA5gDNwPQASADIAMpA6ADNwPYASADIAMpA6gDNwPgASAEIA5BwAD8CgAAIAIgE0HAAPwKAAAgECAEELsLIAQgEEHAAfwKAAAjAEHgCWsiAiQAAkACQAJAIAQQmQxFBEAgAiAEEMwOIAJBQGsiGiAEQUBrIhEQzA4gAkGAAWoiDCAEQYABaiIXEMwOIAJBwAdqIgUgBEHAAPwKAAAgBSARELUJIAJBwAFqIhggBUHAAPwKAAAgBSAEQcAA/AoAACAFIBcQtQkgAkGAAmoiGSAFQcAA/AoAACAFIBFBwAD8CgAAIAUgFxC1CSACQcACaiISIAVBwAD8CgAAIAJBoAlqIgggEkHAAPwKAAAgCBDJDhDJDhDJDhogAiACKQP4AjcDmAYgAiACKQPwAjcDkAYgAiACKQPoAjcDiAYgAiACKQPgAjcDgAYgAkGABmoiChDEDiAKIAgQwg4gCiASEMIOIAIgAikD2Ak3A5gHIAIgAikD0Ak3A5AHIAIgAikDyAk3A4gHIAIgAikDwAk3A4AHIAIgAikD+AI3A9gHIAIgAikD8AI3A9AHIAIgAikD6AI3A8gHIAIgAikD4AI3A8AHIAJBgAdqIgkgBRDCDiACIAIpA5gHNwPYBiACIAIpA5AHNwPQBiACIAIpA4gHNwPIBiACIAIpA4AHNwPABiACIAIpA9gCNwOYByACIAIpA9ACNwOQByACIAIpA8gCNwOIByACIAIpA8ACNwOAByACQcAGaiIHIAkQwg4gAiACKQPYBjcD+AcgAiACKQPQBjcD8AcgAiACKQPIBjcD6AcgAiACKQPABjcD4AcgAiACKQOABjcDwAcgAiACKQOIBjcDyAcgAiACKQOQBjcD0AcgAiACKQOYBjcD2AcgEiAFQcAA/AoAACACQYADaiIcIBJBwAD8CgAAIAIgHBDOCiACQcADaiISIAJBwAD8CgAAIAggDEHAAPwKAAAgCBDJDhDJDhDJDhogAiACKQO4ATcDmAYgAiACKQOwATcDkAYgAiACKQOoATcDiAYgAiACKQOgATcDgAYgChDEDiAKIAgQwg4gCiAMEMIOIAIgAikD2Ak3A5gHIAIgAikD0Ak3A5AHIAIgAikDyAk3A4gHIAIgAikDwAk3A4AHIAIgAikDuAE3A9gHIAIgAikDsAE3A9AHIAIgAikDqAE3A8gHIAIgAikDoAE3A8AHIAkgBRDCDiACIAIpA5gHNwPYBiACIAIpA5AHNwPQBiACIAIpA4gHNwPIBiACIAIpA4AHNwPABiACIAIpA5gBNwOYByACIAIpA5ABNwOQByACIAIpA4gBNwOIByACIAIpA4ABNwOAByAHIAkQwg4gAiACKQPYBjcD+AcgAiACKQPQBjcD8AcgAiACKQPIBjcD6AcgAiACKQPABjcD4AcgAiACKQOABjcDwAcgAiACKQOIBjcDyAcgAiACKQOQBjcD0AcgAiACKQOYBjcD2AcgDCAFQcAA/AoAACAFIAxBwAD8CgAAIAUgGBDOCiACQYAEaiIYIAVBwAD8CgAAIBogGRDOCiACQcAEaiIZIBpBwAD8CgAAIAUgF0HAAPwKAAAgBSAYELUJIAJBgAVqIgwgBUHAAPwKAAAgBSARQcAA/AoAACAFIBkQtQkgAkHABWoiESAFQcAA/AoAACAMIBEQzwogCSAMQcAA/AoAACAIIAxBwAD8CgAAIAgQyQ4QyQ4QyQ4aIAIgAikDuAc3A5gJIAIgAikDsAc3A5AJIAIgAikDqAc3A4gJIAIgAikDoAc3A4AJIAJBgAlqIgwQxA4gDCAIEMIOIAwgCRDCDiACIAIpA9gJNwPYBiACIAIpA9AJNwPQBiACIAIpA8gJNwPIBiACIAIpA8AJNwPABiACIAIpA7gHNwPYByACIAIpA7AHNwPQByACIAIpA6gHNwPIByACIAIpA6AHNwPAByAHIAUQwg4gAiACKQPYBjcDmAYgAiACKQPQBjcDkAYgAiACKQPIBjcDiAYgAiACKQPABjcDgAYgAiACKQOYBzcD2AYgAiACKQOQBzcD0AYgAiACKQOIBzcDyAYgAiACKQOABzcDwAYgCiAHEMIOIAIgAikDmAY3A/gHIAIgAikDkAY3A/AHIAIgAikDiAY3A+gHIAIgAikDgAY3A+AHIAIgAikDgAk3A8AHIAIgAikDiAk3A8gHIAIgAikDkAk3A9AHIAIgAikDmAk3A9gHIAkgBUHAAPwKAAAgCiAJQcAA/AoAACAFIARBwAD8CgAAIAUgEhC1CSAIIAVBwAD8CgAAIAggChDPCiAJIAhBwAD8CgAAIwBB8AFrIgQkAAJAIAkQ1Q5FBEAgBEEIaiIMIAlBIGoiChCCCyAEQdAAaiIRIAkQggsgDBDEDiARIAwQww4gBCAEKQNoNwMgIAQgBCkDYDcDGCAEIAQpA1g3AxAgBCAEKQNQNwMIIARBKGogDBCPDCAFIAQpAyhCAVEEfiAEIAQpA0g3A6gBIAQgBCkDQDcDoAEgBCAEKQM4NwOYASAEIAQpAzA3A5ABIAQgCSkDGDcD6AEgBCAJKQMQNwPgASAEIAkpAwg3A9gBIAQgCSkDADcD0AEgBEHQAWoiCSAEQZABaiIMEMAOIAQgBCkD6AE3A2ggBCAEKQPgATcDYCAEIAQpA9gBNwNYIAQgBCkD0AE3A1AgBCAKKQMYNwPoASAEIAopAxA3A+ABIAQgCikDCDcD2AEgBCAKKQMANwPQASAJIAwQwA4gBCAEKQPoATcDyAEgBCAEKQPgATcDwAEgBCAEKQPYATcDuAEgBCAEKQPQATcDsAEgBEGwAWoQxA4gBCAEKQPIATcDiAEgBCAEKQPAATcDgAEgBCAEKQO4ATcDeCAEIAQpA7ABNwNwIAVBCGogEUHAAPwKAABCAQVCAAs3AwAMAQsgBUIANwMACyAEQfABaiQAIAIoAsAHRQ0CIAcgAkHIB2pBwAD8CgAAIAggB0HAAPwKAAAgCCASELUJIAUgCEHAAPwKAAAgCCAHQcAA/AoAACAIIBgQtQkgAkGACGogCEHAAPwKAAAgByAZELUJIAJBwAhqIAdBwAD8CgAAIA5BCGogBUHAAfwKAAAgDkIBNwMADAELIA5CADcDAAsgAkHgCWokAAwBC0GAicQAEPoRAAsgFiADKQPIAUIBUQR+IBMgDUHAAfwKAAAgEyADQdABaiICEJcKIAsgG0HAAfwKAAAgCyACEJcKIANBsAVqIAsQwgogECATQcAB/AoAACAWQQhqIBBBgAP8CgAAQgEFQgALNwMADAELIBZCADcDAAsgA0HwCWokACAPQQhqIgogBikDiAZCAVEEfiAGQZAJaiIEIAZBkAZqQYAD/AoAACAGQZA/aiICIBVBgAP8CgAAIAIgBBDwCCAGQZAMaiIDIAJBgAP8CgAAIAQgA0GAA/wKAAAgA0ECELcMIAMgBBDwCCACIANBgAP8CgAAIAZBkA9qIgUgAhC2CiAGQZASaiIEIAUQ8gwgBkGQFWoiBSAEEPIMIAUgBBDwCCAGQZAYaiIJIAVBgAP8CgAAIAIgBUGAA/wKAAAgBkGQG2oiBSACELYKIAZBkB5qIgcgBRDyDCAGQZAhaiIIIAcQtgogCRC3ChogCBC3ChogAiAIQYAD/AoAACACIAUQ8AggBkGQJGoiCCACQYAD/AoAACAIIAkQ8AggBkGQJ2oiCSAIQYAD/AoAACACIAhBgAP8CgAAIAIgBBDwCCAGQZAqaiIEIAJBgAP8CgAAIAIgCUGAA/wKAAAgAiAFEPAIIAZBkC1qIgUgAkGAA/wKAAAgBSADEPAIIAZBkDBqIgggBUGAA/wKAAAgBkGQM2oiBSAEQYAD/AoAACAFQQEQtwwgAiAFQYAD/AoAACACIAgQ8AggBkGQNmoiBSACQYAD/AoAACAJQQIQtwwgAiAJQYAD/AoAACACIAUQ8AggBkGQOWoiBSACQYAD/AoAACADELcKGiACIANBgAP8CgAAIAIgBBDwCCAGQZA8aiIDIAJBgAP8CgAAIANBAxC3DCACIANBgAP8CgAAIAIgBRDwCCAKQQhqIAJBgAP8CgAAQgEFQgALNwMAIAZBkMIAaiQAIA8oAghFBEBBgJrDABD6EQALIBQgD0EQakGAA/wKAAAgD0GQBmokAEEAIQMCQCAUEJoMBH8gFEEgahCDCwVBAAtFDQAgFEFAaxDVDkUNACAUQYABahDVDiEDCyADBH8gFEHAAWoQmQwFQQALIQIgAEF+NgIAIAAgAjoABAwECyAAQX42AgAgAEEBOgAEDAMLIA0gEEHAAPwKAAAgAUHwAGogDUHAAPwKAAAgAUEwaiANQcAA/AoAAAJAAkACQAJAIAIoAgwiBEE/SwRAIAFBqANqIgUgAigCCCIGEOwLIAEoAqgDQQFGDQQgASkDsAMhHiAXIBNBOPwKAAAgASAeNwOoBiAEQf8ATQ0BIAUgBkFAaxDsCyABKAKoA0EBRg0EIAEpA7ADIR4gESATQTj8CgAAIAEgHjcD6AYCQCABQagGahDVDgRAIAFB6AZqENUODQELIAFBqANqIgkgAUGoBmpBwAD8CgAAIBYgAUHoBmpBwAD8CgAAIwBBwAFrIgQkAEEBIQUgCRDRDkUEQCAEQYABaiIFIAkQzA4gBEFAayIGIAlBwAD8CgAAIAUgBhC1CSAEIAVBwAD8CgAAIAVB0KnDAEHAAPwKAAACQCAFENUORQRAIAVB0KnDAEHAAPwKAAAgBCAFEM8KIAYgBEHAAPwKAAAMAQsgBEFAayAEQcAA/AoAAAsgBEGAAWoiBUEAQcAA/AsAIAUQ1Q5FBEAgBUIANwMYIAVCADcDECAFQgA3AwggBUIANwMAIAVCADcDICAFQgA3AyggBUIANwMwIAVCADcDOCAEQUBrIAUQ1A4LIARBgAFqIgUgCUFAaxDMDiAFIARBQGsQhQshBQsgBEHAAWokACAFBEAjAEHQAmsiBiQAIAZB0O/EACkDADcDyAEgBkHI78QAKQMANwPAAUEAIQojAEHQAWsiCCQAIAhB+OrEAEHAAfwKAAAgCEEAOgDMASAIIAZBwAFqNgLAASAIQQI2AsQBIAhBgAE2AsgBA0AgCEHAAWoiBCgCCCIFBH8gBCAFQQFrIgU2AgggBUEGdiIHIAQoAgQiC08EQCAHIAtBuO/EABDoEQALIAQoAgAgB0EDdGopAwAgBa2Ip0EBcQVBAgtB/wFxIgRBAkcEQCAEIApyRQ0BQQEhCiAIENMOIQUgBEEBcUUNASMAQdAJayIEJAAgBEEIaiAJENAOAkAgBCkDCEIBUg0AIARB0ABqIQ8gBEEQaiELIAUQyw5FBEAgBEGQAWoiByAFQYABaiIUQcAA/AoAACAHEM4OIQ4gBEHQAWoiByALQcAA/AoAACAHIA4Qxg4gBEGQAmoiCyAUQcAA/AoAACALIA8Qxg4gCyAOEMYOIAUgBxDNDkUEQCAEQZAEaiIPIAdBwAD8CgAAIA8gBRDOCiAEQdAEaiIHIA9BwAD8CgAAIARBkAVqIg4gBxDODkHAAPwKAAAgDhDJDhDJDiEOIARB0AVqIgcgD0HAAPwKAAAgBxDIDiIPIA4Qxg4gBEGQBmoiByALQcAA/AoAACAHIAVBQGsiFRDOCiAHEMkOIQwgBEHQBmoiByAFQcAA/AoAACAHIA4Qxg4gBEHQAmoiCyAMEMwOIAUgC0HAAPwKAAAgBSAPEM8KIAsgBxDKDiAFIAsQzgogByAFEM4KIARB0AdqIBUQyQ4iDkHAAPwKAAAgBEGQB2ogDEHAAPwKAAAgCyAHQcAA/AoAACAEQZADaiAPQcAA/AoAAEEAIQUgBEGQCGpBAEHAAPwLAANAIAVBgAFHBEAgBEGQCWoiByAEQZAHaiAFakHAAPwKAAAgByAEQdACaiAFahDGDiAEQdAIaiILIAdBwAD8CgAAIAVBQGshBSAEQZAIaiALEM8KDAELCyAOIARBkAhqQcAA/AoAACAUIARBkARqEMYOIBQQyQ4aDAILIAVBQGsgBEGQAmoQzQ5FBEAgBEHQAmoiBxDSDiAFIAdBwAH8CgAADAILIAUQ0w4aDAELIAUgC0HAAPwKAAAgBUFAayAPQcAA/AoAACAEQgA3A4gDIARCADcDgAMgBEIANwP4AiAEQgA3A/ACIARBuO7EACkDADcD0AIgBEHA7sQAKQMANwPYAiAEQcjuxAApAwA3A+ACIARB0O7EACkDADcD6AIgBUGAAWogBEHQAmpBwAD8CgAACyAEQdAJaiQADAELCyAGIAhBwAH8CgAAIAhB0AFqJAAgBkHQAWoiCCAJQYAB/AoAACAGQfABakH47cQAEMAOIAZBsAJqQfjtxAAQwA4gCEHY7MQAEMYOIAZBkAJqQZjtxAAQxg4jAEHAAWsiBSQAIwBB0AFrIgQkACAEQQhqIAgQ0A4CQCAEKQMIQgFRBEAgBUFAayAEQdAAakHAAPwKAAAgBEIANwPIASAEQgA3A8ABIARCADcDuAEgBEIANwOwASAEQbjuxAApAwA3A5ABIARBwO7EACkDADcDmAEgBEHI7sQAKQMANwOgASAEQdDuxAApAwA3A6gBIAUgBEEQakHAAPwKAAAgBUGAAWogBEGQAWpBwAD8CgAADAELIAUQ0g4LIARB0AFqJAAjAEGABGsiBCQAIAYQyw4iCCAFEMsOIglxIQoCQCAIIAlyDQAgBCAGQYABaiILEMwOIARBQGsiCCAFQYABaiIUEMwOIARBgAFqIgkgBkHAAPwKAAAgCSAIEMYOIARBwAFqIgcgBUHAAPwKAAAgByAEEMYOQQAhCiAJIAcQzQ5FDQAgBEGAAmoiCSAGQUBrQcAA/AoAACAEQcACaiIKIAhBwAD8CgAAIAogFBDGDiAJIAoQxg4gBEGAA2oiCCAFQUBrQcAA/AoAACAEQcADaiIKIARBwAD8CgAAIAogCxDGDiAIIAoQxg4gCSAIEM0OIQoLIARBgARqJAAgBUHAAWokACAGQdACaiQAIAoNBAtBiICAgHgMBwsgAUGoB2pBAEH4APwLAEIAIR0MAwtBAEHAACAEQZDYwwAQ5hEAC0HAAEGAASAEQaDYwwAQ5hEACyABKQOoAyEdIAFBqAdqIBBB+AD8CgAACyABQbACaiIEIAFBqAdqQfgA/AoAACABIB03A7ABIBIgBEH4APwKAAACQCABQTBqEIELDQAgAUGwAWoQ0Q4NACABKAIgIgUgASgCGEYEQCMAQRBrIgQkACAEQQhqIAFBGGoiBiAGKAIAQQFBCEHAABCUDSAEKAIIIgZBf0cEQCAGIAQoAgwQ2BEACyAEQRBqJAALIAEoAhwgBUEGdGogAUHwAGpBwAD8CgAAIAEgBUEBajYCICABKAIsIgUgASgCJEYEQCMAQRBrIgQkACAEQQhqIAFBJGoiBiAGKAIAQQFBCEGAARCUDSAEKAIIIgZBf0cEQCAGIAQoAgwQ2BEACyAEQRBqJAALIAEoAiggBUEHdGoiBCAdNwMAIARBCGogAUGwAmpB+AD8CgAAIAEgBUEBajYCLAsgAkEQaiECIANBEGshAwwBCwsgASkDsAMhHSABKAKsAwshAiAAIB03AgQgACACNgIACyABQSRqQQhBgAEQrQ0gAUEYakEIQcAAEK0NIAFBoAhqJAAL1P0BAhF/OH4jAEEwayIBJAAgAUEDaiEVIwBB8AJrIg4kACAOQfABaiEGIAJBIGohCSMAQaABayIIJAAgCCACKQAYNwNYIAggAikAEDcDUCAIIAIpAAg3A0ggCCACKQAANwNAIAhB4ABqIAhBQGsQ4wcCQCAIKQNgQgFRBEAgBkIBNwMADAELIAggCCkDgAE3AxggCCAIKQN4NwMQIAggCCkDcDcDCCAIIAgpA2g3AwAgCCAJKQAYNwNYIAggCSkAEDcDUCAIIAkpAAg3A0ggCCAJKQAANwNAIAhB4ABqIAhBQGsQ4wcgCCkDYEIBUQRAIAZCATcDAAwBCyAIIAgpA4ABNwM4IAggCCkDeDcDMCAIIAgpA3A3AyggCCAIKQNoNwMgAkAgCBDkB0H/AXENACAIQSBqEOQHQf8BcQ0AIAggCCkDGDcDeCAIIAgpAxA3A3AgCCAIKQMINwNoIAggCCkDADcDYCAIIAgpAyA3A4ABIAggCCkDKDcDiAEgCCAIKQMwNwOQASAIIAgpAzg3A5gBIAZBCGogCEHgAGpBwAD8CgAAIAZCADcDAAwBCyAGQgE3AwALIAhBoAFqJAACQAJAIA4pA/ABQgFRDQAgDkEYaiIFIA5B+AFqQcAA/AoAACMAQaABayIMJAAgDCAFQcAA/AoAACAMQYABaiIQIAUQsgsjAEEgayIJJAAgCSAQKQMYNwMYIAkgECkDEDcDECAJIBApAwg3AwggCSAQKQMANwMAIAxB4ABqIgIgCRCfDiAJQSBqJAAjAEEgayILJAAgCyACKQMYNwMYIAsgAikDEDcDECALIAIpAwg3AwggCyACKQMANwMAIAxBQGsiCCEGIwBB0ABrIg0kACANIAspAxg3A0ggDSALKQMQNwNAIA0gCykDCDcDOCANIAspAwA3AzAgDUEIaiANQTBqIgkQig4gDSANLQAoIgI6ADAgAkEBRwRAIAlBpNnEACANQajZxAAQ7g0ACyAOQdgAaiEHIAYgDSkDIDcDGCAGIA0pAxg3AxAgBiANKQMQNwMIIAYgDSkDCDcDACANQdAAaiQAIAtBIGokACMAQSBrIhIkACMAQSBrIgkkACAJQbCKwwApAwA3AxggCUGoisMAKQMANwMQIAlBoIrDACkDADcDCCAJQZiKwwApAwA3AwAgCUEgaiEGA0AgFEECRwRAQQEgFHQiDUEDdCELIA1BAXRBBGshDyAJIQIDQCANQQRGBEACQCAGIAtrIQIDQCAPRQ0BIAIgAikDADcDACACQQhqIQIgD0EBayEPDAALAAsFIAIgAikDACIWIAIgC2opAwCFQgCDIBaFNwMAIA9BAWohDyACQQhqIQIgDUEBaiENDAELCyAUQQFqIRQMAQsLQRghDwNAIA9BeEcEQCAJIA9qIgIgGyACKQMAIhZCAYiENwMAIA9BCGshDyAWQj+GIRsMAQsLIBIgCSkDGDcDGCASIAkpAxA3AxAgEiAJKQMINwMIIBIgCSkDADcDACAJQSBqJAAgBUEgaiASEK0KQf8BcRCuDiECIBJBIGokACMAQeAAayIGJAAgBiAMQSBqIgkpAxg3AzggBiAJKQMQNwMwIAYgCSkDCDcDKCAGIAkpAwA3AyAgBkEgaiAIIAIQtg4gBiAGKQM4NwMYIAYgBikDMDcDECAGIAYpAyg3AwggBiAGKQMgNwMAIAZCADcDQCAGQgA3A0ggBkIANwNQIAZCADcDWEEAIQIDQCACQSBHBEAgBkFAayACaiACIAZqKQMANwMAIAJBCGohAgwBCwsgECAGKQNYNwMYIBAgBikDUDcDECAQIAYpA0g3AwggECAGKQNANwMAIAZB4ABqJAAgDCAMKQOYATcDOCAMIAwpA5ABNwMwIAwgDCkDiAE3AyggDCAMKQOAATcDICAHIAxBwAD8CgAAIAxBoAFqJABBASECIAUgBxDjCwRAIA5BOGogDkH4AGoQ4wtBAXMhAgsgA0H/AXFBBEkEQCAOQfABaiEUIAIgA3MhCUIAIRZCACEbQQAhDSMAQYAFayIKJAAjAEHQAGsiCCQAIAggDkHYAGoiBikDGDcDICAIIAYpAxA3AxggCCAGKQMINwMQIAggBikDADcDCCAIQTBqIgIgCEEIaiIDENMNIAMgAhCSDiAKQbADaiICIAMQswsgCEHQAGokACACQSBqIAYQsgsgCiAKKQPIAzcDGCAKIAopA8ADNwMQIAogCikDuAM3AwggCiAKKQOwAzcDACAKIAopA+gDNwM4IAogCikD4AM3AzAgCiAKKQPYAzcDKCAKIAopA9ADNwMgIApBQGsjAEEgayIIJAAgCEGwisMAKQMANwMYIAhBqIrDACkDADcDECAIQaCKwwApAwA3AwggCEGYisMAKQMANwMAIAgQ0wghBiAIQQA6AAAgCCAGQQN2IAZBB3FBAEdqNgIEIAggBEEgIAgQ1AgiAiACQSBLGyAGENUIQQAhAiMAQUBqIgQkACAEQgA3AzggBEIANwMwIARCADcDKCAEQgA3AyADQCACQSBHBEAgBEEgaiACaiACIAhqKQMAIhkgFkI/iCIYfSIXIAJB4NXEAGopAwAiFn03AwBCACAWIBdWIBggGVZyrX0hFiACQQhqIQIMAQsLIAQgBCkDODcDGCAEIAQpAzA3AxAgBCAEKQMoNwMIIAQgBCkDIDcDACAIIAQgFkI/iKcQrg4Quw0Q7Q0gBEFAayQAIAhBIGokAAJAAkAgCUECcUUEQCAKQeAAaiAKEIkODAELIApBgAFqIgMgChCJDiAKQagEaiICIAMQ5gggCkGwA2ohBEEAIQMjAEEwayIGJAAgBkIANwMoIAZCADcDICAGQgA3AxggBkIANwMQA0AgA0EgRwRAIAZBEGogA2ogGyACIANqKQMAIhd8IhggA0GYisMAaikDAHwiFjcDACAXIBhWrSAWIBhUrXwhGyADQQhqIQMMAQsLIAYgGzcDCCAEIAZBCGoQsg46ACAgBCAGKQMoNwMYIAQgBikDIDcDECAEIAYpAxg3AwggBCAGKQMQNwMAIAZBMGokACAKLQDQAxDMEUUEQCAUQgE3AwAMAgsgCiAKKQPIAzcDqAMgCiAKKQPAAzcDoAMgCiAKKQO4AzcDmAMgCiAKKQOwAzcDkAMgCkHgAGohBiMAQaABayIIJAAgCEEYahDnCCAIQdwAaiIDEOcIIAhCADcCmAEgCEKggICAgAE3ApABIAhBADYCiAEgCCAIQfwAajYChAEgCCAKQZADaiICNgJ8IAggAkEgajYCgAEgCCADNgKMAQNAAkAgCEE4aiIEIAhB/ABqIgMoAgQiAiADKAIARgR+QgAFIAMgAkEIayICNgIEIAQgAikDADcDCEIBCzcDACAIKQM4QgFSDQAgCCgCkAEiAiAIKAKUASIDSQ0AIAgpA0AhFiAIIAIgA2s2ApABIAggCCgCjAEiAiADajYCjAEgCCAWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISENwM4IAIgAyAEQQhB/KbDABCRDQwBCwsgCCAIKQBcNwM4IAggCCkAZDcDQCAIIAgpAGw3A0ggCCAIKQB0NwNQIAhBEGogCEE4ahDoCCAIQQhqQQAgCCgCECAIKAIUQYCPwwAQhAcgCEEYakEgIAgoAgggCCgCDEGQj8MAEJENIAYgCCkAMDcAGCAGIAgpACg3ABAgBiAIKQAgNwAIIAYgCCkAGDcAACAIQaABaiQACyAJQQFxEK4OIQgjAEGgCWsiByQAIwBB0ABrIgQkACAEIApB4ABqIgIpABg3A0AgBCACKQAQNwM4IAQgAikACDcDMCAEIAIpAAA3AyggBEEIaiAEQShqIgIQsw4gBCAEKQMQIhZCDIYgBCkDCCIaQjSIhEL/////////B4MiGzcDMCAEIAQpAxgiF0IYhiAWQiiIhEL/////////B4MiGTcDOCAEIAQpAyAiFkIkhiAXQhyIhEL/////////B4MiGDcDQCAEIBpC/////////weDIhc3AyggBCAWQhCIIhY3A0ggB0HIBmoiAyACEIIOELsNIgI6ACggAyAWQgAgAq1C/wGDfSIagzcDICADIBggGoM3AxggAyAZIBqDNwMQIAMgGiAbgzcDCCADIBcgGoM3AwAgBEHQAGokACAHQdAFakIAIActAPAGIgatQv8Bg30iFiAHKQPgBoMiOEIAIAcpA8gGIBaDIjkQlRIgB0GABmogBykD2AYgFoMiOkIAIAcpA9AGIBaDIjsQlRIgB0GQBWogBykD6AYgFoMiPEIAIDwQlRIgB0GABWogBykDkAUiFkL/////////B4NCAEKQ+oCAgAIQlRIgB0HwBWogOkIAIDoQlRIgB0HwBGogBykDmAVCDIYgFkI0iIRCAEKQ+oCAgAIQlRIgB0HgBGogPEIAIDkQlRIgB0HABWogOEIAIDsQlRIgB0GwBmogOUIAIDkQlRIgB0GwBWogOEIAIDoQlRIgB0HQBGogPEIAIDsQlRIgB0HABGogBykD4AQiGSAHKQPABXwiHUIBhiIYIAcpA/AFfCIcIAcpA/AEfCIaIAcpA4AFIhcgBykD0AUiFiAHKQOABnwiG0IBhnwiJEI0iCAXICRWrSAHKQOIBSAWIBtWrSAHKQPYBSAHKQOIBnx8QgGGIBtCP4iEfHxCDIaEfCImQjSIIBogJlatIBogHFStIAcpA/gEIBggHFatIAcpA/gFIBkgHVatIAcpA+gEIAcpA8gFfHxCAYYgHUI/iIR8fHx8fEIMhoQiGiAHKQPQBCIbIAcpA7AFfCIlQgGGfCIdQgSGQvD/////////AIMgJkIwiEIPg4RCAELRh4CAEBCVEiAHQaAGaiA5QgGGIhkgOUI/iCIYIDsQlRIgB0GgBWogOEIAIDgQlRIgB0HQA2ogOkIAIDwQlRIgB0HAA2ogBykD0AMiF0IBhiIWIAcpA6AFfCIcIBogHVatIBsgJVatIAcpA9gEIAcpA7gFfHxCAYYgJUI/iIR8QgyGIB1CNIiEfCIbQv////////8Hg0IAQpD6gICAAhCVEiAHQZAGaiA7QgAgOxCVEiAHQeADaiA4QgAgPBCVEiAHQeACaiAbIBxUrSAWIBxWrSAHKQOoBSAHKQPYA0IBhiAXQj+IhHx8fEIMhiAbQjSIhCIXIAcpA+ADIhZCAYZ8IhtC/////////weDQgBCkPqAgIACEJUSIAdB4AVqIBkgGCA6EJUSIAdBgAJqIBcgG1atIAcpA+gDQgGGIBZCP4iEfEIMhiAbQjSIhEIAQpD6gICAAhCVEiAHQbAEaiAHKQPABCIXIAcpA7AGfCIYQv////////8HgyIeQgAgOBCVEiAHQbADaiAHKQPAAyIWIAcpA6AGfCIZIBcgGFatIAcpA8gEIAcpA7gGfHxCDIYgGEI0iIR8IhhC/////////weDIh9CACA6EJUSIAdB0AJqIAcpA+AFIhcgBykDkAZ8IhogBykD4AJ8IhsgGCAZVK0gFiAZVq0gBykDyAMgBykDqAZ8fHxCDIYgGEI0iIR8IhhC/////////weDIiBCACA7EJUSIAdBgAFqIAcpA4ACIhYgJEL+////////B4N8IhkgGCAbVK0gGiAbVq0gBykD6AIgFyAaVq0gBykD6AUgBykDmAZ8fHx8fEIMhiAYQjSIhHwiGEL/////////B4MiIUIAIDkQlRIgB0HwAWogGCAZVK0gBykDiAIgFiAZVq18fCIXQgyGIBhCNIiEIhYgJkL///////8/g3wiKyAWICtWrSAXQjSIfCIiIDwQlRIgB0HgAWogBykD8AEiF0L/////////B4NCAEKQ+oCAgAIQlRIgB0GgBGogHkIAIDwQlRIgB0GgA2ogH0IAIDgQlRIgB0HAAmogIEIAIDoQlRIgB0HwAGogIUIAIDsQlRIgB0HAAWogKyAiIDkQlRIgB0HQAWogBykD+AEiFkIMhiAXQjSIhCAWQjSIQpD6gICAAhCVEiAHQZAEaiAeQgAgORCVEiAHQZADaiAfQgAgPBCVEiAHQbACaiAgQgAgOBCVEiAHQeAAaiAhQgAgOhCVEiAHQbABaiArICIgOxCVEiAHIAcpA7ACIhggBykDkAN8IicgBykDYHwiKCAHKQOwAXwiKSAHKQOgAyIXIAcpA6AEfCIqIAcpA8ACfCImIAcpA3B8IiQgBykDwAF8Ih0gBykD0AF8IhwgBykDsAMiFiAHKQOwBHwiGiAHKQPQAnwiGyAHKQOAAXwiGSAHKQPgAXwiJUI0iCAZICVWrSAHKQPoASAZIBtUrSAHKQOIASAaIBtWrSAHKQPYAiAWIBpWrSAHKQO4AyAHKQO4BHx8fHx8fHx8QgyGhHwiI0I0iCAcICNWrSAcIB1UrSAHKQPYASAdICRUrSAHKQPIASAkICZUrSAHKQN4ICYgKlStIAcpA8gCIBcgKlatIAcpA6gDIAcpA6gEfHx8fHx8fHx8fHxCDIaEfCIWQgSGQvD/////////AIMgI0IwiEIPg4RCAELRh4CAEBCVEiAHQYAEaiAeQgAgOxCVEiAHQYADaiAfQgAgORCVEiAHQaACaiAgQgAgPBCVEiAHQdAAaiAhQgAgOBCVEiAHQaABaiArICIgOhCVEiAHQUBrIAcpA1AiFyAHKQOgAnwiGiAHKQOgAXwiGyAWIClUrSAoIClWrSAHKQO4ASAnIChWrSAHKQNoIBggJ1atIAcpA7gCIAcpA5gDfHx8fHx8fEIMhiAWQjSIhHwiGUL/////////B4NCAEKQ+oCAgAIQlRIgB0HwA2ogHkIAIDoQlRIgB0HwAmogH0IAIDsQlRIgB0GQAmogIEIAIDkQlRIgB0EwaiAhQgAgPBCVEiAHQZABaiArICIgOBCVEiAHQSBqIAcpA5ABIhYgBykDMHwiGCAZIBtUrSAaIBtWrSAHKQOoASAXIBpWrSAHKQNYIAcpA6gCfHx8fHxCDIYgGUI0iIR8IhdC/////////weDQgBCkPqAgIACEJUSIAdBEGogFyAYVK0gFiAYVq0gBykDmAEgBykDOHx8fEIMhiAXQjSIhEIAQpD6gICAAhCVEiAHIAcpAwAiFyAHKQOQBHwiGEL/////////B4M3A9AHIAcgBykDgAMiFiAHKQOABHwiHSAHKQNAfCIZIBcgGFatIAcpAwggBykDmAR8fEIMhiAYQjSIhHwiGEL/////////B4M3A9gHIAcgBykD8AIiFyAHKQPwA3wiHCAHKQOQAnwiGiAHKQMgfCIbIBggGVStIBkgHVStIAcpA0ggFiAdVq0gBykDiAMgBykDiAR8fHx8fEIMhiAYQjSIhHwiGUL/////////B4M3A+AHIAcgBykDECIWICVC/////////weDfCIYIBkgG1StIBogG1atIAcpAyggGiAcVK0gBykDmAIgFyAcVq0gBykD+AIgBykD+AN8fHx8fHx8QgyGIBlCNIiEfCIXQv////////8HgzcD6AcgByAjQv///////z+DIBcgGFStIAcpAxggFiAYVq18fEIMhiAXQjSIhHw3A/AHIAdB+AZqIgMgB0HQB2oiCUGg1MQAEPsNIwBB4DlrIgUkACAFQbg5aiILIANBARCDDiAFQdAxaiADKQMYIjFCACAFKQO4OSIeEJUSIAVBoDJqIAMpAxAiMEIAIAUpA8A5Ih8QlRIgBUHwMmogAykDCCItQgAgBSkDyDkiIBCVEiAFQcAzaiADKQMAIi5CACAFKQPQOSIhEJUSIAVBsDRqIAMpAyAiL0IAIAUpA9g5IiIQlRIgBUGgNGogBSkDsDQiFkL/////////B4NCAEKQ+oCAgAIQlRIgBUHgMWogL0IAIB4QlRIgBUGwMmogMUIAIB8QlRIgBUGAM2ogMEIAICAQlRIgBUHQM2ogLUIAICEQlRIgBUHANGogLkIAICIQlRIgBUGQNGogBSkDuDRCDIYgFkI0iIRCAEKQ+oCAgAIQlRIgBUHwMWogLkIAIB4QlRIgBUHAMmogL0IAIB8QlRIgBUGQM2ogMUIAICAQlRIgBUHgM2ogMEIAICEQlRIgBUHQNGogLUIAICIQlRIgBUGQMWogBSkD4DMiGCAFKQPQNHwiJyAFKQOQM3wiKCAFKQPAMnwiKSAFKQPQMyIXIAUpA8A0fCIqIAUpA4AzfCImIAUpA7AyfCIkIAUpA+AxfCIdIAUpA5A0fCIcIAUpA/AyIhYgBSkDwDN8IhogBSkDoDJ8IhsgBSkD0DF8IhkgBSkDoDR8IiVCNIggGSAlVq0gBSkDqDQgGSAbVK0gBSkD2DEgGiAbVq0gBSkDqDIgFiAaVq0gBSkD+DIgBSkDyDN8fHx8fHx8fEIMhoR8IiNCNIggHCAjVq0gHCAdVK0gBSkDmDQgHSAkVK0gBSkD6DEgJCAmVK0gBSkDuDIgJiAqVK0gBSkDiDMgFyAqVq0gBSkD2DMgBSkDyDR8fHx8fHx8fHx8fEIMhoR8IhZCBIZC8P////////8AgyAjQjCIQg+DhEIAQtGHgIAQEJUSIAVBgDJqIC1CACAeEJUSIAVB0DJqIC5CACAfEJUSIAVBoDNqIC9CACAgEJUSIAVB8DNqIDFCACAhEJUSIAVB4DRqIDBCACAiEJUSIAVBwDFqIAUpA/AzIhcgBSkD4DR8IhogBSkDoDN8IhsgFiApVK0gKCApVq0gBSkDyDIgJyAoVq0gBSkDmDMgGCAnVq0gBSkD6DMgBSkD2DR8fHx8fHx8QgyGIBZCNIiEfCIZQv////////8Hg0IAQpD6gICAAhCVEiAFQZAyaiAwQgAgHhCVEiAFQeAyaiAtQgAgHxCVEiAFQbAzaiAuQgAgIBCVEiAFQYA0aiAvQgAgIRCVEiAFQfA0aiAxQgAgIhCVEiAFQbAxaiAFKQOANCIWIAUpA/A0fCIYIBkgG1StIBogG1atIAUpA6gzIBcgGlatIAUpA/gzIAUpA+g0fHx8fHxCDIYgGUI0iIR8IhdC/////////weDQgBCkPqAgIACEJUSIAVBoDFqIBcgGFStIBYgGFatIAUpA4g0IAUpA/g0fHx8QgyGIBdCNIiEQgBCkPqAgIACEJUSIAUgBSkDkDEiFyAFKQPwMXwiGEL/////////B4MiQDcDiDUgBSAFKQOAMiIWIAUpA9AyfCIdIAUpA8AxfCIZIBcgGFatIAUpA5gxIAUpA/gxfHxCDIYgGEI0iIR8IhhC/////////weDIkE3A5A1IAUgBSkD4DIiFyAFKQOwM3wiHCAFKQOQMnwiGiAFKQOwMXwiGyAYIBlUrSAZIB1UrSAFKQPIMSAWIB1WrSAFKQOIMiAFKQPYMnx8fHx8QgyGIBhCNIiEfCIZQv////////8HgyJCNwOYNSAFIAUpA6AxIhYgJUL/////////B4N8IhggGSAbVK0gGiAbVq0gBSkDuDEgGiAcVK0gBSkDmDIgFyAcVq0gBSkD6DIgBSkDuDN8fHx8fHx8QgyGIBlCNIiEfCIXQv////////8HgyJDNwOgNSAFIBcgGFStIAUpA6gxIBYgGFatfHwiG0IMhiAXQjSIhCIZICNC////////P4N8Ij03A6g1IAsgBUGINWpBARCDDiAFQeAtaiAFKQO4OSIsQgAgMRCVEiAFQbAuaiAFKQPAOSIrQgAgMBCVEiAFQYAvaiAFKQPIOSIeQgAgLRCVEiAFQdAvaiAFKQPQOSIfQgAgLhCVEiAFQcAwaiAFKQPYOSIgQgAgLxCVEiAFQbAwaiAFKQPAMCIWQv////////8Hg0IAQpD6gICAAhCVEiAFQfAtaiAsQgAgLxCVEiAFQcAuaiArQgAgMRCVEiAFQZAvaiAeQgAgMBCVEiAFQeAvaiAfQgAgLRCVEiAFQdAwaiAgQgAgLhCVEiAFQaAwaiAFKQPIMEIMhiAWQjSIhEIAQpD6gICAAhCVEiAFQYAuaiAsQgAgLhCVEiAFQdAuaiArQgAgLxCVEiAFQaAvaiAeQgAgMRCVEiAFQfAvaiAfQgAgMBCVEiAFQeAwaiAgQgAgLRCVEiAFQaAtaiAFKQOgLyIYIAUpA9AufCIiIAUpA/AvfCIjIAUpA+AwfCInIAUpA8AuIhcgBSkD8C18IiggBSkDkC98IikgBSkD4C98IiogBSkD0DB8IiQgBSkDoDB8IiUgBSkDsC4iFiAFKQPgLXwiHSAFKQOAL3wiHCAFKQPQL3wiGiAFKQOwMHwiJkI0iCAaICZWrSAFKQO4MCAaIBxUrSAFKQPYLyAcIB1UrSAFKQOILyAWIB1WrSAFKQO4LiAFKQPoLXx8fHx8fHx8QgyGhHwiIUI0iCAhICVUrSAkICVWrSAFKQOoMCAkICpUrSAFKQPYMCApICpWrSAFKQPoLyAoIClWrSAFKQOYLyAXIChWrSAFKQPILiAFKQP4LXx8fHx8fHx8fHx8QgyGhHwiFkIEhkLw/////////wCDICFCMIhCD4OEQgBC0YeAgBAQlRIgBUGQLmogLEIAIC0QlRIgBUHgLmogK0IAIC4QlRIgBUGwL2ogHkIAIC8QlRIgBUGAMGogH0IAIDEQlRIgBUHwMGogIEIAIDAQlRIgBUHQLWogBSkDgDAiFyAFKQOwL3wiHSAFKQPwMHwiHCAWICdUrSAjICdWrSAFKQPoMCAiICNWrSAFKQP4LyAYICJWrSAFKQOoLyAFKQPYLnx8fHx8fHxCDIYgFkI0iIR8IhpC/////////weDQgBCkPqAgIACEJUSIAVBoC5qICxCACAwEJUSIAVB8C5qICtCACAtEJUSIAVBwC9qIB5CACAuEJUSIAVBkDBqIB9CACAvEJUSIAVBgDFqICBCACAxEJUSIAVBwC1qIAUpA4AxIhYgBSkDkDB8IhggGiAcVK0gHCAdVK0gBSkD+DAgFyAdVq0gBSkDiDAgBSkDuC98fHx8fEIMhiAaQjSIhHwiF0L/////////B4NCAEKQ+oCAgAIQlRIgBUGwLWogFyAYVK0gFiAYVq0gBSkDiDEgBSkDmDB8fHxCDIYgF0I0iIRCAEKQ+oCAgAIQlRIgBSAFKQOgLSIXIAUpA4AufCIYQv////////8HgyIzNwOwNSAFIAUpA+AuIhYgBSkDkC58IiQgBSkD0C18IhogFyAYVq0gBSkDqC0gBSkDiC58fEIMhiAYQjSIhHwiGEL/////////B4MiNDcDuDUgBSAFKQPwLiIXIAUpA6AufCIlIAUpA8AvfCIdIAUpA8AtfCIcIBggGlStIBogJFStIAUpA9gtIBYgJFatIAUpA+guIAUpA5gufHx8fHxCDIYgGEI0iIR8IhhC/////////weDIjU3A8A1IAUgBSkDsC0iFiAmQv////////8Hg3wiGiAYIBxUrSAcIB1UrSAFKQPILSAdICVUrSAFKQPILyAXICVWrSAFKQP4LiAFKQOoLnx8fHx8fHxCDIYgGEI0iIR8IhhC/////////weDIjY3A8g1IAUgGCAaVK0gBSkDuC0gFiAaVq18fCIXQgyGIBhCNIiEIhYgIUL///////8/g3wiMjcD0DUgCyAFQbA1akEDEIMOIAVB8ClqIDZCACAFKQO4OSIsEJUSIAVBwCpqIDVCACAFKQPAOSIrEJUSIAVBkCtqIDRCACAFKQPIOSIeEJUSIAVB4CtqIDNCACAFKQPQOSIfEJUSIAVB0CxqIDIgFiAyVq0gF0I0iHwiNyAFKQPYOSIgEJUSIAVBwCxqIAUpA9AsIhdC/////////weDQgBCkPqAgIACEJUSIAVBgCpqIDIgNyAsEJUSIAVB0CpqIDZCACArEJUSIAVBoCtqIDVCACAeEJUSIAVB8CtqIDRCACAfEJUSIAVB4CxqIDNCACAgEJUSIAVBsCxqIAUpA9gsIhZCDIYgF0I0iIQgFkI0iEKQ+oCAgAIQlRIgBUGQKmogM0IAICwQlRIgBUHgKmogMiA3ICsQlRIgBUGwK2ogNkIAIB4QlRIgBUGALGogNUIAIB8QlRIgBUHwLGogNEIAICAQlRIgBUGwKWogBSkDgCwiGCAFKQPwLHwiIiAFKQOwK3wiIyAFKQPgKnwiJyAFKQPwKyIXIAUpA+AsfCIoIAUpA6ArfCIpIAUpA9AqfCIqIAUpA4AqfCIkIAUpA7AsfCIlIAUpA5ArIhYgBSkD4Ct8Ih0gBSkDwCp8IhwgBSkD8Cl8IhogBSkDwCx8IiZCNIggGiAmVq0gBSkDyCwgGiAcVK0gBSkD+CkgHCAdVK0gBSkDyCogFiAdVq0gBSkDmCsgBSkD6Ct8fHx8fHx8fEIMhoR8IiFCNIggISAlVK0gJCAlVq0gBSkDuCwgJCAqVK0gBSkDiCogKSAqVq0gBSkD2CogKCApVq0gBSkDqCsgFyAoVq0gBSkD+CsgBSkD6Cx8fHx8fHx8fHx8fEIMhoR8IhZCBIZC8P////////8AgyAhQjCIQg+DhEIAQtGHgIAQEJUSIAVBoCpqIDRCACAsEJUSIAVB8CpqIDNCACArEJUSIAVBwCtqIDIgNyAeEJUSIAVBkCxqIDZCACAfEJUSIAVBgC1qIDVCACAgEJUSIAVB4ClqIAUpA5AsIhcgBSkDgC18Ih0gBSkDwCt8IhwgFiAnVK0gIyAnVq0gBSkD6CogIiAjVq0gBSkDuCsgGCAiVq0gBSkDiCwgBSkD+Cx8fHx8fHx8QgyGIBZCNIiEfCIaQv////////8Hg0IAQpD6gICAAhCVEiAFQbAqaiA1QgAgLBCVEiAFQYAraiA0QgAgKxCVEiAFQdAraiAzQgAgHhCVEiAFQaAsaiAyIDcgHxCVEiAFQZAtaiA2QgAgIBCVEiAFQdApaiAFKQOgLCIWIAUpA5AtfCIYIBogHFStIBwgHVStIAUpA8grIBcgHVatIAUpA5gsIAUpA4gtfHx8fHxCDIYgGkI0iIR8IhdC/////////weDQgBCkPqAgIACEJUSIAVBwClqIBcgGFStIBYgGFatIAUpA6gsIAUpA5gtfHx8QgyGIBdCNIiEQgBCkPqAgIACEJUSIAUgBSkDsCkiFyAFKQOQKnwiGEL/////////B4M3A9g1IAUgBSkDoCoiFiAFKQPwKnwiJCAFKQPgKXwiGiAXIBhWrSAFKQO4KSAFKQOYKnx8QgyGIBhCNIiEfCIYQv////////8HgzcD4DUgBSAFKQOAKyIXIAUpA9ArfCIlIAUpA7AqfCIdIAUpA9ApfCIcIBggGlStIBogJFStIAUpA+gpIBYgJFatIAUpA6gqIAUpA/gqfHx8fHxCDIYgGEI0iIR8IhpC/////////weDNwPoNSAFIAUpA8ApIhYgJkL/////////B4N8IhggGiAcVK0gHCAdVK0gBSkD2CkgHSAlVK0gBSkDuCogFyAlVq0gBSkDiCsgBSkD2Ct8fHx8fHx8QgyGIBpCNIiEfCIXQv////////8HgzcD8DUgBSAhQv///////z+DIBcgGFStIAUpA8gpIBYgGFatfHxCDIYgF0I0iIR8NwP4NSALIAVB2DVqQQMQgw4gBUGAJmogNkIAIAUpA7g5IiwQlRIgBUHQJmogNUIAIAUpA8A5IisQlRIgBUGgJ2ogNEIAIAUpA8g5Ih4QlRIgBUHwJ2ogM0IAIAUpA9A5Ih8QlRIgBUHgKGogMiA3IAUpA9g5IiAQlRIgBUHQKGogBSkD4CgiF0L/////////B4NCAEKQ+oCAgAIQlRIgBUGQJmogMiA3ICwQlRIgBUHgJmogNkIAICsQlRIgBUGwJ2ogNUIAIB4QlRIgBUGAKGogNEIAIB8QlRIgBUHwKGogM0IAICAQlRIgBUHAKGogBSkD6CgiFkIMhiAXQjSIhCAWQjSIQpD6gICAAhCVEiAFQaAmaiAzQgAgLBCVEiAFQfAmaiAyIDcgKxCVEiAFQcAnaiA2QgAgHhCVEiAFQZAoaiA1QgAgHxCVEiAFQYApaiA0QgAgIBCVEiAFQcAlaiAFKQOQKCIYIAUpA4ApfCIiIAUpA8AnfCIjIAUpA/AmfCInIAUpA4AoIhcgBSkD8Ch8IiggBSkDsCd8IikgBSkD4CZ8IiogBSkDkCZ8IiQgBSkDwCh8IiUgBSkDoCciFiAFKQPwJ3wiHSAFKQPQJnwiHCAFKQOAJnwiGiAFKQPQKHwiJkI0iCAaICZWrSAFKQPYKCAaIBxUrSAFKQOIJiAcIB1UrSAFKQPYJiAWIB1WrSAFKQOoJyAFKQP4J3x8fHx8fHx8QgyGhHwiIUI0iCAhICVUrSAkICVWrSAFKQPIKCAkICpUrSAFKQOYJiApICpWrSAFKQPoJiAoIClWrSAFKQO4JyAXIChWrSAFKQOIKCAFKQP4KHx8fHx8fHx8fHx8QgyGhHwiFkIEhkLw/////////wCDICFCMIhCD4OEQgBC0YeAgBAQlRIgBUGwJmogNEIAICwQlRIgBUGAJ2ogM0IAICsQlRIgBUHQJ2ogMiA3IB4QlRIgBUGgKGogNkIAIB8QlRIgBUGQKWogNUIAICAQlRIgBUHwJWogBSkDoCgiFyAFKQOQKXwiHSAFKQPQJ3wiHCAWICdUrSAjICdWrSAFKQP4JiAiICNWrSAFKQPIJyAYICJWrSAFKQOYKCAFKQOIKXx8fHx8fHxCDIYgFkI0iIR8IhpC/////////weDQgBCkPqAgIACEJUSIAVBwCZqIDVCACAsEJUSIAVBkCdqIDRCACArEJUSIAVB4CdqIDNCACAeEJUSIAVBsChqIDIgNyAfEJUSIAVBoClqIDZCACAgEJUSIAVB4CVqIAUpA7AoIhYgBSkDoCl8IhggGiAcVK0gHCAdVK0gBSkD2CcgFyAdVq0gBSkDqCggBSkDmCl8fHx8fEIMhiAaQjSIhHwiF0L/////////B4NCAEKQ+oCAgAIQlRIgBUHQJWogFyAYVK0gFiAYVq0gBSkDuCggBSkDqCl8fHxCDIYgF0I0iIRCAEKQ+oCAgAIQlRIgBSAFKQPAJSIXIAUpA6AmfCIYQv////////8HgzcDgDYgBSAFKQOwJiIWIAUpA4AnfCIkIAUpA/AlfCIaIBcgGFatIAUpA8glIAUpA6gmfHxCDIYgGEI0iIR8IhhC/////////weDNwOINiAFIAUpA5AnIhcgBSkD4Cd8IiUgBSkDwCZ8Ih0gBSkD4CV8IhwgGCAaVK0gGiAkVK0gBSkD+CUgFiAkVq0gBSkDuCYgBSkDiCd8fHx8fEIMhiAYQjSIhHwiGkL/////////B4M3A5A2IAUgBSkD0CUiFiAmQv////////8Hg3wiGCAaIBxUrSAcIB1UrSAFKQPoJSAdICVUrSAFKQPIJiAXICVWrSAFKQOYJyAFKQPoJ3x8fHx8fHxCDIYgGkI0iIR8IhdC/////////weDNwOYNiAFICFC////////P4MgFyAYVK0gBSkD2CUgFiAYVq18fEIMhiAXQjSIhHw3A6A2IAsgBUGANmpBAhCDDiAFQZAiaiBDQgAgBSkDuDkiHhCVEiAFQeAiaiBCQgAgBSkDwDkiHxCVEiAFQbAjaiBBQgAgBSkDyDkiIBCVEiAFQYAkaiBAQgAgBSkD0DkiIRCVEiAFQfAkaiA9IBkgPVatIBtCNIh8IkwgBSkD2DkiIhCVEiAFQeAkaiAFKQPwJCIXQv////////8Hg0IAQpD6gICAAhCVEiAFQaAiaiA9IEwgHhCVEiAFQfAiaiBDQgAgHxCVEiAFQcAjaiBCQgAgIBCVEiAFQZAkaiBBQgAgIRCVEiAFQYAlaiBAQgAgIhCVEiAFQdAkaiAFKQP4JCIWQgyGIBdCNIiEIBZCNIhCkPqAgIACEJUSIAVBsCJqIEBCACAeEJUSIAVBgCNqID0gTCAfEJUSIAVB0CNqIENCACAgEJUSIAVBoCRqIEJCACAhEJUSIAVBkCVqIEFCACAiEJUSIAVB0CFqIAUpA9AjIhggBSkDgCN8IicgBSkDoCR8IiggBSkDkCV8IikgBSkD8CIiFyAFKQOgInwiKiAFKQPAI3wiJiAFKQOQJHwiJCAFKQOAJXwiHSAFKQPQJHwiHCAFKQPgIiIWIAUpA5AifCIaIAUpA7AjfCIbIAUpA4AkfCIZIAUpA+AkfCIlQjSIIBkgJVatIAUpA+gkIBkgG1StIAUpA4gkIBogG1atIAUpA7gjIBYgGlatIAUpA+giIAUpA5gifHx8fHx8fHxCDIaEfCIjQjSIIBwgI1atIBwgHVStIAUpA9gkIB0gJFStIAUpA4glICQgJlStIAUpA5gkICYgKlStIAUpA8gjIBcgKlatIAUpA/giIAUpA6gifHx8fHx8fHx8fHxCDIaEfCIWQgSGQvD/////////AIMgI0IwiEIPg4RCAELRh4CAEBCVEiAFQcAiaiBBQgAgHhCVEiAFQZAjaiBAQgAgHxCVEiAFQeAjaiA9IEwgIBCVEiAFQbAkaiBDQgAgIRCVEiAFQaAlaiBCQgAgIhCVEiAFQYAiaiAFKQOwJCIXIAUpA+AjfCIaIAUpA6AlfCIbIBYgKVStICggKVatIAUpA5glICcgKFatIAUpA6gkIBggJ1atIAUpA9gjIAUpA4gjfHx8fHx8fEIMhiAWQjSIhHwiGUL/////////B4NCAEKQ+oCAgAIQlRIgBUHQImogQkIAIB4QlRIgBUGgI2ogQUIAIB8QlRIgBUHwI2ogQEIAICAQlRIgBUHAJGogPSBMICEQlRIgBUGwJWogQ0IAICIQlRIgBUHwIWogBSkDsCUiFiAFKQPAJHwiGCAZIBtUrSAaIBtWrSAFKQOoJSAXIBpWrSAFKQO4JCAFKQPoI3x8fHx8QgyGIBlCNIiEfCIXQv////////8Hg0IAQpD6gICAAhCVEiAFQeAhaiAXIBhUrSAWIBhWrSAFKQO4JSAFKQPIJHx8fEIMhiAXQjSIhEIAQpD6gICAAhCVEiAFIAUpA9AhIhcgBSkDsCJ8IhhC/////////weDIi03A6g2IAUgBSkDkCMiFiAFKQPAInwiHSAFKQOAInwiGSAXIBhWrSAFKQPYISAFKQO4Inx8QgyGIBhCNIiEfCIYQv////////8HgyIuNwOwNiAFIAUpA6AjIhcgBSkD0CJ8IhwgBSkD8CN8IhogBSkD8CF8IhsgGCAZVK0gGSAdVK0gBSkDiCIgFiAdVq0gBSkDmCMgBSkDyCJ8fHx8fEIMhiAYQjSIhHwiGEL/////////B4MiLzcDuDYgBSAFKQPgISIWICVC/////////weDfCIZIBggG1StIBogG1atIAUpA/ghIBogHFStIAUpA/gjIBcgHFatIAUpA6gjIAUpA9gifHx8fHx8fEIMhiAYQjSIhHwiGEL/////////B4MiLDcDwDYgBSAYIBlUrSAFKQPoISAWIBlWrXx8IhdCDIYgGEI0iIQiFiAjQv///////z+DfCIwNwPINiALIAVBqDZqQQsQgw4gBUGgHmogLEIAIAUpA7g5IisQlRIgBUHwHmogL0IAIAUpA8A5Ih4QlRIgBUHAH2ogLkIAIAUpA8g5Ih8QlRIgBUGQIGogLUIAIAUpA9A5IiAQlRIgBUGAIWogMCAWIDBWrSAXQjSIfCIhIAUpA9g5IiIQlRIgBUHwIGogBSkDgCEiF0L/////////B4NCAEKQ+oCAgAIQlRIgBUGwHmogMCAhICsQlRIgBUGAH2ogLEIAIB4QlRIgBUHQH2ogL0IAIB8QlRIgBUGgIGogLkIAICAQlRIgBUGQIWogLUIAICIQlRIgBUHgIGogBSkDiCEiFkIMhiAXQjSIhCAWQjSIQpD6gICAAhCVEiAFQcAeaiAtQgAgKxCVEiAFQZAfaiAwICEgHhCVEiAFQeAfaiAsQgAgHxCVEiAFQbAgaiAvQgAgIBCVEiAFQaAhaiAuQgAgIhCVEiAFQeAdaiAFKQOwICIYIAUpA6AhfCInIAUpA+AffCIoIAUpA5AffCIpIAUpA6AgIhcgBSkDkCF8IiogBSkD0B98IiYgBSkDgB98IiQgBSkDsB58Ih0gBSkD4CB8IhwgBSkDwB8iFiAFKQOQIHwiGiAFKQPwHnwiGyAFKQOgHnwiGSAFKQPwIHwiJUI0iCAZICVWrSAFKQP4ICAZIBtUrSAFKQOoHiAaIBtWrSAFKQP4HiAWIBpWrSAFKQPIHyAFKQOYIHx8fHx8fHx8QgyGhHwiI0I0iCAcICNWrSAcIB1UrSAFKQPoICAdICRUrSAFKQO4HiAkICZUrSAFKQOIHyAmICpUrSAFKQPYHyAXICpWrSAFKQOoICAFKQOYIXx8fHx8fHx8fHx8QgyGhHwiFkIEhkLw/////////wCDICNCMIhCD4OEQgBC0YeAgBAQlRIgBUHQHmogLkIAICsQlRIgBUGgH2ogLUIAIB4QlRIgBUHwH2ogMCAhIB8QlRIgBUHAIGogLEIAICAQlRIgBUGwIWogL0IAICIQlRIgBUGQHmogBSkDwCAiFyAFKQOwIXwiGiAFKQPwH3wiGyAWIClUrSAoIClWrSAFKQOYHyAnIChWrSAFKQPoHyAYICdWrSAFKQO4ICAFKQOoIXx8fHx8fHxCDIYgFkI0iIR8IhlC/////////weDQgBCkPqAgIACEJUSIAVB4B5qIC9CACArEJUSIAVBsB9qIC5CACAeEJUSIAVBgCBqIC1CACAfEJUSIAVB0CBqIDAgISAgEJUSIAVBwCFqICxCACAiEJUSIAVBgB5qIAUpA9AgIhYgBSkDwCF8IhggGSAbVK0gGiAbVq0gBSkD+B8gFyAaVq0gBSkDyCAgBSkDuCF8fHx8fEIMhiAZQjSIhHwiF0L/////////B4NCAEKQ+oCAgAIQlRIgBUHwHWogFyAYVK0gFiAYVq0gBSkD2CAgBSkDyCF8fHxCDIYgF0I0iIRCAEKQ+oCAgAIQlRIgBSAFKQPgHSIXIAUpA8AefCIYQv////////8HgyJENwPQNiAFIAUpA9AeIhYgBSkDoB98Ih0gBSkDkB58IhkgFyAYVq0gBSkD6B0gBSkDyB58fEIMhiAYQjSIhHwiGEL/////////B4MiRTcD2DYgBSAFKQOwHyIXIAUpA4AgfCIcIAUpA+AefCIaIAUpA4AefCIbIBggGVStIBkgHVStIAUpA5geIBYgHVatIAUpA9geIAUpA6gffHx8fHxCDIYgGEI0iIR8IhhC/////////weDIkY3A+A2IAUgBSkD8B0iFiAlQv////////8Hg3wiGSAYIBtUrSAaIBtWrSAFKQOIHiAaIBxUrSAFKQPoHiAXIBxWrSAFKQO4HyAFKQOIIHx8fHx8fHxCDIYgGEI0iIR8IhhC/////////weDIkc3A+g2IAUgGCAZVK0gBSkD+B0gFiAZVq18fCIXQgyGIBhCNIiEIhYgI0L///////8/g3wiPjcD8DYgCyAFQdA2akEWEIMOIAVBsBpqIEdCACAFKQO4OSIeEJUSIAVBgBtqIEZCACAFKQPAOSIfEJUSIAVB0BtqIEVCACAFKQPIOSIgEJUSIAVBoBxqIERCACAFKQPQOSIhEJUSIAVBkB1qID4gFiA+Vq0gF0I0iHwiTSAFKQPYOSIiEJUSIAVBgB1qIAUpA5AdIhdC/////////weDQgBCkPqAgIACEJUSIAVBwBpqID4gTSAeEJUSIAVBkBtqIEdCACAfEJUSIAVB4BtqIEZCACAgEJUSIAVBsBxqIEVCACAhEJUSIAVBoB1qIERCACAiEJUSIAVB8BxqIAUpA5gdIhZCDIYgF0I0iIQgFkI0iEKQ+oCAgAIQlRIgBUHQGmogREIAIB4QlRIgBUGgG2ogPiBNIB8QlRIgBUHwG2ogR0IAICAQlRIgBUHAHGogRkIAICEQlRIgBUGwHWogRUIAICIQlRIgBUHwGWogBSkDwBwiGCAFKQOwHXwiJyAFKQPwG3wiKCAFKQOgG3wiKSAFKQOwHCIXIAUpA6AdfCIqIAUpA+AbfCImIAUpA5AbfCIkIAUpA8AafCIdIAUpA/AcfCIcIAUpA9AbIhYgBSkDoBx8IhogBSkDgBt8IhsgBSkDsBp8IhkgBSkDgB18IiVCNIggGSAlVq0gBSkDiB0gGSAbVK0gBSkDuBogGiAbVq0gBSkDiBsgFiAaVq0gBSkD2BsgBSkDqBx8fHx8fHx8fEIMhoR8IiNCNIggHCAjVq0gHCAdVK0gBSkD+BwgHSAkVK0gBSkDyBogJCAmVK0gBSkDmBsgJiAqVK0gBSkD6BsgFyAqVq0gBSkDuBwgBSkDqB18fHx8fHx8fHx8fEIMhoR8IhZCBIZC8P////////8AgyAjQjCIQg+DhEIAQtGHgIAQEJUSIAVB4BpqIEVCACAeEJUSIAVBsBtqIERCACAfEJUSIAVBgBxqID4gTSAgEJUSIAVB0BxqIEdCACAhEJUSIAVBwB1qIEZCACAiEJUSIAVBoBpqIAUpA9AcIhcgBSkDwB18IhogBSkDgBx8IhsgFiApVK0gKCApVq0gBSkDqBsgJyAoVq0gBSkD+BsgGCAnVq0gBSkDyBwgBSkDuB18fHx8fHx8QgyGIBZCNIiEfCIZQv////////8Hg0IAQpD6gICAAhCVEiAFQfAaaiBGQgAgHhCVEiAFQcAbaiBFQgAgHxCVEiAFQZAcaiBEQgAgIBCVEiAFQeAcaiA+IE0gIRCVEiAFQdAdaiBHQgAgIhCVEiAFQZAaaiAFKQPgHCIWIAUpA9AdfCIYIBkgG1StIBogG1atIAUpA4gcIBcgGlatIAUpA9gcIAUpA8gdfHx8fHxCDIYgGUI0iIR8IhdC/////////weDQgBCkPqAgIACEJUSIAVBgBpqIBcgGFStIBYgGFatIAUpA+gcIAUpA9gdfHx8QgyGIBdCNIiEQgBCkPqAgIACEJUSIAUgBSkD8BkiFyAFKQPQGnwiGEL/////////B4MiSDcD+DYgBSAFKQPgGiIWIAUpA7AbfCIdIAUpA6AafCIZIBcgGFatIAUpA/gZIAUpA9gafHxCDIYgGEI0iIR8IhhC/////////weDIkk3A4A3IAUgBSkDwBsiFyAFKQOQHHwiHCAFKQPwGnwiGiAFKQOQGnwiGyAYIBlUrSAZIB1UrSAFKQOoGiAWIB1WrSAFKQPoGiAFKQO4G3x8fHx8QgyGIBhCNIiEfCIYQv////////8HgyJKNwOINyAFIAUpA4AaIhYgJUL/////////B4N8IhkgGCAbVK0gGiAbVq0gBSkDmBogGiAcVK0gBSkD+BogFyAcVq0gBSkDyBsgBSkDmBx8fHx8fHx8QgyGIBhCNIiEfCIYQv////////8HgyJLNwOQNyAFIBggGVStIAUpA4gaIBYgGVatfHwiF0IMhiAYQjSIhCIWICNC////////P4N8Ij83A5g3IAsgBUH4NmpBLBCDDiAFQcAWaiBLQgAgBSkDuDkiHhCVEiAFQZAXaiBKQgAgBSkDwDkiHxCVEiAFQeAXaiBJQgAgBSkDyDkiIBCVEiAFQbAYaiBIQgAgBSkD0DkiIRCVEiAFQaAZaiA/IBYgP1atIBdCNIh8IjEgBSkD2DkiIhCVEiAFQZAZaiAFKQOgGSIXQv////////8Hg0IAQpD6gICAAhCVEiAFQdAWaiA/IDEgHhCVEiAFQaAXaiBLQgAgHxCVEiAFQfAXaiBKQgAgIBCVEiAFQcAYaiBJQgAgIRCVEiAFQbAZaiBIQgAgIhCVEiAFQYAZaiAFKQOoGSIWQgyGIBdCNIiEIBZCNIhCkPqAgIACEJUSIAVB4BZqIEhCACAeEJUSIAVBsBdqID8gMSAfEJUSIAVBgBhqIEtCACAgEJUSIAVB0BhqIEpCACAhEJUSIAVBwBlqIElCACAiEJUSIAVBgBZqIAUpA9AYIhggBSkDwBl8IicgBSkDgBh8IiggBSkDsBd8IikgBSkDwBgiFyAFKQOwGXwiKiAFKQPwF3wiJiAFKQOgF3wiJCAFKQPQFnwiHSAFKQOAGXwiHCAFKQPgFyIWIAUpA7AYfCIaIAUpA5AXfCIbIAUpA8AWfCIZIAUpA5AZfCIlQjSIIBkgJVatIAUpA5gZIBkgG1StIAUpA8gWIBogG1atIAUpA5gXIBYgGlatIAUpA+gXIAUpA7gYfHx8fHx8fHxCDIaEfCIjQjSIIBwgI1atIBwgHVStIAUpA4gZIB0gJFStIAUpA9gWICQgJlStIAUpA6gXICYgKlStIAUpA/gXIBcgKlatIAUpA8gYIAUpA7gZfHx8fHx8fHx8fHxCDIaEfCIWQgSGQvD/////////AIMgI0IwiEIPg4RCAELRh4CAEBCVEiAFQfAWaiBJQgAgHhCVEiAFQcAXaiBIQgAgHxCVEiAFQZAYaiA/IDEgIBCVEiAFQeAYaiBLQgAgIRCVEiAFQdAZaiBKQgAgIhCVEiAFQbAWaiAFKQPgGCIXIAUpA9AZfCIaIAUpA5AYfCIbIBYgKVStICggKVatIAUpA7gXICcgKFatIAUpA4gYIBggJ1atIAUpA9gYIAUpA8gZfHx8fHx8fEIMhiAWQjSIhHwiGUL/////////B4NCAEKQ+oCAgAIQlRIgBUGAF2ogSkIAIB4QlRIgBUHQF2ogSUIAIB8QlRIgBUGgGGogSEIAICAQlRIgBUHwGGogPyAxICEQlRIgBUHgGWogS0IAICIQlRIgBUGgFmogBSkD8BgiFiAFKQPgGXwiGCAZIBtUrSAaIBtWrSAFKQOYGCAXIBpWrSAFKQPoGCAFKQPYGXx8fHx8QgyGIBlCNIiEfCIXQv////////8Hg0IAQpD6gICAAhCVEiAFQZAWaiAXIBhUrSAWIBhWrSAFKQP4GCAFKQPoGXx8fEIMhiAXQjSIhEIAQpD6gICAAhCVEiAFIAUpA4AWIhcgBSkD4BZ8IhhC/////////weDIi03A6A3IAUgBSkD8BYiFiAFKQPAF3wiHSAFKQOwFnwiGSAXIBhWrSAFKQOIFiAFKQPoFnx8QgyGIBhCNIiEfCIYQv////////8HgyIuNwOoNyAFIAUpA9AXIhcgBSkDoBh8IhwgBSkDgBd8IhogBSkDoBZ8IhsgGCAZVK0gGSAdVK0gBSkDuBYgFiAdVq0gBSkD+BYgBSkDyBd8fHx8fEIMhiAYQjSIhHwiGEL/////////B4MiLzcDsDcgBSAFKQOQFiIWICVC/////////weDfCIZIBggG1StIBogG1atIAUpA6gWIBogHFStIAUpA4gXIBcgHFatIAUpA9gXIAUpA6gYfHx8fHx8fEIMhiAYQjSIhHwiGEL/////////B4MiLDcDuDcgBSAYIBlUrSAFKQOYFiAWIBlWrXx8IhdCDIYgGEI0iIQiFiAjQv///////z+DfCIwNwPANyALIAVBoDdqQdgAEIMOIAVB0BJqICxCACAFKQO4OSIrEJUSIAVBoBNqIC9CACAFKQPAOSIeEJUSIAVB8BNqIC5CACAFKQPIOSIfEJUSIAVBwBRqIC1CACAFKQPQOSIgEJUSIAVBsBVqIDAgFiAwVq0gF0I0iHwiISAFKQPYOSIiEJUSIAVBoBVqIAUpA7AVIhdC/////////weDQgBCkPqAgIACEJUSIAVB4BJqIDAgISArEJUSIAVBsBNqICxCACAeEJUSIAVBgBRqIC9CACAfEJUSIAVB0BRqIC5CACAgEJUSIAVBwBVqIC1CACAiEJUSIAVBkBVqIAUpA7gVIhZCDIYgF0I0iIQgFkI0iEKQ+oCAgAIQlRIgBUHwEmogLUIAICsQlRIgBUHAE2ogMCAhIB4QlRIgBUGQFGogLEIAIB8QlRIgBUHgFGogL0IAICAQlRIgBUHQFWogLkIAICIQlRIgBUGQEmogBSkD4BQiGCAFKQPQFXwiJyAFKQOQFHwiKCAFKQPAE3wiKSAFKQPQFCIXIAUpA8AVfCIqIAUpA4AUfCImIAUpA7ATfCIkIAUpA+ASfCIdIAUpA5AVfCIcIAUpA/ATIhYgBSkDwBR8IhogBSkDoBN8IhsgBSkD0BJ8IhkgBSkDoBV8IiVCNIggGSAlVq0gBSkDqBUgGSAbVK0gBSkD2BIgGiAbVq0gBSkDqBMgFiAaVq0gBSkD+BMgBSkDyBR8fHx8fHx8fEIMhoR8IiNCNIggHCAjVq0gHCAdVK0gBSkDmBUgHSAkVK0gBSkD6BIgJCAmVK0gBSkDuBMgJiAqVK0gBSkDiBQgFyAqVq0gBSkD2BQgBSkDyBV8fHx8fHx8fHx8fEIMhoR8IhZCBIZC8P////////8AgyAjQjCIQg+DhEIAQtGHgIAQEJUSIAVBgBNqIC5CACArEJUSIAVB0BNqIC1CACAeEJUSIAVBoBRqIDAgISAfEJUSIAVB8BRqICxCACAgEJUSIAVB4BVqIC9CACAiEJUSIAVBwBJqIAUpA/AUIhcgBSkD4BV8IhogBSkDoBR8IhsgFiApVK0gKCApVq0gBSkDyBMgJyAoVq0gBSkDmBQgGCAnVq0gBSkD6BQgBSkD2BV8fHx8fHx8QgyGIBZCNIiEfCIZQv////////8Hg0IAQpD6gICAAhCVEiAFQZATaiAvQgAgKxCVEiAFQeATaiAuQgAgHhCVEiAFQbAUaiAtQgAgHxCVEiAFQYAVaiAwICEgIBCVEiAFQfAVaiAsQgAgIhCVEiAFQbASaiAFKQOAFSIWIAUpA/AVfCIYIBkgG1StIBogG1atIAUpA6gUIBcgGlatIAUpA/gUIAUpA+gVfHx8fHxCDIYgGUI0iIR8IhdC/////////weDQgBCkPqAgIACEJUSIAVBoBJqIBcgGFStIBYgGFatIAUpA4gVIAUpA/gVfHx8QgyGIBdCNIiEQgBCkPqAgIACEJUSIAUgBSkDkBIiFyAFKQPwEnwiGEL/////////B4M3A8g3IAUgBSkDgBMiFiAFKQPQE3wiHSAFKQPAEnwiGSAXIBhWrSAFKQOYEiAFKQP4Enx8QgyGIBhCNIiEfCIYQv////////8HgzcD0DcgBSAFKQPgEyIXIAUpA7AUfCIcIAUpA5ATfCIaIAUpA7ASfCIbIBggGVStIBkgHVStIAUpA8gSIBYgHVatIAUpA4gTIAUpA9gTfHx8fHxCDIYgGEI0iIR8IhlC/////////weDNwPYNyAFIAUpA6ASIhYgJUL/////////B4N8IhggGSAbVK0gGiAbVq0gBSkDuBIgGiAcVK0gBSkDmBMgFyAcVq0gBSkD6BMgBSkDuBR8fHx8fHx8QgyGIBlCNIiEfCIXQv////////8HgzcD4DcgBSAjQv///////z+DIBcgGFStIAUpA6gSIBYgGFatfHxCDIYgF0I0iIR8NwPoNyALIAVByDdqQSwQgw4gBUHgDmogS0IAIAUpA7g5Ih4QlRIgBUGwD2ogSkIAIAUpA8A5Ih8QlRIgBUGAEGogSUIAIAUpA8g5IiAQlRIgBUHQEGogSEIAIAUpA9A5IiEQlRIgBUHAEWogPyAxIAUpA9g5IiIQlRIgBUGwEWogBSkDwBEiF0L/////////B4NCAEKQ+oCAgAIQlRIgBUHwDmogPyAxIB4QlRIgBUHAD2ogS0IAIB8QlRIgBUGQEGogSkIAICAQlRIgBUHgEGogSUIAICEQlRIgBUHQEWogSEIAICIQlRIgBUGgEWogBSkDyBEiFkIMhiAXQjSIhCAWQjSIQpD6gICAAhCVEiAFQYAPaiBIQgAgHhCVEiAFQdAPaiA/IDEgHxCVEiAFQaAQaiBLQgAgIBCVEiAFQfAQaiBKQgAgIRCVEiAFQeARaiBJQgAgIhCVEiAFQaAOaiAFKQPwECIYIAUpA+ARfCInIAUpA6AQfCIoIAUpA9APfCIpIAUpA+AQIhcgBSkD0BF8IiogBSkDkBB8IiYgBSkDwA98IiQgBSkD8A58Ih0gBSkDoBF8IhwgBSkDgBAiFiAFKQPQEHwiGiAFKQOwD3wiGyAFKQPgDnwiGSAFKQOwEXwiJUI0iCAZICVWrSAFKQO4ESAZIBtUrSAFKQPoDiAaIBtWrSAFKQO4DyAWIBpWrSAFKQOIECAFKQPYEHx8fHx8fHx8QgyGhHwiI0I0iCAcICNWrSAcIB1UrSAFKQOoESAdICRUrSAFKQP4DiAkICZUrSAFKQPIDyAmICpUrSAFKQOYECAXICpWrSAFKQPoECAFKQPYEXx8fHx8fHx8fHx8QgyGhHwiFkIEhkLw/////////wCDICNCMIhCD4OEQgBC0YeAgBAQlRIgBUGQD2ogSUIAIB4QlRIgBUHgD2ogSEIAIB8QlRIgBUGwEGogPyAxICAQlRIgBUGAEWogS0IAICEQlRIgBUHwEWogSkIAICIQlRIgBUHQDmogBSkDgBEiFyAFKQPwEXwiGiAFKQOwEHwiGyAWIClUrSAoIClWrSAFKQPYDyAnIChWrSAFKQOoECAYICdWrSAFKQP4ECAFKQPoEXx8fHx8fHxCDIYgFkI0iIR8IhlC/////////weDQgBCkPqAgIACEJUSIAVBoA9qIEpCACAeEJUSIAVB8A9qIElCACAfEJUSIAVBwBBqIEhCACAgEJUSIAVBkBFqID8gMSAhEJUSIAVBgBJqIEtCACAiEJUSIAVBwA5qIAUpA5ARIhYgBSkDgBJ8IhggGSAbVK0gGiAbVq0gBSkDuBAgFyAaVq0gBSkDiBEgBSkD+BF8fHx8fEIMhiAZQjSIhHwiF0L/////////B4NCAEKQ+oCAgAIQlRIgBUGwDmogFyAYVK0gFiAYVq0gBSkDmBEgBSkDiBJ8fHxCDIYgF0I0iIRCAEKQ+oCAgAIQlRIgBSAFKQOgDiIXIAUpA4APfCIYQv////////8HgzcD8DcgBSAFKQOQDyIWIAUpA+APfCIdIAUpA9AOfCIZIBcgGFatIAUpA6gOIAUpA4gPfHxCDIYgGEI0iIR8IhhC/////////weDNwP4NyAFIAUpA/APIhcgBSkDwBB8IhwgBSkDoA98IhogBSkDwA58IhsgGCAZVK0gGSAdVK0gBSkD2A4gFiAdVq0gBSkDmA8gBSkD6A98fHx8fEIMhiAYQjSIhHwiGUL/////////B4M3A4A4IAUgBSkDsA4iFiAlQv////////8Hg3wiGCAZIBtUrSAaIBtWrSAFKQPIDiAaIBxUrSAFKQOoDyAXIBxWrSAFKQP4DyAFKQPIEHx8fHx8fHxCDIYgGUI0iIR8IhdC/////////weDNwOIOCAFICNC////////P4MgFyAYVK0gBSkDuA4gFiAYVq18fEIMhiAXQjSIhHw3A5A4IAsgBUHwN2pBAxCDDiAFQfAKaiA2QgAgBSkDuDkiHhCVEiAFQcALaiA1QgAgBSkDwDkiHxCVEiAFQZAMaiA0QgAgBSkDyDkiIBCVEiAFQeAMaiAzQgAgBSkD0DkiIRCVEiAFQdANaiAyIDcgBSkD2DkiIhCVEiAFQcANaiAFKQPQDSIXQv////////8Hg0IAQpD6gICAAhCVEiAFQYALaiAyIDcgHhCVEiAFQdALaiA2QgAgHxCVEiAFQaAMaiA1QgAgIBCVEiAFQfAMaiA0QgAgIRCVEiAFQeANaiAzQgAgIhCVEiAFQbANaiAFKQPYDSIWQgyGIBdCNIiEIBZCNIhCkPqAgIACEJUSIAVBkAtqIDNCACAeEJUSIAVB4AtqIDIgNyAfEJUSIAVBsAxqIDZCACAgEJUSIAVBgA1qIDVCACAhEJUSIAVB8A1qIDRCACAiEJUSIAVBsApqIAUpA7AMIhggBSkD4At8IicgBSkDgA18IiggBSkD8A18IikgBSkD0AsiFyAFKQOAC3wiKiAFKQOgDHwiJiAFKQPwDHwiJCAFKQPgDXwiHSAFKQOwDXwiHCAFKQPACyIWIAUpA/AKfCIaIAUpA5AMfCIbIAUpA+AMfCIZIAUpA8ANfCIlQjSIIBkgJVatIAUpA8gNIBkgG1StIAUpA+gMIBogG1atIAUpA5gMIBYgGlatIAUpA8gLIAUpA/gKfHx8fHx8fHxCDIaEfCIjQjSIIBwgI1atIBwgHVStIAUpA7gNIB0gJFStIAUpA+gNICQgJlStIAUpA/gMICYgKlStIAUpA6gMIBcgKlatIAUpA9gLIAUpA4gLfHx8fHx8fHx8fHxCDIaEfCIWQgSGQvD/////////AIMgI0IwiEIPg4RCAELRh4CAEBCVEiAFQaALaiA0QgAgHhCVEiAFQfALaiAzQgAgHxCVEiAFQcAMaiAyIDcgIBCVEiAFQZANaiA2QgAgIRCVEiAFQYAOaiA1QgAgIhCVEiAFQeAKaiAFKQOQDSIXIAUpA8AMfCIaIAUpA4AOfCIbIBYgKVStICggKVatIAUpA/gNICcgKFatIAUpA4gNIBggJ1atIAUpA7gMIAUpA+gLfHx8fHx8fEIMhiAWQjSIhHwiGUL/////////B4NCAEKQ+oCAgAIQlRIgBUGwC2ogNUIAIB4QlRIgBUGADGogNEIAIB8QlRIgBUHQDGogM0IAICAQlRIgBUGgDWogMiA3ICEQlRIgBUGQDmogNkIAICIQlRIgBUHQCmogBSkDkA4iFiAFKQOgDXwiGCAZIBtUrSAaIBtWrSAFKQOIDiAXIBpWrSAFKQOYDSAFKQPIDHx8fHx8QgyGIBlCNIiEfCIXQv////////8Hg0IAQpD6gICAAhCVEiAFQcAKaiAXIBhUrSAWIBhWrSAFKQOYDiAFKQOoDXx8fEIMhiAXQjSIhEIAQpD6gICAAhCVEiAFIAUpA7AKIhcgBSkDkAt8IhhC/////////weDNwOYOCAFIAUpA/ALIhYgBSkDoAt8Ih0gBSkD4Ap8IhkgFyAYVq0gBSkDuAogBSkDmAt8fEIMhiAYQjSIhHwiGEL/////////B4M3A6A4IAUgBSkDgAwiFyAFKQOwC3wiHCAFKQPQDHwiGiAFKQPQCnwiGyAYIBlUrSAZIB1UrSAFKQPoCiAWIB1WrSAFKQP4CyAFKQOoC3x8fHx8QgyGIBhCNIiEfCIZQv////////8HgzcDqDggBSAFKQPACiIWICVC/////////weDfCIYIBkgG1StIBogG1atIAUpA9gKIBogHFStIAUpA9gMIBcgHFatIAUpA4gMIAUpA7gLfHx8fHx8fEIMhiAZQjSIhHwiF0L/////////B4M3A7A4IAUgI0L///////8/gyAXIBhUrSAFKQPICiAWIBhWrXx8QgyGIBdCNIiEfDcDuDggCyAFQZg4akEXEIMOIAVBgAdqIEdCACAFKQO4OSIeEJUSIAVB0AdqIEZCACAFKQPAOSIfEJUSIAVBoAhqIEVCACAFKQPIOSIgEJUSIAVB8AhqIERCACAFKQPQOSIhEJUSIAVB4AlqID4gTSAFKQPYOSIiEJUSIAVB0AlqIAUpA+AJIhdC/////////weDQgBCkPqAgIACEJUSIAVBkAdqID4gTSAeEJUSIAVB4AdqIEdCACAfEJUSIAVBsAhqIEZCACAgEJUSIAVBgAlqIEVCACAhEJUSIAVB8AlqIERCACAiEJUSIAVBwAlqIAUpA+gJIhZCDIYgF0I0iIQgFkI0iEKQ+oCAgAIQlRIgBUGgB2ogREIAIB4QlRIgBUHwB2ogPiBNIB8QlRIgBUHACGogR0IAICAQlRIgBUGQCWogRkIAICEQlRIgBUGACmogRUIAICIQlRIgBUHABmogBSkDwAgiGCAFKQPwB3wiJyAFKQOQCXwiKCAFKQOACnwiKSAFKQPgByIXIAUpA5AHfCIqIAUpA7AIfCImIAUpA4AJfCIkIAUpA/AJfCIdIAUpA8AJfCIcIAUpA9AHIhYgBSkDgAd8IhogBSkDoAh8IhsgBSkD8Ah8IhkgBSkD0Al8IiVCNIggGSAlVq0gBSkD2AkgGSAbVK0gBSkD+AggGiAbVq0gBSkDqAggFiAaVq0gBSkD2AcgBSkDiAd8fHx8fHx8fEIMhoR8IiNCNIggHCAjVq0gHCAdVK0gBSkDyAkgHSAkVK0gBSkD+AkgJCAmVK0gBSkDiAkgJiAqVK0gBSkDuAggFyAqVq0gBSkD6AcgBSkDmAd8fHx8fHx8fHx8fEIMhoR8IhZCBIZC8P////////8AgyAjQjCIQg+DhEIAQtGHgIAQEJUSIAVBsAdqIEVCACAeEJUSIAVBgAhqIERCACAfEJUSIAVB0AhqID4gTSAgEJUSIAVBoAlqIEdCACAhEJUSIAVBkApqIEZCACAiEJUSIAVB8AZqIAUpA6AJIhcgBSkD0Ah8IhogBSkDkAp8IhsgFiApVK0gKCApVq0gBSkDiAogJyAoVq0gBSkDmAkgGCAnVq0gBSkDyAggBSkD+Ad8fHx8fHx8QgyGIBZCNIiEfCIZQv////////8Hg0IAQpD6gICAAhCVEiAFQcAHaiBGQgAgHhCVEiAFQZAIaiBFQgAgHxCVEiAFQeAIaiBEQgAgIBCVEiAFQbAJaiA+IE0gIRCVEiAFQaAKaiBHQgAgIhCVEiAFQeAGaiAFKQOgCiIWIAUpA7AJfCIYIBkgG1StIBogG1atIAUpA5gKIBcgGlatIAUpA6gJIAUpA9gIfHx8fHxCDIYgGUI0iIR8IhdC/////////weDQgBCkPqAgIACEJUSIAVB0AZqIBcgGFStIBYgGFatIAUpA6gKIAUpA7gJfHx8QgyGIBdCNIiEQgBCkPqAgIACEJUSIAUgBSkDwAYiFyAFKQOgB3wiGEL/////////B4M3A5A5IAUgBSkDgAgiFiAFKQOwB3wiHSAFKQPwBnwiGSAXIBhWrSAFKQPIBiAFKQOoB3x8QgyGIBhCNIiEfCIYQv////////8HgzcDmDkgBSAFKQOQCCIXIAUpA8AHfCIcIAUpA+AIfCIaIAUpA+AGfCIbIBggGVStIBkgHVStIAUpA/gGIBYgHVatIAUpA4gIIAUpA7gHfHx8fHxCDIYgGEI0iIR8IhlC/////////weDNwOgOSAFIAUpA9AGIhYgJUL/////////B4N8IhggGSAbVK0gGiAbVq0gBSkD6AYgGiAcVK0gBSkD6AggFyAcVq0gBSkDmAggBSkDyAd8fHx8fHx8QgyGIBlCNIiEfCIXQv////////8HgzcDqDkgBSAjQv///////z+DIBcgGFStIAUpA9gGIBYgGFatfHxCDIYgF0I0iIR8NwOwOSALIAVBkDlqIgJBBhCDDiAFQZADaiBDQgAgBSkDuDkiHhCVEiAFQeADaiBCQgAgBSkDwDkiHxCVEiAFQbAEaiBBQgAgBSkDyDkiIBCVEiAFQYAFaiBAQgAgBSkD0DkiIRCVEiAFQfAFaiA9IEwgBSkD2DkiIhCVEiAFQeAFaiAFKQPwBSIXQv////////8Hg0IAQpD6gICAAhCVEiAFQaADaiA9IEwgHhCVEiAFQfADaiBDQgAgHxCVEiAFQcAEaiBCQgAgIBCVEiAFQZAFaiBBQgAgIRCVEiAFQYAGaiBAQgAgIhCVEiAFQdAFaiAFKQP4BSIWQgyGIBdCNIiEIBZCNIhCkPqAgIACEJUSIAVBsANqIEBCACAeEJUSIAVBgARqID0gTCAfEJUSIAVB0ARqIENCACAgEJUSIAVBoAVqIEJCACAhEJUSIAVBkAZqIEFCACAiEJUSIAVB0AJqIAUpA9AEIhggBSkDgAR8IicgBSkDoAV8IiggBSkDkAZ8IikgBSkD8AMiFyAFKQOgA3wiKiAFKQPABHwiJiAFKQOQBXwiJCAFKQOABnwiHSAFKQPQBXwiHCAFKQPgAyIWIAUpA5ADfCIaIAUpA7AEfCIbIAUpA4AFfCIZIAUpA+AFfCIlQjSIIBkgJVatIAUpA+gFIBkgG1StIAUpA4gFIBogG1atIAUpA7gEIBYgGlatIAUpA+gDIAUpA5gDfHx8fHx8fHxCDIaEfCIjQjSIIBwgI1atIBwgHVStIAUpA9gFIB0gJFStIAUpA4gGICQgJlStIAUpA5gFICYgKlStIAUpA8gEIBcgKlatIAUpA/gDIAUpA6gDfHx8fHx8fHx8fHxCDIaEfCIWQgSGQvD/////////AIMgI0IwiEIPg4RCAELRh4CAEBCVEiAFQcADaiBBQgAgHhCVEiAFQZAEaiBAQgAgHxCVEiAFQeAEaiA9IEwgIBCVEiAFQbAFaiBDQgAgIRCVEiAFQaAGaiBCQgAgIhCVEiAFQYADaiAFKQOwBSIXIAUpA+AEfCIaIAUpA6AGfCIbIBYgKVStICggKVatIAUpA5gGICcgKFatIAUpA6gFIBggJ1atIAUpA9gEIAUpA4gEfHx8fHx8fEIMhiAWQjSIhHwiGUL/////////B4NCAEKQ+oCAgAIQlRIgBUHQA2ogQkIAIB4QlRIgBUGgBGogQUIAIB8QlRIgBUHwBGogQEIAICAQlRIgBUHABWogPSBMICEQlRIgBUGwBmogQ0IAICIQlRIgBUHwAmogBSkDsAYiFiAFKQPABXwiGCAZIBtUrSAaIBtWrSAFKQOoBiAXIBpWrSAFKQO4BSAFKQPoBHx8fHx8QgyGIBlCNIiEfCIXQv////////8Hg0IAQpD6gICAAhCVEiAFQeACaiAXIBhUrSAWIBhWrSAFKQO4BiAFKQPIBXx8fEIMhiAXQjSIhEIAQpD6gICAAhCVEiAFIAUpA9ACIhcgBSkDsAN8IhhC/////////weDNwPoOCAFIAUpA5AEIhYgBSkDwAN8Ih0gBSkDgAN8IhkgFyAYVq0gBSkD2AIgBSkDuAN8fEIMhiAYQjSIhHwiGEL/////////B4M3A/A4IAUgBSkDoAQiFyAFKQPQA3wiHCAFKQPwBHwiGiAFKQPwAnwiGyAYIBlUrSAZIB1UrSAFKQOIAyAWIB1WrSAFKQOYBCAFKQPIA3x8fHx8QgyGIBhCNIiEfCIZQv////////8HgzcD+DggBSAFKQPgAiIWICVC/////////weDfCIYIBkgG1StIBogG1atIAUpA/gCIBogHFStIAUpA/gEIBcgHFatIAUpA6gEIAUpA9gDfHx8fHx8fEIMhiAZQjSIhHwiF0L/////////B4M3A4A5IAUgI0L///////8/gyAXIBhUrSAFKQPoAiAWIBhWrXx8QgyGIBdCNIiEfDcDiDkgBUHAOGoiBCAFQeg4akECEIMOIAVBgAFqIAUpA9g4IiNCACAFKQPAOCInEJUSIAVBwAFqIAUpA9A4IihCACAFKQPIOCIpEJUSIAVBwAJqIAUpA+A4IipCACAqEJUSIAVBsAJqIAUpA8ACIhZC/////////weDQgBCkPqAgIACEJUSIAVB8AFqIChCACAoEJUSIAVBoAJqIAUpA8gCQgyGIBZCNIiEQgBCkPqAgIACEJUSIAVB8ABqICpCACAnEJUSIAVBsAFqICNCACApEJUSIAVBMGogJ0IAICcQlRIgBUHgAWogI0IAICgQlRIgBUGgAWogKkIAICkQlRIgBSAFKQOgASIaIAUpA+ABfCIkQgGGIhsgBSkDoAIiGCAFKQPwAXwiHCAFKQOwAiIXIAUpA4ABIhYgBSkDwAF8IhlCAYZ8IiVCNIggFyAlVq0gBSkDuAIgFiAZVq0gBSkDiAEgBSkDyAF8fEIBhiAZQj+IhHx8QgyGhHwiGSAFKQNwIhYgBSkDsAF8IhdCAYZ8IiZCNIggGSAmVq0gGSAcVK0gGCAcVq0gBSkDqAIgBSkD+AF8fHwgFiAXVq0gBSkDeCAFKQO4AXx8QgGGIBdCP4iEfHxCDIaEfCIdQgSGQvD/////////AIMgJkIwiEIPg4RCAELRh4CAEBCVEiAFQSBqICdCAYYiGSAnQj+IIhggKRCVEiAFQZACaiAjQgAgIxCVEiAFQdABaiAoQgAgKhCVEiAFQeAAaiAFKQPQASIXQgGGIhYgBSkDkAJ8IhwgGyAdVq0gGiAkVq0gBSkDqAEgBSkD6AF8fEIBhiAkQj+IhHxCDIYgHUI0iIR8IhtC/////////weDQgBCkPqAgIACEJUSIAVBkAFqIClCACApEJUSIAVBgAJqICNCACAqEJUSIAVB0ABqIBsgHFStIBYgHFatIAUpA5gCIAUpA9gBQgGGIBdCP4iEfHx8QgyGIBtCNIiEIhcgBSkDgAIiFkIBhnwiG0L/////////B4NCAEKQ+oCAgAIQlRIgBUEQaiAZIBggKBCVEiAFQUBrIBcgG1atIAUpA4gCQgGGIBZCP4iEfEIMhiAbQjSIhEIAQpD6gICAAhCVEiAFQrzh//+///8fIAUpAwAiFyAFKQMwfCIYQv////////8Hg303A7g5IAVC/P///////x8gBSkDYCIWIAUpAyB8IhkgFyAYVq0gBSkDCCAFKQM4fHxCDIYgGEI0iIR8IhhC/////////weDfTcDwDkgBUL8////////HyAFKQMQIhcgBSkDkAF8IhogBSkDUHwiGyAYIBlUrSAWIBlWrSAFKQNoIAUpAyh8fHxCDIYgGEI0iIR8IhlC/////////weDfTcDyDkgBUL8////////HyAFKQNAIhYgJUL+////////B4N8IhggGSAbVK0gGiAbVq0gBSkDWCAXIBpWrSAFKQMYIAUpA5gBfHx8fHxCDIYgGUI0iIR8IhdC/////////weDfTcD0DkgBUL8////////ASAmQv///////z+DIBcgGFStIAUpA0ggFiAYVq18fEIMhiAXQjSIhHx9NwPYOSACIAsgAxD7DSACEPoNIQMgB0GgB2oiAiAEQSj8CgAAIAIgAzoAKCAFQeA5aiQAIAdCACAHLQDIByIDrUL/AYN9IhYgBykDwAeDNwPICCAHIAcpA7gHIBaDNwPACCAHIAcpA7AHIBaDNwO4CCAHIAcpA6gHIBaDNwOwCCAHIAcpA6AHIBaDNwOoCCAHQdAIaiICIAdBqAhqEIEOIAcpA9AIIRogBykD2AghGyAHKQPgCCEZIAcpA+gIIRggB0L8////////ASAHKQPwCCIXfSIWIBeFQgAgAhCFDiAIcxCuDhC7Da1C/wGDfSIXgyAWhTcDmAkgByAYQvz///////8fIBh9IhaFIBeDIBaFNwOQCSAHIBlC/P///////x8gGX0iFoUgF4MgFoU3A4gJIAcgG0L8////////HyAbfSIWhSAXgyAWhTcDgAkgByAXIBpCvOH//7///x8gGn0iFoWDIBaFNwP4CCAHQfgHaiAHQfgIahCBDiAHQQA6AKAIIAcgPDcD8AcgByA4NwPoByAHIDo3A+AHIAcgOzcD2AcgByA5NwPQByADIAZxEK4OIQMgCkGwA2oiAiAJQdgA/AoAACACIAM6AFggB0GgCWokACAKLQCIBEEBRwRAIBRCATcDAAwBCyAKQfgBaiICIApBsANqIhNB2AD8CgAAIApBgAFqIgQgAhD5DSMAQTBrIgYkACMAQdAAayIJJAAgCSAKQeDVxAAQhA4gCSAJ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AgALmwcCB38JfiMAQYABayICJAAgACgCBCIGIAAoAggiA0EDdGpBCGshBAJAAkACQANAAkACQCAERSADQQJJckUEQCAEKQMAUA0BCyADIAEoAggiBU0NBAJAIAVFDQAgASgCBCIHIAVBA3RqQQhrIghFDQAgCCkDACEKIANBAkYEQCAAQQE2AgggBikDCCEJIABBAEGQxMQAEJYNIQEgClBFBEAgAiABKQMAIAkgChCUEiACKQMAIQkgAEEAQbDExAAQlg0gCTcDAAwHC0GgxMQAEIESAAsgBUEBRg0EIAp5IglQRQ0CIAEgBUECa0GAxcQAEJYNKQMAIRAgAkEAOgB8IAIgAyAFayIBQQAgASADTRs2AnggAkEANgJ0A0AgAkHgAGogAkH0AGoQpg0CQCACKAJgQQFGBEACQAJAIANFDQAgBiADQQN0akEIayIERQ0AIAIoAmQhASAEKQMAIQsgACADQQJrQaDFxAAQlg0gClANASACQdAAaiALIAwgCkIAEJMSIAJBQGsgAikDUCIJIAIpA1giDSAKEJUSIAwgAikDSH0gCyACKQNAIg5UrX0hDyALIA59IQspAwAhDgNAIAJBMGogCSANIBAQlRICQCANQgBSDQAgAikDMCAOViACKQM4IhEgC1YgCyARURsNAAwFCyANIAlQrX0hDSAJQgF9IQkgDyALIAogC3wiC1atfCIPUA0ACwwDC0GQxcQAEPoRAAtBsMXEABCAEgALIAAgDBCnDQwHCyACQShqIAAgAUHAxcQAEKgNIAIoAiggAigCLCAHIAUgCRCeDSAMVgRAIAJBIGogACABQdDFxAAQqA0gAigCICACKAIkIAcgBRCfDQsgACADQQFrIgM2AgggBiADQQN0aikDACEMDAALAAtBgMTEABD6EQALIAAgA0EBayIDNgIIIARBCGshBAwBCwsgACAGIAMgCaciAxCpDRCnDSACQegAaiIEIAEQnA0gAigCbCACKAJwIAMQqQ0aIAAgBBClDSAEEI8JIAAoAgQgACgCCCADEKINDAELIANBAWshAwNAIANFDQEgA0F/Rg0CIAAgAzYCCCAEKQMAIQkgACADQQFrIgNB0MTEABCWDSEBIApQRQRAIAJBEGogASkDACAJIAoQlBIgAikDECEJIAAgA0HwxMQAEJYNIAk3AwAgBEEIayEEDAELC0HgxMQAEIESAAsgAkGAAWokAA8LQcDExAAQ+hEAC1ABA38CQCABLQAIDQAgASgCACIEIAEoAgQiA0sNACADIARNBEBBASECIAFBAToACAwBCyABIANBAWs2AgRBASECCyAAIAM2AgQgACACNgIAC2sBA38gACgCCCIDIAAoAgBGBEAjAEEQayICJAAgAkEIaiAAIAAoAgBBAUEIQQgQlA0gAigCCCIEQX9HBEAgBCACKAIMENgRAAsgAkEQaiQACyAAIANBAWo2AgggACgCBCADQQN0aiABNwMAC0IBAX8jAEEQayIEJAAgBEEIaiACIAEoAgQgASgCCCADEKoNIAQoAgwhASAAIAQoAgg2AgAgACABNgIEIARBEGokAAtRAQN+IAFBA3QhASACQT9xrSEEQQAgAmtBP3GtIQUDQCABBEAgACADIAApAwAiAyAEhoQ3AwAgAUEIayEBIABBCGohACADIAWIIQMMAQsLIAMLEQAgACABIAIgAyAEQQMQrhILmwcCEn8EfiMAQdAAayIGJABBASAFQQJrIgcgB0EBTRshDSACKAIEIgpBCGohDiAEIAVBA2siD0EDdGohECAEIAVBA3RqIhFBCGshCyAEIAdBA3RqIQggAigCCCEJIAEoAgQhEiAAKAIEIRMgASgCCCEUIAAoAgghFUEAIQACQAJAA0ACQCAAIAdHBEAgAEEBaiEWIBIgAEEDdGohDEIAIRpBACECQRAhASAAIBRPIQADQCACIAdGDQIgAiAFRg0FQgAhGEIAIRkgAiAVSQRAIAEgE2pBEGspAwAhGQsgASAEakEQayIXKQMAIRsgBkEwaiAABH5CAAUgDCkDAAtCACAZEJUSIBcgGiAbfCIYIAYpAzB8Ihk3AwAgGCAZVq0gBikDOCAYIBtUrXx8IRogAkEBaiECIAFBCGohAQwACwALIAtCADcDACAGQQA6AEggBiAHNgJEIAZBADYCQAJAAkADQCAGQQhqIAZBQGsQpg0gBigCCEEBRw0BIAUgBigCDCIASwRAIAQgAEEDdCIBaikDACIDQfjBxAAgASAKaiAAIAlPGykDACIYViADIBhUa0H/AXEOAgECAwsLIAAgBUGAzMQAEOgRAAsgBiAHNgJMQQAhASAGQQA2AkggBiARNgJEIAYgBDYCQANAIAYgBkFAaxCgDSAGKAIEIgAEQEIAIQMgCSAGKAIAIgJLBEAgCiACQQN0aikDACEDCyAAIAApAwAiGCADfSIZIAGtQgGDIhp9NwMAIBkgGlQgAyAYVnIhAQwBCwsgCCAIKQMAIAGtQgGDfTcDAAsgBkHQAGokAA8LIAggCCkDACIYIBp8Ihk3AwAgCyAYIBlWrTcDACAEKQMAIhkgA34hGiAGQSBqIAkEfiAKKQMABUIAC0IAIBoQlRIgBikDKCAGKQMgIhggGXwgGFStfCEZQQEhAiAOIQAgBCEBA0AgAiANRwRAIAIgBUYNAyABQQhqIgwpAwAhG0IAIRggBkEQaiACIAlJBH4gACkDAAVCAAtCACAaEJUSIAEgGSAbfCIYIAYpAxB8Ihk3AwAgGCAZVq0gBikDGCAYIBtUrXx8IRkgAkEBaiECIABBCGohACAMIQEMAQsLIAVBA08EQCAQIAgpAwAiGCAZfCIZNwMAIAggCykDACAYIBlWrXw3AwAgFiEADAELCyAPQQJBkMzEABDoEQALIAUgBUGgzMQAEOgRAAsgBSAFQbDMxAAQ6BEACygAIAFBA3QhAQNAIAEEQCAAQgA3AwAgAUEIayEBIABBCGohAAwBCwsLQgECfyMAQRBrIgMkACADQQRqIAAgASACEK4NAkAgAygCCCIARQ0AIAMoAgwiAUUNACADKAIEIAEQVAsgA0EQaiQAC0ABA39BBCEFAkAgA0UNACABKAIAIgZFDQAgACACNgIEIAAgASgCBDYCACADIAZsIQRBCCEFCyAAIAVqIAQ2AgALwAQCAn8FfiMAQaABayIFJAAgBUHYAGoiBiADELAOIAUgBSkDWDcDACAFLQBgIQMgBiAEELAOIAUgBSkDWDcDCCAFLQBgIQQgBiABIAUQsA0gBSAFKQNwNwMoIAUgBSkDaDcDICAFIAUpA2A3AxggBSAFKQNYNwMQIAUpA3ghCiABLQAgIQEgBiACIAVBCGoQsA0gBSAFKQNwNwNIIAUgBSkDaDcDQCAFIAUpA2A3AzggBSAFKQNYNwMwIAUgBSkDeDcDUCAFQTBqIAVB0ABqIAQgAi0AIHMiAiABIANzIgNzIgRBAXMQsQ0gBUIANwOYASAFQgA3A5ABIAVCADcDiAEgBUIANwOAAUEAIQEDQCABQSBGRQRAIAVBgAFqIAFqIAVBEGogAWopAwAiCSAHQj+IIgd9IgggBUEwaiABaikDACILfTcDAEIAIAggC1QgByAJVnKtfSEHIAFBCGohAQwBCwsgBSAFKQOYATcDKCAFIAUpA5ABNwMgIAUgBSkDiAE3AxggBSAFKQOAATcDECAFKQNQIQlCACEIQQEhAQNAIAFBAXEEQEIAIAogB0I/iCIHVCAKIAd9IgggCVRyrX0hByAIIAl9IQhBACEBDAELCyAFIAg3A1ggBUEQaiAFQdgAakEAIARBAXEgB1AbIgEQsQ0gACAFKQMQNwMAIAAgBSkDGDcDCCAAIAUpAyA3AxAgACAFKQMoNwMYIAAgBSkDWDcDICAAIAFBAXMgA3EgASACcXI6ACggBUGgAWokAAsQACAAIAEgAkG4zcQAEK8SC+QCAgR/BX4jAEHQAGsiAyQAIANBKGohBSMAQSBrIgRCADcDGCAEQgA3AxAgBEIANwMIIARCADcDAEIBIQcDQCAGQSBGBEAgBSAEKQMYNwMYIAUgBCkDEDcDECAFIAQpAwg3AwggBSAEKQMANwMAIAUgBzwAIAUgBCAGaiAHIAAgBmopAwBCf4V8Igg3AwAgBkEIaiEGIAcgCFatIQcMAQsLIAMgAykDQDcDICADIAMpAzg3AxggAyADKQMwNwMQIAMgAykDKDcDCCABKQMAIgdCf4UiCSADMQBIQgGDfCIIIAlUrSEKQgAhCUEBIQQDQCAEBEAgCiAIIAt8IgkgCFStfCELQQAhBAwBCwsgA0EoaiAAIANBCGogAhC3DSAAIAMpA0A3AxggACADKQM4NwMQIAAgAykDMDcDCCAAIAMpAyg3AwAgAUIAIAKtQv8Bg30gByAJhYMgB4U3AwAgA0HQAGokAAudAQEBfyMAQeAAayIGJAAgBkEwaiABIAIgAyAEEK8NIAYgBikDSDcDICAGIAYpA0A3AxggBiAGKQM4NwMQIAYgBikDMDcDCCAGIAYpA1A3AyggBi0AWCEBIAZBCGogBkEoaiAFELMNIAAgAToAICAAIAYpAyA3AxggACAGKQMYNwMQIAAgBikDEDcDCCAAIAYpAwg3AwAgBkHgAGokAAv9BgIHfwV+IwBB4ABrIgMkAAJAAkACQAJAAkACQAJAQcAAIAJrIglBP00EQCADQgA3AyAgA0FAayIHIANBIGpBAUEAQeDPxAAQwg0gAygCSCEEIAMoAkwhBSAHIAFBAUEBQfDPxAAQwg0gBSADKAJERw0EIAMoAkAhBiAFIQcgBCEIA0AgBwRAIAggBikDADcDACAHQQFrIQcgCEEIaiEIIAZBCGohBgwBCwsgAkHAAEYNAiACrSELIAmtIQwDQCAFRQ0CIAQgCiAEKQMAIgogDIaENwMAIAVBAWshBSAEQQhqIQQgCiALiCEKDAALAAtB4c7EAEEbQZjNxAAQ+xEACyACQT9LDQAgAykDICENIANCADcDQCADQRhqIANBQGtBAUEBELUNIAMoAhghCCADKAIcIQYgA0EQaiABQQFBAEGg0MQAELYNIAYgAygCFEcNAyADKAIQIQUgBiEEIAghBwNAIAQEQCAHIAUpAwA3AwAgBEEBayEEIAdBCGohByAFQQhqIQUMAQsLIAJFDQEgBkEDdCAIakEIayEEQgAhCgNAIAZFDQIgBCAKIAQpAwAiCiALiIQ3AwAgBEEIayEEIAZBAWshBiAKIAyGIQoMAAsAC0HhzsQAQRtB/M7EABD7EQALIAEgAykDQDcDACADQgA3A1ggA0IANwNQIANCADcDSCADQgA3A0AgA0EIaiADQUBrQQRBBBC1DSADKAIIIQEgAygCDCEGIAMgAEEEQQBBoNDEABC2DSAGIAMoAgRHDQIgAygCACEFIAYhBCABIQcDQCAEBEAgByAFKQMANwMAIARBAWshBCAHQQhqIQcgBUEIaiEFDAELCyACRQRAQQQhBQwEC0EDIQUgBkEDdCABakEIayEEQgAhCgNAIAZFDQQgBCAKIAQpAwAiCiALiIQ3AwAgBEEIayEEIAZBAWshBiAKIAyGIQoMAAsAC0HA0MQAQR9BgNDEABDiEQALQcDQxABBH0Gw0MQAEOIRAAtBwNDEAEEfQbDQxAAQ4hEACyADIAMpA1giDjcDOCADIAMpA1AiCzcDMCADIAMpA0giDDcDKCADIAMpA0AiCjcDICAAIA43AxggACALNwMQIAAgDDcDCCAAIAo3AwAgAgRAIAAgBUEDdGoiACAAKQMAIA2ENwMAIANB4ABqJAAPCyAFQQRBqM3EABDoEQALxAgCA38GfiMAQfABayIIJAAgCEHQAGoiCSABIAIgAyAEEK8NIAggCCkDaDcDQCAIIAgpA2A3AzggCCAIKQNYNwMwIAggCCkDUDcDKCAIIAgpA3AiDjcDSCAILQB4IQogCSAIQShqEK8OIAhBEGogBykDAEIAIAgpA1AQlRJBACEDIAgpAxghDyAIKQMQIQsDQCADQQFxRQRAQQEhA0IAIQ1BASEEA0AgBEEBcUUNAiAPIAsgDHwiDCALVK18IAwgDCANfCIMVq18IQ1BACEEDAALAAsLAkACQEHAACAFayIJQT9NBEAgCEIANwNQIAhBCGogCEHQAGpBAUEBELUNIAgoAgghByAIKAIMIQEgCEGAzcQAQQFBAEGg0MQAELYNIAEgCCgCBEcNAiAIKAIAIQMgASEEIAchAgNAIAQEQCACIAMpAwA3AwAgBEEBayEEIAJBCGohAiADQQhqIQMMAQsLIAVBwABGDQEgAUEDdCAHakEIayEEIAWtIQ0gCa0hD0IAIQsDQCABRQ0CIAQgCyAEKQMAIgsgD4iENwMAIARBCGshBCABQQFrIQEgCyANhiELDAALAAtB4c7EAEEbQfzOxAAQ+xEACyAIIAwgCCkDUIM3A4ABIAhB0ABqIAYgCEGAAWoQsA0gCCAIKQNoNwOgASAIIAgpA2A3A5gBIAggCCkDWDcDkAEgCCAIKQNQNwOIASAIQgA3A6gBIAhCADcDsAEgCEIANwO4ASAIQgA3A8ABIAgpA3AhDUEAIQRCACELA0AgBEEgRkUEQCAIQagBaiAEaiAIQShqIARqKQMAIgwgC0I/iCILfSIPIAhBiAFqIARqKQMAIhB9NwMAQgAgDyAQVCALIAxWcq19IQsgBEEIaiEEDAELCyAIIAgpA8ABNwNAIAggCCkDuAE3AzggCCAIKQOwATcDMCAIIAgpA6gBNwMoQgAhDEEBIQQDQCAEQQFxBEBCACAOIAtCP4giC1QgDiALfSIMIA1Ucq19IQsgDCANfSEMQQAhBAwBCwsgCCAMNwNIIAhBKGoiAiAIQcgAaiIDIAtCAFIiARCxDSACIAMgBRCzDSAIQgA3A9ABIAhCADcD2AEgCEIANwPgASAIQgA3A+gBIAggCCkDSDcDyAFBACEEQgAhCwNAIARBIEZFBEAgCEHQAWogBGogCEEoaiAEaikDACIMIAtCP4giC30iDiAEIAZqKQMAIg19NwMAQgAgCyAMViANIA5Wcq19IQsgBEEIaiEEDAELCyAIQdAAaiAIQdABaiAIQShqIAsQsQ4gCEHIAWoQsg5xELcNIAggCCkDaCILNwNAIAggCCkDYCIMNwM4IAggCCkDWCIONwMwIAggCCkDUCINNwMoIAAgCzcDGCAAIAw3AxAgACAONwMIIAAgDTcDACAAIAEgCnM6ACAgCEHwAWokAA8LQcDQxABBH0Gw0MQAEOIRAAsuAQF/IwBBEGsiBCQAIAQgASACIANBkNDEABDCDSAAIAQpAgA3AwAgBEEQaiQACysBAX8jAEEQayIFJAAgBSABIAIgAyAEEMINIAAgBSkCCDcDACAFQRBqJAALlQECAX8CfiMAQSBrIgRCADcDGCAEQgA3AxAgBEIANwMIIARCADcDAEIAIAOtQv8Bg30hBUEAIQMDQCADQSBGBEAgACAEKQMYNwMYIAAgBCkDEDcDECAAIAQpAwg3AwggACAEKQMANwMABSADIARqIAEgA2opAwAiBiACIANqKQMAhSAFgyAGhTcDACADQQhqIQMMAQsLC0cBAX8jAEEgayICJAAgAkIANwMYIAJCADcDECACQgA3AwggAkIANwMAIAAgAiABIAEtACAiARC5DSAAIAE6ACAgAkEgaiQAC20BAX8jAEEgayIEJAAgBCABKQMYNwMYIAQgASkDEDcDECAEIAEpAwg3AwggBCABKQMANwMAIAQgAiADELYOIAAgBCkDGDcDGCAAIAQpAxA3AxAgACAEKQMINwMIIAAgBCkDADcDACAEQSBqJAALjwYCAX8RfiMAQYABayIDJAAgA0FAayABIAIQyA0gAyADKQNYNwMYIAMgAykDUDcDECADIAMpA0g3AwggAyADKQNANwMAIAMgAykDeDcDOCADIAMpA3A3AzAgAyADKQNoNwMoIAMgAykDYDcDICMAQdABayIBJAAgAUEwaiADKQMAIgRCAEL/////DxCVEiABQUBrIARCAEKBgICAcBCVEiABIAQgAykDCCIGfCIFIAEpAzB8IgRCAEKBgICAcBCVEiABQRBqIARCIIYiCCAEIAVUrSABKQM4IAUgBlStfHwiByADKQMQfCIJfCIFQgBCgYCAgHAQlRIgAUEgaiAFQiCGIgsgBSAIVK0gBEIgiHwiCCABKQNAIgogAykDGHwiBiAHIAlWrXwiB3wiCXwiBEIAQoGAgIBwEJUSIANBIGoiAikDCCEMIAEpAwghDSACKQMQIQ4gASkDECEPIAEpAxghECACKQMYIREgASkDICESIAEpAyghEyABIARCIIYiFCAEIAtUrSAFQiCIfCILIAYgB1atIAEpA0ggBiAKVK18fCIHIAIpAwB8IgUgASkDAHwiBiAIIAlWrXwiCHwiCXwiCjcDgAEgASAKIBRUrSAEQiCIfCIKIA8gDCAFIAdUrSIHfCIEIAYgCFatIA0gBSAGVq18fHwiBXwiBiAJIAtUrXwiCHwiCTcDiAEgASASIA4gBCAHVK0gBCAFVq18Igd8IgQgBiAIVq0gECAFIAZWrXx8fCIFfCIGIAkgClStfCIINwOQASABIBEgBCAHVK0gBCAFVq18Igd8IgQgBiAIVq0gEyAFIAZWrXx8fCIFNwOYASABIAQgB1StIAQgBVatfDcDoAEgAUIANwPIASABQoGAgIBwNwPAASABQgA3A7gBIAFC/////w83A7ABIAFCfzcDqAEgAUHYAGogAUGAAWogAUGoAWoQ1Q0gASkDWCEEIAEpA2AhBSABKQNoIQYgACABKQNwNwMYIAAgBjcDECAAIAU3AwggACAENwMAIAFB0AFqJAAgA0GAAWokAAsNACAAQX9zQQFxEK4OC7AEAgV/Cn4jAEGQAWsiBSQAIAVCADcDYCAFQgA3A1ggBUIANwNQIAVCADcDSCADQQhqIQcgAkEIaiEIIAMpAwAhDyACKQMAIRADQCAGQQRHBEAgBUEwaiAQQgAgASAGQQN0aikDACIREJUSIAVBIGogBCAFKQMwIg0gBSkDSHwiCn4iEkIAIA8QlRIgBSkDICILIAp8IAtUIgIgAq0gBSkDKCILIAUpAzggCiANVK18fHwiCiALVCAKIAtRG60hC0EAIQIDQCACQRhGBEAgBSAKIAx8Igw3A2AgCyAKIAxWrXwhDCAGQQFqIQYMAwUgBUEQaiACIAhqKQMAQgAgERCVEiAFIAIgB2opAwBCACASEJUSIAVByABqIAJqIgkgCiAFKQMQIhMgCUEIaikDAHwiCnwiDSAFKQMAfCIONwMAIAogDlYgDSAOVq0gBSkDCCAKIA1WrSALIAUpAxggCiATVK18Igt8fHx8IgogC1QgCiALURutIQsgAkEIaiECDAELAAsACwsgBUIANwNwIAUgDDcDaCAFQgA3A3ggBUIANwOAASAFQgA3A4gBQQAhAkIAIQQDQCACQSBGRQRAIAVB8ABqIAJqIAVByABqIAJqKQMAIgogBEI/iCIEfSIMIAIgA2opAwAiC303AwBCACAEIApWIAsgDFZyrX0hBCACQQhqIQIMAQsLIAAgBUHwAGogBUHIAGogBBCxDiAFQegAahCyDnEQtw0gBUGQAWokAAseACAAIAEgAiADELcNIABBIGogAUEgakHwAPwKAAALKQAgACABIAIgAUEgaiICQgAgASkDgAF9ELwNIABBIGogAkHwAPwKAAALNAIBfwF+A38gAkEgRgR/IANQBSABIAJqKQMAIAAgAmopAwCFIAOEIQMgAkEIaiECDAELCwseACAAIAEgAUEgaiIBEMwNIABBIGogAUHwAPwKAAAL4wwCD38HfiABQSBqIQtCACABKQOAAX0hFiMAQUBqIgYkACMAQYABayICJAAgAkIANwNYIAJCADcDUCACQgA3A0ggAkIANwNAIAJCADcDeCACQgA3A3AgAkIANwNoIAJCADcDYCACQeAAaiEJIAJByABqIgwhA0EBIQcDQCAHQQRGBEACQEIAIRFBACEEA0AgBEEgRgRAQQAhBANAIARBGEYEQCACIBE3A3ggAkFAayEIQQAhBUIAIRJBACEEA0ACQCAEQQRHBEAgASkDACERIARBAk8EQCACQRBqIBFCACAREJUSIAUgCGoiAyASIAIpAxAiE3wiESADKQMAfCIUNwMAIANBCGoiAyADKQMAIhIgESAUVq0gAikDGCARIBNUrXx8fCIRNwMADAILIAIgEUIAIBEQlRIgAkFAayAFaiIDIBIgAikDACITfCIRIAMpAwB8IhQ3AwAgA0EIaiIDIAMpAwAiEiARIBRWrSACKQMIIBEgE1StfHx8IhE3AwAMAQsgBiACKQNYNwMYIAYgAikDUDcDECAGIAIpA0g3AwggBiACKQNANwMAIAYgCSkDADcDICAGIAkpAwg3AyggBiAJKQMQNwMwIAYgCSkDGDcDOCACQYABaiQADAYLIAVBEGohBSABQQhqIQEgBEEBaiEEIBEgElStIRIMAAsABSACQeAAaiAEaiIFIBEgBSkDACISQgGGhDcDACAEQQhqIQQgEkI/iCERDAELAAsABSACQUBrIARqIgUgESAFKQMAIhJCAYaENwMAIARBCGohBCASQj+IIREMAQsACwALBSABIAdBA3RqKQMAIRJBACEEQgAhESABIQUgAyEIIAwhCgNAIAQgB0YEQAJAIAdBAXQhBSAHQQJPBEAgBUEDdCACakFAayARNwMADAELIAJBQGsgBUEDdGogETcDAAsFIAUpAwAhEwJ+IAQgB2pBA00EQCACQTBqIBNCACASEJUSIAogCikDACITIBF8IhEgAikDMHwiFDcDACARIBRWrSACKQM4IBEgE1StfHwMAQsgAkEgaiATQgAgEhCVEiAIIAgpAwAiEyARfCIRIAIpAyB8IhQ3AwAgESAUVq0gAikDKCARIBNUrXx8CyERIAVBCGohBSAIQQhqIQggCkEIaiEKIARBAWohBAwBCwsgA0EIaiEDIAxBCGohDCAHQQFqIQcMAQsLIABCACESQQAhCSMAQaABayICJAAgAiAGKQMYNwNQIAIgBikDEDcDSCACIAYpAwg3A0AgAiAGKQMANwM4IAIgBikDODcDcCACIAYpAzA3A2ggAiAGKQMoNwNgIAIgBikDIDcDWCALQQhqIQwgAkFAayEBIAspAwAhFEF8IQ1BBCEEA0AgCUEERwRAQQEgBCAEQQFNGyIDQQFrIQ4gCyADQQN0aiEPIAJB2ABqIAMgDWpBA3RqIQcgAkEgaiAJQQN0IhAgAkE4amopAwAiESAWfiITQgAgFBCVEiACKQMoIBEgAikDICIVfCAVVK18IREgDCEFIAEhCANAIA4EQCACQRBqIAUpAwBCACATEJUSIAggCCkDACIVIBF8IhEgAikDEHwiFzcDACARIBdWrSACKQMYIBEgFVStfHwhESAOQQFrIQ4gBUEIaiEFIAhBCGohCAwBBQNAIANBBE8EQCACQdgAaiAQaiIFIBEgEnwiEiAFKQMAfCITNwMAIBEgElatIBIgE1atfCESIA1BAWohDSABQQhqIQEgBEEBayEEIAlBAWohCQwFCyADIAlqIgVBBGtBA00EQCACIA8pAwBCACATEJUSIAcgBykDACIVIBF8IhEgAikDAHwiFzcDACARIBdWrSACKQMIIBEgFVStfHwhESAPQQhqIQ8gB0EIaiEHIANBAWohAwwBCwsgBUEEa0EEQdjRxAAQ6BEACwALAAsLIAJCADcDgAEgAiASNwN4IAJCADcDiAEgAkIANwOQASACQgA3A5gBQQAhA0IAIREDQCADQSBHBEAgAkGAAWogA2ogAkHYAGogA2opAwAiEiARQj+IIhF9IhMgAyALaikDACIWfTcDAEIAIBMgFlQgESASVnKtfSERIANBCGohAwwB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AwBCACAIIAlUIAYgB1ZyrX0hBiAEQQhqIQQMAQsLQQAhBANAIARBIEcEQCADIARqIgFCACABKQMAIAUbNwMAIARBCGohBAwBCwsgACADKQMYNwMYIAAgAykDEDcDECAAIAMpAwg3AwggACADKQMANwMAIANBIGokAAsLACAAIAEgAhDODQunAgIBfwh+IwBBgAFrIgMkACABKQMIIQUgAikDCCEEIAIpAxghByABKQMYIQogAikDECEGIAEpAxAhCCADIAIpAwAiCSABKQMAfCILNwMwIAMgBCAFfCIFIAkgC1atfCIJNwM4IAMgBiAIfCIIIAQgBVatIAUgCVatfHwiBTcDQCADIAcgCnwiBCAGIAhWrSAFIAhUrXx8IgY3A0ggAyAEIAdUrSAEIAZWrXw3A1AgA0IANwN4IANCgYCAgHA3A3AgA0IANwNoIANC/////w83A2AgA0J/NwNYIANBCGogA0EwaiADQdgAahDVDSADKQMIIQQgAykDECEHIAMpAxghBiAAIAMpAyA3AxggACAGNwMQIAAgBzcDCCAAIAQ3AwAgA0GAAWokAAsOACAAQcDMxAAgARDQDQu9AQIBfwN+IwBBgAFrIgMkACADQgA3A1AgAyABKQMYNwNIIAMgASkDEDcDQCADIAEpAwg3AzggAyABKQMANwMwIANCADcDeCADIAIpAxg3A3AgAyACKQMQNwNoIAMgAikDCDcDYCADIAIpAwA3A1ggA0EIaiADQTBqIANB2ABqENUNIAMpAwghBCADKQMQIQUgAykDGCEGIAAgAykDIDcDGCAAIAY3AxAgACAFNwMIIAAgBDcDACADQYABaiQACwsAIAAgASACENANCzsCAX8BfiMAQRBrIgMkACADIAFBBEEEIAIQwg0gAykCACEEIAAgAykCCDcCCCAAIAQ3AgAgA0EQaiQACyoAIAAgASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIIAAgASkDADcDAAtrAQJ/IwBBIGsiAiQAIAJCADcDGCACQgA3AxAgAkIANwMIIAJCADcDACABIAIQyQ0hAyACQSBqJAAgACADELsNOgAgIAAgASkDGDcDGCAAIAEpAxA3AxAgACABKQMINwMIIAAgASkDADcDAAv1AQEKfiAAQgAgASkDICIDIAEpAxgiBiABKQMQIgQgASkDCCIFIAEpAwAiByACKQMAIghUrSIJVCAFIAl9IgUgAikDCCIJVHKtIgpUIAQgCn0iBCACKQMQIgpUcq0iC1QgBiALfSIGIAIpAxgiC1RyrSIMVCACKQMgIAMgDH1WciIBrSIDfTcDICAAIAcgCH0iByADfSIINwMAIABC/////w9CACABGyIMIAUgCX18IgMgByAIVq18IgU3AwggACADIAxUrSADIAVWrXwiAyAEIAp9fCIENwMQIAAgAyAEVq0gBiALfUKBgICAcEIAIAEbfHw3AxgLCQAgACABEMoNCw0AIAAgASACIAMQuQ0LCwAgACABIAEQzg0LCwAgACABIAEQug0LuxACDn4BfyMAQYABayIRJAAgEUFAayABIAIQyA0gESARKQNYNwMYIBEgESkDUDcDECARIBEpA0g3AwggESARKQNANwMAIBEgESkDeDcDOCARIBEpA3A3AzAgESARKQNoNwMoIBEgESkDYDcDICMAQaAEayIBJAAgAUGQBGogESkDGCIKQgBC/rf+9t6w/5cBEJUSIAFBgARqIApCAEKh2On4rarBjMMAEJUSIAFB8ANqIApCAEL/////bxCVEiABQeADaiAKQgBC/////w8QlRIgAUHQA2ogEUEgaiICKQMAIgZCAEL+t/723rD/lwEQlRIgAUHAA2ogBkIAQqHY6fitqsGMwwAQlRIgAUGwA2ogBkIAQv////9vEJUSIAFBoANqIAZCAEL/////DxCVEiABQeABaiACKQMIIgdCAEL+t/723rD/lwEQlRIgAUHwAWogB0IAQqHY6fitqsGMwwAQlRIgAUGAAmogB0IAQv////9vEJUSIAFBkAJqIAdCAEL/////DxCVEiABQaACaiACKQMQIgVCAEL+t/723rD/lwEQlRIgAUGwAmogBUIAQqHY6fitqsGMwwAQlRIgAUHAAmogBUIAQv////9vEJUSIAFB0AJqIAVCAEL/////DxCVEiABQeACaiACKQMYIghCAEL+t/723rD/lwEQlRIgAUHwAmogCEIAQqHY6fitqsGMwwAQlRIgAUGAA2ogCEIAQv////9vEJUSIAFBkANqIAhCAEL/////DxCVEiABQTBqIAYgCiABKQPoAyABKQP4AyABKQOIBCABKQOYBCIDIAEpA4AEfCIMIANUrXwiBCABKQPwA3wiAyAEVK18IgkgASkD4AN8IgQgCVStfCILfCIJIAtUrSIQfCILIAEpA6gDIAkgCSABKQOgA3wiDVatfCANIAEpA7gDIAQgBCABKQOwA3wiCVatfCAJIAEpA8gDIAMgAyABKQPAA3wiBFatfCAEIAEpA9gDIAxCfoMiAyABKQPQA3wgA1StfHwiDiAEVK18fCIDIAlUrXx8IgQgDVStfHwiCSABKQOQAnwiDSABKQOIAiAEIAQgASkDgAJ8IgxWrXwgDCABKQP4ASADIAMgASkD8AF8IgRWrXwgBCABKQPoASAOQn6DIgMgASkD4AF8IANUrXx8Ig8gBFStfHwiAyAMVK18fCIEIAEpA8ACfCIMIAEpA7gCIAMgAyABKQOwAnwiDlatfCAOIA4gASkDqAIgD0J+gyIDIAEpA6ACfCADVK18fCIDVq18fCIOIAEpA/ACfCIPIAEpA+gCIANCfoMiAyABKQPgAnwgA1StfHwiA0IAQtHKjOOv2PLccxCVEiABQSBqIANCAEKEvd642tW+87x/EJUSIAFBEGogA0IAQn8QlRIgASADQgBCgICAgHAQlRIgAUHwAGogByALIBBUrSAJIAtUrXwiEHwiCyAEIA1UrSABKQOYAiAJIA1WrXx8fCIJIAEpA9ACfCINIAwgDlatIAEpA8gCIAQgDFatfHx8IgQgASkDgAN8IgwgAyAPVK0gASkD+AIgDiAPVq18fHwiB0IAQtHKjOOv2PLccxCVEiABQeAAaiAHQgBChL3euNrVvvO8fxCVEiABQdAAaiAHQgBCfxCVEiABQUBrIAdCAEKAgICAcBCVEiABQaABaiAFIAsgEFStIAkgC1StfCILfCIFIAQgDVStIAEpA9gCIAkgDVatfHx8IgMgASkDkAN8IgkgByAMVK0gASkDiAMgBCAMVq18fHwiB0IAQtHKjOOv2PLccxCVEiABQZABaiAHQgBChL3euNrVvvO8fxCVEiABQYABaiAHQgBCfxCVEiABQcABaiAIIAUgC1StIAMgBVStfCIEfCIFIAcgCVStIAEpA5gDIAMgCVatfHx8IgdCAELRyozjr9jy3HMQlRIgAUGwAWogB0IAQoS93rja1b7zvH8QlRIgAUHQAWogBCAFVq0gBSAHVq18QgBC0cqM46/Y8txzEJUSIAAgESkDACIEIAEpAzAiCX0iByAHQq+185zQp42jDHwiCyAGIAEpA9ABIAEpA7ABIAEpA4ABIAEpA0B8fHwgASkDCCABKQMYIAEpAyggASkDOCIFIAEpAyB8IgYgBVStfCIIIAEpAxB8IgUgCFStfCIDIAEpAwB8IgggA1StfHwgASkDWCAIIAggASkDUHwiA1atfCADIAMgASkDaCAFIAUgASkDYHwiCFatfCAIIAggASkDeCAGIAYgASkDcHwiBVatfHwiBlatfHwiCFatfHwgASkDmAEgCCAIIAEpA5ABfCIDVq18IAMgAyABKQOoASAGIAYgASkDoAF8IghWrXx8IgZWrXx8IAEpA8gBIAYgBiABKQPAAXwiA1atfHx9IAogESkDECIGIBEpAwgiDSAEIAlUrSIEVCANIAR9IgQgBVRyrSIJVCAGIAl9IgYgCFRyrSIJVCAKIAl9IgogA1RyrVEgCiADfSIKIAYgCH0iBiAEIAV9IgUgB0LRyozjr9jy3HNUrSIHVCAFIAd9IgdChL3euNrVvvO8f1RyrSIFVCAGIAV9IgZCf1JyrSIFVCAKIAV9IgVCgICAgHBUcnEiAhsiCDcDACAAIAdChL3euNrVvvO8f0IAIAIbIgN8QvzCocelqsGMwwB8IgogCCALVK18Igc3AwggACAGIAKtIgh9QgF8IgYgAyAKVq0gByAKVK18fCIKNwMQIAAgBUKAgICAcEIAIAIbfCAGQgAgCH1UrSAGIApWrXx8QoCAgIAQfDcDGCABQaAEaiQAIBFBgAFqJAALPwEBfyAAKAIAIQAgASgCCCICQYCAgBBxRQRAIAJBgICAIHFFBEAgACABEPYRDwsgACABEIwSDwsgACABEP8RC/5JAgh/L34jAEGAAWsiBiQAIAZBCGoiAyABQfgA/AoAACMAQbAbayICJAAgAkGoF2ogA0EoaiIHEP8NIAJB0BdqIANB0ABqIggQ/w0gAkHwE2ogAykDQCIfQgAgAykDACIVEJUSIAJBwBRqIAMpAzgiIEIAIAMpAwgiGxCVEiACQZAVaiADKQMwIiFCACADKQMQIhwQlRIgAkHgFWogAykDKCIiQgAgAykDGCIREJUSIAJB0BZqIAMpA0giI0IAIAMpAyAiEBCVEiACQcAWaiACKQPQFiILQv////////8Hg0IAQpD6gICAAhCVEiACQYAUaiAjQgAgFRCVEiACQdAUaiAfQgAgGxCVEiACQaAVaiAgQgAgHBCVEiACQfAVaiAhQgAgERCVEiACQeAWaiAiQgAgEBCVEiACQbAWaiACKQPYFkIMhiALQjSIhEIAQpD6gICAAhCVEiACQZAUaiAiQgAgFRCVEiACQeAUaiAjQgAgGxCVEiACQbAVaiAfQgAgHBCVEiACQYAWaiAgQgAgERCVEiACQfAWaiAhQgAgEBCVEiACQbATaiACKQOAFiIMIAIpA/AWfCIPIAIpA7AVfCIrIAIpA+AUfCIsIAIpA/AVIgogAikD4BZ8Ii0gAikDoBV8IiQgAikD0BR8IiUgAikDgBR8IhYgAikDsBZ8Ih4gAikDkBUiCyACKQPgFXwiEyACKQPAFHwiEiACKQPwE3wiDSACKQPAFnwiHUI0iCANIB1WrSACKQPIFiANIBJUrSACKQP4EyASIBNUrSACKQPIFCALIBNWrSACKQOYFSACKQPoFXx8fHx8fHx8QgyGhHwiDkI0iCAOIB5UrSAWIB5WrSACKQO4FiAWICVUrSACKQOIFCAkICVWrSACKQPYFCAkIC1UrSACKQOoFSAKIC1WrSACKQP4FSACKQPoFnx8fHx8fHx8fHx8QgyGhHwiC0IEhkLw/////////wCDIA5CMIhCD4OEQgBC0YeAgBAQlRIgAkGgFGogIUIAIBUQlRIgAkHwFGogIkIAIBsQlRIgAkHAFWogI0IAIBwQlRIgAkGQFmogH0IAIBEQlRIgAkGAF2ogIEIAIBAQlRIgAkHgE2ogAikDkBYiCiACKQOAF3wiEyACKQPAFXwiEiALICxUrSArICxWrSACKQPoFCAPICtWrSACKQO4FSAMIA9WrSACKQOIFiACKQP4Fnx8fHx8fHxCDIYgC0I0iIR8Ig1C/////////weDQgBCkPqAgIACEJUSIAJBsBRqICBCACAVEJUSIAJBgBVqICFCACAbEJUSIAJB0BVqICJCACAcEJUSIAJBoBZqICNCACAREJUSIAJBkBdqIB9CACAQEJUSIAJB0BNqIAIpA6AWIgsgAikDkBd8IgwgDSASVK0gEiATVK0gAikDyBUgCiATVq0gAikDmBYgAikDiBd8fHx8fEIMhiANQjSIhHwiCkL/////////B4NCAEKQ+oCAgAIQlRIgAkHAE2ogCiAMVK0gCyAMVq0gAikDqBYgAikDmBd8fHxCDIYgCkI0iIRCAEKQ+oCAgAIQlRIgAiACKQOwEyIKIAIpA5AUfCIMQv////////8HgzcDiBsgAiACKQOgFCILIAIpA/AUfCIWIAIpA+ATfCINIAogDFatIAIpA7gTIAIpA5gUfHxCDIYgDEI0iIR8IgxC/////////weDNwOQGyACIAIpA4AVIgogAikD0BV8Ih4gAikDsBR8IhMgAikD0BN8IhIgDCANVK0gDSAWVK0gAikD6BMgCyAWVq0gAikDqBQgAikD+BR8fHx8fEIMhiAMQjSIhHwiDUL/////////B4M3A5gbIAIgAikDwBMiCyAdQv////////8Hg3wiDCANIBJUrSASIBNUrSACKQPYEyATIB5UrSACKQO4FCAKIB5WrSACKQOIFSACKQPYFXx8fHx8fHxCDIYgDUI0iIR8IgpC/////////weDNwOgGyACIA5C////////P4MgCiAMVK0gAikDyBMgCyAMVq18fEIMhiAKQjSIhHw3A6gbIAJB+BdqIAJBiBtqIgQQ/A0gAiACKQPQFyIUQgd+IhI3A6AYIAIgAikD2BciF0IHfiINNwOoGCACIAIpA+AXIhhCB34iDDcDsBggAiACKQPoFyIZQgd+Igo3A7gYIAIgAikD8BciGkIHfiILNwPAGCAEIAJBoBhqEPwNIAIgAikDqBsgC3w3A4AbIAIgAikDoBsgCnw3A/gaIAIgAikDmBsgDHw3A/AaIAIgAikDkBsgDXw3A+gaIAIgAikDiBsgEnw3A+AaIAJByBhqIgEgAkHgGmoiBRD9DSAEIAEQ/A0gAiACKQPoGCIrIAIpA6gbfDcDgBsgAiACKQPgGCIsIAIpA6AbfDcD+BogAiACKQPYGCItIAIpA5gbfDcD8BogAiACKQPQGCIkIAIpA5AbfDcD6BogAiACKQPIGCIlIAIpA4gbfDcD4BogAkHwGGogBRD9DSACQeANaiACKQOoFyImQgAgGRCVEiACQYAPaiACKQOwFyInQgAgGBCVEiACQaAQaiACKQO4FyIoQgAgFxCVEiACQcARaiACKQPAFyIpQgAgFBCVEiACQaATaiACKQPIFyIqQgAgGhCVEiACQZATaiACKQOgEyILQv////////8Hg0IAQpD6gICAAhCVEiACQdANaiAmQgAgGhCVEiACQfAOaiAnQgAgGRCVEiACQZAQaiAoQgAgGBCVEiACQbARaiApQgAgFxCVEiACQfASaiAqQgAgFBCVEiACQYATaiACKQOoE0IMhiALQjSIhEIAQpD6gICAAhCVEiACQYANaiAmQgAgFBCVEiACQeAOaiAnQgAgGhCVEiACQYAQaiAoQgAgGRCVEiACQaARaiApQgAgGBCVEiACQeASaiAqQgAgFxCVEiACQZANaiACKQOAECIMIAIpA+AOfCIbIAIpA6ARfCIRIAIpA+ASfCIQIAIpA/AOIgogAikD0A18Ig4gAikDkBB8Ig8gAikDsBF8Ih0gAikD8BJ8IhYgAikDgBN8Ih4gAikDgA8iCyACKQPgDXwiEyACKQOgEHwiEiACKQPAEXwiDSACKQOQE3wiHEI0iCANIBxWrSACKQOYEyANIBJUrSACKQPIESASIBNUrSACKQOoECALIBNWrSACKQOIDyACKQPoDXx8fHx8fHx8QgyGhHwiFUI0iCAVIB5UrSAWIB5WrSACKQOIEyAWIB1UrSACKQP4EiAPIB1WrSACKQO4ESAOIA9WrSACKQOYECAKIA5WrSACKQP4DiACKQPYDXx8fHx8fHx8fHx8QgyGhHwiC0IEhkLw/////////wCDIBVCMIhCD4OEQgBC0YeAgBAQlRIgAkHwDGogJkIAIBcQlRIgAkHQDmogJ0IAIBQQlRIgAkHwD2ogKEIAIBoQlRIgAkGQEWogKUIAIBkQlRIgAkHQEmogKkIAIBgQlRIgAkHADWogAikDkBEiCiACKQPwD3wiEyACKQPQEnwiEiALIBBUrSAQIBFUrSACKQPoEiARIBtUrSACKQOoESAMIBtWrSACKQOIECACKQPoDnx8fHx8fHxCDIYgC0I0iIR8Ig1C/////////weDQgBCkPqAgIACEJUSIAJB4AxqICZCACAYEJUSIAJBwA5qICdCACAXEJUSIAJB4A9qIChCACAUEJUSIAJBgBFqIClCACAaEJUSIAJBwBJqICpCACAZEJUSIAJBsA1qIAIpA8ASIgsgAikDgBF8IgwgDSASVK0gEiATVK0gAikD2BIgCiATVq0gAikDmBEgAikD+A98fHx8fEIMhiANQjSIhHwiCkL/////////B4NCAEKQ+oCAgAIQlRIgAkGgDWogCiAMVK0gCyAMVq0gAikDyBIgAikDiBF8fHxCDIYgCkI0iIRCAEKQ+oCAgAIQlRIgAikDkBkhHiACKQPwGCETIAIpA/gYIRIgAikDgBkhDSACKQOIGSEMIAIgAikDkA0iCiACKQOADXwiFkL/////////B4M3A5gZIAIgAikD0A4iCyACKQPwDHwiESACKQPADXwiHSAKIBZWrSACKQOYDSACKQOIDXx8QgyGIBZCNIiEfCIWQv////////8HgzcDoBkgAiACKQPADiIKIAIpA+AMfCIQIAIpA+APfCIOIAIpA7ANfCIPIBYgHVStIBEgHVatIAIpA8gNIAsgEVatIAIpA9gOIAIpA/gMfHx8fHxCDIYgFkI0iIR8Ih1C/////////weDNwOoGSACIAIpA6ANIgsgHEL/////////B4N8IhYgDyAdVq0gDiAPVq0gAikDuA0gDiAQVK0gAikD6A8gCiAQVq0gAikDyA4gAikD6Ax8fHx8fHx8QgyGIB1CNIiEfCIKQv////////8HgzcDsBkgAiAVQv///////z+DIAogFlStIAIpA6gNIAsgFlatfHxCDIYgCkI0iIR8NwO4GSAEIAJBmBlqEPwNIAUgBBD8DSACQcAZaiIBIAUQ/A0gBCABEPwNIAIgAikD4BkgAikDqBt8NwOAGyACIAIpA9gZIAIpA6AbfDcD+BogAiACKQPQGSACKQOYG3w3A/AaIAIgAikDyBkgAikDkBt8NwPoGiACIAIpA8AZIAIpA4gbfDcD4BogBCAFEP0NIAJB8ARqIAIpA/gXIhRCACApIAx9Qvz///////8ffCIuEJUSIAJBwAVqIAIpA4AYIhdCACAoIA19Qvz///////8ffCIvEJUSIAJBkAZqIAIpA4gYIhhCACAnIBJ9Qvz///////8ffCIwEJUSIAJB4AZqIAIpA5AYIhlCACAmIBN9Qrzh//+///8ffCIxEJUSIAJB0AdqIAIpA5gYIhpCACAqIB59Qvz///////8BfCIyEJUSIAJBwAdqIAIpA9AHIgtC/////////weDQgBCkPqAgIACEJUSIAJB4ARqIBRCACAyEJUSIAJBsAVqIBdCACAuEJUSIAJBgAZqIBhCACAvEJUSIAJB0AZqIBlCACAwEJUSIAJBoAdqIBpCACAxEJUSIAJBsAdqIAIpA9gHQgyGIAtCNIiEQgBCkPqAgIACEJUSIAJBoARqIBRCACAxEJUSIAJBoAVqIBdCACAyEJUSIAJB8AVqIBhCACAuEJUSIAJBwAZqIBlCACAvEJUSIAJBkAdqIBpCACAwEJUSIAJB8ANqIAIpA/AFIgwgAikDoAV8IhsgAikDwAZ8IhEgAikDkAd8IhAgAikDsAUiCiACKQPgBHwiDiACKQOABnwiDyACKQPQBnwiHSACKQOgB3wiFiACKQOwB3wiHiACKQPABSILIAIpA/AEfCITIAIpA5AGfCISIAIpA+AGfCINIAIpA8AHfCIcQjSIIA0gHFatIAIpA8gHIA0gElStIAIpA+gGIBIgE1StIAIpA5gGIAsgE1atIAIpA8gFIAIpA/gEfHx8fHx8fHxCDIaEfCIVQjSIIBUgHlStIBYgHlatIAIpA7gHIBYgHVStIAIpA6gHIA8gHVatIAIpA9gGIA4gD1atIAIpA4gGIAogDlatIAIpA7gFIAIpA+gEfHx8fHx8fHx8fHxCDIaEfCILQgSGQvD/////////AIMgFUIwiEIPg4RCAELRh4CAEBCVEiACQZAEaiAUQgAgMBCVEiACQZAFaiAXQgAgMRCVEiACQeAFaiAYQgAgMhCVEiACQbAGaiAZQgAgLhCVEiACQYAHaiAaQgAgLxCVEiACQdAEaiACKQOwBiIKIAIpA+AFfCITIAIpA4AHfCISIAsgEFStIBAgEVStIAIpA5gHIBEgG1StIAIpA8gGIAwgG1atIAIpA/gFIAIpA6gFfHx8fHx8fEIMhiALQjSIhHwiDUL/////////B4NCAEKQ+oCAgAIQlRIgAkGABGogFEIAIC8QlRIgAkGABWogF0IAIDAQlRIgAkHQBWogGEIAIDEQlRIgAkGgBmogGUIAIDIQlRIgAkHwBmogGkIAIC4QlRIgAkHABGogAikD8AYiCyACKQOgBnwiDCANIBJUrSASIBNUrSACKQOIByAKIBNWrSACKQO4BiACKQPoBXx8fHx8QgyGIA1CNIiEfCIKQv////////8Hg0IAQpD6gICAAhCVEiACQbAEaiAKIAxUrSALIAxWrSACKQP4BiACKQOoBnx8fEIMhiAKQjSIhEIAQpD6gICAAhCVEiACKQOIGyEdIAIpA5AbIRYgAikDmBshHiACKQOgGyETIAIpA6gbIRIgAyACKQPwAyIKIAIpA6AEfCIMQv////////8HgzcDACADIAIpA5AFIgsgAikDkAR8IhEgAikD0AR8Ig0gCiAMVq0gAikD+AMgAikDqAR8fEIMhiAMQjSIhHwiDEL/////////B4M3AwggAyACKQOABSIKIAIpA4AEfCIQIAIpA9AFfCIOIAIpA8AEfCIPIAwgDVStIA0gEVStIAIpA9gEIAsgEVatIAIpA5gFIAIpA5gEfHx8fHxCDIYgDEI0iIR8Ig1C/////////weDNwMQIAMgAikDsAQiCyAcQv////////8Hg3wiDCANIA9UrSAOIA9WrSACKQPIBCAOIBBUrSACKQPYBSAKIBBWrSACKQOIBSACKQOIBHx8fHx8fHxCDIYgDUI0iIR8IgpC/////////weDNwMYIAMgFUL///////8/gyAKIAxUrSACKQO4BCALIAxWrXx8QgyGIApCNIiEfDcDICACQdAMaiAmQgAgHxCVEiACQbAOaiAnQgAgIBCVEiACQdAPaiAoQgAgIRCVEiACQfAQaiApQgAgIhCVEiACQbASaiAqQgAgIxCVEiACQaASaiACKQOwEiILQv////////8Hg0IAQpD6gICAAhCVEiACQcAMaiAmQgAgIxCVEiACQaAOaiAnQgAgHxCVEiACQcAPaiAoQgAgIBCVEiACQeAQaiApQgAgIRCVEiACQYASaiAqQgAgIhCVEiACQZASaiACKQO4EkIMhiALQjSIhEIAQpD6gICAAhCVEiACQfALaiAmQgAgIhCVEiACQZAOaiAnQgAgIxCVEiACQbAPaiAoQgAgHxCVEiACQdAQaiApQgAgIBCVEiACQfARaiAqQgAgIRCVEiACQYAMaiACKQOwDyIMIAIpA5AOfCIXIAIpA9AQfCIYIAIpA/ARfCIZIAIpA6AOIgogAikDwAx8IhogAikDwA98IhUgAikD4BB8IhsgAikDgBJ8IhEgAikDkBJ8IhAgAikDsA4iCyACKQPQDHwiDiACKQPQD3wiDyACKQPwEHwiDSACKQOgEnwiHEI0iCANIBxWrSACKQOoEiANIA9UrSACKQP4ECAOIA9WrSACKQPYDyALIA5WrSACKQO4DiACKQPYDHx8fHx8fHx8QgyGhHwiFEI0iCAQIBRWrSAQIBFUrSACKQOYEiARIBtUrSACKQOIEiAVIBtWrSACKQPoECAVIBpUrSACKQPIDyAKIBpWrSACKQOoDiACKQPIDHx8fHx8fHx8fHx8QgyGhHwiC0IEhkLw/////////wCDIBRCMIhCD4OEQgBC0YeAgBAQlRIgAkHgC2ogJkIAICEQlRIgAkGADmogJ0IAICIQlRIgAkGgD2ogKEIAICMQlRIgAkHAEGogKUIAIB8QlRIgAkHgEWogKkIAICAQlRIgAkGwDGogAikDwBAiCiACKQOgD3wiDiACKQPgEXwiDyALIBlUrSAYIBlWrSACKQP4ESAXIBhWrSACKQPYECAMIBdWrSACKQO4DyACKQOYDnx8fHx8fHxCDIYgC0I0iIR8Ig1C/////////weDQgBCkPqAgIACEJUSIAJB0AtqICZCACAgEJUSIAJB8A1qICdCACAhEJUSIAJBkA9qIChCACAiEJUSIAJBsBBqIClCACAjEJUSIAJB0BFqICpCACAfEJUSIAJBoAxqIAIpA9ARIgsgAikDsBB8IgwgDSAPVK0gDiAPVq0gAikD6BEgCiAOVq0gAikDyBAgAikDqA98fHx8fEIMhiANQjSIhHwiCkL/////////B4NCAEKQ+oCAgAIQlRIgAkGQDGogCiAMVK0gCyAMVq0gAikD2BEgAikDuBB8fHxCDIYgCkI0iIRCAEKQ+oCAgAIQlRIgAkGwAmogAikDgAwiCiACKQPwC3wiDEL/////////B4MiNEIAIAMpA2giNRCVEiACQeABaiACKQOADiILIAIpA+ALfCIRIAIpA7AMfCINIAogDFatIAIpA4gMIAIpA/gLfHxCDIYgDEI0iIR8IgxC/////////weDIjZCACADKQNgIjcQlRIgAkGQAWogAikD8A0iCiACKQPQC3wiECACKQOQD3wiDiACKQOgDHwiDyAMIA1UrSANIBFUrSACKQO4DCALIBFWrSACKQOIDiACKQPoC3x8fHx8QgyGIAxCNIiEfCIMQv////////8HgyI4QgAgAykDWCIfEJUSIAJBQGsgAikDkAwiCyAcQv////////8Hg3wiDSAMIA9UrSAOIA9WrSACKQOoDCAOIBBUrSACKQOYDyAKIBBWrSACKQP4DSACKQPYC3x8fHx8fHxCDIYgDEI0iIR8IgxC/////////weDIiBCACADKQNQIiEQlRIgAkGgA2ogDCANVK0gAikDmAwgCyANVq18fCIKQgyGIAxCNIiEIgsgFEL///////8/g3wiMyALIDNWrSAKQjSIfCIiIAMpA3AiIxCVEiACQZADaiACKQOgAyIKQv////////8Hg0IAQpD6gICAAhCVEiACQbADaiA0QgAgIxCVEiACQcACaiA2QgAgNRCVEiACQfABaiA4QgAgNxCVEiACQaABaiAgQgAgHxCVEiACQdAAaiAzICIgIRCVEiACQYADaiACKQOoAyILQgyGIApCNIiEIAtCNIhCkPqAgIACEJUSIAJB4ABqIDRCACAhEJUSIAJBwANqIDZCACAjEJUSIAJB0AJqIDhCACA1EJUSIAJBgAJqICBCACA3EJUSIAJBsAFqIDMgIiAfEJUSIAIgAikDgAIiDCACKQOwAXwiFyACKQPQAnwiGCACKQPAA3wiGSACKQOgASIKIAIpA1B8IhogAikD8AF8IhUgAikDwAJ8IhsgAikDsAN8IhEgAikDgAN8IhAgAikDkAEiCyACKQNAfCIOIAIpA+ABfCIPIAIpA7ACfCINIAIpA5ADfCIcQjSIIA0gHFatIAIpA5gDIA0gD1StIAIpA7gCIA4gD1atIAIpA+gBIAsgDlatIAIpA5gBIAIpA0h8fHx8fHx8fEIMhoR8IhRCNIggECAUVq0gECARVK0gAikDiAMgESAbVK0gAikDuAMgFSAbVq0gAikDyAIgFSAaVK0gAikD+AEgCiAaVq0gAikDqAEgAikDWHx8fHx8fHx8fHx8QgyGhHwiC0IEhkLw/////////wCDIBRCMIhCD4OEQgBC0YeAgBAQlRIgAkHAAWogNEIAIB8QlRIgAkHwAGogNkIAICEQlRIgAkHQA2ogOEIAICMQlRIgAkHgAmogIEIAIDUQlRIgAkGQAmogMyAiIDcQlRIgAkEwaiACKQPgAiIKIAIpA5ACfCIOIAIpA9ADfCIPIAsgGVStIBggGVatIAIpA8gDIBcgGFatIAIpA9gCIAwgF1atIAIpA4gCIAIpA7gBfHx8fHx8fEIMhiALQjSIhHwiDUL/////////B4NCAEKQ+oCAgAIQlRIgAkGgAmogNEIAIDcQlRIgAkHQAWogNkIAIB8QlRIgAkGAAWogOEIAICEQlRIgAkHgA2ogIEIAICMQlRIgAkHwAmogMyAiIDUQlRIgAkEgaiACKQPgAyILIAIpA/ACfCIMIA0gD1StIA4gD1atIAIpA9gDIAogDlatIAIpA+gCIAIpA5gCfHx8fHxCDIYgDUI0iIR8IgpC/////////weDQgBCkPqAgIACEJUSIAJBEGogCiAMVK0gCyAMVq0gAikD6AMgAikD+AJ8fHxCDIYgCkI0iIRCAEKQ+oCAgAIQlRIgAiACKQMAIgogAikDYHwiDEL/////////B4M3A4gbIAIgAikDwAEiCyACKQNwfCIRIAIpAzB8Ig0gCiAMVq0gAikDCCACKQNofHxCDIYgDEI0iIR8IgxC/////////weDNwOQGyACIAIpA9ABIgogAikDgAF8IhAgAikDoAJ8Ig4gAikDIHwiDyAMIA1UrSANIBFUrSACKQM4IAsgEVatIAIpA8gBIAIpA3h8fHx8fEIMhiAMQjSIhHwiDUL/////////B4M3A5gbIAIgAikDECILIBxC/////////weDfCIMIA0gD1StIA4gD1atIAIpAyggDiAQVK0gAikDqAIgCiAQVq0gAikD2AEgAikDiAF8fHx8fHx8QgyGIA1CNIiEfCIKQv////////8HgzcDoBsgAiAUQv///////z+DIAogDFStIAIpAxggCyAMVq18fEIMhiAKQjSIhHw3A6gbIAUgBBD8DSACQbgaaiIBIAUQ/A0gAkGQGmoiCSABEPwNIAJB6BlqIgEgCRD9DSAIIAFBKPwKAAAgAkHgCGogKSAsfCIUQgAgMRCVEiACQbAJaiAoIC18IhdCACAwEJUSIAJBgApqIC9CACAkICd8IhgQlRIgAkHQCmogLkIAICUgJnwiGRCVEiACQcALaiAyQgAgKiArfCIaEJUSIAJBsAtqIAIpA8ALIgtC/////////weDQgBCkPqAgIACEJUSIAJB0AhqIBpCACAxEJUSIAJBoAlqIBRCACAwEJUSIAJB8AlqIC9CACAXEJUSIAJBwApqIC5CACAYEJUSIAJBkAtqIDJCACAZEJUSIAJBoAtqIAIpA8gLQgyGIAtCNIiEQgBCkPqAgIACEJUSIAJBgAhqIDFCACAZEJUSIAJBkAlqIBpCACAwEJUSIAJB4AlqIBRCACAvEJUSIAJBsApqIC5CACAXEJUSIAJBgAtqIDJCACAYEJUSIAJBkAhqIAIpA7AKIgwgAikD4Al8IhsgAikDkAl8IhwgAikDgAt8IhEgAikDoAkiCiACKQPwCXwiECACKQPACnwiDiACKQPQCHwiDyACKQOQC3wiKyACKQOgC3wiLCACKQOACiILIAIpA7AJfCIkIAIpA+AIfCIlIAIpA9AKfCINIAIpA7ALfCItQjSIIA0gLVatIAIpA7gLIA0gJVStIAIpA9gKICQgJVatIAIpA+gIIAsgJFatIAIpA4gKIAIpA7gJfHx8fHx8fHxCDIaEfCIVQjSIIBUgLFStICsgLFatIAIpA6gLIA8gK1atIAIpA5gLIA4gD1atIAIpA9gIIA4gEFStIAIpA8gKIAogEFatIAIpA6gJIAIpA/gJfHx8fHx8fHx8fHxCDIaEfCILQgSGQvD/////////AIMgFUIwiEIPg4RCAELRh4CAEBCVEiACQfAHaiAYQgAgMRCVEiACQYAJaiAwQgAgGRCVEiACQdAJaiAaQgAgLxCVEiACQaAKaiAuQgAgFBCVEiACQfAKaiAyQgAgFxCVEiACQcAIaiACKQPQCSIKIAIpA6AKfCIkIAIpA/AKfCIlIAsgEVStIBEgHFStIAIpA4gLIBsgHFatIAIpA5gJIAwgG1atIAIpA7gKIAIpA+gJfHx8fHx8fEIMhiALQjSIhHwiDUL/////////B4NCAEKQ+oCAgAIQlRIgAkHgB2ogF0IAIDEQlRIgAkHwCGogMEIAIBgQlRIgAkHACWogL0IAIBkQlRIgAkGQCmogGkIAIC4QlRIgAkHgCmogMkIAIBQQlRIgAkGwCGogAikD4AoiCyACKQOQCnwiDCANICVUrSAkICVWrSACKQP4CiAKICRWrSACKQPYCSACKQOoCnx8fHx8QgyGIA1CNIiEfCIKQv////////8Hg0IAQpD6gICAAhCVEiACQaAIaiAKIAxUrSALIAxWrSACKQPoCiACKQOYCnx8fEIMhiAKQjSIhEIAQpD6gICAAhCVEiACIBVC////////P4MgAikDoAgiDSAtQv////////8Hg3wiECACKQPgByIMIAIpA/AIfCIOIAIpA8AJfCIPIAIpA7AIfCIrIAIpA4AJIgogAikD8Ad8IiwgAikDwAh8Ii0gAikDkAgiCyACKQOACHwiJEI0iCALICRWrSACKQOYCCACKQOICHx8QgyGhHwiJUI0iCAlIC1UrSAsIC1WrSACKQPICCAKICxWrSACKQOICSACKQP4B3x8fHx8QgyGhHwiCkI0iCAKICtUrSAPICtWrSACKQO4CCAOIA9WrSACKQPICSAMIA5WrSACKQPoByACKQP4CHx8fHx8fHxCDIaEfCILQjSIIAsgEFStIAIpA6gIIA0gEFatfHxCDIaEfCASQgd+fDcDqBsgAiATQgd+IAtC/////////weDfDcDoBsgAiAeQgd+IApC/////////weDfDcDmBsgAiAWQgd+ICVC/////////weDfDcDkBsgAiAdQgd+ICRC/////////weDfDcDiBsgBSAEEP0NIAcgBUEo/AoAACACQbAbaiQAIAAgA0H4APwKAAAgBkGAAWokAAu3kAECBn9AfiMAQdAxayICJAAgAkGwI2ogASkDGCIJQgAgACkDACILEJUSIAJBgCRqIAEpAxAiCEIAIAApAwgiDxCVEiACQdAkaiABKQMIIgpCACAAKQMQIhMQlRIgAkGgJWogASkDACIMQgAgACkDGCISEJUSIAJBkCZqIAEpAyAiDkIAIAApAyAiFRCVEiACQYAmaiACKQOQJiIXQv////////8Hg0IAQpD6gICAAhCVEiACQcAjaiAOQgAgCxCVEiACQZAkaiAJQgAgDxCVEiACQeAkaiAIQgAgExCVEiACQbAlaiAKQgAgEhCVEiACQaAmaiAMQgAgFRCVEiACQfAlaiACKQOYJkIMhiAXQjSIhEIAQpD6gICAAhCVEiACQdAjaiAMQgAgCxCVEiACQaAkaiAOQgAgDxCVEiACQfAkaiAJQgAgExCVEiACQcAlaiAIQgAgEhCVEiACQbAmaiAKQgAgFRCVEiACQfAiaiACKQPAJSIcIAIpA7AmfCIQIAIpA/AkfCIWIAIpA6AkfCIaIAIpA7AlIjUgAikDoCZ8IhsgAikD4CR8IhEgAikDkCR8Ig0gAikDwCN8IhQgAikD8CV8IhggAikD0CQiHiACKQOgJXwiFyACKQOAJHwiGSACKQOwI3wiISACKQOAJnwiJUI0iCAhICVWrSACKQOIJiAZICFWrSACKQO4IyAXIBlWrSACKQOIJCAXIB5UrSACKQPYJCACKQOoJXx8fHx8fHx8QgyGhHwiF0I0iCAXIBhUrSAUIBhWrSACKQP4JSANIBRWrSACKQPIIyANIBFUrSACKQOYJCARIBtUrSACKQPoJCAbIDVUrSACKQO4JSACKQOoJnx8fHx8fHx8fHx8QgyGhHwiG0IEhkLw/////////wCDIBdCMIhCD4OEQgBC0YeAgBAQlRIg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oBt8IgkgFCAiVK0gHiAiVq0gAikD2BkgHiAnVK0gAikDqBogAikDmBt8fHx8fEIMhiAUQjSIhHwiC0L/////////B4NCAEKQ+oCAgAIQlRIgAkHQF2ogCSALVq0gCCAJVq0gAikDuBogAikDqBt8fHxCDIYgC0I0iIRCAEKQ+oCAgAIQlRIgAiAWQv///////z+DIAIpA5ArIg4gNEL/////////B4N8IgkgAikD4CsiFSACKQOwLHwiCyACKQPgKnwiCCACKQOgK3wiDyACKQPwKiIWIAIpA/ArfCIKIAIpA7ArfCITIAIpA9AqIhIgAikDgCt8IgxCNIggDCASVK0gAikD2CogAikDiCt8fEIMhoR8IhJCNIggEiATVK0gCiATVq0gAikDuCsgCiAWVK0gAikD+CogAikD+Ct8fHx8fEIMhoR8IgpCNIggCiAPVK0gCCAPVq0gAikDqCsgCCALVK0gAikD6CogCyAVVK0gAikD6CsgAikDuCx8fHx8fHx8QgyGhHwiC0I0iCAJIAtWrSACKQOYKyAJIA5UrXx8QgyGhHwiKEIHfiIJNwOILyACIAtC/////////weDIhZCB34iCzcDgC8gAiAKQv////////8HgyIUQgd+Igg3A/guIAIgEkL/////////B4MiMUIHfiIPNwPwLiACIAxC/////////weDIi5CB34iCjcD6C4gBCACQeguahD8DSACIAIpA8gxIAl8NwOgMSACIAIpA8AxIAt8NwOYMSACIAIpA7gxIAh8NwOQMSACIAIpA7AxIA98NwOIMSACIAIpA6gxIAp8NwOAMSACKQOQJyEPIAIpA+AmIQkgAikDgBwhCCACKQPAEyELIAJBkC9qIAMQ/Q0gAikDsC8hPCACKQOQLyE5IAIpA5gvITogAikDoC8hOyACKQOoLyE/IAIgCCALfCIIQv////////8HgyAJIA98Ig9C/////////weDIiAgLnx9QprS//+f//8vfCI0Qgd+NwOoMSACIAIpA5AcIhUgAikD4Bx8IgogAikD0Bt8IhMgCCALVK0gAikDyBMgAikDiBx8fEIMhiAIQjSIhHwiC0L/////////B4MgAikDgCciISACKQOAKHwiCCACKQPAJ3wiDCAJIA9WrSACKQPoJiACKQOYJ3x8QgyGIA9CNIiEfCIJQv////////8HgyIjIDF8fUL6////////L3wiIkIHfjcDsDEgAiACKQPwHCIlIAIpA8AdfCIPIAIpA6AcfCISIAIpA8AbfCIOIAsgE1StIAogE1atIAIpA9gbIAogFVStIAIpA5gcIAIpA+gcfHx8fHxCDIYgC0I0iIR8IgtC/////////weDIAIpA/AnIhwgAikDwCh8IgogAikD8CZ8IhMgAikDsCd8IhUgCSAMVK0gCCAMVq0gAikDyCcgCCAhVK0gAikDiCcgAikDiCh8fHx8fEIMhiAJQjSIhHwiCUL/////////B4MiLCAUfH1C+v///////y98IidCB343A7gxIAIgAikDsBsiDCArQv////////8Hg3wiCCALIA5UrSAOIBJUrSACKQPIGyAPIBJWrSACKQOoHCAPICVUrSACKQP4HCACKQPIHXx8fHx8fHxCDIYgC0I0iIR8IgtC/////////weDIAIpA6AnIhIgNUL/////////B4N8Ig8gCSAVVK0gEyAVVq0gAikDuCcgCiATVq0gAikD+CYgCiAcVK0gAikD+CcgAikDyCh8fHx8fHx8QgyGIAlCNIiEfCIJQv////////8HgyIrIBZ8fUL6////////L3wiL0IHfjcDwDEgAiANQv///////z+DIAggC1atIAIpA7gbIAggDFStfHxCDIYgC0I0iIR8IBBC////////P4MgCSAPVK0gAikDqCcgDyASVK18fEIMhiAJQjSIhHwiLSAofH1C+v///////wJ8IjBCB343A8gxIAJBuC9qIgEgBBD9DSAEIAEQ/A0gAiACKQPYLyACKQPIMXw3A6AxIAIgAikD0C8gAikDwDF8NwOYMSACIAIpA8gvIAIpA7gxfDcDkDEgAiACKQPALyACKQOwMXw3A4gxIAIgAikDuC8gAikDqDF8NwOAMSACQeAvaiADEP0NIAQgAkHALmoQ/A0gAiACKQPIMSAbfCIhNwOoMCACIAIpA8AxIBd8IiU3A6AwIAIgAikDuDEgGnwiHDcDmDAgAiACKQOwMSAYfCI1NwOQMCACIAIpA6gxIBl8Ih43A4gwIAQgAkGIMGoQ/A0gAiACKQPIMSAhfDcDoDEgAiACKQPAMSAlfDcDmDEgAiACKQO4MSAcfDcDkDEgAiACKQOwMSA1fDcDiDEgAiACKQOoMSAefDcDgDEgBCADEP0NIAIgAikDyDFCB343A/gwIAIgAikDwDFCB343A/AwIAIgAikDuDFCB343A+gwIAIgAikDsDFCB343A+AwIAIgAikDqDFCB343A9gwIAJB8AxqICsgP31C/P///////x98IglCACACKQOADSIKIAIpA+AffCIPQv////////8HgyAZICB8fUKa0v//n///L3wiCxCVEiACQdALaiAsIDt9Qvz///////8ffCIIQgAgAikD8B8iDSACKQPAIHwiEyACKQOwH3wiDCAKIA9WrSACKQOIDSACKQPoH3x8QgyGIA9CNIiEfCISQv////////8HgyAYICN8fUL6////////L3wiDxCVEiACQbAKaiAjIDp9Qvz///////8ffCIKQgAgAikD0CAiJCACKQOgIXwiDiACKQOAIHwiFSACKQOgH3wiECAMIBJWrSAMIBNUrSACKQO4HyANIBNWrSACKQP4HyACKQPIIHx8fHx8QgyGIBJCNIiEfCISQv////////8HgyAaICx8fUL6////////L3wiExCVEiACQZAJaiAgIDl9Qrzh//+///8ffCIMQgAgAikDkB8iKSAmQv////////8Hg3wiDSAQIBJWrSAQIBVUrSACKQOoHyAOIBVWrSACKQOIICAOICRUrSACKQPYICACKQOoIXx8fHx8fHxCDIYgEkI0iIR8IhVC/////////weDIBcgK3x9Qvr///////8vfCISEJUSIAJBwAZqIC0gPH1C/P///////wF8Ig5CACARQv///////z+DIA0gFVatIAIpA5gfIA0gKVStfHxCDIYgFUI0iIR8IBsgLXx9Qvr///////8CfCIVEJUSIAJBsAZqIAIpA8AGIhBC/////////weDQgBCkPqAgIACEJUSIAJB4AxqIA5CACALEJUSIAJBwAtqIAlCACAPEJUSIAJBoApqIAhCACATEJUSIAJBgAlqIApCACASEJUSIAJBkAZqIAxCACAVEJUSIAJBoAZqIAIpA8gGIhFCDIYgEEI0iIQgEUI0iEKQ+oCAgAIQlRIgAkHQDGogDEIAIAsQlRIgAkGwC2ogDkIAIA8QlRIgAkGQCmogCUIAIBMQlRIgAkHwCGogCEIAIBIQlRIgAkGABmogCkIAIBUQlRIgAkHwBWogAikD8AgiOCACKQOABnwiECACKQOQCnwiESACKQOwC3wiDSACKQOACSI9IAIpA5AGfCIkIAIpA6AKfCIpIAIpA8ALfCIqIAIpA+AMfCIyIAIpA6AGfCI2IAIpA7AKIj4gAikDkAl8IiYgAikD0At8IjMgAikD8Ax8IjcgAikDsAZ8IkBCNIggNyBAVq0gAikDuAYgMyA3Vq0gAikD+AwgJiAzVq0gAikD2AsgJiA+VK0gAikDuAogAikDmAl8fHx8fHx8fEIMhoR8IiZCNIggJiA2VK0gMiA2Vq0gAikDqAYgKiAyVq0gAikD6AwgKSAqVq0gAikDyAsgJCApVq0gAikDqAogJCA9VK0gAikDiAkgAikDmAZ8fHx8fHx8fHx8fEIMhoR8IiRCBIZC8P////////8AgyAmQjCIQg+DhEIAQtGHgIAQEJUSIAJBwAxqIApCACALEJUSIAJBoAtqIAxCACAPEJUSIAJBgApqIA5CACATEJUSIAJB4AhqIAlCACASEJUSIAJB4AVqIAhCACAVEJUSIAJB0AVqIAIpA+AIIjIgAikD4AV8IikgAikDgAp8IiogDSAkVq0gDSARVK0gAikDuAsgECARVq0gAikDmAogECA4VK0gAikD+AggAikDiAZ8fHx8fHx8QgyGICRCNIiEfCIQQv////////8Hg0IAQpD6gICAAhCVEiACQbAMaiAIQgAgCxCVEiACQZALaiAKQgAgDxCVEiACQfAJaiAMQgAgExCVEiACQdAIaiAOQgAgEhCVEiACQcAFaiAJQgAgFRCVEiACQbAFaiACKQPQCCINIAIpA8AFfCIRIBAgKlStICkgKlatIAIpA4gKICkgMlStIAIpA+gIIAIpA+gFfHx8fHxCDIYgEEI0iIR8IhBC/////////weDQgBCkPqAgIACEJUSIAJBoAVqIBAgEVStIA0gEVatIAIpA9gIIAIpA8gFfHx8QgyGIBBCNIiEQgBCkPqAgIACEJUSIAIpA+gZIT0gAikDmBkhPiACKQPgGSEqIAIpA5AZIRAgAikDyBghQSACKQPAGCEyIAIpA+gXIUIgAikD4BchNiACKQOIGSFDIAIpA7gYIUQgAikDgBkhMyACKQOwGCENIAIpA/gXIUUgAikD8BchNyACKQOoGCFGIAIpA9gTIUcgAikDoBghOCACKQPQEyEkIAIpA9AXISkgAkGwMGogAkHYMGoQ/Q0gAkHwDmogAikD4C8iEUIAICkgH0L/////////B4N8Ih8gNiAyIBAgKnwiKnwiMnwiNiA3IA0gM3wiM3wiNyAkIDh8IjhCNIggJCA4Vq0gRiBHfHxCDIaEfCIkQjSIICQgN1StIDMgN1atIEUgDSAzVq0gQyBEfHx8fHxCDIaEfCIzQjSIIDMgNlStIDIgNlatIEIgKiAyVq0gQSAQICpWrSA9ID58fHx8fHx8QgyGhHwiKkL/////////B4MgFiAXfH1C+v///////y98IhcQlRIgAkGwD2ogAikD6C8iDUIAIDNC/////////weDIBQgGnx9Qvr///////8vfCIQEJUSIAJB8A9qIAIpA/AvIhRCACAkQv////////8HgyAYIDF8fUL6////////L3wiFhCVEiACQbAQaiACKQP4LyIYQgAgOEL/////////B4MgGSAufH1CmtL//5///y98IhoQlRIgAkHwB2ogAikDgDAiGUIAIB1C////////P4MgHyAqVq0gAikD2BcgHyApVK18fEIMhiAqQjSIhHwgGyAofH1C+v///////wJ8IhsQlRIgAkHgB2ogAikD8AciHUL/////////B4NCAEKQ+oCAgAIQlRIgAkHAB2ogEUIAIBsQlRIgAkGgD2ogDUIAIBcQlRIgAkHgD2ogFEIAIBAQlRIgAkGgEGogGEIAIBYQlRIgAkHwEGogGUIAIBoQlRIgAkHQB2ogAikD+AciH0IMhiAdQjSIhCAfQjSIQpD6gICAAhCVEiACQeAOaiARQgAgGhCVEiACQbAHaiANQgAgGxCVEiACQdAPaiAUQgAgFxCVEiACQZAQaiAYQgAgEBCVEiACQeAQaiAZQgAgFhCVEiACQaAHaiACKQPQDyI4IAIpA7AHfCIfIAIpA5AQfCIoIAIpA+AQfCIxIAIpA6APIj0gAikDwAd8Ii4gAikD4A98IiQgAikDoBB8IikgAikD8BB8IiogAikD0Ad8IjIgAikDsA8iPiACKQPwDnwiHSACKQPwD3wiNiACKQOwEHwiMyACKQPgB3wiN0I0iCAzIDdWrSACKQPoByAzIDZUrSACKQO4ECAdIDZWrSACKQP4DyAdID5UrSACKQO4DyACKQP4Dnx8fHx8fHx8QgyGhHwiHUI0iCAdIDJUrSAqIDJWrSACKQPYByApICpWrSACKQP4ECAkIClWrSACKQOoECAkIC5UrSACKQPoDyAuID1UrSACKQOoDyACKQPIB3x8fHx8fHx8fHx8QgyGhHwiLkIEhkLw/////////wCDIB1CMIhCD4OEQgBC0YeAgBAQlRIgAkHQDmogEUIAIBYQlRIgAkGQD2ogDUIAIBoQlRIgAkGQB2ogFEIAIBsQlRIgAkGAEGogGEIAIBcQlRIgAkHQEGogGUIAIBAQlRIgAkGAB2ogAikDgBAiKiACKQOQB3wiJCACKQPQEHwiKSAuIDFUrSAoIDFWrSACKQPoECAfIChWrSACKQOYECAfIDhUrSACKQPYDyACKQO4B3x8fHx8fHxCDIYgLkI0iIR8Ih9C/////////weDQgBCkPqAgIACEJUSIAJBwA5qIBFCACAQEJUSIAJBgA9qIA1CACAWEJUSIAJBwA9qIBRCACAaEJUSIAJB8AZqIBhCACAbEJUSIAJBwBBqIBlCACAXEJUSIAJB4AZqIAIpA8AQIhQgAikD8AZ8IhEgHyApVK0gJCApVq0gAikD2BAgJCAqVK0gAikDiBAgAikDmAd8fHx8fEIMhiAfQjSIhHwiDUL/////////B4NCAEKQ+oCAgAIQlRIgAkHQBmogDSARVK0gESAUVK0gAikDyBAgAikD+AZ8fHxCDIYgDUI0iIRCAEKQ+oCAgAIQlRIgAiACKQPwBSIZIAIpA9AMfCIRQv////////8HgyACKQOgByIoIAIpA+AOfCINQv////////8Hg31CvOH//7///x98NwOoMSACIAIpA8AMIiQgAikDoAt8IhQgAikD0AV8IhggESAZVK0gAikD+AUgAikD2Ax8fEIMhiARQjSIhHwiEUL/////////B4MgAikDkA8iKSACKQPQDnwiGSACKQOAB3wiHyANIChUrSACKQOoByACKQPoDnx8QgyGIA1CNIiEfCINQv////////8Hg31C/P///////x98NwOwMSACIAIpA5ALIiogAikD8Al8IiggAikDsAx8IjEgAikDsAV8Ii4gESAYVK0gFCAYVq0gAikD2AUgFCAkVK0gAikDyAwgAikDqAt8fHx8fEIMhiARQjSIhHwiEUL/////////B4MgAikDgA8iMiACKQPADnwiFCACKQPAD3wiGCACKQPgBnwiJCANIB9UrSAZIB9WrSACKQOIByAZIClUrSACKQOYDyACKQPYDnx8fHx8QgyGIA1CNIiEfCINQv////////8Hg31C/P///////x98NwO4MSACIAIpA6AFIikgQEL/////////B4N8IhkgESAuVK0gLiAxVK0gAikDuAUgKCAxVq0gAikDuAwgKCAqVK0gAikDmAsgAikD+Al8fHx8fHx8QgyGIBFCNIiEfCIRQv////////8HgyACKQPQBiIoIDdC/////////weDfCIfIA0gJFStIBggJFatIAIpA+gGIBQgGFatIAIpA8gPIBQgMlStIAIpA4gPIAIpA8gOfHx8fHx8fEIMhiANQjSIhHwiDUL/////////B4N9Qvz///////8ffDcDwDEgAiAmQv///////z+DIBEgGVStIAIpA6gFIBkgKVStfHxCDIYgEUI0iIR8IB1C////////P4MgDSAfVK0gAikD2AYgHyAoVK18fEIMhiANQjSIhHx9Qvz///////8BfDcDyDEgAyAEEP0NIAAgA0Eo/AoAACACQeAUaiAJQgAgICA5fCIREJUSIAJB4BVqIAhCACAjIDp8Ig0QlRIgAkGQFmogLCA7fCIUQgAgChCVEiACQaAVaiArID98IhhCACAMEJUSIAJBwBdqIC0gPHwiGUIAIA4QlRIgAkGwF2ogAikDwBciHUL/////////B4NCAEKQ+oCAgAIQlRIgAkHQFGogDkIAIBEQlRIgAkHQFWogCUIAIA0QlRIgAkHAFmogFEIAIAgQlRIgAkGAFmogGEIAIAoQlRIgAkGQFWogGUIAIAwQlRIgAkGgF2ogAikDyBdCDIYgHUI0iIRCAEKQ+oCAgAIQlRIgAkGAFGogEUIAIAwQlRIgAkHAFWogDkIAIA0QlRIgAkGwFmogCUIAIBQQlRIgAkHgFmogGEIAIAgQlRIgAkHwFWogGUIAIAoQlRIgAkGQFGogAikD4BYiOSACKQOwFnwiICACKQPAFXwiIyACKQPwFXwiLCACKQPQFSI6IAIpA8AWfCIrIAIpA4AWfCItIAIpA9AUfCImIAIpA5AVfCIfIAIpA6AXfCIoIAIpA5AWIjsgAikD4BV8Ih0gAikD4BR8IjEgAikDoBV8Ii4gAikDsBd8IjxCNIggLiA8Vq0gAikDuBcgLiAxVK0gAikDqBUgHSAxVq0gAikD6BQgHSA7VK0gAikDmBYgAikD6BV8fHx8fHx8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FHwiFyAIIBBUrSACKQOYFCACKQOIFHx8QgyGIAhCNIiEfCIIQv////////8Hg3w3A7AxIAIgAikDwAIiLCACKQPAAXwiECACKQOQA3wiFiACKQOAAnwiGiAJIAxUrSAKIAxWrSACKQOYAiAKIBtUrSACKQPYAiACKQPYAXx8fHx8QgyGIAlCNIiEfCIJQv////////8HgyACKQPgEyIrIAIpA7AVfCIKIAIpA/AUfCIMIAIpA7AUfCIbIAggF1StIA4gF1atIAIpA8gUIA4gI1StIAIpA4gVIAIpA/gTfHx8fHxCDIYgCEI0iIR8IghC/////////weDfDcDuDEgAiACKQPwASIjIDpC/////////weDfCIOIAkgGlStIBYgGlatIAIpA4gCIBAgFlatIAIpA5gDIBAgLFStIAIpA8gCIAIpA8gBfHx8fHx8fEIMhiAJQjSIhHwiCUL/////////B4MgAikDoBQiECA8Qv////////8Hg3wiFyAIIBtUrSAMIBtWrSACKQO4FCAKIAxWrSACKQP4FCAKICtUrSACKQPoEyACKQO4FXx8fHx8fHxCDIYgCEI0iIR8IghC/////////weDfDcDwDEgAiAgQv///////z+DIAkgDlStIAIpA/gBIA4gI1StfHxCDIYgCUI0iIR8IB1C////////P4MgCCAXVK0gAikDqBQgECAXVq18fEIMhiAIQjSIhHx8NwPIMSADIAQQ/Q0gBiADQSj8CgAAIAJBsBNqIBhCACA0EJUSIAJB4BJqIBRCACAiEJUSIAJBkBJqIA1CACAnEJUSIAJBwBFqIBFCACAvEJUSIAJBsA5qIBlCACAwEJUSIAJBoA5qIAIpA7AOIglC/////////weDQgBCkPqAgIACEJUSIAJBoBNqIBlCACA0EJUSIAJB0BJqIBhCACAiEJUSIAJBgBJqIBRCACAnEJUSIAJBsBFqIA1CACAvEJUSIAJBgA5qIBFCACAwEJUSIAJBkA5qIAIpA7gOIghCDIYgCUI0iIQgCEI0iEKQ+oCAgAIQlRIgAkGQE2ogEUIAIDQQlRIgAkHAEmogGUIAICIQlRIgAkHwEWogGEIAICcQlRIgAkGgEWogFEIAIC8QlRIgAkHwDWogDUIAIDAQlRIgAkHgDWogAikDoBEiIyACKQPwDXwiCCACKQPwEXwiCiAC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g3wiCyACKQPACiIXIAIpA6AJfCIIIAIpA+ALfCIPIAIpAxB8IgogAikD8AsiECACKQPQCnwiEyACKQMwfCIMIAIpA1AiDiACKQOADHwiEkI0iCAOIBJWrSACKQNYIAIpA4gMfHxCDIaEfCIOQjSIIAwgDlatIAwgE1StIAIpAzggECATVq0gAikD+AsgAikD2Ap8fHx8fEIMhoR8IhNCNIggCiATVq0gCiAPVK0gAikDGCAIIA9WrSACKQPoCyAIIBdUrSACKQPICiACKQOoCXx8fHx8fHxCDIaEfCIIQjSIIAggC1StIAIpAwggCyAVVK18fEIMhoR8IAlC////////P4MgAikDkA0iFiAgQv////////8Hg3wiCSACKQOgEiIaIAIpA9ARfCILIAIpA/ASfCIPIAIpA6ANfCIKIAIpA4ATIhsgAikDsBJ8IgwgAikDwA18IhUgAikD4A0iECACKQOQE3wiF0I0iCAQIBdWrSACKQPoDSACKQOYE3x8QgyGhHwiEEI0iCAQIBVUrSAMIBVWrSACKQPIDSAMIBtUrSACKQOIEyACKQO4Enx8fHx8QgyGhHwiDEI0iCAKIAxWrSAKIA9UrSACKQOoDSALIA9WrSACKQP4EiALIBpUrSACKQOoEiACKQPYEXx8fHx8fHxCDIaEfCILQjSIIAkgC1atIAIpA5gNIAkgFlStfHxCDIaEfHw3A8gxIAIgCEL/////////B4MgC0L/////////B4N8NwPAMSACIBNC/////////weDIAxC/////////weDfDcDuDEgAiAOQv////////8HgyAQQv////////8Hg3w3A7AxIAIgEkL/////////B4MgF0L/////////B4N8NwOoMSADIAQQ/Q0gByADQSj8CgAAIAJB0DFqJAALzgEBDX8gASgCCCIDBEAgASgCGCEEIAEoAhQhBSABKAIQIQYgASgCDCEHIAEoAhwhAgsgASgCBCEIIAEoAgAhCSABKAIgIgoEQCABKAI0IQsgASgCMCEMIAEoAiwhDSABKAIoIQ4gASgCJCEBCyAAIAs2AjQgACAMNgIwIAAgDTYCLCAAIA42AiggACABNgIkIAAgCjYCICAAIAI2AhwgACAENgIYIAAgBTYCFCAAIAY2AhAgACAHNgIMIAAgAzYCCCAAIAg2AgQgACAJNgIAC+MB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CCAFIAhWrXx8fCIFNwPwAiABIAQgBlatIAUgBlStfCIEIAd8IgU3A/gCIAFBwAJqIAFB4AJqEPUNIAFCADcDgAMgAUIANwOIAyABQgA3A5ADIAFCADcDmAMgBCAFVq0hBUEAIQJCACEEA0AgAkEgRwRAIAFBgANqIAJqIAFBwAJqIAJqKQMAIgggBEI/iCIEfSIGIAFB4AFqIAJqKQMAIgp9NwMAQgAgBiAKVCAEIAhWcq19IQQgAkEIaiECDAELCyABIAEpA5gDNwP4AiABIAEpA5ADNwPwAiABIAEpA4gDNwPoAiABIAEpA4ADNwPgAiAAIAFBwAJqIAFB4AJqIAWnEK4OIARCP4inEK4OELsNchCuDhDtDSABQaADaiQAIANBwANqJAALFgAgACABIAIgAyAEQQNBoNXEABC3EgtgAQJ/An9BACABKAIAIgNFDQAaIAEoAhAiAiABKAIUSQRAIAEgAkEBajYCECABKAIIIAJBiAJsaiEBIAMgAkHAB2xqDAELIAFBADYCAEEACyECIAAgATYCBCAAIAI2AgALTQECfyABKAIUIAEoAhAiAmshAyABKAIIIAJBiAJsaiEBA0AgAwRAIAAgASgCACICIAAgAksbIQAgA0EBayEDIAFBiAJqIQEMAQsLIAALYwECfyMAQfABayICJAAgAiABENwNIAJB+ABqIAFB+AD8CgAAQcAHIQEDQCABBEAgACACQfgAaiIDQfgA/AoAACABQfgAayEBIABB+ABqIQAgAyACEN0NDAELCyACQfABaiQACxYAIAAgAEEEaiABQRBBgAEQ4A02AgALcgECfyMAQSBrIgJCADcDGCACQgA3AxAgAkIANwMIIAJCADcDAANAIANBIEYEQCAAIAIpAxg3AxggACACKQMQNwMQIAAgAikDCDcDCCAAIAIpAwA3AwAFIAIgA2ogASADaikDADcDACADQQhqIQMMAQsLC0QBAX8gAEIANwMYIABCADcDECAAQgA3AwggAEIANwMAA0AgAkEgRwRAIAAgAmogASACaikDADcDACACQQhqIQIMAQsLC0QBAn8jAEFAaiIDQQBBwAD8CwADQCACQcAARgRAIAAgA0HAAPwKAAAFIAIgA2ogASACaikDADcDACACQQhqIQIMAQsLCzMBAX8gAEEAQcAA/AsAA0AgAkHAAEcEQCAAIAJqIAEgAmopAwA3AwAgAkEIaiECDAELCwvCBAICfx5+IwBBgAFrIgMkACADQTBqIAFBKGpBKPwKAAAgA0EIaiICIAFBKPwKAAAgA0HYAGpBgNzEAEEo/AoAACABEIAOIQFBuNnEACkDACETIAIpAwAhBUHA2cQAKQMAIRQgAikDCCEGQcjZxAApAwAhFSACKQMQIQdB0NnEACkDACEWIAIpAxghCEHY2cQAKQMAIRcgAikDICEJQeDZxAApAwAhGCACKQMoIQpB6NnEACkDACEZIAIpAzAhC0Hw2cQAKQMAIRogAikDOCEMQfjZxAApAwAhGyACKQNAIQ1BgNrEACkDACEcIAIpA0ghDkGI2sQAKQMAIR0gAikDUCEPQZDaxAApAwAhHiACKQNYIRBBmNrEACkDACEfIAIpA2AhEUGg2sQAKQMAISAgAikDaCESIABCACABrUL/AYN9IgQgAikDcCIhQajaxAApAwCFgyAhhTcDcCAAIBIgEiAghSAEg4U3A2ggACARIBEgH4UgBIOFNwNgIAAgECAQIB6FIASDhTcDWCAAIA8gDyAdhSAEg4U3A1AgACAOIA4gHIUgBIOFNwNIIAAgDSANIBuFIASDhTcDQCAAIAwgDCAahSAEg4U3AzggACALIAsgGYUgBIOFNwMwIAAgCiAKIBiFIASDhTcDKCAAIAkgCSAXhSAEg4U3AyAgACAIIAggFoUgBIOFNwMYIAAgByAHIBWFIASDhTcDECAAIAYgBiAUhSAEg4U3AwggACAFIAUgE4UgBIOFNwMAIANBgAFqJAALdQIBfwV+IwBBMGsiASQAIAFBCGogABD9DSABKQMoIgIgASkDICIDIAEpAxgiBCABKQMQIgUgASkDCCIGhISEhFAgBkLQh4CAEIUgAkKAgICAgIDAB4WDIAWDIASDIAODQv////////8HUXIQrg4gAUEwaiQAC1IAIAAgAikDICABKQMgfDcDICAAIAIpAxggASkDGHw3AxggACACKQMQIAEpAxB8NwMQIAAgAikDCCABKQMIfDcDCCAAIAIpAwAgASkDAHw3AwALCwAgACABIAEQ+w0LcgIBfwV+IwBBMGsiAiQAIAEpAwAhAyABKQMIIQQgASkDECEFIAEpAxghBiACIAEpAyAiB0L///////8/gzcDKCACIAY3AyAgAiAFNwMYIAIgBDcDECACIAM3AwggACACQQhqIAdCMIgQiw4gAkEwaiQAC6gBAQN/IwBBMGsiBCQAIARBCGoiAkL8////////ASABQShqIgMpAyB9NwMgIAJC/P///////x8gAykDGH03AxggAkL8////////HyADKQMQfTcDECACQvz///////8fIAMpAwh9NwMIIAJCvOH//7///x8gAykDAH03AwAgAEEoaiACEP0NIABB0ABqIAFB0ABqQSj8CgAAIAAgAUEo/AoAACAEQTBqJAAL8ggCAX8PfiMAQdACayICJAAgAkFAayABKQMYIgNCACABKQMAIgQQlRIgAkGQAWogASkDECIFQgAgASkDCCIGEJUSIAJBwAJqIAEpAyAiB0IAIAcQlRIgAkGwAmogAikDwAIiCEL9////////B4NCAEKQ+oCAgAIQlRIgAkHQAWogBUIAIAUQlRIgAkGgAmogAikDyAJCDIYgCEI0iIRCAEKQ+oCAgAIQlRIgAkHQAGogB0IAIAQQlRIgAkGgAWogA0IAIAYQlRIgAkHgAGogBEIAIAQQlRIgAkHgAWogA0IAIAUQlRIgAkGwAWogB0IAIAYQlRIgAiACKQOwASIQIAIpA+ABfCIJQgGGIhEgAikDoAIiDSACKQPQAXwiDCACKQOwAiIKIAIpA0AiCyACKQOQAXwiCEIBhnwiD0I0iCAKIA9WrSACKQO4AiAIIAtUrSACKQNIIAIpA5gBfHxCAYYgCEI/iIR8fEIMhoR8IgogAikDUCIOIAIpA6ABfCILQgGGfCIIQjSIIAggClStIAogDFStIAwgDVStIAIpA6gCIAIpA9gBfHx8IAsgDlStIAIpA1ggAikDqAF8fEIBhiALQj+IhHx8QgyGhHwiDEIEhkLw/////////wCDIAhCMIhCD4OEQgBC0YeAgBAQlRIgAkGAAWogBEIBhiIKIARCP4giCyAGEJUSIAJBgAJqIANCACADEJUSIAJB8AFqIAVCACAHEJUSIAJBMGogAikD8AEiDUIBhiIOIAIpA4ACfCIEIAwgEVStIAkgEFStIAIpA7gBIAIpA+gBfHxCAYYgCUI/iIR8QgyGIAxCNIiEfCIJQv////////8Hg0IAQpD6gICAAhCVEiACQcABaiAGQgAgBhCVEiACQZACaiADQgAgBxCVEiACQSBqIAQgCVatIAQgDlStIAIpA4gCIAIpA/gBQgGGIA1CP4iEfHx8QgyGIAlCNIiEIgQgAikDkAIiBkIBhnwiA0L/////////B4NCAEKQ+oCAgAIQlRIgAkHwAGogCiALIAUQlRIgAkEQaiADIARUrSACKQOYAkIBhiAGQj+IhHxCDIYgA0I0iIRCAEKQ+oCAgAIQlRIgACACKQMAIgUgAikDYHwiA0L/////////B4M3AwAgACACKQMwIgcgAikDgAF8IgQgAyAFVK0gAikDCCACKQNofHxCDIYgA0I0iIR8IgNC/////////weDNwMIIAAgAikDcCIJIAIpA8ABfCIFIAIpAyB8IgYgAyAEVK0gBCAHVK0gAikDOCACKQOIAXx8fEIMhiADQjSIhHwiA0L/////////B4M3AxAgACACKQMQIgcgD0L+////////B4N8IgQgAyAGVK0gBSAGVq0gAikDKCAFIAlUrSACKQN4IAIpA8gBfHx8fHxCDIYgA0I0iIR8IgNC/////////weDNwMYIAAgCEL///////8/gyADIARUrSACKQMYIAQgB1StfHxCDIYgA0I0iIR8NwMgIAJB0AJqJAALCgAgAC0AUBCuDgu9AQIBfwJ+IwBB0ABrIgIkACACIAEQ/Q0gAhCCDiEBIAJBKGogAkIBEIsOIABCACABrUL/AYN9IgQgAikDGCIDIAIpA0CFgyADhTcDGCAAIAIpAxAiAyACKQM4hSAEgyADhTcDECAAIAIpAwgiAyACKQMwhSAEgyADhTcDCCAAIAIpAwAiAyACKQMohSAEgyADhTcDACAAIAQgAikDICIEIAIpA0hC////////P4OFgyAEhTcDICACQdAAaiQAC08BAX4gACkDICIBQv///////z9WIAFC////////P1EgACkDGCAAKQMQIAApAwiDg0L/////////B1FxIAApAwBCrvj//+///wdWcXIQrg4LUQEBfyMAQdAAayIDJAAgAyABQSj8CgAAA0AgAgRAIANBKGoiASADEP8NIAMgAUEo/AoAACACQQFrIQIMAQsLIAAgA0Eo/AoAACADQdAAaiQAC5QJAg1/Dn4gAhC0DiEZIwBBkAJrIgMkACABEMMNIANBADoAICADIAIpAxg3AxggAyACKQMQNwMQIAMgAikDCDcDCCADIAIpAwA3AwAgA0EAOgBIIAMgASkDGDcDQCAD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EDcDECAAIAEpAwg3AwggACABKQMANwMAIAJBIGokAAuGAQAgACABKQMAIAJC0YeAgBB+fCICQv////////8HgzcDACAAIAEpAwggAkI0iHwiAkL/////////B4M3AwggACABKQMQIAJCNIh8IgJC/////////weDNwMQIAAgASkDGCACQjSIfCICQv////////8HgzcDGCAAIAEpAyAgAkI0iHw3AyAL8QcCAn8PfiMAQcADayIDJAAgA0HAAmogARD2DSADQeACaiIEIAIQ9g0gAyADKQPgAiIFQgAgAykDwAIiBhCVEiADQRBqIAMpA+gCIgdCACAGEJUSIANBQGsgAykDyAIiCEIAIAUQlRIgA0EgaiADKQPwAiIKQgAgBhCVEiADQfAAaiAIQgAgBxCVEiADQdAAaiADKQPQAiILQgAgBRCVEiADQTBqIAMpA/gCIglCACAGEJUSIANBoAFqIApCACAIEJUSIANBgAFqIAtCACAHEJUSIANB4ABqIAMpA9gCIgZCACAFEJUSIANBsAFqIAlCACAIEJUSIANBwAFqIAtCACAKEJUSIANBkAFqIAZCACAHEJUSIANB4AFqIAlCACALEJUSIANB0AFqIAZCACAKEJUSIANB8AFqIAZCACAJEJUSIAMgAykDADcDgAMgAyADKQMIIgYgAykDEHwiBSADKQNAfCIHNwOIAyADKQMoIQggAykDeCEKIAMgBSAHVq0gAykDGCAFIAZUrXwiCyADKQNIfHwiBSADKQMgfCIGIAMpA3B8IgcgAykDUHwiCTcDkAMgAykDOCENIAMpA6gBIQ4gAykDiAEhDCADIAMpA1ggByAJVq18IgkgBiAHVq0gCiAFIAZWrSAIIAUgC1StIgt8fCIFfHwiD3wiBiADKQMwfCIHIAMpA6ABfCIIIAMpA4ABfCIKIAMpA2B8IhA3A5gDIAMpA7gBIREgAykDyAEhEiADIAMpA2ggCiAQVq18IhAgDCAIIApWrXwiCiAOIAcgCFatfCIIIAYgB1atIA0gBiAJVK0gBSAPVq0gBSALVK18fCILfHwiCXwiDXwiDnwiBSADKQOwAXwiBiADKQPAAXwiByADKQOQAXwiDDcDoAMgAykD6AEhDyADKQP4ASETIAMgAykDmAEgByAMVq18IgwgEiAGIAdWrXwiByAFIAZWrSARIAUgEFSt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su6gHBCVEiACQSBqIAIpA+ADIgwgAikD8AJ8IgogDiATVK0gEiATVq0gAikD2AMgEiAWVK0gAikD6AIgAikDmAJ8fHx8fCINQgyGIA5CNIiEfCILQv////////8Hg0IAQpD6gICAAhCVEiACQRBqIAogC1atIAogDFStIAIpA+gDIAIpA/gCfHwgDUI0iHx8IgpCDIYgC0I0iIQgCkI0iEKQ+oCAgAIQlRIgA0GAAmoiBEEoaiABQShqQSj8CgAAIARB0ABqIAFB0ABqQSj8CgAAIAQgAikDACINIAIpA2B8IgpC/////////weDNwMAIAQgAikDwAEiFCACKQNwfCILIAIpAzB8IgwgCiANVK0gAikDCCACKQNofHwiFUIMhiAKQjSIhHwiCkL/////////B4M3AwggBCACKQPQASIRIAIpA4ABfCINIAIpA6ACfCIQIAIpAyB8Ig4gCiAMVK0gCyAMVq0gAikDOCALIBRUrSACKQPIASACKQN4fHx8fCAVQjSIfHxCDIYgCkI0iIR8IgpC/////////weDNwMQIAQgAikDECIMIBpC/////////weDfCILIAogDlStIA4gEFStIAIpAyggDSAQVq0gAikDqAIgDSARVK0gAikD2AEgAikDiAF8fHx8fHx8QgyGIApCNIiEfCIKQv////////8HgzcDGCAEIA9C////////P4MgCiALVK0gAikDGCALIAxUrXx8QgyGIApCNIiEfDcDICACQfADaiQAAkAgBkH/AXFFBEAgA0H4AmogBEH4APwKAAAMAQsgA0H4AmogA0GAAmoQ/g0LIAUgA0GIAWoQ8w0gBUHAB2ogA0H4AmoQ8w0gA0HwA2okACAAIAVBgA/8CgAAIABBgA9qIAhBkAT8CgAAIAVBkBNqJAALhwEBBH8jAEEgayICJAAgAiABEOINIAJBH2ohA0EAIQEDQCABQRBGRQRAIAEgAmoiBC0AACEFIAQgAy0AADoAACADIAU6AAAgA0EBayEDIAFBAWohAQwBCwsgACACKQAYNwAYIAAgAikAEDcAECAAIAIpAAg3AAggACACKQAANwAAIAJBIGokAAtOAQF/IwBBEGsiAiQAIAIgACgCACIANgIMIAFBwN3EAEEFQcXdxABBBCAAQQhqQaDdxABByd3EAEEIIAJBDGpBsN3EABDzESACQRBq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G3wiATcDCCAAQqLP+vOXye7XxwBCo8/685fJ7tfHACABIAJaGyIBIAApAxB8IgI3AxAgACAAKQMYQta/ufbRsezNT0LXv7n20bHszU8gASACWBt8NwMYCwuoAwECfyMAQcACayICJAAgAiAAKQMYNwMYIAIgACkDEDcDECACIAApAwg3AwggAiAAKQMANwMAIAIgACkDIDcDICACIAApAyg3AyggAiAAKQMwNwMwIAIgACkDODcDOCAAQSBqEMQOIAIgACkDGDcDmAEgAiAAKQMQNwOQASACIAApAwg3A4gBIAIgACkDADcDgAEgAiAAKQMgNwOgASACIAApAyg3A6gBIAIgACkDMDcDsAEgAiAAKQM4NwO4ASACIAEpAzg3A/gBIAIgASkDMDcD8AEgAiABKQMoNwPoASACIAEpAyA3A+ABIAIgASkDADcDwAEgAiABKQMINwPIASACIAEpAxA3A9ABIAIgASkDGDcD2AEgAkFAayIDIAJBgAFqIAJBwAFqEL4OIAIgASkDODcDmAIgAiABKQMwNwOQAiACIAEpAyg3A4gCIAIgASkDIDcDgAIgAiABKQMANwOgAiACIAEpAwg3A6gCIAIgASkDEDcDsAIgAiABKQMYNwO4AiACQeAAaiACIAJBgAJqEL4OIAAgA0HAAPwKAAAgAkHAAmokAAsMACAAQZjuxAAQzwELEQAgABDEDiAAQSBqEMQOIAALEQAgABDFDiAAQSBqEMUOIAALLQEBfyMAQUBqIgIkACACIAFBwAD8CgAAIAAgAhDJDkHAAPwKAAAgAkFAayQACxAAIABBgAFqQfjuxAAQzQ4LLQEBfyMAQUBqIgIkACACIAFBwAD8CgAAIAAgAhDODkHAAPwKAAAgAkFAayQACyEBAX8gACABELQBBH9BAAUgAEEgaiABQSBqELQBQQFzCwvEBAEFfyMAQaABayIBJAACQEHY7sQAQdjuxAAQzwFFBEAgASAAKQMYNwNYIAEgACkDEDcDUCABIAApAwg3A0ggASAAKQMANwNAIAFBQGsiAiAAQSBqIgMQww4gASABKQNYNwM4IAEgASkDUDcDMCABIAEpA0g3AyggASABKQNANwMgIAEgACkDODcDWCABIAApAzA3A1AgASAAKQMoNwNIIAEgACkDIDcDQCABIAApAxg3A5gBIAEgACkDEDcDkAEg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IGoQkA8gACAFIAEQsQ8MAgsCQAJAAkAgASACEMgPQf8BcQ4CAQIACyADIAIoAgg2AhggAyACKQIANwMQIAMgASgCCDYCKCADIAEpAgA3AyAgA0EEaiIBIANBEGogA0EgahCtDyAAIAQgARCxDwwDCyAAQfT7xAApAgA3AgggAEHs+8QAKQIANwIAIAIQ2ggMAQsgAyABKAIINgIYIAMgASkCADcDECADIAIoAgg2AiggAyACKQIANwMgIANBBGoiASADQRBqIANBIGoQrQ8gACAFIAEQsQ8MAQsgARDaCAsgA0EwaiQAC6MDAgd/AX4jAEFAaiIDJAAgAyABKAIINgIIIAMgASkCACIKNwMAIAMgAigCCDYCGCADIAIpAgA3AxACfyAKp0F/RwRAIAMoAgghBCADKAIEDAELQQEhBCADKAIEQQFHBEBBACEEQQQMAQsgA0EIagshBiABLQAMIQggAi0ADCEJAkACQAJAAkACfyADKAIQQX9HBEAgAygCGCEFIAMoAhQMAQtBASEFIAMoAhRBAUcNASADQRhqCyEHIARFDQAgBQ0BCyADQeT6xAAoAgA2AiggA0Hc+sQAKQIANwMgDAELIAVBAUcEQCAEQQFGBEAgBigCACEEIAMgAigCCDYCOCADIAIpAgA3AzAgA0EwaiAEEJMPIAMgAygCODYCKCADIAMpAzA3AyAMAwsgA0EgaiAGIAQgByAFEKsPDAELIAcoAgAhBCADIAEoAgg2AjggAyABKQIANwMwIANBMGogBBCTDyADIAMoAjg2AiggAyADKQMwNwMgIAIhAQwBCyACENoICyABENoIIAAgCCAJEMMPQf8BcSADQSBqELEPIANBQGskAAtWAQJ/IwBBIGsiAiQAIAEtAAwhAyACIAEoAgg2AhggAiABKQIANwMQIAJBEGpBAhCTDyACIAIoAhg2AgggAiACKQMQNwMAIAAgAyACELEPIAJBIGokAAu3AwEDfyMAQTBrIgMkAAJAIAItAAwiBEEBRgRAIAAgASkCCDcCCCAAIAEpAgA3AgAgAhDaCAwBCwJAAkACQAJAAkACQAJAAkACQCABLQAMIgVBAWsOAgACAQsgACACKAIINgIIIAAgAikCADcCACAAIAIvAA07AA0gACACLQAPOgAPIABBAiAEazoADAwHCyAERQ0BDAILIARFDQELIAEgAhDID0H/AXEOAgIDAQsgAyABKAIINgIYIAMgASkCADcDECADIAIoAgg2AiggAyACKQIANwMgIANBBGoiASADQRBqIANBIGoQkA8gACAFIAEQsQ8MBAsgAyACKAIINgIYIAMgAikCADcDECADIAEoAgg2AiggAyABKQIANwMgIANBBGoiASADQRBqIANBIGoQrQ8gAEECIAVrIAEQsQ8MAwsgAEH0+8QAKQIANwIIIABB7PvEACkCADcCACACENoIDAELIAMgASgCCDYCGCADIAEpAgA3AxAgAyACKAIINgIoIAMgAikCADcDICADQQRqIgEgA0EQaiADQSBqEK0PIAAgBSABELEPDAELIAEQ2ggLIANBMGokAAv1AgEDfyMAQSBrIgMkAAJAIAItAAwiBUEBRgRAIAAgASkCCDcCCCAAIAEpAgA3AgAMAQsCQAJAAkACQAJAAkACQAJAAkAgAS0ADCIEQQFrDgIAAgELIAMgAhDSDyAAIAMpAgA3AgAgA0ECIAMtAAxrOgAMIAAgAykCCDcCCAwHCyAFRQ0BDAILIAVFDQELIAEgAhDID0H/AXEOAgIDAQsgAyABKAIINgIIIAMgASkCADcDACADIAIQkQ8gAyADKAIINgIYIAMgAykDADcDECAAIAQgA0EQahCxDwwECyADIAEoAgg2AgggAyABKQIANwMAIANBEGoiASACIAMQqQ8gAEECIARrIAEQsQ8MAwsgAEH0+8QAKQIANwIIIABB7PvEACkCADcCAAwBCyADIAEoAgg2AgggAyABKQIANwMAIAMgAhCwDyADIAMoAgg2AhggAyADKQMANwMQIAAgBCADQRBqELEPDAELIAEQ2ggLIANBIGokAAu0AwIGfwJ+IwBBIGsiBSQAAn8jAEEQayIDJAACQCABLQAMBH9BAAUjAEEQayICJAAgAkEIaiABEJUMIAIoAgxBAnQhBiACKAIIIQQCQANAIAZFDQEgBCgCAEUEQCAIQiB9IQggBkEEayEGIARBBGohBAwBCwsgAyAEKAIAaK0gCH03AwhCASEJCyADIAk3AwAgAkEQaiQAIAMoAgBFDQEgAykDCFALIANBEGokAAwBC0HA+cQAQRxB3PnEABD7EQALIAVBBGohAwJAAkACQCABKAIEIgQgASABKAIAQX5GIgYbIgcoAgBBf0cEQCAHKAIIDQEM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IAEpAxA3A3AgASABKQMINwNoIAEgASkDADcDYCABIAEpAyA3A4ABIAEgASkDKDcDiAEgASABKQMwNwOQASABIAEpAzg3A5gBIANBBGogAUHgAGpBwAD8CgAAIANBADYCAAwBCyADQQE2AgALIAFBoAFqJAACQCAFKAKgA0EBRwRAIAVB4AJqIhQgBUGkA2pBwAD8CgAAIAVBiAJqIRAjAEHQBmsiAyQAIANBsARqIgEgFBDeECADIAMpAsgENwMgIAMgAykCwAQ3AxggAyADKQK4BDcDECADIAMpArAENwMIIAMgAykC6AQ3A0AgAyADKQLgBDcDOCADIAMpAtgENwMwIAMgAykC0AQ3AyggASAFQZABaiIeEPAPAkAgAy0AsARBAUYEQCAQQQE2AgAMAQsgAyADKQDJBDcD0AMgAyADKQDBBDcDyAMgAyADKQC5BDcDwAMgAyADKQCxBDcDuAMgA0GwBGoiAiADQbgDaiIHEKIRIANByABqIAIQixEgA0HoAGoiASADQQhqEPsQAkAgCEECcUUNACADQeABaiINIAEQhhFBACEEQQAhBiMAQTBrIgEkACABQgA3AyggAUIANwMgIAFCADcDGCABQgA3AxADQCAEQSBHBEAgAUEQaiAEaiAEQYCexQBqNQIAIAQgDWo1AgAgBq18fCIpPgIAIClCIIinIQYgBEEEaiEEDAELCyABIAY2AgwjAEEQayIEJAAgBEEANgIMIARBDGooAgAgAUEMaigCAHMiBkEAIAZrckF/c0EfdhCuDiEGIARBEGokACACIAY6ACAgAiABKQMoNwIYIAIgASkDIDcCECACIAEpAxg3AgggAiABKQMQNwIAIAFBMGokACADLQDQBEEBRgRAIAMgAykCyAQ3A9ADIAMgAykCwAQ3A8gDIAMgAykCuAQ3A8ADIAMgAykCsAQ3A7gDIAIgBxD7ECADIAMpAMgENwOAASADIAMpAMAENwN4IAMgAykAuAQ3A3AgAyADKQCwBDcDaAwBCyAQQQE2AgAMAQsgCEEBcRCuDiERIwBBgANrIgEkACMAQTBrIgQkACADQegAaiICLQAfIQ4gAi0AHiEPIAItAB0hCSACLQAaIRIgAi0AGyETIAItABwhBiACLQAXIRUgAi0AGCEWIAItABkhCCACLQATIRcgAi0AFCEYIAItABUhGSACLQAWIQ0gAi0AEiEaIAItABEhGyACLQAQIRwgAi0ADSEdIAItAA4hHyACLQAPIQwgAi0ACiEgIAItAAshISACLQAMIQogAi0ABiEiIAItAAchIyACLQAIISQgAi0ACSELIAItAAUhJSACLQAEISYgAi0AAyEnIARBCGoiByACLQABQQZ0IAItAAIiKEECdnIgAi0AAEEOdHI2AiQgByAlICZBCHRyICdBEHRyIChBA3FBGHRyNgIgIAcgJEECdCALQQZ2ciAjQQp0ciAiQRJ0cjYCHCAHICFBBHQgCkEEdnIgIEEMdHIgC0E/cUEUdHI2AhggByAfQQZ0IAxBAnZyIB1BDnRyIApBD3FBFnRyNgIUIAcgGiAbQQh0ciAcQRB0ciAMQQNxQRh0cjYCECAHIBlBAnQgDUEGdnIgGEEKdHIgF0ESdHI2AgwgByAWQQR0IAhBBHZyIBVBDHRyIA1BP3FBFHRyNgIIIAcgE0EGdCAGQQJ2ciASQQ50ciAIQQ9xQRZ0cjYCBCAHIA4gD0EIdHIgCUEQdHIgBkEDcUEYdHI2AgAgBxD1EBC7DSEHIAQoAgghBiAEKAIMIQggBCgCECENIAQoAhQhDCAEKAIYIQogBCgCHCELIAQoAiAhDiAEKAIkIQ8gBCgCKCEJIAQoAiwhEiABQQxqIgIgBzoAKCACIBJBACAHQf8BcWsiB3E2AiQgAiAHIAlxNgIgIAIgByAPcTYCHCACIAcgDnE2AhggAiAHIAtxNgIUIAIgByAKcTYCECACIAcgDHE2AgwgAiAHIA1xNgIIIAIgByAIcTYCBCACIAYgB3E2AgAgBEEwaiQAIAFBACABLQA0IglrIgIgASgCMHE2AlwgASABKAIsIAJxNgJYIAEgASgCKCACcTYCVCABIAEoAiQgAnE2AlAgASABKAIgIAJxNgJMIAEgASgCHCACcTYCSCABIAEoAhggAnE2AkQgASABKAIUIAJxNgJAIAEgASgCECACcTYCPCABIAEoAgwgAnE2AjggAUG0AWoiByABQThqIg0gDRDXECABQYgBaiIMIAcgDRDXECABQeAAaiIGIAxBtLPFABDtECMAQeAEayIEJAAgBEG4BGoiAiAGQQEQ9hAgBEEIaiIKIAIgBhDXECACIApBARD2ECAEQTBqIgggAiAGENcQIAIgCEEDEPYQIARB2ABqIgsgAiAIENcQIAIgC0EDEPYQIARBgAFqIgsgAiAIENcQIAIgC0ECEPYQIARBqAFqIg4gAiAKENcQIAIgDkELEPYQIARB0AFqIgsgAiAOENcQIAIgC0EWEPYQIARB+AFqIg4gAiALENcQIAIgDkEsEPYQIARBoAJqIg8gAiAOENcQIAIgD0HYABD2ECAEQcgCaiISIAIgDxDXECACIBJBLBD2ECAEQfACaiIPIAIgDhDXECACIA9BAxD2ECAEQZgDaiIOIAIgCBDXECACIA5BFxD2ECAEQZAEaiIIIAIgCxDXECACIAhBBhD2ECAEQegDaiILIAIgChDXECAEQcADaiIKIAtBAhD2ECACIAogChDXECAIIAJBARDuECALIAggBhDtECALEOMQIQIgDCAKQSj8CgAAIAwgAjoAKCAEQeAEaiQAIAFBACABLQCwASISayICIAEoAqwBcTYCrAIgASABKAKoASACcTYCqAIgASABKAKkASACcTYCpAIgASABKAKgASACcTYCoAIgASABKAKcASACcTYCnAIgASABKAKYASACcTYCmAIgASABKAKUASACcTYClAIgASABKAKQASACcTYCkAIgASABKAKMASACcTYCjAIgASABKAKIASACcTYCiAIgAUGwAmoiAiABQYgCahDrECAHIAJBARDuECACEIUOIBFzEK4OELsNIQIgASgCsAIhEyABKAK0ASEEIAEoArQCIRUgASgCuAEhBiABKAK4AiEWIAEoArwBIQggASgCvAIhFyABKALAASEMIAEoAsACIRggASgCxAEhCiABKALEAiEZIAEoAsgBIQsgASgCyAIhGiABKALMASEOIAEoAswCIRsgASgC0AEhDyABKALQAiEcIAEoAtQBIREgAUEAIAJB/wFxayICIAEoAtgBIh0gASgC1AJzcSAdczYC/AIgASARIBEgHHMgAnFzNgL4AiABIA8gDyAbcyACcXM2AvQCIAEgDiAOIBpzIAJxczYC8AIgASALIAsgGXMgAnFzNgLsAiABIAogCiAYcyACcXM2AugCIAEgDCAMIBdzIAJxczYC5AIgASAIIAggFnMgAnFzNgLgAiABIAYgBiAVcyACcXM2AtwCIAEgBCAEIBNzIAJxczYC2AIgAUHcAWogAUHYAmoQ6xAgByANQSj8CgAAIAFBADoAhAIgCSAScRCuDiECIANB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AWohAiABIAZLBEAgASACayEBIAAgAkEFdGohAEEADAILIAIgASABQaCkxQAQ5hEACyALIAAgASMAQdAAayIHJAACQCABRQRAQQAhBgwBCwJAAkAgASAITQ0AIAAgCEEFdGoiBikDCCESIAYpAxAhEyAGKQMYIREgACkDACEUIAAgBikDADcDACAAKQMYIRUgACARNwMYIAApAxAhFiAAIBM3AxAgACkDCCERIAAgEjcDCCAGIBU3AxggBiAWNwMQIAYgETcDCCAGIBQ3AwAgByAAIAFBAUGApMUAEJ0QIAcoAgRFDQEgASAHKAIIIQkgBygCDCEGIAcoAgAhASMAQUBqIgUkACAFIAk2AgAgBgR/IAUgATYCCCAFIAQ2AgQgBSAFNgIMIAUgCSkDGDcDKCAFIAkpAxA3AyAgBSAJKQMINwMYIAUgCSkDADcDECAFQQA2AjwgBSAJQSBqIgg2AjggBSAJNgIwIAkgBkEFdGohASAFIAVBEGo2AjQDfyABIAhNBH8gBSgCACAGQQV0aiEBA0AgASAIRwRAIAVBBGogBUEwahCiECAFKAI4IQgMAQsLIAUgBSgCNDYCOCAFQQRqIAVBMGoQohAgBSgCPAUgBUEEaiAFQTBqEKIQIAUoAjghCAwBCwsFQQALIQEgBUFAayQAIAEiBk0NACAAIAFBBXRqIgEpAwghEiABKQMQIRMgASkDGCERIAApAwAhFCAAIAEpAwA3AwAgACkDGCEVIAAgETcDGCAAKQMQIRYgACATNwMQIAApAwghESAAIBI3AwggASAVNwMYIAEgFjcDECABIBE3AwggASAUNwMADAILAAtBAEEAQZCkxQAQ6BEACyAHQdAAaiQAIAZBsKTFABCdECALKAIEIQcgCygCACALIAsoAgggCygCDEEBQcCkxQAQnRAgCygCBEUNASALKAIMIQEgCygCCCEAIAsoAgAhBiAHIAIgAyAEEJwQIAYLIQIgA0EBayEDDAELC0EAQQBB0KTFABDoEQALFgAgACABIAIgAyAEQQVBzKXFABC3EguFAQECfyADQfj///8BcQRAIAAgACADQQN2IgNBB3QiBWogACADQeABbCIGaiADIAQQnhAhACABIAEgBWogASAGaiADIAQQnhAhASACIAIgBWogAiAGaiADIAQQnhAhAgsgACABELEJIgMgACACELEJRgR/IAIgASABIAIQsQkgA3MbBSAACwvEAQECfyMAQSBrIgIkACABIAFBIGsiAxCxCQRAIAIgASkDGDcDGCACIAEpAxA3AxAgAiABKQMINwMIIAIgASkDADcDAANAAkAgAyIBQThqIAEpAxg3AwAgAUEwaiABKQMQNwMAIAFBKGogASkDCDcDACABQSBqIAEpAwA3AwAgACABRg0AIAIgAUEgayIDELEJDQELCyABIAIpAxg3AxggASACKQMQNwMQIAEgAikDCDcDCCABIAIpAwA3AwALIAJBIGokAAu2AgEIfyAAQSBqIAAQsQkhAiAAQeAAQcAAIABB4ABqIABBQGsQsQkiAxtqIQQgAEHAAEHgACADG2oiBSAAIAJBAXNBBXRqIgMgBCAEIAAgAkEFdGoiABCxCSICGyAFIAMQsQkiBhsiByAAIAQgAyAGGyACGyIIELEJIQkgASAEIAAgAhsiACkDGDcDGCABIAApAxA3AxAgASAAKQMINwMIIAEgACkDADcDACABIAcgCCAJGyIAKQMYNwM4IAEgACkDEDcDMCABIAApAwg3AyggASAAKQMANwMgIAEgCCAHIAkbIgApAxg3A1ggASAAKQMQNwNQIAEgACkDCDcDSCABIAApAwA3A0AgASADIAUgBhsiACkDADcDYCABIAApAwg3A2ggASAAKQMQNwNwIAEgACkDGDcDeAupAQIEfwN+IAAoAgQgASgCCCICELEJIQQgACgCCCgCACABKAIMIgVBBXRqIgApAwghBiAAKQMQIQcgACkDGCEIIAEoAgAiAyAAKQMANwMAIAMgCDcDGCADIAc3AxAgAyAGNwMIIAAgAikDGDcDGCAAIAIpAxA3AxAgACACKQMINwMIIAAgAikDADcDACABIAUgBEEBc2o2AgwgASACNgIAIAEgAkEgajYCCAumAQIEfwN+IAEoAggiAiAAKAIEELEJIQQgACgCCCgCACABKAIMIgVBBXRqIgApAwghBiAAKQMQIQcgACkDGCEIIAEoAgAiAyAAKQMANwMAIAMgCDcDGCADIAc3AxAgAyAGNwMIIAAgAikDGDcDGCAAIAIpAxA3AxAgACACKQMINwMIIAAgAikDADcDACABIAQgBWo2AgwgASACNgIAIAEgAkEgajYCCAv+AgIDfwR+IwBBIGsiAiQAIAJCADcDCCACQgA3AwAgAkEAOgAcIAJB2PPFADYCGCACIAApAwA3AxAjAEEQayIAJAAgAigCGCEEAn8gAi0AHCIDQeAATQRAIABCBEIAIAMQkBIgAikDCCAAKQMIhCEFIAIpAwAgACkDAIQhByACKQMQIQYgA0EgagwBCyAEKQMAIAIpAwiFIgVCIIgiByACKQMQIAIpAwCFIgZCIIgiCH4gBUL/////D4MiBSAGQv////8PgyIGfoUgBSAIfiAGIAd+hUIgiYUhBkIAIQVCBCEHQSALIQMgAiAHNwMAIAIgAzoAHCACIAU3AwggAiABQSAgBkIgiSAEENIQNwMQIABBEGokAAJ+IAItABxFBEAgAikDEAwBCyACKAIYKQMAIAIpAwiFIgVCIIgiByACKQMQIAIpAwCFIgZCIIgiCH4gBUL/////D4MiBSAGQv////8PgyIGfoUgBSAIfiAGIAd+hUIgiYULIAJBIGokAAtcAQR+IAApAwAhAyAAIAFBGGxqIgEpAxAhBCABKQMIIQIgACABKQMANwMAIAApAwghBSAAIAI3AwggACkDECECIAAgBDcDECABIAM3AwAgASAFNwMIIAEgAjcDEAtAAQN+IAApAwAhAiAAIAFBBHRqIgEpAwghAyAAIAEpAwA3AwAgACkDCCEEIAAgAzcDCCABIAQ3AwggASACNwMACzUBAX8jAEEwayICQQhqIABBKPwKAAAgACAAIAFBKGxqIgBBKPwKAAAgACACQQhqQSj8CgAACzQBAX8jAEHQAGsiAiAAQdAA/AoAACAAIAAgAUHQAGxqIgBB0AD8CgAAIAAgAkHQAPwKAAALCwAgAEEQQQgQmRILCQAgACABEM8BCwsAIABBCEEwENYQCwsAIABBCEEgENYQCwsAIABBCEEQENYQCwsAIABBCEEoENYQCwwAIAAoAgAgARDLEAttAQN/IwBBEGsiAyQAA0AgAQRAIANBCGoiBCAALQAAIgVBD3EtANWlRToAASAEIAVB8AFxQQR2QdWlxQBqLQAAOgAAIAIgAy8BCDsAACABQQFrIQEgAkECaiECIABBAWohAAwBCwsgA0EQaiQACywBAX9BgYDEACEFIAAgAkEBdCAERgR/IAEgAiADEK8QQX8FQYGAxAALNgIAC9wBAQR/IwBBMGsiAiQAIAACfyMAQSBrIgMkACADIAEQhhEgAkEMaiEEQQAhAQNAIAVBIEcEQCADIAVqNQIAIAFBH3WsfCAFQby1xQBqNQIAfUIgiKchASAFQQRqIQUMAQsLIAQgARChEToAICAEIAMpAhg3AhggBCADKQIQNwIQIAQgAykCCDcCCCAEIAMpAgA3AgAgA0EgaiQAQQEgAi0ALEEBRw0AGiAAIAIpAiQ3AhwgACACKQIcNwIUIAAgAikCFDcCDCAAIAIpAgw3AgRBAAs2AgAgAkEwaiQAC4ABAQJ/IwBBEGsiBCQAIARBCGohBSABIAJJBEAgAiABIAFB2KvFABDmEQALIAUgATYCBCAFIAI2AgAgASAEKAIMIAQoAggiAWsiAmtBAE8EQCACQQN0IgIEQCAAIAAgAUEDdGogAvwKAAALIARBEGokAA8LQeWlxQBBKyADEOIRAAtJAQF/IwBBoAVrIgMkACADQQBByAH8CwAgA0EAOgDPAiADIAEgAhC3ECADQdACaiIBIANB0AL8CgAAIAEgABC9ECADQaAFaiQACwsAIAAgASACELMQC7wQAgd+BX8jAEGgAmsiCCQAIAhBOGohDCMAQcABayILJAADQCAKQcABRwRAIAogC2ogCkGgpsUAaikDADcDACAKQQhqIQoMAQsLIAwgC0HAAfwKAAAgC0HAAWokACAIQRg2AjQCQANAIAlBGEcEQCAJQQFqIQogDCAJQQN0aikDACEGQQAhCQNAIAlBKEcEQCAIQfgBaiAJakIANwMAIAlBCGohCQwBCwsgCCAAKQOoASAAKQOAASAAKQNYIAApAzAgCCkDgAIgACkDCIWFhYWFIgI3A4ACIAggACkDoAEgACkDeCAAKQNQIAApAyggCCkD+AEgACkDAIWFhYWFIgc3A/gBIAggACkDsAEgACkDiAEgACkDYCAAKQM4IAgpA4gCIAApAxCFhYWFhSIDNwOIAiAIIAApA7gBIAApA5ABIAApA2ggACkDQCAIKQOQAiAAKQMYhYWFhYUiBDcDkAIgCCAAKQPAASAAKQOYASAAKQNwIAApA0ggCCkDmAIgACkDIIWFhYWFIgU3A5gCIAAgAkEBEMsRIAWFIgEgACkDAIU3AwAgACAAKQMoIAGFNwMoIAAgACkDUCABhTcDUCAAIAApA3ggAYU3A3ggACAAKQOgASABhTcDoAEgACADQQEQyxEgB4UiASAAKQMIhTcDCCAAIAApAzAgAYU3AzAgACAAKQNYIAGFNwNYIAAgACkDgAEgAYU3A4ABIAAgACkDqAEgAYU3A6gBIAAgBEEBEMsRIAKFIgEgACkDEIU3AxAgACAAKQM4IAGFNwM4IAAgACkDYCABhTcDYCAAIAApA4gBIAGFNwOIASAAIAApA7ABIAGFNwOwASAAIAVBARDLESADhSIBIAApAxiFNwMYIAAgACkDQCABhTcDQCAAIAApA2ggAYU3A2ggACAAKQOQASABhTcDkAEgACAAKQO4ASABhTcDuAEgACAIKQP4AUEBEMsRIASFIgEgACkDIIU3AyAgACAAKQNIIAGFNwNIIAAgACkDcCABhTcDcCAAIAApA5gBIAGFNwOYASAAIAApA8ABIAGFNwPAASAAKQNQIQEgACAAKQMIQQEQyxE3A1AgACkDOCECIAAgAUEDEMsRNwM4IAApA1ghASAAIAJBBhDLETcDWCAAKQOIASECIAAgAUEKEMsRNwOIASAAKQOQASEBIAAgAkEPEMsRNwOQASAAKQMYIQIgACABQRUQyxE3AxggACkDKCEBIAAgAkEcEMsRNwMoIAApA4ABIQIgACABQSQQyxE3A4ABIAApA0AhASAAIAJBLRDLETcDQCAAKQOoASECIAAgAUE3EMsRNwOoASAAKQPAASEBIAAgAkECEMsRNwPAASAAKQMgIQIgACABQQ4QyxE3AyAgACkDeCEBIAAgAkEbEMsRNwN4IAApA7gBIQIgACABQSkQyxE3A7gBIAApA5gBIQEgACACQTgQyxE3A5gBIAApA2ghAiAAIAFBCBDLETcDaCAAKQNgIQEgACACQRkQyxE3A2AgACkDECECIAAgAUErEMsRNwMQIAApA6ABIQEgACACQT4QyxE3A6ABIAApA3AhAiAAIAFBEhDLETcDcCAAKQOwASEBIAAgAkEnEMsRNwOwASAAKQNIIQIgACABQT0QyxE3A0ggACkDMCEBIAAgAkEUEMsRNwMwIAggACkDCDcD+AEgACABQSwQyxE3AwggCEEoaiAAQQAQthAgCCgCLCIJQQRNDQIgCEH4AWoiC0EFIAgoAihBBUGAqMUAEJINIAAgCCkD+AEiASAIKQOIAiICIAgpA4ACIgNCf4WDhTcDACAAIAMgCCkDkAIiBCACQn+Fg4U3AwggACAIKQOYAiIFIAMgAUJ/hYOFNwMgIAAgBCABIAVCf4WDhTcDGCAAIAIgBSAEQn+Fg4U3AxAgCEEgaiAAQQUQthAgCCgCJCIJQQRNDQIgC0EFIAgoAiBBBUGAqMUAEJINIAAgCCkD+AEiASAIKQOIAiICIAgpA4ACIgNCf4WDhTcDKCAAIAMgCCkDkAIiBCACQn+Fg4U3AzAgACAIKQOYAiIFIAMgAUJ/hYOFNwNIIAAgBCABIAVCf4WDhTcDQCAAIAIgBSAEQn+Fg4U3AzggCEEYaiAAQQoQthAgCCgCHCIJQQRNDQIgC0EFIAgoAhhBBUGAqMUAEJINIAAgCCkD+AEiASAIKQOIAiICIAgpA4ACIgNCf4WDhTcDUCAAIAMgCCkDkAIiBCACQn+Fg4U3A1ggACAIKQOYAiIFIAMgAUJ/hYOFNwNwIAAgBCABIAVCf4WDhTcDaCAAIAIgBSAEQn+Fg4U3A2AgCEEQaiAAQQ8QthAgCCgCFCIJQQRNDQIgC0EFIAgoAhBBBUGAqMUAEJINIAAgCCkD+AEiASAIKQOIAiICIAgpA4ACIgNCf4WDhTcDeCAAIAMgCCkDkAIiBCACQn+Fg4U3A4ABIAAgCCkDmAIiBSADIAFCf4WDhTcDmAEgACAEIAEgBUJ/hYOFNwOQASAAIAIgBSAEQn+Fg4U3A4gBIAhBCGogAEEUELYQIAgoAgwiCUEETQ0CIAtBBSAIKAIIQQVBgKjFABCSDSAAIAApAwAgBoU3AwAgACAIKQP4ASIBIAgpA4gCIgIgCCkDgAIiA0J/hYOFNwOgASAAIAMgCCkDkAIiBCACQn+Fg4U3A6gBIAAgCCkDmAIiBSADIAFCf4WDhTcDwAEgACAEIAEgBUJ/hYOFNwO4ASAAIAIgBSAEQn+Fg4U3A7ABIAohCQwBCwsgCEGgAmokAA8LIAggCjYCMEEAQQUgCUHwp8UAEOYRAAs/AQF/IwBBEGsiAyQAIANBCGogAiABQRlB4KfFABCqDSADKAIMIQEgACADKAIINgIAIAAgATYCBCADQRBqJAALnQIBBX8jAEEgayIDJAAgAyAANgIMIABByAFqIQcCQEGIASAALQDPAiIEayIFIAJNBEAgBARAIANBEGohBiACIAVJBEBBwKjFAEETQfylxQAQ4hEACyAGIAU2AgQgBiABNgIAIAYgAiAFazYCDCAGIAEgBWo2AgggAygCHCECIAMoAhghASADKAIUIgUEQCAEIAdqIAMoAhAgBfwKAAALIANBDGogB0EBELgQIABBADoAzwILIAIgAkGIAW4iBkGIAWwiBWshBCACQYgBTwRAIANBDGogASAGELgQCyAAIAQ6AM8CIARFDQEgByABIAVqIAT8CgAADAELIAIEQCAEIAdqIAEgAvwKAAALIAAgAiAEajoAzwILIANBIGokAAs3ACACQYgBbCECIAAoAgAhAANAIAIEQCAAIAEQyhEgABC1ECACQYgBayECIAFBiAFqIQEMAQsLCzUBAX4gACABRwRAIAEgAGtBA3YhAQNAIAApAwAgAoQhAiAAQQhqIQAgAUEBayIBDQALCyACC9MfAg9+E38jAEGQBGsiESQAIBFB+ANqIAEQuxACQAJAIBEoAvwDIhMEQCARKAL4AyEVIBFB8ANqIAAQuxACQAJAIBEoAvQDIhIEQCARKALwAyEUIBIgE0cNASARQYAEaiAUIBMgFRC+BiARLQCIBA0CDAQLIBNBA3QiAEUNBCAVQQAgAPwLAAwECyASIBNPDQILIBFBgARqIQAgEiATSwRAQcCoxQBBE0Goq8UAEOIRAAsgACASNgIEIAAgFTYCACAAIBMgEms2AgwgACAVIBJBA3RqNgIIIBEoAogEIQAgESgCjAQgESgCgAQgESgChAQgFCASQbirxQAQkg1BA3QiAQRAIABBACAB/AsACyASQQN0IgBFDQIgFEEAIAD8CwAMAgtBmKvFABCAEgALAkACQAJAAkACQAJAAkACQAJAAkAgE0EBaw4CAAECCyAVKQMAIQIgEkEBRgRAIBQgFCkDACIEIAKAIgM3AwAgFSAEIAIgA359NwMADAoLAkAgAnkiBVAEQCARQcABakIAIAJCAYN9QoCAgICAgICAECACQjeIp0EBdEHcv8UAajMBACIEQguGIAJCGIhCAXwiBSAEfiAEfkIoiEJ/hXwiBCAFfn0gBH5CL4ggBEINhnwiBEIBiIMgBCACQgF8QgGIfn1CACAEEJUSIBFBsAFqIARCH4YgESkDyAFCAYh8IgRCAXwiBSAFUK0gAhCVEiAEIAIgESkDuAF8fSEFIBJBA3QhASAUQQhrIQADQCABRQ0CIBFBoAFqIAVCASADEJUSIBEpA6gBIBEpA6ABIgQgACABaiITKQMAIgN8IgYgBFStfCIEIARCAXwiBCADIAIgBH59IgMgBlYiEhshBCATIAIgAkIAIBIbIAN8IgNYBH4gAyACfSEDIARCAXwFIAQLNwMAIAFBCGshAQwACwALIBFBgAJqQgAgAiAFhiIEQgGDfUKAgICAgICAgBAgBEI3iKdBAXRB3L/FAGozAQAiAkILhiAEQhiIQgF8IgMgAn4gAn5CKIhCf4V8IgIgA359IAJ+Qi+IIAJCDYZ8IgJCAYiDIAIgBEIBfEIBiH59QgAgAhCVEiARQfABaiACQh+GIBEpA4gCQgGIfCICQgF8IgMgA1CtIAQQlRIgAiAEIBEpA/gBfH0hAiAUIBJBA3RqIgBBCGspAwBCwAAgBX0iB4ghAyAFQj+DIQUgAEEQayEBA0AgEkECTwRAIBFB0AFqIAJCASADEJUSIBEpA9gBIBEpA9ABIgMgAUEIaiIAKQMAIAWGIAEpAwAgB4iEIgZ8IgggA1StfCIDIANCAXwiAyAGIAMgBH59IgMgCFYiExshBiAAIAQgBEIAIBMbIAN8IgNYBH4gAyAEfSEDIAZCAXwFIAYLNwMAIBJBAWshEiABQQhrIQEMAQsLIBFB4AFqIAJCASADEJUSIBEpA+gBIBEpA+ABIgIgFCkDACAFhiIDfCIGIAJUrXwiAiACQgF8IgIgAyACIAR+fSICIAZWIgAbIQMgBCAEQgAgABsgAnwiAlgEQCADQgF8IQMgAiAEfSECCyAUIAM3AwAgAiAFiCEDCyAVIAM3AwAMCQsgFSkDACEGIBUpAwgiA3kiBVAEQCARQdACakIAIANCAYN9QoCAgICAgICAECADQjeIp0EBdEHcv8UAajMBACICQguGIANCGIhCAXwiBCACfiACfkIoiEJ/hXwiAiAEfn0gAn5CL4ggAkINhnwiAkIBiIMgAiADQgF8QgGIfn1CACACEJUSIBFBwAJqIAJCH4YgESkD2AJCAYh8IgJCAXwiBCAEUK0gAxCVEiACIAMgESkDyAJ8fSIHIAN+IgQgBnwiAiAEVA0CDAcLIBFB4ANqIAYgAyAFpyITEJASIBFB0ANqQgAgESkD6AMiAkIBg31CgICAgICAgIAQIAJCN4inQQF0Qdy/xQBqMwEAIgRCC4YgAkIYiEIBfCIDIAR+IAR+QiiIQn+FfCIEIAN+fSAEfkIviCAEQg2GfCIEQgGIgyAEIAJCAXxCAYh+fUIAIAQQlRIgEUHAA2ogBEIfhiARKQPYA0IBiHwiBEIBfCIDIANQrSACEJUSIAIgBCACIBEpA8gDfH0iB34iBCARKQPgAyIGfCIDIARUDQIMBQsgFSATQQJrIh5BA3RqKQMAIQggFSATQQN0aiIAQQhrKQMAIgZ5IgpQIhxFBEAgEUGQAWogCCAGIAqnEJASIBEpA5ABIABBGGspAwBCwAAgCn2IhCEIIBEpA5gBIQYLIBFBgAFqQgAgBkIBg31CgICAgICAgIAQIAZCN4inQQF0Qdy/xQBqMwEAIgJCC4YgBkIYiEIBfCIEIAIgAn5+QiiIQn+FfCICIAR+fSACfkIviCACQg2GfCICQgGIgyACIAZCAXxCAYh+fUIAIAIQlRIgEUHwAGogAkIfhiARKQOIAUIBiHwiAkIBfCIEIARQrSAGEJUSIAIgBiARKQN4fH0iCSAGfiICIAh8IgUgAlQNAgwDC0J/Qn4gAiADVCIAGyAHfCEHIAIgA0IAIAMgABt8fSECDAQLQn9CfiACIANWIgAbIAd8IQcgA0IAIAIgABsgAnx9IQMMAgtCf0J+IAUgBlQiABsgCXwhCSAFQgAgBiAAGyAGfH0hBQsgEUHgAGogCEIAIAkQlRIgBSAFIBEpA2h8IgJWBEBCf0J+IBEpA2AgCFQgAiAGVCACIAZRGxsgCXwhCQsgFEEIayEfIApCP4MhDkLAACAKfSENIBRBAEchICASIBNrIiFBAWoiHSEaQgAhBANAIB8gGkEDdGohFwNAAkACQCAaBEAgFCAaQQFrIhogE2oiAEEDdGohGUIAIQUgACASSSIiICBxIhgEQCAZKQMAIQULIBlBCGsiGykDACEDIBlBEGsiIykDACECIBxFBEAgEUHQAGogAyAFIAqnEJASIBEpA1AgAiANiIQhAyARKQNYIQUgAiAOhiAZQRhrKQMAIA2IhCECCyADIAhUIAUgBlQgBSAGURtFBEBCACEFQQAhGCATIQAgFyEBIBUhFgNAIAAEQCARQUBrIBYpAwBCAEJ/EJUSIAEgASkDACIDIAUgESkDQCIFfCICfSIHIBitIgt9NwMAIAcgC1QgAiADVnIhGCAAQQFrIQAgAUEIaiEBIBZBCGohFiARKQNIIAIgBVStfCEFDAEFQn8hAgwFCwALAAsgEUEwaiAFQgAgCRCVEiARQSBqIAhCACARKQMwIgcgA3wiCyAHVK0gESkDOCAFfHwiBRCVEiAFIAsgAyAFIAZ+fSARKQMoIAIgESkDICIDVK18fSIHIAZ9IAIgA30iAyAIVK19IgxWIgCtfCECIAMgCH0gAyAAGyIDIAhUIgEgDCAHIAAbIgcgBlQgBiAHURtFBEAgByAGfSABrX0hByADIAh9IQMgAkIBfCECCyACUARAQgAhAgwDCwJAIBxFBEBCACEFQQAhFiATIQBBACEBA0AgAARAIBFBEGogASAVaikDAEIAIAIQlRIgASAXaiIbIBspAwAiByAFIBEpAxAiC3wiA30iBSAWrUIBgyIMfTcDACAFIAxUIAMgB1ZyIRYgAEEBayEAIAFBCGohASARKQMYIAMgC1StfCEFDAELCyAFIBatQgGDfCEDIBgEfiAZKQMABUIACyADUQ0EDAELQgAhBUEAIRYgHiEAQQAhAQNAIAAEQCARIAEgFWopAwBCACACEJUSIAEgF2oiGCAYKQMAIgsgESkDACIMIAV8IgV9Ig8gFq1CAYMiEH03AwAgDyAQVCAFIAtWciEWIABBAWshACABQQhqIQEgESkDCCAFIAxUrXwhBQwBCwsgIyADIAUgFq1CAYN8IgV9NwMAIBsgByADIAVUIgCtfTcDACAAIAdQcUUNAwtBACEWIBMhAEEAIQEDQCAARQ0CIAEgF2oiGCABIBVqKQMAIgUgGCkDAHwiAyAWrUIBg3wiBzcDACADIAVUIAMgB1ZyIRYgAEEBayEAIAFBCGohAQwACwALIBUgEyAUIBNB6KvFABCSDSAUIBIgE0H4q8UAELIQIBQgIUEDdGogBDcDACASIB1rQQN0IgBFDQcgFCAdQQN0akEAIAD8CwAMBwsgAkIBfSECCyAiBEAgGSACNwMAIBdBCGshFwwBBSACIQQMAgsACwALAAsgEUGwA2ogBkJ+gyIIQgAgBxCVEiADIAMgESkDuAN8IgRWBEBCf0J+IBEpA7ADQn6DIAZUIAIgBFYgAiAEURsbIAd8IQcLIBQgEkEDdGoiAEEIaykDAELAACAFfSIKiCEEIAVCP4MhCSAAQRBrIQFCACEDA0AgEkECTwRAIBFB8AJqIANCACAHEJUSIBFB4AJqIAhCACARKQPwAiIFIAR8Ig0gBVStIBEpA/gCIAN8fCIDEJUSIAMgDSAEIAIgA359IBEpA+gCfSARKQPgAiIFQgBSrX0gAUEIaiIWKQMAIAmGIAEpAwAgCoiEIAV9IgRCACAFfVStfCIOIAJ9IAQgBlStfSILViIArXwhBSAEIAZ9IAQgABsiBCAGVCIXIAsgDiAAGyIDIAJUIAIgA1EbRQRAIAMgAn0gF619IQMgBUIBfCEFIAQgBn0hBAsgFiAFNwMAIBJBAWshEiABQQhrIQEMAQsLIBFBoANqIANCACAHEJUSIBFBkANqIBEpA6ADIgUgBHwiByAFVK0gESkDqAMgA3x8IgNCACAIEJUSIAMgBCACIAN+fSARKQOYA30gESkDkAMiBUIAUq19IBQpAwAgCYYgBX0iBEIAIAV9VK18IgggAn0gBCAGVK19IgkgB1QiAK18IQcgFCAEIAZ9IAQgABsiBSAGVCIBIAkgCCAAGyIDIAJUIAIgA1EbBH4gBwUgAyACfSABrX0hAyAFIAZ9IQUgB0IBfAs3AwAgEUGAA2ogBSADIBMQkRIgESkDiAMhAiARKQOAAyEEDAELIBFBsAJqIAdCACAGEJUSIAIgAiARKQO4AnwiBFYEQEJ/Qn4gESkDsAIgBlQgAyAEViADIARRGxsgB3whBwsgEkEDdCEBIBRBCGshE0IAIQRCACECA0AgAUUNASARQaACaiACQgAgBxCVEiARQZACaiARKQOgAiIFIAR8IgggBVStIBEpA6gCIAJ8fCIFQgAgBhCVEiAFIAggBCADIAV+fSARKQOYAn0gESkDkAIiBEIAUq19IAEgE2oiEikDACAEfSICQgAgBH1UrXwiCSADfSACIAZUrX0iClYiAK18IQUgAiAGfSACIAAbIgQgBlQiFiAKIAkgABsiAiADVCACIANRG0UEQCAEIAZ9IQQgBUIBfCEFIAIgA30gFq19IQILIBIgBTcDACABQQhrIQEMAAsACyAVIAI3AwggFSAENwMACyARQZAEaiQACz8CA38BfiABQRhqIQJBBCEDA0AgAyIEBEAgBEEBayEDIAIpAwAgAkEIayECUA0BCwsgACAENgIEIAAgATYCAAsOACAAIAFBqK3FABCYEgvoBAEHfyMAQYAFayICJAAgAkEQaiIGIABB0AL8CgAAIAItAN8CIQMgAkHoA2ohACMAQZABayIFJAADQCAEQYgBRwRAIAVBCGogBGpBADoAACAEQQFqIQQMAQsLIAAgBUEIakGIAfwKAAAgBUGQAWokACACQQhqIAMgAEGIAUH4qsUAEKgHIAIoAgggAigCDCACQdgBaiIFIANBiKvFABCRDSACQQA6AN8CIAJB4AJqIgQgAEGIAfwKAAAgBCADQeCtxQAQvhBBAToAACAEQYcBQfCtxQAQvhAiAyADLQAAQYABcjoAACAGIAQQyhEgBhC1ECACQqCAgICAATcC+AQgAiABNgL0BCMAQRBrIgEkACABIAU2AgwgASAGNgIIAn9BACACQfQEaiIEKAIEIgNFDQAaIAQoAggiBwRAIAMgB24iCCADIAcgCGxHagwBC0HQrcUAEIASAAshAyABQQhqELgOIQcgAEEANgIUIAAgBTYCBCAAIAY2AgAgACAEKAIINgIQIAAgBCkCADcCCCAAIAcgAyADIAdLGzYCGCABQRBqJAAgAigCgAQiACACKAL8AyIBayIEQQAgACAETxshBiACKALoAyABQQN0aiEEIAIoAvQDIAEgAigC+AMiAGwiA2shASACKALwAyIHIANqIQMCQANAIAZFIAdFckUEQCACIAQpAwA3A+gDIAAgASAAIAFJGyIFQQlPDQIgAyAFIAJB6ANqIAVBsKjFABCRDSAGQQFrIQYgBEEIaiEEIAEgAGshASAAIANqIQMMAQsLIAJBgAVqJAAPC0EAIAVBCEGgqMUAEOYRAAsOACABIABBiAEgAhDBEAtBAgF/AX4jAEEQayICJAAgAkEIaiABIABBBEG0qcUAEKoNIAIoAggiACAAIAIoAgxBA3RqELkQIAJBEGokAEIAUgsSACAAIAEgAiADIARB1QAQqRILGgAgACACSQRAIAAgAWoPCyAAIAIgAxDoEQALogEBA38gAEGAAU8EQCAAQT9xQYB/ciEDIABBBnYhAiAAQYAQSQRAIAEgAzoAASABIAJBwAFyOgAADwsgAEEMdiEEIAJBP3FBgH9yIQIgAEH//wNNBEAgASADOgACIAEgAjoAASABIARB4AFyOgAADwsgASADOgADIAEgAjoAAiABIARBP3FBgH9yOgABIAEgAEESdkFwcjoAAA8LIAEgADoAAAudAgEGfyMAQRBrIgQkAAJ/QQEgAUGAAUkNABpBAiABQYAQSQ0AGkEDQQQgAUGAgARJGwsiAyAAKAKAAiICakGAAksiB0UEQCAEQQhqIQUgACACaiECAkACf0EB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fCEGIAFBgAJLBEAgAykDKCACfCEHIAMpAyAgAnwhDCADKQMAIQgDQCAAKQAwIQsgACkAACEOIAApADghCSAAKQAIIQ8gACkAQCEKIAApABAhECAAKQBIIQ0gACkAGCETIAApAFAhESAAKQAgIRQgACkAWCESIAApACghFSAXQQhqQeAAIAAgAUHEssUAEIQHIAggEoUiEkIgiCIWIAcgFYUiB0IgiCIVfiASQv////8PgyISIAdC/////w+DIgd+hSASIBV+IAcgFn6FQiCJhSEHIAggEYUiEUIgiCISIAwgFIUiDEIgiCIUfiARQv////8PgyIRIAxC/////w+DIgx+hSARIBR+IAwgEn6FQiCJhSEMIAggDYUiDUIgiCIRIAQgE4UiBEIgiCITfiANQv////8PgyINIARC/////w+DIgR+hSANIBN+IAQgEX6FQiCJhSEEIAggCoUiCkIgiCINIAYgEIUiBkIgiCIQfiAKQv////8PgyIKIAZC/////w+DIgZ+hSAKIBB+IAYgDX6FQiCJhSEGIAggCYUiCUIgiCIKIAUgD4UiBUIgiCIPfiAJQv////8PgyIJIAVC/////w+DIgV+hSAJIA9+IAUgCn6FQiCJhSEFIAggC4UiC0IgiCIJIAIgDoUiAkIgiCIOfiALQv////8PgyILIAJC/////w+DIgJ+hSALIA5+IAIgCX6FQiCJhSECIBcoAgghACAXKAIMIgFBgAJLDQALIAUgB4UhBSACIAyFIQILIAMpAwAhCANAIAApACAgACkAACEMIAApACghCyAAKQAIIQ4gACkAMCEJIAApABAhDyAAKQA4IQogACkAGCEQIBdBwAAgACABQdSyxQAQhAcgCCAKhSIKQiCIIg0gBCAQhSIEQiCIIhB+IApC/////w+DIgogBEL/////D4MiBH6FIAogEH4gBCANfoVCIImFIQQgCCAJhSIJQiCIIgogBiAPhSIGQiCIIg9+IAlC/////w+DIgkgBkL/////D4MiBn6FIAkgD34gBiAKfoVCIImFIQYgCCALhSILQiCIIgkgBSAOhSIFQiCIIg5+IAtC/////w+DIgsgBUL/////D4MiBX6FIAsgDn4gBSAJfoVCIImFIQUgCIUiB0IgiCILIAIgDIUiAkIgiCIMfiAHQv////8PgyIHIAJC/////w+DIgJ+hSAHIAx+IAIgC36FQiCJhSECIBcoAgAhACAXKAIEIgFBgAFLDQALIAQgBYUhBSACIAaFIQILIAAgAWoiA0EIaykAACAIhSIEQiCIIgYgACkACCAFhSIFQiCIIgd+IARC/////w+DIgQgBUL/////D4MiBX6FIAQgB34gBSAGfoVCIImFIQUCfiAIIANBEGspAACFIgRCIIgiBiAAKQAAIAKFIgJCIIgiB34gBEL/////D4MiBCACQv////8PgyICfoUgBCAHfiACIAZ+hUIgiYUiAiABQR9NDQAaIANBGGspAAAgCIUiBEIgiCIGIAApABggBYUiBUIgiCIHfiAEQv////8PgyIEIAVC/////w+DIgV+hSAEIAd+IAUgBn6FQiCJhSEFIANBIGspAAAgCIUiBEIgiCIGIAApABAgAoUiAkIgiCIHfiAEQv////8PgyIEIAJC/////w+DIgJ+hSAEIAd+IAIgBn6FQiCJhSICIAFBwABJDQAaIANBKGspAAAgCIUiBEIgiCIGIAApACggBYUiBUIgiCIHfiAEQv////8PgyIEIAVC/////w+DIgV+hSAEIAd+IAUgBn6FQiCJhSEFIANBMGspAAAgCIUiBEIgiCIGIAApACAgAoUiAkIgiCIHfiAEQv////8PgyIEIAJC/////w+DIgJ+hSAEIAd+IAIgBn6FQiCJhSICIAFB4ABJDQAaIANBOGspAAAgCIUiBEIgiCIGIAApADggBYUiBUIgiCIHfiAEQv////8PgyIEIAVC/////w+DIgV+hSAEIAd+IAUgBn6FQiCJhSEFIANBQGopAAAgCIUiCEIgiCIEIAApADAgAoUiAkIgiCIGfiAIQv////8PgyIIIAJC/////w+DIgJ+hSAGIAh+IAIgBH6FQiCJhQsgF0EQaiQAIAWFC14BAn8jAEEwayIAJAAgABDUEAJAA0ACQEGI9MUAQYj0xQAtAAAiAUEBIAEbOgAAIAFFDQAgAUECRw0BDAILC0HY88UAIABBMPwKAABBiPTFAEECOgAACyAAQTBqJAALoAkCAn4BfyMAQRBrIgMkACAAIANBCGqtIgFCz83R8gt+QiCJIAFC7JikpwN+hULoBBDREELY88UAENEQIgFCIIgiAkLPzdHyC34gAUL/////D4MiAULsmKSnA36FIAJC7JikpwN+IAFCz83R8gt+hUIgiYUiAUIgiCICQs/N0fILfiABQv////8PgyIBQuyYpKcDfoUgAkLsmKSnA34gAULPzdHyC36FQiCJhSIBQiCIIgJCz83R8gt+IAFC/////w+DIgFC7JikpwN+hSACQuyYpKcDfiABQs/N0fILfoVCIImFIgFCgYCAgIiAgICAf4Q3AwAgACABQiCIIgJCz83R8gt+IAFC/////w+DIgFC7JikpwN+hSACQuyYpKcDfiABQs/N0fILfoVCIImFIgFCIIgiAkLPzdHyC34gAUL/////D4MiAULsmKSnA36FIAJC7JikpwN+IAFCz83R8gt+hUIgiYUiAUIgiCICQs/N0fILfiABQv////8PgyIBQuyYpKcDfoUgAkLsmKSnA34gAULPzdHyC36FQiCJhSIBQoGAgICIgICAgH+ENwMIIAAgAUIgiCICQs/N0fILfiABQv////8PgyIBQuyYpKcDfoUgAkLsmKSnA34gAULPzdHyC36FQiCJhSIBQiCIIgJCz83R8gt+IAFC/////w+DIgFC7JikpwN+hSACQuyYpKcDfiABQs/N0fILfoVCIImFIgFCIIgiAkLPzdHyC34gAUL/////D4MiAULsmKSnA36FIAJC7JikpwN+IAFCz83R8gt+hUIgiYUiAUKBgICAiICAgIB/hDcDECAAIAFCIIgiAkLPzdHyC34gAUL/////D4MiAULsmKSnA36FIAJC7JikpwN+IAFCz83R8gt+hUIgiYUiAUIgiCICQs/N0fILfiABQv////8PgyIBQuyYpKcDfoUgAkLsmKSnA34gAULPzdHyC36FQiCJhSIBQiCIIgJCz83R8gt+IAFC/////w+DIgFC7JikpwN+hSACQuyYpKcDfiABQs/N0fILfoVCIImFIgFCgYCAgIiAgICAf4Q3AxggACABQiCIIgJCz83R8gt+IAFC/////w+DIgFC7JikpwN+hSACQuyYpKcDfiABQs/N0fILfoVCIImFIgFCIIgiAkLPzdHyC34gAUL/////D4MiAULsmKSnA36FIAJC7JikpwN+IAFCz83R8gt+hUIgiYUiAUIgiCICQs/N0fILfiABQv////8PgyIBQuyYpKcDfoUgAkLsmKSnA34gAULPzdHyC36FQiCJhSIBQoGAgICIgICAgH+ENwMgIAAgAUIgiCICQs/N0fIL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ASAcICGtIARCxL/dhQV+fCADQiCIfCIDPgKIASAcICKtIARCmcbEqgR+fCADQiCIfCIDPgKMASAcIAQgIK18IANCIIh8IgM+ApABIBwgG60gA0IgiHwiAz4ClAEgHCACrSADQiCIfCIDPgKYASAcIAGtIANCIIh8IgQ+ApwBIBxB4ABqIBxBgAFqEOYQIBxCADcDoAEgHEIANwOoASAcQgA3A7ABIBxCADcDuAFBACECQQAhAQNAIAJBIEcEQCAcQaABaiACaiAcQeAAaiACajUCACABQR91rHwgAiAcajUCAH0iAz4CACACQQRqIQIgA0IgiKchAQwBCwsgACAcQeAAaiAcQaABaiAEQiCIpxCuDiABQR92EK4OELsNchCuDhDZECAcQcABaiQAIB5B0AFqJAALDAAgAEHkssUAEI0RC2YBAn8jAEEQayICJAAgAiABLQAgIgM6AA8gA0EBRgRAIAAgASkCGDcCGCAAIAEpAhA3AhAgACABKQIINwIIIAAgASkCADcCACACQRBqJAAPCyACQQ9qQYy3xQAgAUGQt8UAENgQAAtNAQF/IwBBQGoiAiQAIAIgASkAGDcDOCACIAEpABA3AzAgAiABKQAINwMoIAIgASkAADcDICACIAJBIGoQhxEgACACEIsRIAJBQGskAAsxAQJ/IwBBMGsiAiQAIAJBDGoiAyABEOgQIAAgAxDcECACQTBqJAAgAEEgaiABEIARC/INARB/IwBB4ARrIgskACALQbACaiIFIAFB+AD8CgAAIAsgAikCGDcCwAMgCyACKQIQNwK4AyALIAIpAgg3ArADIAsgAikCADcCqAMgC0HIA2oiASADQfgA/AoAACALIAQpAhg3AtgEIAsgBCkCEDcC0AQgCyAEKQIINwLIBCALIAQpAgA3AsAEIAsgBUGYAfwKAAAgC0GYAWogAUGYAfwKAABBACECIwBB0C1rIgwkACAMQYweahCJESAMQcwlahCJEQNAIAJBgB5HBEAgDEEMaiACaiAMQYweakGAD/wKAAAgAkGAD2ohAgwBCwtBACECIAxBji1qQQBBIfwLACAMQa8takEAQSH8CwADQCACQYQBRwRAIAxBjB5qIAJqIAxBji1qQcIA/AoAACACQcIAaiECDAELCyAAIQQgCyEAIAxBjB5qIQNBACECIwBB4BRrIgUkACAFQdAL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IAJqIAEgAmooAgA2AgAgAkEEaiECDAELCwtyAQJ/IwBBIGsiAkIANwMYIAJCADcDECACQgA3AwggAkIANwMAA0AgA0EgRgRAIAAgAikDGDcCGCAAIAIpAxA3AhAgACACKQMINwIIIAAgAikDADcCAAUgAiADaiABIANqKAIANgIAIANBBGohAwwBCwsLRAEBfyAAQgA3AhggAEIANwIQIABCADcCCCAAQgA3AgADQCACQSBHBEAgACACaiABIAJqKAIANgIAIAJBBGohAgwBCwsLNwAgACABENsQELsNOgAgIAAgASkCGDcCGCAAIAEpAhA3AhAgACABKQIINwIIIAAgASkCADcCAAsNAEEAIAAoAgBBAEdrC4kBAgJ/AX4jAEEgayIDQgA3AxggA0IANwMQIANCADcDCCADQgA3AwADQCAEQSBGRQRAIAMgBGogAiAEajUCACAFIAEgBGo1AgB8fCIFPgIAIAVCIIghBSAEQQRqIQQMAQsLIAAgAykDGDcCGCAAIAMpAxA3AhAgACADKQMINwIIIAAgAykDADcCAAvlAgEUfyMAQdAAayICJAAgAiABEPEQIAIQ9RAhASACQShqIAJBARD9ECACKAIkIQMgAigCTCEMIAIoAgAhBCACKAIoIQ0gAigCBCEFIAIoAiwhDiACKAIIIQYgAigCMCEPIAIoAgwhByACKAI0IRAgAigCECEIIAIoAjghESACKAIUIQkgAigCPCESIAIoAhghCiACKAJAIRMgAigCHCELIAIoAkQhFCAAQQAgAUH/AXFrIgEgAigCICIVIAIoAkhzcSAVczYCICAAIAsgCyAUcyABcXM2AhwgACAKIAogE3MgAXFzNgIYIAAgCSAJIBJzIAFxczYCFCAAIAggCCARcyABcXM2AhAgACAHIAcgEHMgAXFzNgIMIAAgBiAGIA9zIAFxczYCCCAAIAUgBSAOcyABcXM2AgQgACAEIAQgDXMgAXFzNgIAIAAgAyADIAxB////AXFzIAFxczYCJCACQdAAaiQAC+4EAQ9/IwBB0AZrIgQkACAEQQhqIgggASACENcQIARBMGoiByABQShqIgogAkEoaiILENcQIARB2ABqIgkgAUHQAGoiDCACQdAAaiINENcQIARBqAZqIgMgCCAHEO0QIARBgAFqIg8gA0ECEO4QIAMgByAJEO0QIARB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AhQgACAKIAp+IAggDH4gBCALfnwgAiANfnxCAYZ8IA5CCoZ8IAMgA34gByAJfkIBhnwgBUIaiHwiBUL///8fgyIOQpD6AH58IAZCGoh8IganQf///x9xNgIYIAAgDkIKhiAIIAt+IAQgCn58IAIgDH58IAcgDX58QgGGfCADIAl+QgGGIAVCGoh8IgVC////H4MiDkKQ+gB+fCAGQhqIfCIGp0H///8fcTYCHCAAIAQgBH4gAiALfiAIIAp+fCAHIAx+fCADIA1+fEIBhnwgDkIKhnwgCSAJfiAFQhqIQv////8Pg3wiAkL///8fgyIDQpD6AH58IAZCGoh8IgSnQf///x9xNgIgIAAgEkL+//8fgyADQgqGfCACQhqIIgJC/////w+DQpD6AH58IARCGoh8IgOnQf///wFxNgIkIAAgAkIOhiADQhaIfCICQtEHfiAPQv3//x+DfCIDp0H///8fcTYCACAAIBFC////H4MgEEL///8fgyACQgaGfCADQhqIQv////8Pg3wiAkIaiHw+AgggACACp0H///8fcTYCBAsxAQJ/IwBBgAFrIgMkACADQQhqIgQgACABIAIQgxEgACAEQfgA/AoAACADQYABaiQAC2kBAX8gACgCJCIBQf///wFLIAFB////AUYgACgCICAAKAIcIAAoAhggACgCFCAAKAIQIAAoAgwgACgCCHFxcXFxcUH///8fRnEgACgCBCAAKAIAQdEHakEadmpBQGtB////H0txchCuDgtRAQF/IwBB0ABrIgMkACADIAFBKPwKAAADQCACBEAgA0EoaiIBIAMQ8xAgAyABQSj8CgAAIAJBAWshAgwBCwsgACADQSj8CgAAIANB0ABqJAALhgMCA38BfiMAQaABayIEJAAgBEIANwNYIARCADcDUCAEQgA3A0ggBEIANwNAA0AgA0EgRwRAIARBQGsgA2ogAiADajUCACABIANqNQIAIAWtfHwiBj4CACAGQiCIpyEFIANBBGohAwwBCwsgBEIANwN4IARCADcDcCAEQgA3A2ggBEIANwNgQQAhA0EAIQEDQCADQSBHBEAgBEHgAGogA2ogBEFAayADajUCACABQR91rHwgA0G8tcUAajUCAH0iBj4CACAGQiCIpyEBIANBBGohAwwBCwsgBa0gAUEfdq19QiCIpyEBQQAhAwNAIANBIEcEQCAEQSBqIANqIAE2AgAgA0EEaiEDDAELCyAEIARBIGoQ5hAgBEIANwOAASAEQgA3A4gBIARCADcDkAEgBEIANwOYAUEAIQMDQCADQSBHBEAgBEGAAWogA2ogAyAEaigCACADQby1xQBqKAIAcTYCACADQQRqIQMMAQsLIAAgBEHgAGogBEGAAWoQ6hAgBEGgAWokAAssAQF+IAAgAyACrSABrX4iBadqIgE2AgAgACAEIAVCIIinaiABIANJajYCBAupAQEBfyMAQUBqIgMkACADIAEpAhg3AxggAyABKQIQNwMQIAMgASkCCDcDCCADIAEpAgA3AwADQCACBEAgA0EgaiADIAMQ2hAgAyADKQI4NwMYIAMgAykCMDcDECADIAMpAig3AwggAyADKQIgNwMAIAJBAWshAgwBCwsgACADKQMYNwIYIAAgAykDEDcCECAAIAMpAwg3AgggACADKQMANwIAIANBQGskAAv6AQIDfwF+IwBBMGsiAyQAA0AgAkEgRwRAIAEgAmooAgAgBHIhBCACQQRqIQIMAQsLIAMgBDYCLCADQSxqEOkQIQQgA0IANwMIIANCADcDECADQgA3AxggA0IANwMgQQAhAgNAIAJBIEcEQCADQQhqIAJqIAJBvLXFAGo1AgAgBSABIAJqNQIAfH0iBT4CACAFQj+IIQUgAkEEaiECDAELCyAAIAMpAyA3AhggACADKQMYNwIQIAAgAykDEDcCCCAAIAMpAwg3AgBBACECA0AgAkEgRgRAIANBMGokAAUgACACaiIBIAEoAgAgBHE2AgAgAkEEaiECDAELCwsJACAAIAEQ/BALvgEBA38jAEEwayICJAAgAkIANwMgIAJCADcDGCACQgA3AxAgAkIANwMIIAFBHGohA0EAIQEDQCABQSBGIgQgBHJFBEAgAiADKAIAIgRB/4H8B3FBCHggBEEYeEH/gfwHcXI2AiwgAkEIaiABakEEIAJBLGpBBEHctcUAEJENIAFBBGohASADQQRrIQMMAQsLIAAgAikDIDcAGCAAIAIpAxg3ABAgACACKQMQNwAIIAAgAikDCDcAACACQTBqJAAL8wEBAX8gACABKAIAIAJB0QdsaiIDQf///x9xNgIAIAAgASgCBCACQQZ0aiADQRp2aiICQf///x9xNgIEIAAgASgCCCACQRp2aiICQf///x9x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IAEtAAAiBCAEQQhqIgRB8AFxazoAACABQQFqIgEgAS0AACAEwEEEdmo6AAAgAkEBaiECDAALAAsFIANBD2ogAmoiBEEBaiABLQAAIgVBBHY6AAAgBCAFQQ9xOgAAIAJBAmohAiABQQFrIQEMAQsLIAAgA0EPakEh/AoAACADQdAAaiQACyoBAn8jAEEwayICJAAgAkEMaiIDIAFBIGoQ6BAgACADENwQIAJBMGokAAvHAQEEfyMAQYACayIDJAAgA0EMakGUtsUAQfgA/AoAACACIALAQQd1IgRzIARrIQVBASEEA0AgBEEJRwRAIAMgBToAhwEgAyAEOgCIASADQQxqIAEgA0GIAWotAAAgA0GHAWotAABzIgZBACAGa3LAQQBOEK4OEPQQIAFB+ABqIQEgBEEBaiEEDAELCyACQYABcUEHdhCuDiECIANBiAFqIgQgA0EMaiIBEPIQIAEgBCACEPQQIAAgAUH4APwKAAAgA0GAAmokAAs/AQJ/A0AgAUEgRkUEQCABQZy7xQBqNQIAIAJBH3WsfCAAIAFqNQIAfUIgiKchAiABQQRqIQEMAQsLIAIQoRELiwcBOn8gAigCACEhIAEoAgAhBCACKAIEISIgASgCBCEFIAIoAgghIyABKAIIIQYgAigCDCEkIAEoAgwhByACKAIQISUgASgCECEIIAIoAhQhJiABKAIUIQkgAigCGCEnIAEoAhghCiACKAIcISggASgCHCELIAIoAiAhKSABKAIgIQwgAigCJCEqIAEoAiQhDSACKAIoISsgASgCKCEOIAIoAiwhLCABKAIsIQ8gAigCMCEtIAEoAjAhECACKAI0IS4gASgCNCERIAIoAjghLyABKAI4IRIgAigCPCEwIAEoAjwhEyACKAJAITEgASgCQCEUIAIoAkQhMiABKAJEIRUgAigCSCEzIAEoAkghFiACKAJMITQgASgCTCEXIAIoAlAhNSABKAJQIRggAigCVCE2IAEoAlQhGSACKAJYITcgASgCWCEaIAIoAlwhOCABKAJcIRsgAigCYCE5IAEoAmAhHCACKAJkITogASgCZCEdIAIoAmghOyABKAJoIR4gAigCbCE8IAEoAmwhHyACKAJwIT0gASgCcCEgIABBACADQf8BcWsiAyABKAJ0IgEgAigCdHNxIAFzNgJ0IAAgICAgID1zIANxczYCcCAAIB8gHyA8cyADcXM2AmwgACAeIB4gO3MgA3FzNgJoIAAgHSAdIDpzIANxczYCZCAAIBwgHCA5cyADcXM2AmAgACAbIBsgOHMgA3FzNgJcIAAgGiAaIDdzIANxczYCWCAAIBkgGSA2cyADcXM2AlQgACAYIBggNXMgA3FzNgJQIAAgFyAXIDRzIANxczYCTCAAIBYgFiAzcyADcXM2AkggACAVIBUgMnMgA3FzNgJEIAAgFCAUIDFzIANxczYCQCAAIBMgEyAwcyADcXM2AjwgACASIBIgL3MgA3FzNgI4IAAgESARIC5zIANxczYCNCAAIBAgECAtcyADcXM2AjAgACAPIA8gLHMgA3FzNgIsIAAgDiAOICtzIANxczYCKCAAIA0gDSAqcyADcXM2AiQgACAMIAwgKXMgA3FzNgIgIAAgCyALIChzIANxczYCHCAAIAogCiAncyADcXM2AhggACAJIAkgJnMgA3FzNgIUIAAgCCAIICVzIANxczYCECAAIAcgByAkcyADcXM2AgwgACAGIAYgI3MgA3FzNgIIIAAgBSAFICJzIANxczYCBCAAIAQgBCAhcyADcXM2AgALjwEBBH8jAEHACGsiAyQAA0AgAkHAB0YEQAJAQQAhAgNAIAJByAZGDQEgA0HIB2oiBCABIANBCGogAmoiBRDsECAFQfgAaiAEQfgA/AoAACACQfgAaiECDAALAAsFIANBCGogAmogAUH4APwKAAAgAkH4AGohAgwBCwsgACADQQhqQcAH/AoAACADQcAIaiQACy8BAn8jAEGAAWsiAiQAIAJBCGoiAyAAIAEQ7BAgACADQfgA/AoAACACQYABaiQAC0MBAX8jAEEgayICJAAgAiABKQAYNwMYIAIgASkAEDcDECACIAEpAAg3AwggAiABKQAANwMAIAAgAhCHESACQSBqJAALCQAgACABEKIRC04BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgAUGIu8UAQQVBjbvFAEEEIABBCGpB6LrFAEGRu8UAQQggAkEMakH4usUAEPMRIAJBEGokAAuOAQAgAEGUtsUAQfgA/AoAACAAQfgAakGUtsUAQfgA/AoAACAAQfABakGUtsUAQfgA/AoAACAAQegCakGUtsUAQfgA/AoAACAAQeADakGUtsUAQfgA/AoAACAAQdgEakGUtsUAQfgA/AoAACAAQdAFakGUtsUAQfgA/AoAACAAQcgGakGUtsUAQfgA/AoAAAsiACAAIAFBp7nFAEGaucUAQZS5xQBBgLnFAEGQucUAELESC4gBAgN/AX4jAEEgayICJAAgAkIANwMYIAJCADcDECACQgA3AwggAkIANwMAA0AgA0EgRkUEQCACIANqIAEgA2o1AgAgBEEfdax8IANBvLXFAGo1AgB9IgU+AgAgBUIgiKchBCADQQRqIQMMAQsLIAAgASACIARBH3YQrg4Quw0Q2RAgAkEgaiQACxgAIAAgAUGousUAQay6xQBBvLrFABCyEgtUAQN/IwBBEGsiAyQAA0AgAkEgRkUEQCABIAJqKAIAIAAgAmooAgBzIARyIQQgAkEEaiECDAELCyADIAQ2AgwgA0EMahDpEEF/cxChESADQRBqJAALhAIBBn8jAEEgayICJAAjAEFAaiIBQgA3AzggAUIANwMwIAFCADcDKCABQgA3AyAgACEEIAFBIGohBQNAAkAgA0EIRg0AIAQoAgBBAXYhBiAFIANBB0kEfyAEQQRqKAIAQR90IAZyBSAGCzYCACAFQQRqIQUgBEEEaiEEIANBAWohAwwBCwsgASABKQM4NwMYIAEgASkDMDcDECABIAEpAyg3AwggASABKQMgNwMAIAIgASkDGDcCGCACIAEpAxA3AhAgAiABKQMINwIIIAIgASkDADcCACAAIAIpAhg3AhggACACKQIQNwIQIAAgAikCCDcCCCAAIAIpAgA3AgAgAkEgaiQAC0UBAX8jAEEgayICJAAgAiAAIAEQ9xAgACACKQIYNwIYIAAgAikCEDcCECAAIAIpAgg3AgggACACKQIANwIAIAJBIGokAAvAAgIEfwF+IwBBIGsiBCQAIwBBgAFrIgMkACADQgA3A1ggA0IANwNQIANCADcDSCADQgA3A0ADQCACQSBHBEAgA0FAayACaiAAIAJqNQIAIAVBH3WsfCABIAJqNQIAfSIGPgIAIAZCIIinIQUgAkEEaiECDAELC0EAIQIDQCACQSBHBEAgA0EgaiACaiAFNgIAIAJBBGohAgwBCwsgAyADQSBqEOYQIANCADcDYCADQgA3A2ggA0IANwNwIANCADcDeEEAIQIDQCACQSBHBEAgA0HgAGogAmogAiADaigCACACQby1xQBqKAIAcTYCACAC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OgAACyABQQFBAUEAIANBDWogAmpBAyACaxDuESADQRBqJAALTwECfyAAKAIEIQIgACgCACEDAkAgACgCCCIALQAARQ0AIANBmuXFAEEEIAIoAgwRBgBFDQBBAQ8LIAAgAUEKRjoAACADIAEgAigCEBECAAsOACAAIAFBoOXFABC+EgvjAQECfyMAQRBrIgMkACAAKAIAIQACfwJAIAEoAggiAkGAgIAQcUUEQCACQYCAgCBxDQEgACABEPYRDAILIAAoAgAhAkEAIQADQCAAIANqQQ9qIAJBD3EtAODTRToAACAAQQFrIQAgAkEEdiICDQALIAFBAUGe5cUAQQIgACADakEQakEAIABrEO4RDAELIAAoAgAhAkEAIQADQCAAIANqQQ9qIAJBD3EtAKDlRToAACAAQQFrIQAgAkEEdiICDQALIAFBAUGe5cUAQQIgACADakEQakEAIABrEO4RCyADQRBqJAALswYBD38jAEEQayIJJABBASENAkAgAigCACILQSIgAigCBCIOKAIQIg8RAgANAAJAIAFFBEBBACECDAELQQAgAWshECABIQMgACEFAkACfwNAIAMgBWpBACECAkADQCACIAVqIggtAAAiBkH/AGtB/wFxQaEBSSAGQSJGciAGQdwARnINASADIAJBAWoiAkcNAAsgAyAHagwCCyAIQQFqIQUCQCAILAAAIgpBAE4EQCAKQf8BcSEDDAELIAUtAABBP3EhAyAKQR9xIQYgCEECaiEFIApBX00EQCAGQQZ0IANyIQMMAQsgBS0AAEE/cSADQQZ0ciEDIAhBA2ohBSAKQXBJBEAgAyAGQQx0ciEDDAELIAZBEnRBgIDwAHEgBS0AAEE/cSADQQZ0cnIhAyAIQQRqIQULIAkgA0GBgAQQ5xECQCAJLQANIgggCS0ADCIKayIGQf8BcUEBRg0AAkACQAJAIAQgAiAHaiIMSw0AAkAgBEUNACABIARNBEAgASAERw0CDAELIAAgBGosAABBv39MDQELAkAgDEUNACABIAxNBEAgDCAQakUNAQwCCyAAIAdqIAJqLAAAQb9/TA0BCyALIAAgBGogByAEayACaiAOKAIMIgQRBgBFDQEMAgsgACABIAQgDEGw5cUAEPcRAAsCQCAIQYEBTwRAIAsgCSgCACAPEQIADQIMAQsgCyAJIApqIAYgBBEGAA0B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78UALQAADQBB/O7FACgCACADKAJIQfjuxQAoAgBqQewAakkEQEGE78UAQQE6AAAMAQtB8O7FACAEEJkGIAMQxwYLIAJBAjoAViACEHILIABBAjoAViABQeAAaiQACysBAX8jAEEQayIFJAAgBSAANgIMIAEgBCADIAVBDGogAhDxESAFQRBqJAALuAMCBn8EfiMAQSBrIgMkACADQgA3AwggA0IANwMAIANBADoAHCADQdjzxQA2AhggAyAAKQMANwMQIwBBEGsiBSQAIAMpAwghCSADKQMAIQogAykDECELIAMoAhghByADLQAcIQQgAiEAA0BBBCAAayEAAkADQCAAQQRGDQEgASgAACEGIARB/wFxIghB4ABNBEAgAUEEaiEBIAUgBq1CACAIEJASIABBBGohACAEQSBqIQQgBSkDCCAJhCEJIAUpAwAgCoQhCgwBCwsgAyAHKQMAIAmFIglCIIgiDCAKIAuFIgpCIIgiC34gCUL/////D4MiCSAKQv////8PgyIKfoUgCSALfiAKIAx+hUIgiYUiCzcDECABQQRqIQFBACAAayEAIAatIQpCACEJQSAhBAwBCwsgAyAKNwMAIAMgBDoAHCADIAk3AwggBUEQaiQAAn4gAy0AHEUEQCADKQMQDAELIAMoAhgpAwAgAykDCIUiCUIgiCIKIAMpAxAgAykDAIUiC0IgiCIMfiAJQv////8PgyIJIAtC/////w+DIgt+hSAJIAx+IAogC36FQiCJhQsgA0EgaiQACyQBAX8gACgCACAAKAIIIgRrIAFJBEAgACAEIAEgAyACEJMNCws8AQF/IwBBEGsiBSQAIAVBCGogAiABIAQgAxCoByAFKAIMIQEgACAFKAIINgIAIAAgATYCBCAFQRBqJAALMgEBfyABKAIIIgRFBEBBAUEAQQAgAhDmEQALIAAgBEEBazYCBCAAIAEoAgQgA2o2AgALPAAgAiADSQRAQeClwwBBEyAEEOIRAAsgACADNgIEIAAgATYCACAAIAIgA2s2AgwgACABIAMgBWxqNgIICyYBAX8gACgCCCIEIAFNBEAgASAEIAIQ6BEACyAAKAIEIAEgA2xqCzkCAX8BfiMAQRBrIgQkACAEQQhqIAEgAyACEPEFIAQpAwghBSAAQQA2AgggACAFNwIAIARBEGokAAt7AgF/An4jAEEgayID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bGQgbm90IHJlYWQgc3RvcmFnZSDABiBzbG90IMAAEGhlYWRlciBkZWNsYXJlZCDAFCBwYXlsb2FkIGJ5dGVzLCBnb3QgwAArY3JlYXRlIGluaXRjb2RlIHNpemUgbGltaXQgZXhjZWVkZWQ6IGxpbWl0IMAGLCBnb3QgwAAVZXhwZWN0ZWQgQUJJIHZlcnNpb24gwAYsIGdvdCDAABhpbnZhbGlkIG5vbmNlOiBleHBlY3RlZCDABiwgZ290IMAAG2ludmFsaWQgY2hhaW4gaWQ6IGV4cGVjdGVkIMAGLCBnb3QgwAAgaW50cmluc2ljIGdhcyB0b28gbG93OiByZXF1aXJlZCDABiwgZ290IMAAHGhvc3QgY291bGQgbm90IHJlYWQgYWNjb3VudCDAABZ0cmFuc2FjdGlvbiBnYXMgbGltaXQgwBkgZXhjZWVkcyBibG9jayBnYXMgbGltaXQgwAAWc2xpY2UgaW5kZXggc3RhcnRzIGF0IMANIGJ1dCBlbmRzIGF0IMAAFWJ5dGUgcmFuZ2Ugc3RhcnRzIGF0IMANIGJ1dCBlbmRzIGF0IMAAIGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgwBIgYnV0IHRoZSBpbmRleCBpcyDAAClzaXplIHRvbyBsYXJnZTogdGhlIGludGVnZXIgdHlwZSBjYW4gZml0IMAWIGJ5dGVzLCBidXQgbmJ5dGVzIGlzIMAADGZhdGFsIGVycm9yIMAAE3Vuc3VwcG9ydGVkIGNhbGxlciDAABZ0cmFuc2FjdGlvbiBnYXMgbGltaXQgwA0gZXhjZWVkcyBjYXAgwAASdW5rbm93biBvcGVyYXRpb24gwAARc3RhcnQgYnl0ZSBpbmRleCDAJyBpcyBvdXQgb2YgYm91bmRzIGZvciBzdHJpbmcgb2YgbGVuZ3RoIMAAD2VuZCBieXRlIGluZGV4IMAnIGlzIG91dCBvZiBib3VuZHMgZm9yIHN0cmluZyBvZiBsZW5ndGggwAAScmFuZ2Ugc3RhcnQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAH2hvc3QgY291bGQgbm90IHJlYWQgYmxvY2sgaGFzaCDAADtibG9iIGZlZSBjYXAgbGVzcyB0aGFuIGJsb2IgYmFzZSBmZWU6IG1heF9mZWVfcGVyX2Jsb2JfZ2FzIMAQLCBibG9iX2Jhc2VfZmVlIMAALGZlZSBjYXAgbGVzcyB0aGFuIGJhc2UgZmVlOiBtYXhfZmVlX3Blcl9nYXMgwAssIGJhc2VfZmVlIMAAGWhvc3QgY291bGQgbm90IHJlYWQgY29kZSDAABZ1bmtub3duIGNoYW5nZSByZWNvcmQgwAAQdW5rbm93biBzcGVjIGlkIMAAHnVuZXhwZWN0ZWQgc2NhbGFyIGxlbmd0aC4gZ290IMALLCBleHBlY3RlZCDAAB5iaXQtdmVjdG9yIGNhcGFjaXR5IGV4Y2VlZGVkOiDAAyA+IMAAGXNwbGl0X29mZiBvdXQgb2YgYm91bmRzOiDABCA8PSDAABlyYW5nZSBlbmQgb3V0IG9mIGJvdW5kczogwAQgPD0gwAAQYXNzZXJ0aW9uIGBsZWZ0IMAXIHJpZ2h0YCBmYWlsZWQKICBsZWZ0OiDACQogcmlnaHQ6IMAAEGFzc2VydGlvbiBgbGVmdCDAECByaWdodGAgZmFpbGVkOiDACQogIGxlZnQ6IMAJCiByaWdodDogwAAGaW5kZXggwBAgb3V0IG9mIGJvdW5kczogwAAGaW5kZXggwA8gb3V0IG9mIHJhbmdlOiDAAMACOiDAAAFVwCEgaXMgdG9vIHNtYWxsIHRvIHN0b3JlIHJlcXVlc3RlZCDABSBiaXRzACFjYW5ub3QgY29udmVydCBhIHNsaWNlIG9mIGxlbmd0aCDACyB0byBBZGRyZXNzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcHJpbWVmaWVsZC0wLjE0LjAvc3JjL21vbnR5LnJzAC9ydXN0Yy8yZDgxNDRiNzg4MDU5N2I2ZTZkM2RmZDYzYTlhOWVmYWUzZjUzM2QzL2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL2J0cmVlL21hcC9lbnRyeS5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9ldm0yLWU3ZjNkZjA0YjE5MDBmMzgvOGZmMzZiNS9jcmF0ZXMvZXZtMi9zcmMvaW50ZXJwcmV0ZXIvbWVtb3J5LnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2V2bTItZTdmM2RmMDRiMTkwMGYzOC84ZmYzNmI1L2NyYXRlcy9ldm0yL3NyYy9zdG9yYWdlX2tleS5ycwAvcnVzdGMvMmQ4MTQ0Yjc4ODA1OTdiNmU2ZDNkZmQ2M2E5YTllZmFlM2Y1MzNkMy9saWJyYXJ5L2NvcmUvc3JjL2l0ZXIvYWRhcHRlcnMvc3RlcF9ieS5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NyeXB0by1iaWdpbnQtMC43LjUvc3JjL3VpbnQvYXJyYXkucnMAL2NhcmdvL2dpdC9jaGVja291dHMvZXZtMi1lN2YzZGYwNGIxOTAwZjM4LzhmZjM2YjUvY3JhdGVzL2V2bTIvc3JjL2V2bS90eC5ycwAvcnVzdGMvMmQ4MTQ0Yjc4ODA1OTdiNmU2ZDNkZmQ2M2E5YTllZmFlM2Y1MzNkMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL2luZGV4LnJzAC9ydXN0Yy8yZDgxNDRiNzg4MDU5N2I2ZTZkM2RmZDYzYTlhOWVmYWUzZjUzM2QzL2xpYnJhcnkvYWxsb2Mvc3JjL2JvcnJvdy5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NyeXB0by1iaWdpbnQtMC43LjUvc3JjL21vZHVsYXIvcG93LnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaGFzaGJyb3duLTAuMTcuMS9zcmMvcmF3LnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2V2bTItZTdmM2RmMDRiMTkwMGYzOC84ZmYzNmI1L2NyYXRlcy9ldm0yL3NyYy9pbnRlcnByZXRlci9pbnN0cnVjdGlvbnMvZW52LnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2FsZ2VicmEtOWVlN2JiOGI1ZTljMjFkNC9hNzFkOTc5L2VjL3NyYy9zY2FsYXJfbXVsL2dsdi5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9hbGdlYnJhLTllZTdiYjhiNWU5YzIxZDQvYTcxZDk3OS9lYy9zcmMvaGFzaGluZy9jdXJ2ZV9tYXBzL3N3dS5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2J5dGVzLTEuMTIuMS9zcmMvYnVmL2J1Zl9tdXQucnMAL2NhcmdvL2dpdC9jaGVja291dHMvZXZtMi1lN2YzZGYwNGIxOTAwZjM4LzhmZjM2YjUvY3JhdGVzL2V2bTIvc3JjL2ludGVycHJldGVyL2hvc3QucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbGxveS1laXA3NzAyLTAuNi4zL3NyYy9hdXRoX2xpc3QucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9zb3J0L3NoYXJlZC9zbWFsbHNvcnQucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9zb3J0L3Vuc3RhYmxlL3F1aWNrc29ydC5ycwAvcnVzdGMvMmQ4MTQ0Yjc4ODA1OTdiNmU2ZDNkZmQ2M2E5YTllZmFlM2Y1MzNkMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL251bS1iaWdpbnQtMC40Ljgvc3JjL2JpZ3VpbnQvY29udmVydC5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlYzEtMC43LjMvc3JjL3BvaW50LnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VjMS0wLjguMS9zcmMvcG9pbnQucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcnVpbnQtMS4yMC4wL3NyYy9mbXQucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9udW0tYmlnaW50LTAuNC44L3NyYy9iaWdfZGlnaXQucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9rZWNjYWstMC4yLjAvc3JjL2JhY2tlbmRzL3NvZnQucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zaGEyLTAuMTEuMC9zcmMvc2hhMjU2L3NvZnQucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9udW0tYmlnaW50LTAuNC44L3NyYy9iaWd1aW50L3NoaWZ0LnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbnVtLWJpZ2ludC0wLjQuOC9zcmMvYmlnaW50L3NoaWZ0LnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvY3J5cHRvLWJpZ2ludC0wLjcuNS9zcmMvdWludC9yZWZfdHlwZS9jdC5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2F1cm9yYS1lbmdpbmUtbW9kZXhwLTEuMi4wL3NyYy9tcG5hdC5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2VjZHNhLTAuMTYuOS9zcmMvaGF6bWF0LnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvZWNkc2EtMC4xNy4wL3NyYy9oYXptYXQucnMAL2NhcmdvL2dpdC9jaGVja291dHMvYWxnZWJyYS05ZWU3YmI4YjVlOWMyMWQ0L2E3MWQ5NzkvZmYvc3JjL2JpdHMucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbGxveS1wcmltaXRpdmVzLTEuNi4xL3NyYy9iaXRzL2FkZHJlc3MucnMAL2NhcmdvL2dpdC9jaGVja291dHMvYWxnZWJyYS05ZWU3YmI4YjVlOWMyMWQ0L2E3MWQ5NzkvZmYvc3JjL2NvbnN0X2hlbHBlcnMucnMAL2NhcmdvL2dpdC9jaGVja291dHMvZXZtMi1lN2YzZGYwNGIxOTAwZjM4LzhmZjM2YjUvY3JhdGVzL2V2bTIvc3JjL3ZlcnNpb24vZ2FzX3BhcmFtcy5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9ldm0yLWU3ZjNkZjA0YjE5MDBmMzgvOGZmMzZiNS9jcmF0ZXMvZXZtMi9zcmMvdXRpbHMucnMAL2NhcmdvL2dpdC9jaGVja291dHMvZXZtMi1lN2YzZGYwNGIxOTAwZjM4LzhmZjM2YjUvY3JhdGVzL2V2bTIvc3JjL3ByZWNvbXBpbGVzL2JsczEyXzM4MS91dGlscy5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9ldm0yLWU3ZjNkZjA0YjE5MDBmMzgvOGZmMzZiNS9jcmF0ZXMvZXZtMi9zcmMvcHJlY29tcGlsZXMva3pnX3BvaW50X2V2YWx1YXRpb24vYXJrd29ya3MucnMAL2NhcmdvL2dpdC9jaGVja291dHMvZXZtMi1lN2YzZGYwNGIxOTAwZjM4LzhmZjM2YjUvY3JhdGVzL2V2bTIvc3JjL3ByZWNvbXBpbGVzL2JuMjU0L2Fya3dvcmtzLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2V2bTItZTdmM2RmMDRiMTkwMGYzOC84ZmYzNmI1L2NyYXRlcy9ldm0yL3NyYy9wcmVjb21waWxlcy9ibHMxMl8zODEvYXJrd29ya3MucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9ieXRlcy0xLjEyLjEvc3JjL2J5dGVzLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcnVpbnQtMS4yMC4wL3NyYy9ieXRlcy5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9ldm0yLWU3ZjNkZjA0YjE5MDBmMzgvOGZmMzZiNS9jcmF0ZXMvZXZtMi9zcmMvZXZtL2JhbC9jaGFuZ2VzLnJzAC9ydXN0Yy8yZDgxNDRiNzg4MDU5N2I2ZTZkM2RmZDYzYTlhOWVmYWUzZjUzM2QzL2xpYnJhcnkvY29yZS9zcmMvY2hhci9tZXRob2RzLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvY29uc3Qtb2lkLTAuOS42L3NyYy9hcmNzLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvY29uc3Qtb2lkLTAuMTAuMi9zcmMvYXJjcy5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NyeXB0by1iaWdpbnQtMC43LjUvc3JjL3VpbnQvc2hyLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvY3J5cHRvLWJpZ2ludC0wLjcuNS9zcmMvdWludC9yZWZfdHlwZS9zaHIucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pdGVyLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd25hZi0wLjE0LjAvc3JjL2xpbWJfYnVmZmVyLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvY29uc3Qtb2lkLTAuMTAuMi9zcmMvYnVmZmVyLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYWxsb3ktcmxwLTAuMy4xNi9zcmMvaGVhZGVyLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcnVpbnQtMS4yMC4wL3NyYy9tb2R1bGFyLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2V2bTItZTdmM2RmMDRiMTkwMGYzOC84ZmYzNmI1L2NyYXRlcy9ldm0yL3NyYy9wcmVjb21waWxlcy9tb2RleHAucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jcnlwdG8tYmlnaW50LTAuNy41L3NyYy91aW50L3JlZl90eXBlL2NtcC5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3J1aW50LTEuMjAuMC9zcmMvc3VwcG9ydC9hbGxveV9ybHAucnMAL2NhcmdvL2dpdC9jaGVja291dHMvZXZtMi1lN2YzZGYwNGIxOTAwZjM4LzhmZjM2YjUvY3JhdGVzL2V2bTIvc3JjL3ByZWNvbXBpbGVzL2NyeXB0by5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL251bS1iaWdpbnQtMC40Ljgvc3JjL2JpZ3VpbnQvYWRkaXRpb24ucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jcnlwdG8tYmlnaW50LTAuNy41L3NyYy9tb2R1bGFyL3JlZHVjdGlvbi5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL251bS1iaWdpbnQtMC40Ljgvc3JjL2JpZ3VpbnQvc3VidHJhY3Rpb24ucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9udW0tYmlnaW50LTAuNC44L3NyYy9iaWd1aW50L211bHRpcGxpY2F0aW9uLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2FsZ2VicmEtOWVlN2JiOGI1ZTljMjFkNC9hNzFkOTc5L2ZmL3NyYy9maWVsZHMvbW9kZWxzL3F1YWRyYXRpY19leHRlbnNpb24ucnMAL2NhcmdvL2dpdC9jaGVja291dHMvYWxnZWJyYS05ZWU3YmI4YjVlOWMyMWQ0L2E3MWQ5NzkvZmYvc3JjL2ZpZWxkcy9tb2RlbHMvY3ViaWNfZXh0ZW5zaW9uLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbnVtLWJpZ2ludC0wLjQuOC9zcmMvYmlndWludC9kaXZpc2lvbi5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2N0dXRpbHMtMC40LjIvc3JjL3RyYWl0cy9jdF9hc3NpZ24ucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9jb3JlL3NyYy9mbXQvbnVtLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2V2bTItZTdmM2RmMDRiMTkwMGYzOC84ZmYzNmI1L2NyYXRlcy9ldm0yL3NyYy9wcmVjb21waWxlcy9ibHMxMl8zODEvZzJfbXNtLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2V2bTItZTdmM2RmMDRiMTkwMGYzOC84ZmYzNmI1L2NyYXRlcy9ldm0yL3NyYy9wcmVjb21waWxlcy9ibHMxMl8zODEvZzFfbXNtLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcnVpbnQtMS4yMC4wL3NyYy9mcm9tLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2V2bTItZTdmM2RmMDRiMTkwMGYzOC84ZmYzNmI1L2NyYXRlcy9ldm0yL3NyYy9pbnRlcnByZXRlci9pbnN0cnVjdGlvbnMvc3lzdGVtLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcnVpbnQtMS4yMC4wL3NyYy9hbGdvcml0aG1zL211bC5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2syNTYtMC4xMy40L3NyYy9hcml0aG1ldGljL211bC5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2l0ZXJ0b29scy0wLjE0LjAvc3JjL3ppcF9lcV9pbXBsLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYnl0ZXMtMS4xMi4xL3NyYy9idWYvYnVmX2ltcGwucnMAL2NhcmdvL2dpdC9jaGVja291dHMvYWxnZWJyYS05ZWU3YmI4YjVlOWMyMWQ0L2E3MWQ5NzkvY3VydmVzL2JsczEyXzM4MS9zcmMvY3VydmVzL3V0aWwucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jcnlwdG8tYmlnaW50LTAuNy41L3NyYy91aW50L3JlZl90eXBlL3NobC5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9ldm0yLWU3ZjNkZjA0YjE5MDBmMzgvOGZmMzZiNS9jcmF0ZXMvZXZtMi9zcmMvaW50ZXJwcmV0ZXIvc3RhY2sucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9yaXBlbWQtMC4yLjAvc3JjL2Jsb2NrX2FwaS5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NoYTMtMC4xMS4wL3NyYy9ibG9ja19hcGkucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zaGEyLTAuMTEuMC9zcmMvYmxvY2tfYXBpLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYml0dmVjLTEuMS4xL3NyYy9zbGljZS9hcGkucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9iaXR2ZWMtMS4xLjEvc3JjL3ZlYy9hcGkucnMAc3JjL2FiaS5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3J1aW50LTEuMjAuMC9zcmMvYWxnb3JpdGhtcy9kaXYva251dGgucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hdXJvcmEtZW5naW5lLW1vZGV4cC0xLjIuMC9zcmMvYXJpdGgucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2FsZ2VicmEtOWVlN2JiOGI1ZTljMjFkNC9hNzFkOTc5L2VjL3NyYy9wYWlyaW5nLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2V2bTItZTdmM2RmMDRiMTkwMGYzOC84ZmYzNmI1L2NyYXRlcy9ldm0yL3NyYy9wcmVjb21waWxlcy9ibHMxMl8zODEvcGFpcmluZy5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NyeXB0by1iaWdpbnQtMC43LjUvc3JjL3VpbnQvZW5jb2RpbmcucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jcnlwdG8tYmlnaW50LTAuNS41L3NyYy91aW50L2VuY29kaW5nLnJzAC9ydXN0Yy8yZDgxNDRiNzg4MDU5N2I2ZTZkM2RmZDYzYTlhOWVmYWUzZjUzM2QzL2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL2J0cmVlL25hdmlnYXRlLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2FsZ2VicmEtOWVlN2JiOGI1ZTljMjFkNC9hNzFkOTc5L3BvbHkvc3JjL3BvbHlub21pYWwvdW5pdmFyaWF0ZS9kZW5zZS5ycwBzcmMvZGF0YWJhc2UucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jcnlwdG8tYmlnaW50LTAuNy41L3NyYy91aW50L3JlZl90eXBlLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2FsZ2VicmEtOWVlN2JiOGI1ZTljMjFkNC9hNzFkOTc5L2VjL3NyYy9tb2RlbHMvc2hvcnRfd2VpZXJzdHJhc3MvYWZmaW5lLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2FsZ2VicmEtOWVlN2JiOGI1ZTljMjFkNC9hNzFkOTc5L2ZmL3NyYy9maWVsZHMvcHJpbWUucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2RpZ2VzdC0wLjExLjMvc3JjL2Jsb2NrX2FwaS9jdF92YXJpYWJsZS5ycwAvcnVzdGMvMmQ4MTQ0Yjc4ODA1OTdiNmU2ZDNkZmQ2M2E5YTllZmFlM2Y1MzNkMy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9idHJlZS9ub2RlLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYWxsb3ktcmxwLTAuMy4xNi9zcmMvZW5jb2RlLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYWxsb3ktcmxwLTAuMy4xNi9zcmMvZGVjb2RlLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYml0dmVjLTEuMS4xL3NyYy9zbGljZS5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3J1aW50LTEuMjAuMC9zcmMvYWxnb3JpdGhtcy9kaXYvbW9kLnJzAC9ydXN0Yy8yZDgxNDRiNzg4MDU5N2I2ZTZkM2RmZDYzYTlhOWVmYWUzZjUzM2QzL2xpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9hbGdlYnJhLTllZTdiYjhiNWU5YzIxZDQvYTcxZDk3OS9mZi9zcmMvZmllbGRzL21vZC5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9hbGdlYnJhLTllZTdiYjhiNWU5YzIxZDQvYTcxZDk3OS9mZi9zcmMvZmllbGRzL21vZGVscy9mcC9tb2QucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hcmstc3RkLTAuNi4wL3NyYy9pby9tb2QucnMAL2NhcmdvL2dpdC9jaGVja291dHMvYWxnZWJyYS05ZWU3YmI4YjVlOWMyMWQ0L2E3MWQ5NzkvZWMvc3JjL21vZGVscy9ibi9tb2QucnMAL2NhcmdvL2dpdC9jaGVja291dHMvZXZtMi1lN2YzZGYwNGIxOTAwZjM4LzhmZjM2YjUvY3JhdGVzL2V2bTIvc3JjL2V2bS9tb2QucnMAL2NhcmdvL2dpdC9jaGVja291dHMvZXZtMi1lN2YzZGYwNGIxOTAwZjM4LzhmZjM2YjUvY3JhdGVzL2V2bTIvc3JjL2V0aGVyZXVtL21vZC5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9ldm0yLWU3ZjNkZjA0YjE5MDBmMzgvOGZmMzZiNS9jcmF0ZXMvZXZtMi9zcmMvZXZtL3N0YXRlL21vZC5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9hbGdlYnJhLTllZTdiYjhiNWU5YzIxZDQvYTcxZDk3OS9lYy9zcmMvc2NhbGFyX211bC92YXJpYWJsZV9iYXNlL21vZC5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9ldm0yLWU3ZjNkZjA0YjE5MDBmMzgvOGZmMzZiNS9jcmF0ZXMvZXZtMi9zcmMvaW50ZXJwcmV0ZXIvZGlzcGF0Y2gvdGFibGUvbW9kLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2V2bTItZTdmM2RmMDRiMTkwMGYzOC84ZmYzNmI1L2NyYXRlcy9ldm0yL3NyYy9ieXRlY29kZS9tb2QucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tb2QucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjLzJkODE0NGI3ODgwNTk3YjZlNmQzZGZkNjNhOWE5ZWZhZTNmNTMzZDMvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwAvY2FyZ28vZ2l0L2NoZWNrb3V0cy9ldm0yLWU3ZjNkZjA0YjE5MDBmMzgvOGZmMzZiNS9jcmF0ZXMvZXZtMi9zcmMvcHJlY29tcGlsZXMvYm4yNTQvbW9kLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2V2bTItZTdmM2RmMDRiMTkwMGYzOC84ZmYzNmI1L2NyYXRlcy9ldm0yL3NyYy9wcmVjb21waWxlcy9ibGFrZTIvbW9kLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2FsZ2VicmEtOWVlN2JiOGI1ZTljMjFkNC9hNzFkOTc5L2VjL3NyYy9tb2RlbHMvYmxzMTIvbW9kLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2FsZ2VicmEtOWVlN2JiOGI1ZTljMjFkNC9hNzFkOTc5L2ZmL3NyYy9maWVsZHMvbW9kZWxzL2ZwL21vbnRnb21lcnlfYmFja2VuZC5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2VsbGlwdGljLWN1cnZlLTAuMTQuMS9zcmMvZmllbGQucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbGxveS1wcmltaXRpdmVzLTEuNi4xL3NyYy9iaXRzL2ZpeGVkLnJzAC9ydXN0Yy8yZDgxNDRiNzg4MDU5N2I2ZTZkM2RmZDYzYTlhOWVmYWUzZjUzM2QzL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9zcGVjX2Zyb21faXRlcl9uZXN0ZWQucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jcnlwdG8tYmlnaW50LTAuNy41L3NyYy9tb2R1bGFyL3NhZmVnY2QucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9kbG1hbGxvYy0wLjIuMTQvc3JjL2RsbWFsbG9jLnJzAC9ydXN0Yy8yZDgxNDRiNzg4MDU5N2I2ZTZkM2RmZDYzYTlhOWVmYWUzZjUzM2QzL2xpYnJhcnkvYWxsb2Mvc3JjL2FsbG9jLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2FsZ2VicmEtOWVlN2JiOGI1ZTljMjFkNC9hNzFkOTc5L2ZmL3NyYy9iaWdpbnRlZ2VyL2FyaXRobWV0aWMucnMAL2NhcmdvL2dpdC9jaGVja291dHMvYWxnZWJyYS05ZWU3YmI4YjVlOWMyMWQ0L2E3MWQ5NzkvZmYvc3JjL2ZpZWxkcy9jeWNsb3RvbWljLnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2FsZ2VicmEtOWVlN2JiOGI1ZTljMjFkNC9hNzFkOTc5L2VjL3NyYy9oYXNoaW5nL2N1cnZlX21hcHMvd2IucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pdG9hLTEuMC4xOC9zcmMvbGliLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbnVtLWludGVnZXItMC4xLjQ2L3NyYy9saWIucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jb25zdC1vaWQtMC45LjYvc3JjL2xpYi5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3N1YnRsZS0yLjYuMS9zcmMvbGliLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYnl0ZXMtMS4xMi4xL3NyYy9saWIucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9ibG9jay1idWZmZXItMC4xMi4xL3NyYy9saWIucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93bmFmLTAuMTQuMC9zcmMvbGliLnJzAC9jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYXVyb3JhLWVuZ2luZS1tb2RleHAtMS4yLjAvc3JjL2xpYi5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZvbGRoYXNoLTAuMi4wL3NyYy9saWIucnMAL2NhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jcnlwdG8tYmlnaW50LTAuNy41L3NyYy91aW50L211bC9rYXJhdHN1YmEucnMAL2NhcmdvL2dpdC9jaGVja291dHMvZXZtMi1lN2YzZGYwNGIxOTAwZjM4LzhmZjM2YjUvY3JhdGVzL2V2bTIvc3JjL3ByZWNvbXBpbGVzL3NlY3AyNTZrMS9rMjU2LnJzAC9jYXJnby9naXQvY2hlY2tvdXRzL2FsZ2VicmEtOWVlN2JiOGI1ZTljMjFkNC9hNzFkOTc5L2VjL3NyYy9tb2RlbHMvYm4vZzIucnMAL2NhcmdvL2dpdC9jaGVja291dHMvYWxnZWJyYS05ZWU3YmI4YjVlOWMyMWQ0L2E3MWQ5NzkvZWMvc3JjL21vZGVscy9ibHMxMi9nMi5ycwAvY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3JpcGVtZC0wLjIuMC9zcmMvYzE2MC5ycwAUcmVxdWVzdCBwYXlsb2FkIGhhZCDADyB0cmFpbGluZyBieXRlcwAOaW5wdXQgbXVzdCBiZSDABiBieXRlcwAHbGVuZ3RoIMANIGV4Y2VlZHMgdGhlIMANIGJ5dGUgbWF4aW11bQAOaG9zdCByZXBvcnRlZCDAFiBjb2RlIGJ5dGVzLCBvdmVyIHRoZSDADSBieXRlIG1heGltdW0AwAcgdmFsdWUgwBwgZXhjZWVkcyB0aGlzIHRhcmdldCdzIHVzaXplAAtl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AAA0AQAANQEAADYBAAA3AQAAOAEAADkBAAA6AQAAOwEAADwBAAA9AQAAPgEAAD8BAABAAQAAQQEAAEIBAABDAQAARAEAAEUBAABGAQAARwEAAEgBAABJAQAASgEAAEsBAABMAQAATQEAAE4BAABPAQAAUAEAAFEBAABSAQAAUwEAAFQBAABVAQAAVgEAAFcBAABYAQAAWQEAAFoBAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAABbAQAAZQEAAGYBAABeAQAAZwEAAHEBAADqAAAA6gAAAOoAAADqAAAAawEAAOoAAADqAAAAbAEAAOoAAABoAQAA3gAAAN8AAADgAAAA4QAAAOIAAADjAAAA5AAAAOUAAADmAAAA5wAAAOgAAADpAAAA6gAAAOoAAADqAAAA6gAAAOsAAADsAAAA7QAAAO4AAADvAAAA8AAAAPEAAADyAAAA8wAAAPQAAAD1AAAAbQEAAG4BAABvAQAA6gAAAOoAAAD2AAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA9wAAAHIBAAD5AAAA+gAAAPsAAAD8AAAA/QAAAP4AAAD/AAAAAAEAAAEBAABiAQAAYwEAAGkBAABqAQAAcwEAAAQBAAAFAQAABgEAAAcBAAAIAQAACQEAAHQBAAB1AQAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAAAKAQAACwEAAAwBAAANAQAAdgEAAA8BAAAQAQAAEQEAABIBAAATAQAAFAEAABUBAADqAAAA6gAAAOoA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AAA8AQAAPQEAAD4BAAA/AQAAQAEAAEEBAABCAQAAQwEAAEQBAABFAQAARgEAAEcBAABIAQAASQEAAEoBAABLAQAATAEAAE0BAABOAQAATwEAAFABAABRAQAAUgEAAFMBAABUAQAAVQEAAFYBAABXAQAAWAEAAFkBAABaAQAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAAWwEAAHwBAAB9AQAAXgEAAH4BAABxAQAA6gAAAOoAAADqAAAA6gAAAH8BAADqAAAA6gAAAGwBAADqAAAAaAEAAN4AAADfAAAA4AAAAOEAAADiAAAA4wAAAOQAAADlAAAA5gAAAOcAAADoAAAA6QAAAOoAAADqAAAA6gAAAOoAAADrAAAA7AAAAO0AAADuAAAA7wAAAPAAAADxAAAA8gAAAPMAAAD0AAAA9QAAAG0BAABuAQAAbwEAAIcBAADqAAAA9gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAPcAAAB3AQAA+QAAAPoAAAD7AAAA/AAAAP0AAAD+AAAA/wAAAAABAAABAQAAeAEAAHkBAABpAQAAagEAAHoBAAAEAQAABQEAAAYBAAAHAQAACAEAAAkBAAB0AQAAdQEAAIABAACCAQAAgwEAAOoAAADqAAAA6gAAAOoAAADqAAAACgEAAAsBAAAMAQAADQEAAHsBAAAPAQAAEAEAABEBAAASAQAAEwEAABQBAAAVAQAAhAEAAIUBAACGAQAAgQEAABYBAAAXAQAAGAEAABkBAAAaAQAAGwEAABwBAAAdAQAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAJAEAACUBAAAmAQAAJwEAACgBAAApAQAAKgEAACsBAAAsAQAALQEAAC4BAAAvAQAAMAEAADEBAAAyAQAAMwEAADQBAAA1AQAANgEAADcBAAA4AQAAOQEAADoBAAA7AQAAPAEAAD0BAAA+AQAAPwEAAEABAABBAQAAQgEAAEMBAABEAQAARQEAAEYBAABHAQAASAEAAEkBAABKAQAASwEAAEwBAABNAQAATgEAAE8BAABQAQAAUQEAAFIBAABTAQAAVAEAAFUBAABWAQAAVwEAAFgBAABZAQAAWgEAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAFsBAAB8AQAAfQEAAF4BAAB+AQAAcQEAAOoAAADqAAAA6gAAAOoAAAB/AQAA6gAAAOoAAABsAQAA6gAAAGgBAADeAAAA3wAAAOAAAADhAAAA4gAAAOMAAADkAAAA5QAAAOYAAADnAAAA6AAAAOkAAADqAAAA6gAAAOoAAADqAAAA6wAAAOwAAADtAAAA7gAAAO8AAADwAAAA8QAAAPIAAADzAAAA9AAAAPUAAABtAQAAbgEAAG8BAACHAQAA6gAAAPYAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAADqAAAA6gAAAOoAAAD3AAAAdwEAAPkAAAD6AAAA+wAAAPwAAAD9AAAA/gAAAP8AAAAAAQAAAQEAAIgBAACJAQAAaQEAAGoBAAB6AQAABAEAAAUBAAAGAQAABwEAAAgBAAAJAQAAdAEAAHUB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SIcEHQYw3MXSRgGG9yM8kn59stzHA8DlALZTyoInO3v62ARdhaRwAEHQn8MAC03dEhAATQAAAI4AAAAdAAAA3RIQAE0AAACMAAAAIAAAAN0SEABNAAAAjAAAADAAAAAGFhAAVQAAALMAAAAmAAAABhYQAFUAAADEAAAAJgBBqKDDAAuJAwEAAAD4AQAA+QEAAPoBAAD7AQAA/AEAAP0BAAD+AQAA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAC1v9fdjN6xKIQ7wocjCvOJJhhwdcv776gQCaLOYVrFPSkU5YcMtFLSr6qrJPNJn3IYXL/uU0knFHNEKbezhgjiOSbJEczs6smjaFFHe6TGCwhwQd5iEADtyY7a2iDB3vJGYWlsZWQgdG8gcGFyc2UgdHJ1c3RlZCBzZXR1cCBHMiBwb2ludAAAMhQQAG8AAABLAAAADgAAAMMeEABiAAAAJwAAAB8AAADDHhAAYgAAACgAAAAiAAAAYB4QAGIAAAAkAAAAHwAAAGAeEABiAAAAJQAAACIAAABDIxAAUgAAACIKAAAEAAAARGVsdGEgbXVzdCBoYXZlIGEgc3F1YXJlIHJvb3QAAACbHBAAYQAAAJYBAAAjAAAAYzAgbXVzdCBoYXZlIGFuIGludmVyc2UAmxwQAGEAAACXAQAAJwBB+KPDAAskAQAAAAAAAAC6BhAAUwAAAFUAAAAmAAAA////////////////AEGopMMACwkBAAAA/////wEAQbykwwALrQH////////////////+////AAAAAAMAAAAAAAAA//////v////+//////////3///8EAAAA//////////8AAAAAAAAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGVIYXNoIHRhYmxlIGNhcGFjaXR5IG92ZXJmbG93FAoQAFAAAAAkAAAAKAAAAP////8AAAAAAAAAAG1pZCA+IGxlbgBB9KXDAAv1BQEAAAAKAgAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQALAgAAEAAAAAQAAAAMAgAADQIAAAgAAAAEAAAADgIAAA8CAAAQAAAABAAAABACAAAAAAAAAQAAAAEAAAARAgAAvgEAAL8BAADAAQAAEgIAABMCAAClJRAAXQAAAAUBAAARAAAAAAEAAPEJaUq0kulE2S8QAFAAAACyAAAAHwAAAJYjEABQAAAAvwEAAAMAAABiaXQtdmVjdG9yIGNhcGFjaXR5IGV4Y2VlZGVkliMQAFAAAADTAAAABQAAAAAAAACrqv/////+uf//U7H+/6seJPaw9qDSMGe/EoXzhEt3ZNesS0O2pxtLmuZ/OeoRARpH/XzYFowgPI3KcWiRaoGXXViBgbZFULgpoDHhck5kMAEAAPCT9eFDkXC5eUjoMyhdWIGBtkVQuCmgMeFyTmQwABoQAGEAAACJAAAAGgAAAAAaEABhAAAAigAAABsAAABgc2hpZnRgIGV4Y2VlZHMgdXBwZXIgYm91bmQAqRcQAGEAAAAzAAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHN0ZXAgIT0gMAAaCBAAWQAAACMAAAAJAAAAqAK4d+M4+TtdUzM2JxsLAmBSdUnw7bcmbaiEQzLGFCVn/9zRzOznOD4NzpN9s/BlqgCsIt3QSddNjWhKzrlBAWNoZWNrcG9pbnQgaXMgcGFzdCBqb3VybmFsIGxlbmd0aAAAAMssEABTAAAAagIAAAkAAABjaGVja3BvaW50IGlzIHBhc3QgbG9ncyBsZW5ndGgAAMssEABTAAAAawIAAAkAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlOiBjaGVja3BvaW50IGlzIGNoZWNrZWQgYWJvdmUAAADLLBAAUwAAAG8CAAARAAAAKxMQAFgAAAD6AAAADQAAAGwJEABLAAAAIAEAACUAQdCswwAL/ALvAQAAhTcQAE8AAACAAAAAHwAAAAAAAADz/wwAAAAnqgoANPwyAMxTf4AKa3rpj0fXJLrmvn7TsS+reL87c8mOft6DPVFF1gnz/wwAAAAnqgoANPwyAMxTf4AKa3rpj0fXJLrmvn7TsS+reL87c8mOft6DPVFF1glzaXplIGludmFyaWFudHMgd2VyZSB2aW9sYXRlZAAAAEAOEABMAAAAxQAAACQAAABADhAATAAAANEAAAAnAAAAYXNzZXJ0aW9uIGZhaWxlZDogbGltYnMubGVuKCkgPD0gTgAAKjAQAGMAAAD9AgAACQAAAAAAAABtnPLzkOmZySNckofL7WwrjzlUcpYU0wUR/1mf2dlIBwEAAACQNBAATAAAAL0CAAAJAAAAIAAAACosEABNAAAA4wcAAAkAAAAqLBAATQAAAOQHAAAJAAAA3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+///////////////////////////gBB66/DAAuuAQGEExAASwAAAG0AAAAPAAAAhBMQAEsAAABtAAAAHgAAAIQTEABLAAAAmgAAABwAAACEExAASwAAAJcAAAAPAAAAhBMQAEsAAACXAAAAJAAAAAAAAAAKAAAAAwAAAAMAAAAIAAAAdwEAAAMAAAAGAAAAAwAAAAACAAACAAAAAH0AAEAAAAAoIwAAAAAAAKhhAAAAAAAAiBMAAJg6AAAAAAAAmDoAAMBdAAD8CAAAAgBBqLHDAAsNyAAAAAAAAAARAAAABABB0LHDAAsCCFIAQdyxwwALApg6AEGossMAC5EB/wAAAAAAAAABAAAAAAAAAP///////////////wAAAADt8DIAAAAAAABgAAAAwAAABgAAAAAAAAAKAAAAAwAAAAMAAAAIAAAAdwEAAAMAAAAGAAAAAwAAAAACAAACAAAAAH0AAEAAAAAoIwAAAAAAAKhhAAAAAAAAiBMAAJg6AAAAAAAAmDoAAMBdAAD8CAAAAgBByLPDAAsNyAAAAAAAAAARAAAABABB8LPDAAsOCFIAAAB9AAAAAAAAmDoAQci0wwALkQH/AQAAAAAAAAEAAAAAAAAA////////////////AAAAAO3wMgAAAAAAAGAAAADAAAAGAAAAAAAAAAoAAAADAAAAAwAAAAgAAAB3AQAAAwAAAAYAAAADAAAAAAIAAAIAAAAAfQAAQAAAACgjAAAAAAAAqGEAAAAAAACIEwAAmDoAAAAAAACYOgAAwF0AAPwIAAACAEHktcMACxGoYQAAyAAAAAAAAAARAAAABABBkLbDAAsOCFIAAAB9AAAAAAAAmDoAQei2wwALkQH/AwAAAAAAAAEAAAAAAAAA////////////////AAAAAO3wMgAAAAAAAGAAAADAAAAGAAAAAAAAADIAAAADAAAAAwAAAAgAAAB3AQAAAwAAAAYAAAADAAAAAAIAAAIAAAAAfQAAQAAAACgjAAAAAAAAqGEAAAAAAACIEwAAmDoAAAAAAACYOgAAwF0AAPwIAAACAEGEuMMACxGoYQAAyAAAAAAAAAARAAAABABBsLjDAAsOCFIAAAB9AAAAAAAAmDoAQYi5wwALkQH/DwAAAAAAAAEAAAAAAAAA////////////////AAAAAO3wMgAAAAAAAGAAAADAAAAGAAAAAAAAADIAAAADAAAAAwAAAAgAAAB3AQAAAwAAAAYAAAADAAAAAAIAAAIAAAAAfQAAQAAAACgjAAAAAAAAqGEAAAAAAACIEwAAmDoAAAAAAACYOgAAwF0AAPwIAAACAEGkusMACxGoYQAAyAAAAAAAAAARAAAABABB0LrDAAsOCFIAAAB9AAAAAAAAmDoAQai7wwALkQH/DwAAAAAAAAEAAAAAAAAA////////////////AAAAAO3wMgAAAAAAAGAAAADAAAAGAAAAAAAAADIAAAADAAAAAwAAAAgAAAB3AQAAAwAAAAYAAAADAAAAAAIAAAIAAAAAfQAAQAAAACgjAAAAAAAAqGEAAAAAAACIEwAAmDoAAAAAAACYOgAAwF0AAPwIAAACAEHEvMMACxGoYQAAyAAAAAAAAAARAAAABABB8LzDAAsOCFIAAAB9AAAAAAAAmDoAQci9wwALkQH/DwAAAAAAAAEAAAAAAAAA////////////////AAAAAO3wMgAAAAAAAGAAAADAAAAGAAAAAAAAADIAAAADAAAAAwAAAAgAAAB3AQAAAwAAAAYAAAADAAAAAAIAAAIAAAAAfQAAQAAAACgjAAAAAAAAqGEAAAAAAAAgAwAAAEsAAGgQAACYOgAAwF0AAPwIAAACAEHkvsMACxGoYQAAyAAAAAAAAAAEAAAABABBkL/DAAsSCFIAAAB9AAAAAAAAAEsAAGgQAEHov8MAC60B/z8AAAAAAAABAAAAAAAAAP///////////////wAAAADt8DIAAAAAAABgAAAAwAAABgAAAAAAAAAyAAAAAwAAAAMAAAAIAAAAdwEAAAMAAAAGAAAAAwAAAAACAAACAAAAAH0AAEAAAAAoIwAAxAkAAKhhAABkAAAAZAAAALxNAADwCgAAmDoAAMBdAAD8CAAAAgAAANAHAAA0CAAAqGEAAMgAAAAAAAAABAAAAAQAQaTBwwALHmAJAABsBwAAAAAAAAhSAAAAfQAAAAAAALxNAADwCgBBiMLDAAutAf9/AAAAAAAAAQAAAAAAAAD///////////////8AAAAA7fAyAAAAAAAAYAAAAMAAAAYAAAAAAAAAMgAAAAMAAAADAAAACAAAAHcBAAADAAAABgAAAAMAAAAAAgAAAgAAAAB9AABAAAAAKCMAAMQJAACoYQAAZAAAAGQAAAC8TQAA8AoAAMASAAAAAAAA/AgAAAUAAADQBwAANAgAAKhhAADIAAAAAAAAAAQAAAAEAEHEw8MACx5gCQAAbAcAAAAAAAAIUgAAAH0AAAAAAAC8TQAA8AoAQajEwwALrQH//wMAAAAAAAEAAAAAAAAA////////////////AAAAAO3wMgAAAAAAAGAAAADAAAAGAAAAAAAAADIAAAADAAAAAwAAAAgAAAB3AQAAAwAAAAYAAAADAAAAAAIAAAIAAAAAfQAAQAAAACgjAADECQAAqGEAAGQAAABkAAAAvE0AAPAKAADAEgAAAAAAAPwIAAAFAAAA0AcAADQIAACoYQAAyAAAAAAAAAAEAAAABABB5MXDAAseYAkAAGwHAAAAAAAACFIAAAB9AAAAAAAAvE0AAPAKAEHIxsMAC60B//8HAAAAAAABAAAAAAAAAP///////////////wAAAADt8DIAAAAAAABgAAAAwAAABgAAAAAAAAAyAAAAAwAAAAMAAAAIAAAAdwEAAAMAAAAGAAAAAwAAAAACAAACAAAAAH0AAEAAAAAoIwAAxAkAAKhhAABkAAAAZAAAALxNAADwCgAAwBIAAAAAAAD8CAAABQAAANAHAAA0CAAAqGEAAMgAAAAAAAAABAAAAAQAQYTIwwALHmAJAABsBwAAAAAAAAhSAAAAfQAAAgAAALxNAADwCgBB6MjDAAutAf//HwAAAAAAAQAAAAAAAAD///////////////8AAAAA7fAyAAAAAAAAYAAAAMAAAAYAAAAAAAAAMgAAAAMAAAADAAAACAAAAHcBAAADAAAABgAAAAMAAAAAAgAAAgAAAAB9AABAAAAAKCMAAMQJAACoYQAAZAAAAGQAAAC8TQAA8AoAAMASAAAAAAAA/AgAAAUAAADQBwAANAgAAKhhAADIAAAAAAAAAAQAAAAEAEGkysMACx5gCQAAbAcAAAAAAAAIUgAAAH0AAAIAAAC8TQAA8AoAQYjLwwAL3gH//z8AAAAAAAEAAAAAAAAA////////////////AAAAAO3wMgAA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AAA7ERAAXAAAAKsAAAA7AAAAUCQQAFwAAACtAAAAIwAAAFAkEABcAAAArQAAABYAAABQJBAAXAAAAK4AAAAJAAAAUCQQAFwAAAC4AAAAKwAAAFAkEABcAAAAuAAAADwAAABQJBAAXAAAALkAAAAUAAAAUCQQAFwAAADfAAAAEgAAAFAkEABcAAAA5AAAABsAAABQJBAAXAAAAOgAAAAfAAAAUCQQAFwAAAB0AAAACAAAAFAkEABcAAAAeAAAAA8AAABQJBAAXAAAAIUAAAAoAAAAUCQQAFwAAAByAAAAEgAAAFAkEABcAAAAYQAAABEAAABQJBAAXAAAAGoAAAAtAAAAUCQQAFwAAABkAAAAJgAAAFAkEABcAAAACwEAADUAAABQJBAAXAAAAAsBAABJAAAAUCQQAFwAAAALAQAAVgAAAFAkEABcAAAAIAEAACkAAABQJBAAXAAAACIBAAAJAAAAUCQQAFwAAAAQAQAAIAAAAFAkEABcAAAAEAEAAD4AAABQJBAAXAAAABUBAAAkAAAAUCQQAFwAAAA7AAAADwAAAFAkEABcAAAAMwAAAAkAAABQJBAAXAAAAC4AAAAmAAAAUCQQAFwAAAAeAAAAEQBB4MzEAAsBAQBBgM3EAAtk//////////+4CRAAWwAAAPcAAAAZAAAAozEQAF8AAABKAQAAEwAAAKMxEABfAAAATgEAABoAAAB0NhAAYgAAAG8AAAAJAAAAdDYQAGIAAAAPAQAACQAAAP///////////////wBB8M3EAAsJAQAAAP////8BAEGEzsQAC9gC/////////////////v///wAAAAADAAAAAAAAAP/////7/////v/////////9////BAAAAP//////////AAAAAAAAAAC6BhAAUwAAAAYBAAAWAAAAbWlkID4gbGVuYHNoaWZ0YCBleGNlZWRzIHVwcGVyIGJvdW5kUBcQAFgAAAAbAAAADgAAAKUlEABdAAAABQEAABEAAAAAAAAAUSVj/MLKufOEnhenrfrmvP//////////AAAAAP////8AGhAAYQAAAIkAAAAaAAAAABoQAGEAAACKAAAAGwAAAJIhEABhAAAAiAAAABoAAACSIRAAYQAAAIkAAAAfAAAAkiEQAGEAAACJAAAAEAAAAKkXEABhAAAAlQAAABoAAACpFxAAYQAAAJYAAAAfAAAAqRcQAGEAAACWAAAAEAAAAGxlbmd0aCBtaXNtYXRjaAD//////////////38AQefQxAALCYAAAACA////fwBB+9DEAAsBQABBh9HEAAsWQAAAAMD///8//v//////////////AQBBqNHEAAsJAgAAAP7///8BAEG80cQAC5UC/////////////////v///wAAAAABAAAABgAAAHQbEABhAAAAIgAAAEAAAABzY2hvb2xib29rIHNxdWFyaW5nIGxlbmd0aCBtaXNtYXRjaHNjaG9vbGJvb2sgbXVsdGlwbGljYXRpb24gbGVuZ3RoIG1pc21hdGNo2hAQAGAAAAAXAAAAJAAAANoQEABgAAAAGAAAACMAAAB+NRAASwAAALsAAAAfAAAAfjUQAEsAAAC5AAAAHwAAAH41EABLAAAAkQAAAAkAAAB+NRAASwAAAHQAAAANAAAAfjUQAEsAAAB4AAAADQAAAH41EABLAAAAhwAAABEAAAAAAAAA//////////8AAAAABAAAAAQAAAAgAgAAAQBB8NPEAAsxozEQAF8AAABKAQAAEwAAAKMxEABfAAAATgEAABoAAAB0NhAAYgAAAG8AAAAJAAAABwBBmNXEAAuJAwEAAAAAAAAAbWlkID4gbGVuAAAAAAAAADQAAAAEAAAAIQIAAAAAAAAv/P///v///////////////////////////////////0FBNtCMXtK/O6BIr+bcrrr+////////////////////YHNoaWZ0YCBleGNlZWRzIHVwcGVyIGJvdW5kAFAXEABYAAAAGwAAAA4AAAClJRAAXQAAAAUBAAARAAAAABoQAGEAAACJAAAAGgAAAAAaEABhAAAAigAAABsAAACSIRAAYQAAAIgAAAAaAAAAkiEQAGEAAACJAAAAHwAAAJIhEABhAAAAiQAAABAAAACpFxAAYQAAAJUAAAAaAAAAqRcQAGEAAACWAAAAHwAAAKkXEABhAAAAlgAAABAAAABsZW5ndGggbWlzbWF0Y2gAAAAAAJgX+BZbgQIAn5WN4tyyDQD8mwIHC4cOAFwpBlrFugsA3Pl+Zr55AAC41BD7j9AHAMSZQVVoigQAtBf9qAgRDgDAv0/aVUYMAKMmd9o6SAAAAQBByNjEAAttQA4QAEwAAAB/AAAADgAAAEAOEABMAAAA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UmVhZGVyVGFnTW9kZVVua25vd25UYWdOdW1iZXJJbnZhbGlkAAAAAAAAAwAAAAEAAAByAgAAVGFnVW5leHBlY3RlZGV4cGVjdGVkYWN0dWFsVGFnVW5rbm93bmJ5dGVUcmFpbGluZ0RhdGFkZWNvZGVkcmVtYWluaW5nAAAAAAAAAAQAAAAEAAAAcwIAAFV0ZjhWYWx1ZQAAAAAAAAAEAAAABAAAAHQCAABlbXB0eSB5LWNvb3JkaW5hdGUAAPMNEABMAAAAFAIAAB4AAABCT09MRUFOSU5URUdFUkJJVCBTVFJJTkdPQ1RFVCBTVFJJTkdOVUxMT0JKRUNUIElERU5USUZJRVJSRUFMRU5VTUVSQVRFRFVURjhTdHJpbmdTRVFVRU5DRVNFVE51bWVyaWNTdHJpbmdQcmludGFibGVTdHJpbmdUZWxldGV4U3RyaW5nVmlkZW90ZXhTdHJpbmdJQTVTdHJpbmdVVENUaW1lR2VuZXJhbGl6ZWRUaW1lVmlzaWJsZVN0cmluZ0JNUFN0cmluZ3ByaW1pdGl2ZWNvbnN0cnVjdGVkHGARAAkAAAAlYBEACwAAAAZUYWcoMHjDIAAAaQIAAjogwAEpAAAAAAAAAAAEAAAABAAAAHoCAAAAAAAABAAAAAQAAAB7AgAAVXRmOEVycm9ydmFsaWRfdXBfdG9lcnJvcl9sZW5Ob25lU29tZQAAAAAAAAAEAAAABAAAAHACAAAAAAAABAAAAAQAAABpAgAATGVuZ3RoAAAAAAAABAAAAAQAAAB0AgAAAAAAAAgAAAAEAAAAfQIAAK0WEABQAAAANwAAAC8AAACtFhAAUAAAADwAAAAvAAAAQDQQAE8AAACoAAAAFAAAAAAAAAAEAAAABAAAAHQCAABBcmNJbnZhbGlkYXJjQXJjVG9vQmlnQmFzZTEyOAAAAAAAAAAEAAAABAAAAGkCAABEaWdpdEV4cGVjdGVkYWN0dWFsRW1wdHlMZW5ndGhOb3RFbm91Z2hBcmNzVHJhaWxpbmdEb3QuT0lEIG1hbGZvcm1lZK0WEABQAAAAbQAAABkAAABieXRlcyBhcmUgbm90IHRoZSBleHBlY3RlZCBzaXplAAMmEABdAAAADwAAAAkAAAD9B/UH7QflB90H1QfOB8YHvwe3B7AHqAehB5oHkgeLB4QHfQd2B28HaAdhB1sH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' + +/** Decoded size of {@link wasmBase64}, in bytes. */ +export const wasmBytes = 802678 + +/** Gzipped size of the decoded binary, in bytes. */ +export const wasmGzipBytes = 303684 + +/** The evm2 commit this artifact was compiled against. */ +export const evm2Revision = '8ff36b5359aa1ccc5bdd7eb1c98d0a7f3daac469' diff --git a/wasm/README.md b/wasm/README.md index 1d59783a..c7b22d19 100644 --- a/wasm/README.md +++ b/wasm/README.md @@ -1,10 +1,16 @@ # WASM artifacts -C sources for ox's WASM crypto engines, and the build that turns them into the -base64 modules committed under `src/`. +C sources for ox's WASM crypto engines, the Rust adapter for the evm2 execution +engine, and the builds that turn them into the base64 modules committed under +`src/`. -Nothing here is published. `package.json#files` ships `dist` and `src`, so the C -lives outside `src/` deliberately — only the generated base64 modules reach npm. +Nothing here is published. `package.json#files` ships `dist` and `src`, so the +sources live outside `src/` deliberately — only the generated base64 modules +reach npm. + +The two builds are separate. C targets go through `pnpm wasm:build`; the Rust +adapter goes through `cargo` inside a pinned Docker image. `pnpm wasm:build` and +`pnpm wasm:check` drive both; `--target=` selects one. See [the evm2 adapter](#the-evm2-adapter) below. ## Layout @@ -31,11 +37,15 @@ Generated artifacts, and the module that loads them: ## Building ```bash -pnpm wasm:build # every target -pnpm wasm:build --target=hashes # one target +pnpm wasm:build # every target, C and Rust +pnpm wasm:build --target=hashes # one C target +pnpm wasm:build --target=evm2 # the Rust adapter only pnpm wasm:check # rebuild and diff against what is committed ``` +`--target=` decides which toolchains are needed: a C target never invokes +`cargo`, and `evm2` never downloads the wasi-sdk. + `wasm:build` downloads the pinned wasi-sdk into `.wasm-toolchain/` on first run and verifies it by SHA-256. Neither script is wired into `build` or `postinstall`: contributors who do not touch C never need a native toolchain. @@ -101,6 +111,109 @@ makes a toolchain change reviewable as a diff. `@noble/*` — that is the oracle, since it is audited and it is what ox ships by default. +## The evm2 adapter + +`evm2/` is an Ox-owned Rust crate that binds a pinned +[`alloy-rs/evm2`](https://github.com/alloy-rs/evm2) revision to WebAssembly. It +owns the boundary and nothing behind it: a versioned binary ABI, a host adapter +for evm2's `Database` trait, failure encoding, and the runtime glue `no_std` +needs. EVM execution, gas accounting, transaction validation, journaling, +precompiles, and fork behavior stay evm2's. + +``` +evm2/Cargo.toml the pinned evm2 revision and the features selected for it +evm2/Cargo.lock committed, so the artifact rebuilds byte-for-byte +evm2/rust-toolchain.toml pinned compiler and wasm32 target +evm2/NOTICE.md generated attribution for everything the artifact links +evm2/src/abi.rs ABI v1 header, reader, writer +evm2/src/database.rs host imports implementing evm2's `Database` +evm2/src/error.rs response statuses and handler-failure encoding +evm2/src/features.rs the feature-flag table, indexed as the ABI addresses it +evm2/src/lib.rs the engine, its exports, and request dispatch +evm2/src/state.rs pending-state and change-stream serialization +evm2/src/trace.rs the bounded trace collector and the inspector it installs +``` + +evm2 is a Cargo git dependency resolved from Cargo's external cache. Its source +never enters this repository — no checkout, submodule, subtree, or vendored +directory. + +```bash +pnpm wasm:build --target=evm2 # compile, optimize, write the generated module +pnpm wasm:check --target=evm2 # rebuild and diff against what is committed +cd wasm/evm2 && cargo test # host-side ABI and failure-encoding tests +``` + +The artifact is `src/wasm/internal/evm2.wasm.ts`, loaded by +`src/evm/internal/bindings.ts`. `pnpm wasm:check` also verifies +`NOTICE.md`, `LICENSE-MIT`, and `LICENSE-APACHE`, all of which the build +generates. + +### Building a custom configuration + +Some of evm2 resolves at compile time and cannot cross the ABI: `Inspector` and +`InterpreterRunner` are Rust traits, and `PrecompileProvider` is a generic +parameter. Selecting one is a build, not a call. The adapter covers inspection +itself, through a collector it installs and reports back +(`Evm.setInspector`), so the remaining reason to build is a custom interpreter or +precompile set. + +There is no runtime hook for this, deliberately: the artifact is compiled into +`src/wasm/internal/evm2.wasm.ts`, and accepting foreign module bytes would make +the ABI version, the import list, and the reproducibility check unverifiable. +Building your own means owning the artifact: + +1. Copy `wasm/evm2` and keep `Cargo.lock` and `rust-toolchain.toml` as they are. + The pinned toolchain is what makes the artifact reproducible. +2. Add the configuration where the engine is constructed in `src/lib.rs`. Keep + `abi.rs` and the ABI version untouched if `src/evm/internal/codec.ts` is to + keep reading the responses. +3. Build with `pnpm wasm:build --target=evm2` and run `cargo test` in the crate. + The build fails on any import beyond the four host database reads, so a + configuration reaching for randomness, threads, or WASI is refused here rather + than at runtime. + +An evm2 capability that needs a core change is proposed upstream as a minimal +general change, not maintained as a patched fork. + +### Conventions + +- **The compile runs in a pinned Docker image.** `rustc` output is not + byte-identical across host platforms, unlike the wasi-sdk `clang`: the same + source, lockfile, and target differ by a few hundred bytes between macOS and + Linux, so a host build can never satisfy `wasm:check`. `wasm/toolchain.json` + pins the image by digest, which makes the artifact a function of the image, the + lockfile, and the source. `wasm-opt` is host-stable and still runs natively. + `OX_EVM2_NATIVE=1` builds on the host for fast local iteration; `wasm:check` + refuses it, the same way it refuses `OX_WASM_CLANG`. +- **The toolchain is pinned for reproducibility.** The artifact is a function of + the image, the lockfile, and the source, so the compiler version is part of the + contract. It was also once a correctness requirement: evm2 selected its + tail-call interpreter backend from the toolchain before the target, so a + nightly wasm build picked a backend needing unstable features. Fixed upstream + in [#345](https://github.com/alloy-rs/evm2/pull/345), which the pinned revision + now carries, so the pin is about reproducibility alone. +- **No `std`.** The `std` feature reaches `getrandom 0.2`, which refuses to + compile for `wasm32-unknown-unknown`. `no_std` leaves the allocator and panic + handler to the adapter, which is why it carries `dlmalloc` and a trapping + `#[panic_handler]`. +- **Pure-Rust precompiles only.** No `c-kzg`, `blst`, `gmp`, `mcl`, + `secp256k1`, or `aws-lc-rs`. KZG point evaluation falls back to arkworks, so + Cancun onward is covered without a native backend. +- **Dependency paths are remapped out of the binary.** Panic locations + otherwise embed the build machine's Cargo directory, which alone makes the + bytes unreproducible elsewhere. The build asserts the home directory does not + appear in the artifact. +- **The import list is exact.** The build fails on any import beyond the four + host database reads, so nothing can quietly pull in WASI, threads, or + randomness. +- **ABI v1 is the compatibility boundary.** evm2's Rust API is never exposed to + TypeScript. `src/evm/internal/codec.ts` is the other half of `abi.rs`, and the + two must move together. +- **`HandlerError` is matched exhaustively.** An evm2 revision that adds a + variant fails to compile in `error.rs` rather than collapsing into a + neighbouring one. + ## Security WebAssembly provides no constant-time guarantees. The specification says nothing diff --git a/wasm/evm2/Cargo.lock b/wasm/evm2/Cargo.lock new file mode 100644 index 00000000..85e053ac --- /dev/null +++ b/wasm/evm2/Cargo.lock @@ -0,0 +1,1691 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "alloy-consensus" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9eb70841f76b69b1205bb57b551b7d7afd8407ad57cbda02e833877507c16" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-trie", + "alloy-tx-macros", + "auto_impl", + "derive_more", + "either", + "once_cell", + "thiserror", +] + +[[package]] +name = "alloy-eip2124" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "crc", + "thiserror", +] + +[[package]] +name = "alloy-eip2930" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" +dependencies = [ + "alloy-primitives", + "alloy-rlp", +] + +[[package]] +name = "alloy-eip7702" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "k256 0.13.4", + "thiserror", +] + +[[package]] +name = "alloy-eip7928" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3b12337f74cbfa451cb04dac173974814a6ff463079e1793aa09600ba8813ab" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "once_cell", + "thiserror", +] + +[[package]] +name = "alloy-eips" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fddc9c1868d6331b56926de8ab4c4a80d8dcb7bc4f8f7bebc6a89d0548f79af2" +dependencies = [ + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-eip7928", + "alloy-primitives", + "alloy-rlp", + "auto_impl", + "derive_more", + "either", + "sha2 0.10.9", +] + +[[package]] +name = "alloy-primitives" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f007e257069855bdf21d27762fd3f3705a613f805c9a08309bf353503f081d71" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more", + "foldhash", + "hashbrown", + "itoa", + "k256 0.13.4", + "paste", + "ruint", + "sha3", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24671b1f62edcf0f9b62994c7bf72cd621a04a4b99f5020ece1a647b40e2f103" +dependencies = [ + "alloy-rlp-derive", + "arrayvec", + "bytes", +] + +[[package]] +name = "alloy-rlp-derive" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d4311c03125e8a18296504560b9de3d75ecbd0dcda7f71e6cf2a196d57e6fba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "alloy-trie" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f14b5d9b2c2173980202c6ff470d96e7c5e202c65a9f67884ad565226df7fbb" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "derive_more", + "nybbles", + "smallvec", + "thiserror", + "tracing", +] + +[[package]] +name = "alloy-tx-macros" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3e2386593cef5b12c7d439dbcf62d7d51c3a50dc943909b42ae34b48f1b69dc" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-bls12-381" +version = "0.6.0" +source = "git+https://github.com/DaniPopes/algebra?rev=a71d9795e2e527cd0c80e6831bd957134de30d22#a71d9795e2e527cd0c80e6831bd957134de30d22" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bn254" +version = "0.6.0" +source = "git+https://github.com/DaniPopes/algebra?rev=a71d9795e2e527cd0c80e6831bd957134de30d22#a71d9795e2e527cd0c80e6831bd957134de30d22" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.6.0" +source = "git+https://github.com/DaniPopes/algebra?rev=a71d9795e2e527cd0c80e6831bd957134de30d22#a71d9795e2e527cd0c80e6831bd957134de30d22" +dependencies = [ + "ahash", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "educe", + "fnv", + "hashbrown", + "itertools", + "num-bigint", + "num-integer", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.6.0" +source = "git+https://github.com/DaniPopes/algebra?rev=a71d9795e2e527cd0c80e6831bd957134de30d22#a71d9795e2e527cd0c80e6831bd957134de30d22" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "digest 0.10.7", + "educe", + "num-bigint", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.6.0" +source = "git+https://github.com/DaniPopes/algebra?rev=a71d9795e2e527cd0c80e6831bd957134de30d22#a71d9795e2e527cd0c80e6831bd957134de30d22" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-ff-macros" +version = "0.6.0" +source = "git+https://github.com/DaniPopes/algebra?rev=a71d9795e2e527cd0c80e6831bd957134de30d22#a71d9795e2e527cd0c80e6831bd957134de30d22" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-poly" +version = "0.6.0" +source = "git+https://github.com/DaniPopes/algebra?rev=a71d9795e2e527cd0c80e6831bd957134de30d22#a71d9795e2e527cd0c80e6831bd957134de30d22" +dependencies = [ + "ahash", + "ark-ff", + "ark-serialize", + "ark-std", + "educe", + "fnv", + "hashbrown", +] + +[[package]] +name = "ark-serialize" +version = "0.6.0" +source = "git+https://github.com/DaniPopes/algebra?rev=a71d9795e2e527cd0c80e6831bd957134de30d22#a71d9795e2e527cd0c80e6831bd957134de30d22" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.6.0" +source = "git+https://github.com/DaniPopes/algebra?rev=a71d9795e2e527cd0c80e6831bd957134de30d22#a71d9795e2e527cd0c80e6831bd957134de30d22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ark-std" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "367c9c827ed431bff6868b7aa926e05b16eb46603cc8b6e768e4a5553fa1d155" +dependencies = [ + "num-traits", + "rand 0.8.7", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "aurora-engine-modexp" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "518bc5745a6264b5fd7b09dffb9667e400ee9e2bbe18555fac75e1fe9afa0df9" +dependencies = [ + "hex", + "num", +] + +[[package]] +name = "auto_impl" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base16ct" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd307490d624467aa6f74b0eabb77633d1f758a7b25f12bceb0b22e08d9726f6" + +[[package]] +name = "bitflags" +version = "2.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + +[[package]] +name = "const-hex" +version = "1.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33e2a781ebdf4467d1428dc4593067825fb646f6871475098d8577421af73558" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "proptest", + "serde_core", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[package]] +name = "convert_case" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "cpubits" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a52aa3fcda4e6302a9f48734f234d35d4721b96f8fe07d073f07ce9df4f0271" +dependencies = [ + "cpubits", + "ctutils", + "hybrid-array", + "num-traits", + "rand_core 0.10.1", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", + "rand_core 0.10.1", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", + "subtle", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "zeroize", +] + +[[package]] +name = "der" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69dedd701da44b0536442edf09c81a64b0ab97a7a4a5e3d1971f00027cbc63d" +dependencies = [ + "const-oid 0.10.2", + "zeroize", +] + +[[package]] +name = "derive-where" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d08b3a0bcc0d079199cd476b2cae8435016ec11d1c0986c6901c5ac223041534" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.119", + "unicode-xid", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid 0.9.6", + "crypto-common 0.1.6", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", + "ctutils", +] + +[[package]] +name = "dlmalloc" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad5208a115eaba24916f7456929832e310a81518c641f93fee4f89aa93aa3675" +dependencies = [ + "cfg-if", + "libc", + "windows-sys", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.10", + "digest 0.10.7", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", + "signature 2.2.0", +] + +[[package]] +name = "ecdsa" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0681a4fc24c767085329728d8dfba959af91228aa4610cca4f8ce317ba46ae0" +dependencies = [ + "der 0.8.1", + "digest 0.11.3", + "elliptic-curve 0.14.1", + "rfc6979 0.6.0", + "signature 3.0.0", + "zeroize", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "either" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.5", + "digest 0.10.7", + "ff 0.13.1", + "generic-array", + "group 0.13.0", + "rand_core 0.6.4", + "sec1 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d65aa39b3a5c1c9c1b745c9a019234bb7a21b77abcb4f4d266d706e2d577d65" +dependencies = [ + "base16ct 1.0.0", + "crypto-bigint 0.7.5", + "crypto-common 0.2.2", + "digest 0.11.3", + "ff 0.14.0", + "group 0.14.0", + "hybrid-array", + "rand_core 0.10.1", + "sec1 0.8.1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-ordinalize" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89dd01549b09589510cf0647475075d12071456586d70f5c75c98ae2a5537677" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65863d15a4ce2888bd2f0f543cc963d3879c3a022c8ee43f6141d479a3ac815" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "evm2" +version = "0.1.0" +source = "git+https://github.com/alloy-rs/evm2?rev=8ff36b5359aa1ccc5bdd7eb1c98d0a7f3daac469#8ff36b5359aa1ccc5bdd7eb1c98d0a7f3daac469" +dependencies = [ + "alloy-consensus", + "alloy-eip7928", + "alloy-eips", + "alloy-primitives", + "ark-bls12-381", + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-serialize", + "arrayref", + "aurora-engine-modexp", + "auto_impl", + "bitvec", + "cfg-if", + "derive-where", + "evm2-macros", + "k256 0.14.0", + "once_cell", + "p256", + "paste", + "phf", + "ripemd", + "sha2 0.11.0", + "thiserror", + "typeid", +] + +[[package]] +name = "evm2-macros" +version = "0.1.0" +source = "git+https://github.com/alloy-rs/evm2?rev=8ff36b5359aa1ccc5bdd7eb1c98d0a7f3daac469#8ff36b5359aa1ccc5bdd7eb1c98d0a7f3daac469" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "fastrand" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f686ab92a9fb0eaf188f6c6c87b89490baa6fdb0db4544ba4dc47f7942489f" +dependencies = [ + "rand_core 0.10.1", + "subtle", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "generic-array" +version = "0.14.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd1a1c7a5206c5b7a3f5a0d7ccd3ff85d0c8f5133d62a02680255b0004af5f4" +dependencies = [ + "ff 0.14.0", + "rand_core 0.10.1", + "subtle", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" +dependencies = [ + "allocator-api2", + "foldhash", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "hmac" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" +dependencies = [ + "digest 0.11.3", +] + +[[package]] +name = "hybrid-array" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707114b52a152fa7bdb290cd7cd5912d9467273b6d74e21b8d81aca1f8533f6b" +dependencies = [ + "subtle", + "typenum", + "zeroize", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "sha2 0.10.9", +] + +[[package]] +name = "k256" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f50113171a713f4a4231ef82eb26703607139b35dcb56241f0ceab2ae1f7d8" +dependencies = [ + "cpubits", + "ecdsa 0.17.0", + "elliptic-curve 0.14.1", + "primeorder", + "sha2 0.11.0", + "wnaf", +] + +[[package]] +name = "keccak" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e24a010dd405bd7ed803e5253182815b41bf2e6a80cc3bfc066658e03a198aa" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", +] + +[[package]] +name = "libc" +version = "0.2.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "nybbles" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d49ff0c0d00d4a502b39df9af3a525e1efeb14b9dabb5bb83335284c1309210" +dependencies = [ + "cfg-if", + "ruint", + "smallvec", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "ox-evm2" +version = "0.0.0" +dependencies = [ + "alloy-consensus", + "alloy-eip7928", + "alloy-eips", + "alloy-primitives", + "dlmalloc", + "evm2", + "serde_json", +] + +[[package]] +name = "p256" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2c9239b2dbc807adbbe147e8cf72ea7450c3a0aabe62cb8e75ff4ec22e1f72a" +dependencies = [ + "ecdsa 0.17.0", + "elliptic-curve 0.14.1", + "primefield", + "primeorder", + "sha2 0.11.0", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "phf" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "010378780309880b08997fae13be7834dba947d36393bd372f2b1556deb2a2f6" +dependencies = [ + "phf_macros", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aeb62e0959d5a1bebc965f4d15d9e2b7cea002b6b0f5ba8cde6cc26738467100" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_macros" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fa8d0ca26d424d27630da600c6624696e7dec8bf7b3b492b383c5dc49e5e085" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "phf_shared" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fd9027e2d9319be6349febd1db4e8d02aa544921200c9b777720ac34a3aa89" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "primefield" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c555a6e4eb7d4e158fcb028c835c3b8642206ddc279b5c6b202ef9a8bdb592f4" +dependencies = [ + "crypto-bigint 0.7.5", + "crypto-common 0.2.2", + "ff 0.14.0", + "rand_core 0.10.1", + "subtle", + "zeroize", +] + +[[package]] +name = "primeorder" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c9f42978c78a00e3d68f69fc03e57a234debae69da4020a4fb588fcdcd07b06" +dependencies = [ + "elliptic-curve 0.14.1", + "primefield", + "wnaf", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" +dependencies = [ + "bitflags", + "num-traits", + "rand 0.9.5", + "rand_chacha 0.9.0", + "rand_xorshift", + "unarray", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" +dependencies = [ + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_core 0.9.5", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" + +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_xorshift" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +dependencies = [ + "rand_core 0.9.5", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle", +] + +[[package]] +name = "rfc6979" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a459cddafb3fe76b31fd8f1108007566c40301feb64dc7b54656eb7388172b" +dependencies = [ + "crypto-bigint 0.7.5", + "hmac 0.13.0", +] + +[[package]] +name = "ripemd" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dd4211456b4172d7e44261920c25acf07367c4f04bb5f5d54fc21b090d9b159" +dependencies = [ + "digest 0.11.3", +] + +[[package]] +name = "ruint" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5e99bff0393163bb25029a6af25d3d8d202ba5b5438a74d1bd8789f5c822970" +dependencies = [ + "alloy-rlp", + "proptest", + "rand 0.8.7", + "rand 0.9.5", + "ruint-macro", + "serde_core", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.10", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56d437c2f19203ce5f7122e507831de96f3d2d4d3be5af44a0b0a09d8a80e4d" +dependencies = [ + "base16ct 1.0.0", + "ctutils", + "der 0.8.1", + "hybrid-array", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", +] + +[[package]] +name = "sha3" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be176f1a57ce4e3d31c1a166222d9768de5954f811601fb7ca06fc8203905ce1" +dependencies = [ + "digest 0.11.3", + "keccak", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "signature" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d567dcbaf0049cb8ac2608a76cd95ff9e4412e1899d389ee400918ca7537f5" +dependencies = [ + "digest 0.11.3", + "rand_core 0.10.1", +] + +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "smallvec" +version = "1.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "thiserror" +version = "2.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "wnaf" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab12e7090f27e2ffd9322651492942d50c2926094af30601e1964337db39daf1" +dependencies = [ + "ff 0.14.0", + "group 0.14.0", + "hybrid-array", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zerocopy" +version = "0.8.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/wasm/evm2/Cargo.toml b/wasm/evm2/Cargo.toml new file mode 100644 index 00000000..88c54a11 --- /dev/null +++ b/wasm/evm2/Cargo.toml @@ -0,0 +1,60 @@ +[package] +name = "ox-evm2" +description = "Ox's WebAssembly ABI and host bridge over alloy-rs/evm2" +version = "0.0.0" +edition = "2024" +rust-version = "1.96" +license = "MIT OR Apache-2.0" +publish = false + +[lib] +# `rlib` exists so `cargo test` can cover the ABI and failure encodings on the +# host; only the `cdylib` is shipped. +crate-type = ["cdylib", "rlib"] + +[dependencies] +# evm2 is resolved from Cargo's external git cache at an exact revision. Its +# source never enters this repository or the npm package. +evm2 = { git = "https://github.com/alloy-rs/evm2", rev = "8ff36b5359aa1ccc5bdd7eb1c98d0a7f3daac469", default-features = false, features = [ + "map-foldhash", + "parse", +] } + +alloy-consensus = { version = "2.0.4", default-features = false } +alloy-eip7928 = { version = "0.4.5", default-features = false } +alloy-eips = { version = "2.0.4", default-features = false } +alloy-primitives = { version = "1.5.7", default-features = false } +# `no_std` leaves the allocator to the adapter. This is the allocator Rust's own +# `std` uses on wasm32. +dlmalloc = { version = "0.2", default-features = false, features = ["global"] } + +# evm2's own workspace redirects every `ark-*` crate here, but Cargo patches do +# not apply through a git dependency. Replicating the redirect keeps our bn254, +# BLS12-381, and KZG precompiles bit-identical to the ones evm2's execution-spec +# tests verify upstream. Without it we would ship arkworks that nothing has run +# consensus fixtures against. +[patch.crates-io] +ark-bls12-381 = { git = "https://github.com/DaniPopes/algebra", rev = "a71d9795e2e527cd0c80e6831bd957134de30d22" } +ark-bn254 = { git = "https://github.com/DaniPopes/algebra", rev = "a71d9795e2e527cd0c80e6831bd957134de30d22" } +ark-ec = { git = "https://github.com/DaniPopes/algebra", rev = "a71d9795e2e527cd0c80e6831bd957134de30d22" } +ark-ff = { git = "https://github.com/DaniPopes/algebra", rev = "a71d9795e2e527cd0c80e6831bd957134de30d22" } +ark-ff-asm = { git = "https://github.com/DaniPopes/algebra", rev = "a71d9795e2e527cd0c80e6831bd957134de30d22" } +ark-ff-macros = { git = "https://github.com/DaniPopes/algebra", rev = "a71d9795e2e527cd0c80e6831bd957134de30d22" } +ark-poly = { git = "https://github.com/DaniPopes/algebra", rev = "a71d9795e2e527cd0c80e6831bd957134de30d22" } +ark-serialize = { git = "https://github.com/DaniPopes/algebra", rev = "a71d9795e2e527cd0c80e6831bd957134de30d22" } +ark-serialize-derive = { git = "https://github.com/DaniPopes/algebra", rev = "a71d9795e2e527cd0c80e6831bd957134de30d22" } + +[dev-dependencies] +# Host-only: the oracle reads the shared fixture file. Never reaches the artifact. +serde_json = "1.0" + +[profile.release] +codegen-units = 1 +lto = "fat" +opt-level = "z" +panic = "abort" +strip = true + +[lints.rust] +missing-docs = "warn" +unsafe-op-in-unsafe-fn = "warn" diff --git a/wasm/evm2/LICENSE-APACHE b/wasm/evm2/LICENSE-APACHE new file mode 100644 index 00000000..1b5ec8b7 --- /dev/null +++ b/wasm/evm2/LICENSE-APACHE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/wasm/evm2/LICENSE-MIT b/wasm/evm2/LICENSE-MIT new file mode 100644 index 00000000..31aa7938 --- /dev/null +++ b/wasm/evm2/LICENSE-MIT @@ -0,0 +1,23 @@ +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/wasm/evm2/NOTICE.md b/wasm/evm2/NOTICE.md new file mode 100644 index 00000000..1e6d3f8a --- /dev/null +++ b/wasm/evm2/NOTICE.md @@ -0,0 +1,140 @@ + + +# Notices for `src/wasm/internal/evm2.wasm.ts` + +The artifact is compiled from `wasm/evm2` against +[`alloy-rs/evm2`](https://github.com/alloy-rs/evm2) at commit +`8ff36b5359aa1ccc5bdd7eb1c98d0a7f3daac469`, which is licensed under MIT OR Apache-2.0. Its license texts are +committed beside this file as `LICENSE-MIT` and `LICENSE-APACHE`. + +Everything compiled into the artifact is listed below, with the license each +crate declares. Each crate's own license text is reproduced in +`THIRD-PARTY-LICENSES.md` beside this file, which distributing compiled code +requires. + +| Crate | Version | License | Source | +| --- | --- | --- | --- | +| `ahash` | 0.8.12 | MIT OR Apache-2.0 | crates.io | +| `allocator-api2` | 0.2.21 | MIT OR Apache-2.0 | crates.io | +| `alloy-consensus` | 2.3.0 | MIT OR Apache-2.0 | crates.io | +| `alloy-eip2124` | 0.2.0 | MIT OR Apache-2.0 | crates.io | +| `alloy-eip2930` | 0.2.3 | MIT OR Apache-2.0 | crates.io | +| `alloy-eip7702` | 0.6.3 | MIT OR Apache-2.0 | crates.io | +| `alloy-eip7928` | 0.4.5 | MIT OR Apache-2.0 | crates.io | +| `alloy-eips` | 2.3.0 | MIT OR Apache-2.0 | crates.io | +| `alloy-primitives` | 1.6.1 | MIT OR Apache-2.0 | crates.io | +| `alloy-rlp` | 0.3.16 | MIT OR Apache-2.0 | crates.io | +| `alloy-trie` | 0.9.5 | MIT OR Apache-2.0 | crates.io | +| `ark-bls12-381` | 0.6.0 | MIT OR Apache-2.0 | https://github.com/DaniPopes/algebra @ a71d9795e2e527cd0c80e6831bd957134de30d22 | +| `ark-bn254` | 0.6.0 | MIT OR Apache-2.0 | https://github.com/DaniPopes/algebra @ a71d9795e2e527cd0c80e6831bd957134de30d22 | +| `ark-ec` | 0.6.0 | MIT OR Apache-2.0 | https://github.com/DaniPopes/algebra @ a71d9795e2e527cd0c80e6831bd957134de30d22 | +| `ark-ff` | 0.6.0 | MIT OR Apache-2.0 | https://github.com/DaniPopes/algebra @ a71d9795e2e527cd0c80e6831bd957134de30d22 | +| `ark-poly` | 0.6.0 | MIT OR Apache-2.0 | https://github.com/DaniPopes/algebra @ a71d9795e2e527cd0c80e6831bd957134de30d22 | +| `ark-serialize` | 0.6.0 | MIT OR Apache-2.0 | https://github.com/DaniPopes/algebra @ a71d9795e2e527cd0c80e6831bd957134de30d22 | +| `ark-std` | 0.6.0 | MIT/Apache-2.0 | crates.io | +| `arrayref` | 0.3.9 | BSD-2-Clause | crates.io | +| `arrayvec` | 0.7.8 | MIT OR Apache-2.0 | crates.io | +| `aurora-engine-modexp` | 1.2.0 | CC0-1.0 | crates.io | +| `base16ct` | 0.2.0 | Apache-2.0 OR MIT | crates.io | +| `base16ct` | 1.0.0 | Apache-2.0 OR MIT | crates.io | +| `bitflags` | 2.13.1 | MIT OR Apache-2.0 | crates.io | +| `bitvec` | 1.1.1 | MIT | crates.io | +| `block-buffer` | 0.10.4 | MIT OR Apache-2.0 | crates.io | +| `block-buffer` | 0.12.1 | MIT OR Apache-2.0 | crates.io | +| `bytes` | 1.12.1 | MIT | crates.io | +| `cfg-if` | 1.0.4 | MIT OR Apache-2.0 | crates.io | +| `cmov` | 0.5.4 | Apache-2.0 OR MIT | crates.io | +| `const-hex` | 1.19.1 | MIT OR Apache-2.0 | crates.io | +| `const-oid` | 0.10.2 | Apache-2.0 OR MIT | crates.io | +| `const-oid` | 0.9.6 | Apache-2.0 OR MIT | crates.io | +| `cpubits` | 0.1.1 | MIT OR Apache-2.0 | crates.io | +| `crc` | 3.4.0 | MIT OR Apache-2.0 | crates.io | +| `crc-catalog` | 2.5.0 | MIT OR Apache-2.0 | crates.io | +| `crypto-bigint` | 0.5.5 | Apache-2.0 OR MIT | crates.io | +| `crypto-bigint` | 0.7.5 | Apache-2.0 OR MIT | crates.io | +| `crypto-common` | 0.1.6 | MIT OR Apache-2.0 | crates.io | +| `crypto-common` | 0.2.2 | MIT OR Apache-2.0 | crates.io | +| `ctutils` | 0.4.2 | Apache-2.0 OR MIT | crates.io | +| `der` | 0.7.10 | Apache-2.0 OR MIT | crates.io | +| `der` | 0.8.1 | Apache-2.0 OR MIT | crates.io | +| `derive_more` | 2.1.1 | MIT | crates.io | +| `digest` | 0.10.7 | MIT OR Apache-2.0 | crates.io | +| `digest` | 0.11.3 | MIT OR Apache-2.0 | crates.io | +| `dlmalloc` | 0.2.14 | MIT/Apache-2.0 | crates.io | +| `ecdsa` | 0.16.9 | Apache-2.0 OR MIT | crates.io | +| `ecdsa` | 0.17.0 | Apache-2.0 OR MIT | crates.io | +| `either` | 1.17.0 | MIT OR Apache-2.0 | crates.io | +| `elliptic-curve` | 0.13.8 | Apache-2.0 OR MIT | crates.io | +| `elliptic-curve` | 0.14.1 | Apache-2.0 OR MIT | crates.io | +| `evm2` | 0.1.0 | MIT OR Apache-2.0 | https://github.com/alloy-rs/evm2 @ 8ff36b5359aa1ccc5bdd7eb1c98d0a7f3daac469 | +| `ff` | 0.13.1 | MIT/Apache-2.0 | crates.io | +| `ff` | 0.14.0 | MIT/Apache-2.0 | crates.io | +| `foldhash` | 0.2.0 | Zlib | crates.io | +| `funty` | 2.0.0 | MIT | crates.io | +| `generic-array` | 0.14.9 | MIT | crates.io | +| `group` | 0.13.0 | MIT/Apache-2.0 | crates.io | +| `group` | 0.14.0 | MIT/Apache-2.0 | crates.io | +| `hashbrown` | 0.17.1 | MIT OR Apache-2.0 | crates.io | +| `hex` | 0.4.3 | MIT OR Apache-2.0 | crates.io | +| `hmac` | 0.12.1 | MIT OR Apache-2.0 | crates.io | +| `hmac` | 0.13.0 | MIT OR Apache-2.0 | crates.io | +| `hybrid-array` | 0.4.14 | MIT OR Apache-2.0 | crates.io | +| `itertools` | 0.14.0 | MIT OR Apache-2.0 | crates.io | +| `itoa` | 1.0.18 | MIT OR Apache-2.0 | crates.io | +| `k256` | 0.13.4 | Apache-2.0 OR MIT | crates.io | +| `k256` | 0.14.0 | Apache-2.0 OR MIT | crates.io | +| `keccak` | 0.2.0 | Apache-2.0 OR MIT | crates.io | +| `libm` | 0.2.16 | MIT | crates.io | +| `num` | 0.4.3 | MIT OR Apache-2.0 | crates.io | +| `num-bigint` | 0.4.8 | MIT OR Apache-2.0 | crates.io | +| `num-complex` | 0.4.6 | MIT OR Apache-2.0 | crates.io | +| `num-integer` | 0.1.46 | MIT OR Apache-2.0 | crates.io | +| `num-iter` | 0.1.46 | MIT OR Apache-2.0 | crates.io | +| `num-rational` | 0.4.2 | MIT OR Apache-2.0 | crates.io | +| `num-traits` | 0.2.19 | MIT OR Apache-2.0 | crates.io | +| `nybbles` | 0.4.8 | MIT OR Apache-2.0 | crates.io | +| `once_cell` | 1.21.4 | MIT OR Apache-2.0 | crates.io | +| `p256` | 0.14.0 | Apache-2.0 OR MIT | crates.io | +| `phf` | 0.14.0 | MIT | crates.io | +| `phf_shared` | 0.14.0 | MIT | crates.io | +| `pin-project-lite` | 0.2.17 | Apache-2.0 OR MIT | crates.io | +| `ppv-lite86` | 0.2.21 | MIT OR Apache-2.0 | crates.io | +| `primefield` | 0.14.0 | Apache-2.0 OR MIT | crates.io | +| `primeorder` | 0.14.0 | Apache-2.0 OR MIT | crates.io | +| `proptest` | 1.11.0 | MIT OR Apache-2.0 | crates.io | +| `radium` | 0.7.0 | MIT | crates.io | +| `rand` | 0.8.7 | MIT OR Apache-2.0 | crates.io | +| `rand` | 0.9.5 | MIT OR Apache-2.0 | crates.io | +| `rand_chacha` | 0.3.1 | MIT OR Apache-2.0 | crates.io | +| `rand_chacha` | 0.9.0 | MIT OR Apache-2.0 | crates.io | +| `rand_core` | 0.10.1 | MIT OR Apache-2.0 | crates.io | +| `rand_core` | 0.6.4 | MIT OR Apache-2.0 | crates.io | +| `rand_core` | 0.9.5 | MIT OR Apache-2.0 | crates.io | +| `rand_xorshift` | 0.4.0 | MIT OR Apache-2.0 | crates.io | +| `rfc6979` | 0.4.0 | Apache-2.0 OR MIT | crates.io | +| `rfc6979` | 0.6.0 | Apache-2.0 OR MIT | crates.io | +| `ripemd` | 0.2.0 | MIT OR Apache-2.0 | crates.io | +| `ruint` | 1.20.0 | MIT | crates.io | +| `sec1` | 0.7.3 | Apache-2.0 OR MIT | crates.io | +| `sec1` | 0.8.1 | Apache-2.0 OR MIT | crates.io | +| `serde_core` | 1.0.229 | MIT OR Apache-2.0 | crates.io | +| `sha2` | 0.10.9 | MIT OR Apache-2.0 | crates.io | +| `sha2` | 0.11.0 | MIT OR Apache-2.0 | crates.io | +| `sha3` | 0.11.0 | MIT OR Apache-2.0 | crates.io | +| `signature` | 2.2.0 | Apache-2.0 OR MIT | crates.io | +| `signature` | 3.0.0 | Apache-2.0 OR MIT | crates.io | +| `siphasher` | 1.0.3 | MIT/Apache-2.0 | crates.io | +| `smallvec` | 1.15.2 | MIT OR Apache-2.0 | crates.io | +| `subtle` | 2.6.1 | BSD-3-Clause | crates.io | +| `tap` | 1.0.1 | MIT | crates.io | +| `thiserror` | 2.0.19 | MIT OR Apache-2.0 | crates.io | +| `tracing` | 0.1.44 | MIT | crates.io | +| `tracing-core` | 0.1.36 | MIT | crates.io | +| `typeid` | 1.0.3 | MIT OR Apache-2.0 | crates.io | +| `typenum` | 1.20.1 | MIT OR Apache-2.0 | crates.io | +| `unarray` | 0.1.4 | MIT OR Apache-2.0 | crates.io | +| `valuable` | 0.1.1 | MIT | crates.io | +| `wnaf` | 0.14.0 | Apache-2.0 OR MIT | crates.io | +| `wyz` | 0.5.1 | MIT | crates.io | +| `zerocopy` | 0.8.55 | BSD-2-Clause OR Apache-2.0 OR MIT | crates.io | +| `zeroize` | 1.9.0 | Apache-2.0 OR MIT | crates.io | diff --git a/wasm/evm2/THIRD-PARTY-LICENSES.md b/wasm/evm2/THIRD-PARTY-LICENSES.md new file mode 100644 index 00000000..93ee52e8 --- /dev/null +++ b/wasm/evm2/THIRD-PARTY-LICENSES.md @@ -0,0 +1,22784 @@ + + +# Third-party licenses for `src/wasm/internal/evm2.wasm.ts` + +The artifact is compiled code linking the crates below. Each one's own license +text is reproduced here, which distributing a binary requires. + +## `ahash` 0.8.12 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2018 Tom Kaitchuck + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `allocator-api2` 0.2.21 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `alloy-consensus` 2.3.0 + +Declared license: MIT OR Apache-2.0. + +This crate publishes no license file. Its declared terms are the standard MIT or Apache-2.0 text, reproduced in `LICENSE-MIT` and `LICENSE-APACHE` beside this file. Copyright remains the crate authors'. + +## `alloy-eip2124` 0.2.0 + +Declared license: MIT OR Apache-2.0. + +This crate publishes no license file. Its declared terms are the standard MIT or Apache-2.0 text, reproduced in `LICENSE-MIT` and `LICENSE-APACHE` beside this file. Copyright remains the crate authors'. + +## `alloy-eip2930` 0.2.3 + +Declared license: MIT OR Apache-2.0. + +This crate publishes no license file. Its declared terms are the standard MIT or Apache-2.0 text, reproduced in `LICENSE-MIT` and `LICENSE-APACHE` beside this file. Copyright remains the crate authors'. + +## `alloy-eip7702` 0.6.3 + +Declared license: MIT OR Apache-2.0. + +This crate publishes no license file. Its declared terms are the standard MIT or Apache-2.0 text, reproduced in `LICENSE-MIT` and `LICENSE-APACHE` beside this file. Copyright remains the crate authors'. + +## `alloy-eip7928` 0.4.5 + +Declared license: MIT OR Apache-2.0. + +This crate publishes no license file. Its declared terms are the standard MIT or Apache-2.0 text, reproduced in `LICENSE-MIT` and `LICENSE-APACHE` beside this file. Copyright remains the crate authors'. + +## `alloy-eips` 2.3.0 + +Declared license: MIT OR Apache-2.0. + +This crate publishes no license file. Its declared terms are the standard MIT or Apache-2.0 text, reproduced in `LICENSE-MIT` and `LICENSE-APACHE` beside this file. Copyright remains the crate authors'. + +## `alloy-primitives` 1.6.1 + +Declared license: MIT OR Apache-2.0. + +This crate publishes no license file. Its declared terms are the standard MIT or Apache-2.0 text, reproduced in `LICENSE-MIT` and `LICENSE-APACHE` beside this file. Copyright remains the crate authors'. + +## `alloy-rlp` 0.3.16 + +Declared license: MIT OR Apache-2.0. + +This crate publishes no license file. Its declared terms are the standard MIT or Apache-2.0 text, reproduced in `LICENSE-MIT` and `LICENSE-APACHE` beside this file. Copyright remains the crate authors'. + +## `alloy-trie` 0.9.5 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `ark-bls12-381` 0.6.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2022 arkworks contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## `ark-bn254` 0.6.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2022 arkworks contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## `ark-ec` 0.6.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2022 arkworks contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## `ark-ff` 0.6.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2022 arkworks contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## `ark-poly` 0.6.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2022 arkworks contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## `ark-serialize` 0.6.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2022 arkworks contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## `ark-std` 0.6.0 + +Declared license: MIT/Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## `arrayref` 0.3.9 + +Declared license: BSD-2-Clause. + + + +Copyright (c) 2015 David Roundy +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +## `arrayvec` 0.7.8 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) Ulrik Sverdrup "bluss" 2015-2023 + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `aurora-engine-modexp` 1.2.0 + +Declared license: CC0-1.0. + +No license file ships with this crate; see its repository. + +## `base16ct` 0.2.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) +Copyright (c) 2022 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `base16ct` 1.0.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com) +Copyright (c) 2022-2025 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `bitflags` 2.13.1 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `bitvec` 1.1.1 + +Declared license: MIT. + + + +MIT License + +Copyright (c) 2018 myrrlyn (Alexander Payne) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## `block-buffer` 0.10.4 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2018-2019 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `block-buffer` 0.12.1 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2018-2025 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `bytes` 1.12.1 + +Declared license: MIT. + + + +Copyright (c) 2018 Carl Lerche + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `cfg-if` 1.0.4 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 Alex Crichton + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `cmov` 0.5.4 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +Copyright (c) 2022-2026 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `const-hex` 1.19.1 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `const-oid` 0.10.2 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2020-2026 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `const-oid` 0.9.6 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2020-2022 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `cpubits` 0.1.1 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2023-2026 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `crc` 3.4.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0 January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +MIT License + +Copyright (c) 2017 crc-rs Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## `crc-catalog` 2.5.0 + +Declared license: MIT OR Apache-2.0. + +This crate publishes no license file. Its declared terms are the standard MIT or Apache-2.0 text, reproduced in `LICENSE-MIT` and `LICENSE-APACHE` beside this file. Copyright remains the crate authors'. + +## `crypto-bigint` 0.5.5 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2021 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `crypto-bigint` 0.7.5 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2021-2026 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `crypto-common` 0.1.6 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2021 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `crypto-common` 0.2.2 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2021-2026 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `ctutils` 0.4.2 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +Copyright (c) 2025-2026 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `der` 0.7.10 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2020-2023 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `der` 0.8.1 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2020-2026 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `derive_more` 2.1.1 + +Declared license: MIT. + + + +The MIT License (MIT) + +Copyright (c) 2016 Jelte Fennema + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## `digest` 0.10.7 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2017 Artyom Pavlov + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `digest` 0.11.3 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2017-2025 RustCrypto Developers +Copyright (c) 2017 Artyom Pavlov + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `dlmalloc` 0.2.14 + +Declared license: MIT/Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 Alex Crichton + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `ecdsa` 0.16.9 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2018-2022 RustCrypto Developers + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2018-2022 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `ecdsa` 0.17.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2018-2022 RustCrypto Developers + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2018-2026 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `either` 1.17.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2015 + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `elliptic-curve` 0.13.8 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2020-2022 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `elliptic-curve` 0.14.1 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2020-2026 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `evm2` 0.1.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `ff` 0.13.1 + +Declared license: MIT/Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +The MIT License (MIT) + +Copyright (c) 2017 Sean Bowe + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## `ff` 0.14.0 + +Declared license: MIT/Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +The MIT License (MIT) + +Copyright (c) 2017 Sean Bowe + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## `foldhash` 0.2.0 + +Declared license: Zlib. + + + +Copyright (c) 2024 Orson Peters + +This software is provided 'as-is', without any express or implied warranty. In +no event will the authors be held liable for any damages arising from the use of +this software. + +Permission is granted to anyone to use this software for any purpose, including +commercial applications, and to alter it and redistribute it freely, subject to +the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim + that you wrote the original software. If you use this software in a product, + an acknowledgment in the product documentation would be appreciated but is + not required. + +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. + +## `funty` 2.0.0 + +Declared license: MIT. + + + +MIT License + +Copyright (c) 2020 myrrlyn (Alexander Payne) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## `generic-array` 0.14.9 + +Declared license: MIT. + + + +The MIT License (MIT) + +Copyright (c) 2015 Bartłomiej Kamiński + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## `group` 0.13.0 + +Declared license: MIT/Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `group` 0.14.0 + +Declared license: MIT/Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `hashbrown` 0.17.1 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2016 Amanieu d'Antras + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `hex` 0.4.3 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +Copyright (c) 2013-2014 The Rust Project Developers. +Copyright (c) 2015-2020 The rust-hex Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## `hmac` 0.12.1 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2017 Artyom Pavlov + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `hmac` 0.13.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2017 Artyom Pavlov + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `hybrid-array` 0.4.14 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2022-2026 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `itertools` 0.14.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2015 + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `itoa` 1.0.18 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `k256` 0.13.4 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2020-2024 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `k256` 0.14.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2020-2024 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `keccak` 0.2.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2018-2022 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `libm` 0.2.16 + +Declared license: MIT. + + + +rust-lang/libm as a whole is available for use under the MIT license: + +------------------------------------------------------------------------------ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +------------------------------------------------------------------------------ + +As a contributor, you agree that your code can be used under either the MIT +license or the Apache-2.0 license: + +------------------------------------------------------------------------------ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +------------------------------------------------------------------------------ + +This Rust library contains the following copyrights: + + Copyright (c) 2018 Jorge Aparicio + +Portions of this software are derived from third-party works licensed under +terms compatible with the above MIT license: + +* musl libc https://www.musl-libc.org/. This library contains the following + copyright: + + Copyright © 2005-2020 Rich Felker, et al. + +* The CORE-MATH project https://core-math.gitlabpages.inria.fr/. CORE-MATH + routines are available under the MIT license on a per-file basis. + +The musl libc COPYRIGHT file also includes the following notice relevant to +math portions of the library: + +------------------------------------------------------------------------------ +Much of the math library code (src/math/* and src/complex/*) is +Copyright © 1993,2004 Sun Microsystems or +Copyright © 2003-2011 David Schultz or +Copyright © 2003-2009 Steven G. Kargl or +Copyright © 2003-2009 Bruce D. Evans or +Copyright © 2008 Stephen L. Moshier or +Copyright © 2017-2018 Arm Limited +and labelled as such in comments in the individual source files. All +have been licensed under extremely permissive terms. +------------------------------------------------------------------------------ + +Copyright notices are retained in src/* files where relevant. + +## `num` 0.4.3 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `num-bigint` 0.4.8 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `num-complex` 0.4.6 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `num-integer` 0.1.46 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `num-iter` 0.1.46 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `num-rational` 0.4.2 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `num-traits` 0.2.19 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `nybbles` 0.4.8 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `once_cell` 1.21.4 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `p256` 0.14.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2020-2026 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `phf` 0.14.0 + +Declared license: MIT. + + + +The MIT License (MIT) + +Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## `phf_shared` 0.14.0 + +Declared license: MIT. + + + +The MIT License (MIT) + +Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## `pin-project-lite` 0.2.17 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `ppv-lite86` 0.2.21 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2019 The CryptoCorrosion Contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2019 The CryptoCorrosion Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `primefield` 0.14.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2024-2026 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `primeorder` 0.14.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2020-2023 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `proptest` 1.11.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2016 FullContact, Inc + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `radium` 0.7.0 + +Declared license: MIT. + + + +MIT License + +Copyright (c) 2019 kneecaw (Nika Layzell) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## `rand` 0.8.7 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `rand` 0.9.5 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `rand_chacha` 0.3.1 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `rand_chacha` 0.9.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `rand_core` 0.10.1 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + + +Copyright (c) 2018-2026 The Rand Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `rand_core` 0.6.4 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + + +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `rand_core` 0.9.5 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + + +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `rand_xorshift` 0.4.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `rfc6979` 0.4.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2018-2022 RustCrypto Developers + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2018-2022 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `rfc6979` 0.6.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2018-2022 RustCrypto Developers + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2018-2026 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `ripemd` 0.2.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2021-2026 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `ruint` 1.20.0 + +Declared license: MIT. + +This crate publishes no license file. Its declared terms are the standard MIT text, reproduced in `LICENSE-MIT` beside this file. Copyright remains the crate authors'. + +## `sec1` 0.7.3 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2021-2022 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `sec1` 0.8.1 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2021-2026 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `serde_core` 1.0.229 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `sha2` 0.10.9 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2006-2009 Graydon Hoare +Copyright (c) 2009-2013 Mozilla Foundation +Copyright (c) 2016 Artyom Pavlov + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `sha2` 0.11.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2016-2026 The RustCrypto Project Developers +Copyright (c) 2016 Artyom Pavlov +Copyright (c) 2009-2013 Mozilla Foundation +Copyright (c) 2006-2009 Graydon Hoare + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `sha3` 0.11.0 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2020-2026 The RustCrypto Project Developers +Copyright (c) 2016-2023 Artyom Pavlov, Marek Kotewicz +Copyright (c) 2014 Sébastien Martini +Copyright (c) 2009-2013 Mozilla Foundation +Copyright (c) 2006-2009 Graydon Hoare + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `signature` 2.2.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2018-2023 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `signature` 3.0.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2018-2026 RustCrypto Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `siphasher` 1.0.3 + +Declared license: MIT/Apache-2.0. + + + +Copyright 2012-2016 The Rust Project Developers. +Copyright 2016-2026 Frank Denis. + +Licensed under the Apache License, Version 2.0 or the MIT license +, at your +option. + +## `smallvec` 1.15.2 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2018 The Servo Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `subtle` 2.6.1 + +Declared license: BSD-3-Clause. + + + +Copyright (c) 2016-2017 Isis Agora Lovecruft, Henry de Valence. All rights reserved. +Copyright (c) 2016-2024 Isis Agora Lovecruft. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +## `tap` 1.0.1 + +Declared license: MIT. + + + +MIT License + +Copyright (c) 2017 Elliot Linder + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## `thiserror` 2.0.19 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `tracing` 0.1.44 + +Declared license: MIT. + + + +Copyright (c) 2019 Tokio Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `tracing-core` 0.1.36 + +Declared license: MIT. + + + +Copyright (c) 2019 Tokio Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `typeid` 1.0.3 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + + + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `typenum` 1.20.1 + +Declared license: MIT OR Apache-2.0. + + + +MIT OR Apache-2.0 + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2014 Paho Lurie-Gregg + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +The MIT License (MIT) + +Copyright (c) 2014 Paho Lurie-Gregg + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## `unarray` 0.1.4 + +Declared license: MIT OR Apache-2.0. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +MIT License + +Copyright (c) [year] [fullname] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## `valuable` 0.1.1 + +Declared license: MIT. + +This crate publishes no license file. Its declared terms are the standard MIT text, reproduced in `LICENSE-MIT` beside this file. Copyright remains the crate authors'. + +## `wnaf` 0.14.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Copyright (c) 2026 RustCrypto Developers +Copyright (c) 2018-2025 `group` crate developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `wyz` 0.5.1 + +Declared license: MIT. + + + +MIT License + +Copyright (c) 2018 myrrlyn (Alexander Payne) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## `zerocopy` 0.8.55 + +Declared license: BSD-2-Clause OR Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023 The Fuchsia Authors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +Copyright 2019 The Fuchsia Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + +Copyright 2023 The Fuchsia Authors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +## `zeroize` 1.9.0 + +Declared license: Apache-2.0 OR MIT. + + + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +Copyright (c) 2018-2026 The RustCrypto Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/wasm/evm2/fixtures/call-tx.json b/wasm/evm2/fixtures/call-tx.json new file mode 100644 index 00000000..05b8e2b6 --- /dev/null +++ b/wasm/evm2/fixtures/call-tx.json @@ -0,0 +1,1918 @@ +{ + "$comment": "Generated inputs; `expected` is written by `cargo test` in wasm/evm2 with OX_UPDATE_FIXTURES=1. Both native evm2 and the WASM artifact verify it.", + "fixtures": [ + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8628080830f42409400000000000000000000000000000000000000bb8203e88025a0698fb86e16a23a10ddfd2273ba645bc9f8d19e7b599e33018bd5f52fa0ffcc15a03d87d17c44bf5cfca6008b870e3f89bf9cde567df0a85b3476968b89f2397fcb", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000bb|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000bb|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000bb|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + } + }, + "name": "transfer", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x00000000000000000000000000000000000000bb", + "value": "0x3e8" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8608080830f42409400000000000000000000000000000000000000c0808026a0a6a9f8f27b3fe3cc1f6a31f34ee31293ebae19f4867d30f2b1cc8b2b93e213d7a01662550393089b38d71e581eee4e27458296cb56f37ba01bce8db7ee6dde457f", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5218" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5218" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5218" + } + }, + "name": "return-word", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x00000000000000000000000000000000000000c0", + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60016002015f5260205ff3", + "codeHash": "0x512a58a86985215712b20521edee3427286e63031c2975787b23a50caec896de", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8608080830f42409400000000000000000000000000000000000000c0808026a0a6a9f8f27b3fe3cc1f6a31f34ee31293ebae19f4867d30f2b1cc8b2b93e213d7a01662550393089b38d71e581eee4e27458296cb56f37ba01bce8db7ee6dde457f", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000003", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x512a58a86985215712b20521edee3427286e63031c2975787b23a50caec896de", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x521e", + "txGasUsed": "0x521e" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000003", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x512a58a86985215712b20521edee3427286e63031c2975787b23a50caec896de", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x521e", + "txGasUsed": "0x521e" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000003", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x512a58a86985215712b20521edee3427286e63031c2975787b23a50caec896de", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x521e", + "txGasUsed": "0x521e" + } + }, + "name": "add", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x00000000000000000000000000000000000000c0", + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f205f5260205ff3", + "codeHash": "0xba18b8d4466ff070c255421488766e72564a3de46f7fdb7b1b8b2d7deab3a053", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8608080830f42409400000000000000000000000000000000000000c0808026a0a6a9f8f27b3fe3cc1f6a31f34ee31293ebae19f4867d30f2b1cc8b2b93e213d7a01662550393089b38d71e581eee4e27458296cb56f37ba01bce8db7ee6dde457f", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xba18b8d4466ff070c255421488766e72564a3de46f7fdb7b1b8b2d7deab3a053", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5237", + "txGasUsed": "0x5237" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xba18b8d4466ff070c255421488766e72564a3de46f7fdb7b1b8b2d7deab3a053", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5237", + "txGasUsed": "0x5237" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xba18b8d4466ff070c255421488766e72564a3de46f7fdb7b1b8b2d7deab3a053", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5237", + "txGasUsed": "0x5237" + } + }, + "name": "keccak-empty", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x00000000000000000000000000000000000000c0", + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60205ffd", + "codeHash": "0x79606664e343265cdf1ad9cc129d0b8253f5e4e956ef3a7d29d8c5b85846e6de", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8608080830f42409400000000000000000000000000000000000000c0808026a0a6a9f8f27b3fe3cc1f6a31f34ee31293ebae19f4867d30f2b1cc8b2b93e213d7a01662550393089b38d71e581eee4e27458296cb56f37ba01bce8db7ee6dde457f", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000000", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x79606664e343265cdf1ad9cc129d0b8253f5e4e956ef3a7d29d8c5b85846e6de", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0x5210", + "txGasUsed": "0x5210" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000000", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x79606664e343265cdf1ad9cc129d0b8253f5e4e956ef3a7d29d8c5b85846e6de", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0x5210", + "txGasUsed": "0x5210" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000000", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x79606664e343265cdf1ad9cc129d0b8253f5e4e956ef3a7d29d8c5b85846e6de", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0x5210", + "txGasUsed": "0x5210" + } + }, + "name": "revert", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x00000000000000000000000000000000000000c0", + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8608080830f42409400000000000000000000000000000000000000c0808026a0a6a9f8f27b3fe3cc1f6a31f34ee31293ebae19f4867d30f2b1cc8b2b93e213d7a01662550393089b38d71e581eee4e27458296cb56f37ba01bce8db7ee6dde457f", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0xf4240", + "txGasUsed": "0xf4240" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0xf4240", + "txGasUsed": "0xf4240" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0xf4240", + "txGasUsed": "0xf4240" + } + }, + "name": "invalid-opcode", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x00000000000000000000000000000000000000c0", + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8608080830f42409400000000000000000000000000000000000000c0808026a0a6a9f8f27b3fe3cc1f6a31f34ee31293ebae19f4867d30f2b1cc8b2b93e213d7a01662550393089b38d71e581eee4e27458296cb56f37ba01bce8db7ee6dde457f", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [ + "0x00000000000000000000000000000000000000c0|0x0|0x0|0x1" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xa861", + "txGasUsed": "0xa861" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [ + "0x00000000000000000000000000000000000000c0|0x0|0x0|0x1" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xa861", + "txGasUsed": "0xa861" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [ + "0x00000000000000000000000000000000000000c0|0x0|0x0|0x1" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xa861", + "txGasUsed": "0xa861" + } + }, + "name": "sstore-cold", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x00000000000000000000000000000000000000c0", + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a60205fa100", + "codeHash": "0xb2ca30c374a1ebcdfabf91b535a265e9f4ff348192adae908255ef6cdf1df875", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8608080830f42409400000000000000000000000000000000000000c0808026a0a6a9f8f27b3fe3cc1f6a31f34ee31293ebae19f4867d30f2b1cc8b2b93e213d7a01662550393089b38d71e581eee4e27458296cb56f37ba01bce8db7ee6dde457f", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "topics": [ + "0x000000000000000000000000000000000000000000000000000000000000002a" + ] + } + ], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xb2ca30c374a1ebcdfabf91b535a265e9f4ff348192adae908255ef6cdf1df875", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5601", + "txGasUsed": "0x5601" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "topics": [ + "0x000000000000000000000000000000000000000000000000000000000000002a" + ] + } + ], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xb2ca30c374a1ebcdfabf91b535a265e9f4ff348192adae908255ef6cdf1df875", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5601", + "txGasUsed": "0x5601" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "topics": [ + "0x000000000000000000000000000000000000000000000000000000000000002a" + ] + } + ], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xb2ca30c374a1ebcdfabf91b535a265e9f4ff348192adae908255ef6cdf1df875", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5601", + "txGasUsed": "0x5601" + } + }, + "name": "log1", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x00000000000000000000000000000000000000c0", + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60015f045f5260205ff3", + "codeHash": "0xa547c19b045e9890a1add7a8da4e5914a0682199c0dc7ee82aa4b6931d9c3e06", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8608080830f42409400000000000000000000000000000000000000c0808026a0a6a9f8f27b3fe3cc1f6a31f34ee31293ebae19f4867d30f2b1cc8b2b93e213d7a01662550393089b38d71e581eee4e27458296cb56f37ba01bce8db7ee6dde457f", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000000", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xa547c19b045e9890a1add7a8da4e5914a0682199c0dc7ee82aa4b6931d9c3e06", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x521f", + "txGasUsed": "0x521f" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000000", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xa547c19b045e9890a1add7a8da4e5914a0682199c0dc7ee82aa4b6931d9c3e06", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x521f", + "txGasUsed": "0x521f" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000000", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xa547c19b045e9890a1add7a8da4e5914a0682199c0dc7ee82aa4b6931d9c3e06", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x521f", + "txGasUsed": "0x521f" + } + }, + "name": "divide-by-zero", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x00000000000000000000000000000000000000c0", + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8648080830f42409400000000000000000000000000000000000000048084deadbeef26a0ec8d7131a379cf84be88a7bbf8089e960fb87c69e7edb0606c3db6fcc1cbfd46a0308758cba3df7b2617ec45b660556ff13ecea15ad1c4527d71b1e7e003a26193", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0xdeadbeef", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x525a", + "txGasUsed": "0x525a" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52a8", + "logs": [], + "output": "0xdeadbeef", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x525a", + "txGasUsed": "0x52a8" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52a8", + "logs": [], + "output": "0xdeadbeef", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x525a", + "txGasUsed": "0x52a8" + } + }, + "name": "precompile-identity", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0xdeadbeef", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x0000000000000000000000000000000000000004", + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8648080830f42409400000000000000000000000000000000000000028084deadbeef26a051301893551c9a2b342e8b0445ecba0bd0669f6130a9a3b8d7f81270e15ff58ba0679677c811be7873c6afeb96d612da73c9d7e18e31f3b331604408a5d85eb4da", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000002|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5290", + "txGasUsed": "0x5290" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52a8", + "logs": [], + "output": "0x5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000002|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5290", + "txGasUsed": "0x52a8" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52a8", + "logs": [], + "output": "0x5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000002|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5290", + "txGasUsed": "0x52a8" + } + }, + "name": "precompile-sha256", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0xdeadbeef", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x0000000000000000000000000000000000000002", + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8608080830f4240940000000000000000000000000000000000000008808026a0c501dae2e4d33ec278a8589933b968dd43ad188344b93569b6a41b3b67cd649aa00d4e65565d0af041bc3f46c7039ef32d9b431b041d8df4183262a759b3b824ec", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000008|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x101d0", + "txGasUsed": "0x101d0" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000008|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x101d0", + "txGasUsed": "0x101d0" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000008|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x101d0", + "txGasUsed": "0x101d0" + } + }, + "name": "precompile-ecpairing-empty", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x0000000000000000000000000000000000000008", + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf84f8080830f42408080835f5ff325a0442bbf7941591be7ec10c7de06c69bacbe82d3c956b4b22362655c052e5a7041a075509a86267d05d26a086dd6b15ba0fa7cc2f838894c0690b7936bbf9d6b34a0", + "expected": { + "cancun": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xcf3e", + "txGasUsed": "0xcf3e" + }, + "osaka": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xcf3e", + "txGasUsed": "0xcf3e" + }, + "prague": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xcf3e", + "txGasUsed": "0xcf3e" + } + }, + "name": "create-empty", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x5f5ff3", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": null, + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf85c8080830f424080809067602a5f5260205ff35f5260086018f326a0c4d99243b42cd5646ba9ce5091116cdd00878ab86d7cc2472472e094c16dd3e7a05399b6fe4f5ddd4b11bee1f5a5ff19462b7a4706ef6ca73498ac22b2fcb6bcb9", + "expected": { + "cancun": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|true|false" + ], + "bytecode": [ + "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|0x602a5f5260205ff3" + ], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xd65b", + "txGasUsed": "0xd65b" + }, + "osaka": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5488", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|true|false" + ], + "bytecode": [ + "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|0x602a5f5260205ff3" + ], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xd65b", + "txGasUsed": "0xd65b" + }, + "prague": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5488", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|true|false" + ], + "bytecode": [ + "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|0x602a5f5260205ff3" + ], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xd65b", + "txGasUsed": "0xd65b" + } + }, + "name": "create-runtime-code", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x67602a5f5260205ff35f5260086018f3", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": null, + "value": "0x0" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8528080830f424080018660015f5533ff25a0e83a3e927751c64533263c9e6f743da2d2956dfae94a3bb1d9eac6a6bf95a6d9a019b78a471a2dd27769d002dabd57f25df92c421ec46c7a4f30de5671d8cc9ac3", + "expected": { + "cancun": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|absent|true|true" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [ + "0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|read|0x0" + ], + "wipes": ["0x8464135c8f25da09e49bc8782676a84730c318bc"] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 3, + "totalGasSpent": "0x1394d", + "txGasUsed": "0x1394d" + }, + "osaka": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52f8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|absent|true|true" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [ + "0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|read|0x0" + ], + "wipes": ["0x8464135c8f25da09e49bc8782676a84730c318bc"] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 3, + "totalGasSpent": "0x1394d", + "txGasUsed": "0x1394d" + }, + "prague": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52f8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|absent|true|true" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [ + "0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|read|0x0" + ], + "wipes": ["0x8464135c8f25da09e49bc8782676a84730c318bc"] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 3, + "totalGasSpent": "0x1394d", + "txGasUsed": "0x1394d" + } + }, + "name": "create-selfdestruct", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x60015f5533ff", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": null, + "value": "0x1" + } + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c5", + "balance": "0x0", + "code": "0x60015f555f5f5500", + "codeHash": "0x093da0715053447c23b0e763340152c67f19bcb1bca186f08ae32af9779da130", + "nonce": 0 + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "chainId": "0x1", + "envelope": "0xf8608080830f42409400000000000000000000000000000000000000c5808026a03ffb1cd4d9aa8e1b6705a8f57c90a5b603ad5a9a6cd20c2535eb8f4ac450d1a6a02c0c7229a601780e6f39628992b785bce049bf558cffbe05724a8febf48daa94", + "expected": { + "cancun": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c5|0x0/0/0x093da0715053447c23b0e763340152c67f19bcb1bca186f08ae32af9779da130", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [ + "0x00000000000000000000000000000000000000c5|0x0|read|0x0" + ], + "wipes": [] + }, + "refunded": "0x21c1", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xa8c9", + "txGasUsed": "0x8708" + }, + "osaka": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c5|0x0/0/0x093da0715053447c23b0e763340152c67f19bcb1bca186f08ae32af9779da130", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [ + "0x00000000000000000000000000000000000000c5|0x0|read|0x0" + ], + "wipes": [] + }, + "refunded": "0x21c1", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xa8c9", + "txGasUsed": "0x8708" + }, + "prague": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c5|0x0/0/0x093da0715053447c23b0e763340152c67f19bcb1bca186f08ae32af9779da130", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [ + "0x00000000000000000000000000000000000000c5|0x0|read|0x0" + ], + "wipes": [] + }, + "refunded": "0x21c1", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xa8c9", + "txGasUsed": "0x8708" + } + }, + "name": "sstore-refund", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "tx": { + "data": "0x", + "gas": "0xf4240", + "gasPrice": "0x0", + "nonce": "0x0", + "to": "0x00000000000000000000000000000000000000c5", + "value": "0x0" + } + } + ], + "privateKey": "0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d", + "specs": ["cancun", "prague", "osaka"] +} diff --git a/wasm/evm2/fixtures/fuzz.json b/wasm/evm2/fixtures/fuzz.json new file mode 100644 index 00000000..3df1c308 --- /dev/null +++ b/wasm/evm2/fixtures/fuzz.json @@ -0,0 +1,59300 @@ +{ + "$comment": "Generated by `cargo test --test oracle`. Do not edit by hand.", + "cases": [ + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x75c1869e28212f76d2dcf53f923819", + "codeHash": "0xe5019f739372126c3f2e9804e0ca6919d7b77a96ee03ef8dd586b0f624028079", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x160781480032fa0cc86d8eb53c49fea195eb8d588e60", + "codeHash": "0x356ec8afcd1b8d66a55d55e0e93766636858bf7edda9f5988158b0aade0f57a8", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x7d0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x53de", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a83a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x7d0", + "codeHash": "0x356ec8afcd1b8d66a55d55e0e93766636858bf7edda9f5988158b0aade0f57a8", + "nonce": 0 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x356ec8afcd1b8d66a55d55e0e93766636858bf7edda9f5988158b0aade0f57a8", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x53de", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a83a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf83c800183030d409400000000000000000000000000000000000000048203e89a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53de", + "logs": [], + "output": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x3e8/0/0x356ec8afcd1b8d66a55d55e0e93766636858bf7edda9f5988158b0aade0f57a8|0x7d0/0/0x356ec8afcd1b8d66a55d55e0e93766636858bf7edda9f5988158b0aade0f57a8|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x53de/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a83a/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52d6", + "txGasUsed": "0x53de" + }, + "name": "case-000", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x44cba9d5b906", + "codeHash": "0xbd8d574645a166051ada117d1c8642e2a32d4384b3ac4f1f2045e6d8955223af", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe7800182520894000000000000000000000000000000000000dead0188602a5f5260205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21128, got 21000" + }, + "name": "case-001", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x54589665afac1c94149838499fc32b1082117d18fa", + "codeHash": "0x54eb588df8a0e6421e00e4550e364e5ede4054036629fc4788587cca7cd76c89", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": ["0x0"] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": ["0x8464135c8f25da09e49bc8782676a84730c318bc"] + }, + "chainId": "0x1", + "envelope": "0xd2808083030d4080018660015f5533ff250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|absent|true|true" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [ + "0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|read|0x0" + ], + "wipes": ["0x8464135c8f25da09e49bc8782676a84730c318bc"] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 3, + "totalGasSpent": "0x1394d", + "txGasUsed": "0x1394d" + }, + "name": "case-002", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xef808083030d409400000000000000000000000000000000000000c1018fdec156f3e786d20a84f13bdff4904a250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5460", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52f8", + "txGasUsed": "0x5460" + }, + "name": "case-003", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe3808082520894000000000000000000000000000000000000dead01845f3f5000250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21052, got 21000" + }, + "name": "case-004", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 1, + "storage": { + "0x0": "0x0", + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x2ecb4349a8f3f1f36ad6af9f5d654bd7f32c9dce12", + "codeHash": "0x382e951d7c207bda4a08733a6e9710c90c6c0e839df03943c63927b78e33b3ad", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5280", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a998", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5280", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a998", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5800183030d409400000000000000000000000000000000000000c18203e8835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5280/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a998/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5280" + }, + "name": "case-005", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1, + "storage": { + "0x2": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd98080825208808203e88c5f545f52602a5f5560205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53194, got 21000" + }, + "name": "case-006", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0xdb68293a64c58e7b6e84a036aeb0760004460b2efe", + "codeHash": "0x80ce3cbefcfcb0c3bd597125892591a5867665fdbc213e71fa7d246fcd181dea", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5808083030d4094000000000000000000000000000000000000dead808511b36a705b250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52d0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5258", + "txGasUsed": "0x52d0" + }, + "name": "case-007", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x66bf998ac79bc98591", + "codeHash": "0x63e236f7a9b00ee736f06c9f637516afd645522234fe2c0710cb45decf8835f8", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xeb8001825208940000000000000000000000000000000000000004808c5f545f52602a5f5560205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21192, got 21000" + }, + "name": "case-008", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0xe51e2ff5", + "codeHash": "0x8bc4cac71721f2aafd6b6a21495110bbfd93746031b74ca7de575903e848465a", + "nonce": 0, + "storage": { + "0x2": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xed80808252089400000000000000000000000000000000000000c18203e88c5f545f52602a5f5560205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21192, got 21000" + }, + "name": "case-009", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x731133f08826f8c987dbb5a5e57a93fa", + "codeHash": "0xda406c2a64b3b19f9e509455a5c4b4c535b77549235d75846d8e4b669b76180b", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd1808083030d408001855f5f5fa100250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52b2", + "logs": [ + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "data": "0x", + "topics": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + } + ], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xd242", + "txGasUsed": "0xd242" + }, + "name": "case-010", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5230", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763add0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5230", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763add0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe080018275309400000000000000000000000000000000000000c08081fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5230/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763add0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/1/0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0x5228", + "txGasUsed": "0x5230" + }, + "name": "case-011", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x50a001055a275e41f47c50fc0dc2", + "codeHash": "0xd96b37c97d18b1e2f09076830b326e16906b3f085b584abc8ce3f37cb5a7fdd2", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe380808252089400000000000000000000000000000000000000c08203e88233ff250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21032, got 21000" + }, + "name": "case-012", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd5800182520880018a602a5f5260205f5fa200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53150, got 21000" + }, + "name": "case-013", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 1, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcf8080830186a08080835f5ff3250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xcf3e", + "txGasUsed": "0xcf3e" + }, + "name": "case-014", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e8", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2 + }, + "original": { + "balance": "0x0", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xec8080830186a09400000000000000000000000000000000000000048203e88a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x602a5f5260205f5fa200", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x0/2/0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b|0x3e8/2/0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52ae", + "txGasUsed": "0x52ae" + }, + "name": "case-015", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0xe3da2e1a025f4ef8a2ff8bc87dbcff7b276869094d", + "codeHash": "0x653f0093e1f9ac2c26e5f7ab3f4ab040e4d4aa17d5fc576be55c255d86f2bc96", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5348", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763acb7", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5348", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763acb7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe7800182753094000000000000000000000000000000000000dead0188602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5348/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763acb7/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5348" + }, + "name": "case-016", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x524e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adb2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x524e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adb2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe4800183030d4094000000000000000000000000000000000000000480845f3f5000250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x5f3f5000", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x524e/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adb2/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x0/0/0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x524e", + "txGasUsed": "0x524e" + }, + "name": "case-017", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x87bf64061beea5ba2e69c9f0500af617e119d4b11203", + "codeHash": "0x94276bc7c18374b1ae5c7eae78ae3dcca842ce1c69dc0cce2cf56e8ad0e84eb1", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": ["0x0"] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5b28", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a4d7", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x2", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + }, + "original": { + "balance": "0x1", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5b28", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a4d7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe9800183030d409400000000000000000000000000000000000000c1018960015f5560025f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5352", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x1/0/0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93|0x2/0/0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5b28/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a4d7/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [ + "0x00000000000000000000000000000000000000c1|0x0|read|0x0" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5b28", + "txGasUsed": "0x5b28" + }, + "name": "case-018", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5218", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ade8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5218", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ade8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe1800183030d4094000000000000000000000000000000000000dead8081fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5218/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ade8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5218" + }, + "name": "case-019", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x53e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ac18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x53e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ac18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xeb800182753094000000000000000000000000000000000000dead808c1a064042fd26628864b9f516250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53e8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x53e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ac18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52c8", + "txGasUsed": "0x53e8" + }, + "name": "case-020", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0xd2a377e646b5c16be1a9d173fe8acf924ec968b5a7", + "codeHash": "0xde35bbbb40744e9c8d89bc55e42efcf45ab641df318ba0d6fca93b6eea43fed7", + "nonce": 0, + "storage": { + "0x0": "0x1", + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2, + "storage": { + "0x0": "0x1", + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xce8080827530800183484900250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53038, got 30000" + }, + "name": "case-021", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0xef2b53", + "codeHash": "0x1b02cbb3edb268b72774809d59dceb8d423c088c91d9be568d4da7d242dc9a04", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe7808083030d4094000000000000000000000000000000000000dead8203e88560015f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x524c", + "txGasUsed": "0x524c" + }, + "name": "case-022", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0, + "storage": { + "0x0": "0x0", + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe18080830186a094000000000000000000000000000000000000dead8081fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5218" + }, + "name": "case-023", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0xd6408a71c5f718055d7930212ca71306", + "codeHash": "0x3810589daafe107c5c8386394ea2878a5ee7184967cd16dc67a7272ea778eb95", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x1" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [ + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": "0x1", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd1808083030d4080808560015f5500250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": ["0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|0x0|0x1"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x125a7", + "txGasUsed": "0x125a7" + }, + "name": "case-024", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x4969c8d1e0e6c76bc7b6519945e452f7f274ea", + "codeHash": "0xf414b2786107aee2d628b3026e145e24203dff7d79457c7167a958180efa71f5", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0, + "storage": { + "0x1": "0x2a", + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd18080830186a08001855f5f5fa100250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [ + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "data": "0x", + "topics": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + } + ], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xd242", + "txGasUsed": "0xd242" + }, + "name": "case-025", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x30eace", + "codeHash": "0xc19b7a79ea396e0ce7e0614d8026d02a2ca138f121edbcaba83606e6927d6b9b", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76403e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x524a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a9ce", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0xde0b6b3a76403e8", + "codeHash": "0xc19b7a79ea396e0ce7e0614d8026d02a2ca138f121edbcaba83606e6927d6b9b", + "nonce": 2 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc19b7a79ea396e0ce7e0614d8026d02a2ca138f121edbcaba83606e6927d6b9b", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x524a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a9ce", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe58001830186a09400000000000000000000000000000000000000048203e8832915a1250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x2915a1", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/2/0xc19b7a79ea396e0ce7e0614d8026d02a2ca138f121edbcaba83606e6927d6b9b|0xde0b6b3a76403e8/2/0xc19b7a79ea396e0ce7e0614d8026d02a2ca138f121edbcaba83606e6927d6b9b|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x524a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a9ce/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x524a", + "txGasUsed": "0x524a" + }, + "name": "case-026", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd78001827530808203e88a602a5f5260205f5fa200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53150, got 30000" + }, + "name": "case-027", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe38080830186a09400000000000000000000000000000000000000c080835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5280" + }, + "name": "case-028", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x2" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xa94a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76356b5", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e9", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xa94a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76356b5", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": "0x2", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe8800183030d409400000000000000000000000000000000000000c10188602a5f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x3e8/2/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2|0x3e9/2/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2|false|false", + "0x00000000000000000000000000000000000000cb|absent|0xa94a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76356b5/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": ["0x00000000000000000000000000000000000000c1|0x0|0x0|0x2"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xa94a", + "txGasUsed": "0xa94a" + }, + "name": "case-029", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x8cf42723390c8a62340d1cdf415542f723", + "codeHash": "0x8ad2b7e529828a5f9f9925e9c00ee66d1bff7656979e119c7428788ee0af14f0", + "nonce": 1, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1 + }, + "original": { + "balance": "0x0", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe58080830186a09400000000000000000000000000000000000000c101855f5f5fa100250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52b2", + "logs": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "data": "0x", + "topics": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + } + ], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x0/1/0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7|0x1/1/0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5540", + "txGasUsed": "0x5540" + }, + "name": "case-030", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xd8d66997e868fc36d859a59a3a", + "codeHash": "0xa8dc1f434fe5a40955ef3ad223c9c185c0c2f2b77b2c195fcbd15230ccafba2e", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x36268df224f9", + "codeHash": "0xbf166758cad3000027228c3350591efc8bdbf160a1e6560ae88e90c55a798d28", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf68080830186a094000000000000000000000000000000000000dead80966cf2ce3f0c61f623af7d6bc0fe9b08faa9d738efc4c7250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5578", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5368", + "txGasUsed": "0x5578" + }, + "name": "case-031", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe5800182520894000000000000000000000000000000000000000401863da14c599034250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21096, got 21000" + }, + "name": "case-032", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52a8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad57", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e9", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52a8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad57", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe4800183030d409400000000000000000000000000000000000000c10184d547bd5b250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52a8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x3e8/1/0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf|0x3e9/1/0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x52a8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad57/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5251", + "txGasUsed": "0x52a8" + }, + "name": "case-033", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x7e0a00373e35e15f9defc9", + "codeHash": "0x2ec959aca451930025a7f751bdb0ed2422b53f9080e693a3ff76f30555b79817", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": ["0x0"] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x7530", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7638ad0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x7530", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7638ad0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe980018275309400000000000000000000000000000000000000c1018a5f5f20505f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5398", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x7530/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7638ad0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x1/0/0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016" + ], + "storage": [ + "0x00000000000000000000000000000000000000c1|0x0|read|0x0" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 32, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-034", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xd53e0a586ba2", + "codeHash": "0x701ee49a232463cd6732c556354fd6e934f84424526fbb04ecbe4f2a53e06575", + "nonce": 0, + "storage": { + "0x0": "0x0", + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000000", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd0808083030d408001845f3f5000250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000000|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xd96a", + "txGasUsed": "0xd96a" + }, + "name": "case-035", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2, + "storage": { + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xee8080830186a09400000000000000000000000000000000000000048203e88c09f64b4cdebf51bea6c4c261250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53e8", + "logs": [], + "output": "0x09f64b4cdebf51bea6c4c261", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52da", + "txGasUsed": "0x53e8" + }, + "name": "case-036", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 1, + "storage": { + "0x1": "0x0", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe180808252089400000000000000000000000000000000000000c08203e880250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/1/0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 32, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + }, + "name": "case-037", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x350f540b179527bc0db745ff46b492f1a64f65", + "codeHash": "0x5459a60d9abdbd7c706ae222ea9cdd3bf135bacdaeeaa8cb2b52a4883be35ec1", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe68001830186a09400000000000000000000000000000000000000c080865f61ffff5200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52da", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x1/2/0x5459a60d9abdbd7c706ae222ea9cdd3bf135bacdaeeaa8cb2b52a4883be35ec1" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-038", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52f8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a920", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e9", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1 + }, + "original": { + "balance": "0x1", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52f8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a920", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe780018275309400000000000000000000000000000000000000c18203e88660015f5533ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52f8", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x1/1/0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385|0x3e9/1/0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x52f8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a920/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5279", + "txGasUsed": "0x52f8" + }, + "name": "case-039", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe580808252089400000000000000000000000000000000000000c101865f61ffff5200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21084, got 21000" + }, + "name": "case-040", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2, + "storage": { + "0x1": "0x0", + "0x2": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe780018252089400000000000000000000000000000000000000048088602a5f5260205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21128, got 21000" + }, + "name": "case-041", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0xed06c19b8505a9406bc0f81230e0a2", + "codeHash": "0x60701c1c48f425c85555bf2922918ec9126d02075e07ed118255de2f82bae91b", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe7808082520894000000000000000000000000000000000000dead8088602a5f5260205ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21128, got 21000" + }, + "name": "case-042", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf2808083030d4094000000000000000000000000000000000000dead8203e89067602a5f5260205ff35f5260086018f3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5308", + "txGasUsed": "0x5308" + }, + "name": "case-043", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x21a083e66d49c7e20719b66c71b98d8ffa", + "codeHash": "0x4e5804d4e2384607e4553e61920e32c7e600b0163ee9ae5279555fb89873cb74", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd8800183030d4080018c1a8326c63351d49adb7d4727250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53e8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-044", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0xa6e462331e97d6f70898a620769c34", + "codeHash": "0x05385f66eb1330c41e54d72486435f8e3db49a30fd5ecb0fb39fd8b7b6ba8b31", + "nonce": 1, + "storage": { + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcf8080830186a0808083484900250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5262", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcf33", + "txGasUsed": "0xcf33" + }, + "name": "case-045", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xd9115654e9891907a7711e5ac59e79042d782dd1296978", + "codeHash": "0x19a2827e9676e335dbc1d3ca377861b7a5c8534721a893550dff9d687d304e82", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe180808252089400000000000000000000000000000000000000c18203e880250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + }, + "name": "case-046", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0, + "storage": { + "0x1": "0x1", + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x7d0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52b2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a966", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x7d0", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52b2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a966", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe680018275309400000000000000000000000000000000000000048203e8853d5f5f3e00250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x3d5f5f3e00", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x3e8/0/0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac|0x7d0/0/0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x52b2/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a966/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x525e", + "txGasUsed": "0x52b2" + }, + "name": "case-047", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0, + "storage": { + "0x0": "0x1", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5e5d7d47c4b4e8665d59a9e6ba3b869879e0983297", + "codeHash": "0x8433429226f367228ed033eb2f01fdb8ebd77b5bdfc55712098d5bddab094e8c", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd08080827530800185eed302b0f2250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53082, got 30000" + }, + "name": "case-048", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x02e630470d6e5655a712fe71", + "codeHash": "0xa57e5783ef76005a7177ed9b4f1e6c9968f1256600035086319abbaaeae7235e", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xcf9a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7633066", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xcf9a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7633066", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd48001830186a0800188602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xcf9a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7633066/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0xcf9a", + "txGasUsed": "0xcf9a" + }, + "name": "case-049", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x569a5ba589f28c847a55b4948a9464aa43810cb8fe526d", + "codeHash": "0x90662e6279694028e999d46fca1bc988f777539fae4d024e48279b350c518a4a", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xee808083030d409400000000000000000000000000000000000000c1018e657e85e6772ac9358abc7d3988a5250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52e8", + "txGasUsed": "0x52e8" + }, + "name": "case-050", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5262", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad9e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5262", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad9e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe280018275309400000000000000000000000000000000000000c08083484900250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5262", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5262/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad9e/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x1/2/0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x523d", + "txGasUsed": "0x5262" + }, + "name": "case-051", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0xefaf709d1c491e3f42e115", + "codeHash": "0x99bba0ecf2989f0fe2cae5d955742d0d707e746fde4e55f45876046d84ec4b41", + "nonce": 2, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e9", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe68080830186a094000000000000000000000000000000000000000401865f61ffff5200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52da", + "logs": [], + "output": "0x5f61ffff5200", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x3e8/2/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|0x3e9/2/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x526e", + "txGasUsed": "0x52da" + }, + "name": "case-052", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2, + "storage": { + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5550", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a6c8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5550", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a6c8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf6800182753094000000000000000000000000000000000000dead8203e895b0317e67575e527553f9a2fe2b54e5c50fe15b336f250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5550", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5550/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a6c8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5358", + "txGasUsed": "0x5550" + }, + "name": "case-053", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x27ced70a891eb2542061c96704b39fa058e6d2", + "codeHash": "0xcc28c59f88d3f578c5711f345e47b109512edf6269bc2368f0395eb56e212a34", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x521e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ade1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x521e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ade1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe08001830186a09400000000000000000000000000000000000000040100250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5212", + "logs": [], + "output": "0x00", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x521e/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ade1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x521e", + "txGasUsed": "0x521e" + }, + "name": "case-054", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0, + "storage": { + "0x1": "0x0", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x3d1c5e79bc0821ec03cc", + "codeHash": "0x6e8783c7fe2ae0c7628eaff5145ca54a7d7ee8e1073156af3f44277c5e5820cb", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf83980808275309400000000000000000000000000000000000000c1809a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53de", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52c4", + "txGasUsed": "0x53de" + }, + "name": "case-055", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd9808082520880808e60c6de63bc12e731aefd5cad5867250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53226, got 21000" + }, + "name": "case-056", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x120a038d108ae0937aa003c78b07fccfb48c", + "codeHash": "0xaed664ba59f100aaaebe93c1d63181bffaddc7a65810210ec1e403064e29c255", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": ["0x0"] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e9", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2 + }, + "original": { + "balance": "0x1", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5808083030d409400000000000000000000000000000000000000c08203e8835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x1/2/0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93|0x3e9/2/0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [ + "0x00000000000000000000000000000000000000c0|0x0|read|0x0" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5ad4", + "txGasUsed": "0x5ad4" + }, + "name": "case-057", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcc8080830186a0808080250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcf08", + "txGasUsed": "0xcf08" + }, + "name": "case-058", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0, + "storage": { + "0x1": "0x1", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0xa45a76c8340c", + "codeHash": "0x669599391a0de7bdd3644cb85c6ea11e8e5ab17d48a514242f914c39d1cf5bd3", + "nonce": 2, + "storage": { + "0x1": "0x1", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x523a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a9de", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0 + }, + "original": { + "balance": "0x0", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x523a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a9de", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe4800183030d409400000000000000000000000000000000000000c08203e8824700250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x523a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12|0x3e8/0/0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x523a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a9de/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5220", + "txGasUsed": "0x523a" + }, + "name": "case-059", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf0808083030d409400000000000000000000000000000000000000c0809067602a5f5260205ff35f5260086018f3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5308", + "txGasUsed": "0x5308" + }, + "name": "case-060", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x613ccdd050af7370da119fb3c245019fd63da159d99b", + "codeHash": "0x11c77c5ee8f7fd25af6cc6463a2e0ffac4ee0782f01b6d5544178b981c1cfb5e", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe480018252089400000000000000000000000000000000000000c180855f5f5fa100250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-061", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52b8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad48", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52b8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad48", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xeb8001830186a094000000000000000000000000000000000000dead808bff4f60d0a14d54e89b217d250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x52b8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad48/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52b8", + "txGasUsed": "0x52b8" + }, + "name": "case-062", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0xe9", + "codeHash": "0xdc046d75852af4aea44a770057190294068a953828daaaab83800e2d0a8f1f35", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2, + "storage": { + "0x0": "0x0", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf4808083030d4094000000000000000000000000000000000000dead8203e8920902d87c6b75b610a7bcc42eef25872c8d04250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x54d8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5328", + "txGasUsed": "0x54d8" + }, + "name": "case-063", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x3855ed00087b40e77e86aaa53d2addafc7e3e5", + "codeHash": "0x90b6abbb825fe169c15c3760bd1d56f7918cfd7671619804c64c89ec01bbfef6", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0x90b6abbb825fe169c15c3760bd1d56f7918cfd7671619804c64c89ec01bbfef6", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x90b6abbb825fe169c15c3760bd1d56f7918cfd7671619804c64c89ec01bbfef6", + "nonce": 1 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe88080827530940000000000000000000000000000000000000004018960015f5560025f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5352", + "logs": [], + "output": "0x60015f5560025f5500", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/1/0x90b6abbb825fe169c15c3760bd1d56f7918cfd7671619804c64c89ec01bbfef6|0xde0b6b3a7640001/1/0x90b6abbb825fe169c15c3760bd1d56f7918cfd7671619804c64c89ec01bbfef6|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x529e", + "txGasUsed": "0x5352" + }, + "name": "case-064", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xce8080825208800183484900250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53038, got 21000" + }, + "name": "case-065", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x16f47f103a3a79a99e", + "codeHash": "0xc6b9fe4353964629308bf5c608ff7e26871f9388f68d3624555ae82626a17dc0", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0, + "storage": { + "0x0": "0x0", + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd18080830186a08080853d5f5f3e00250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcf57", + "txGasUsed": "0xcf57" + }, + "name": "case-066", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0, + "storage": { + "0x1": "0x0", + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [ + { + "code": "0x602a5f5260205ff3", + "index": 1 + } + ], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 1 + }, + "original": null + } + ], + "code": [ + { + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd" + } + ], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xde8080830186a0808203e89067602a5f5260205ff35f5260086018f3250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5488", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|true|false" + ], + "bytecode": [ + "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|0x602a5f5260205ff3" + ], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xd65b", + "txGasUsed": "0xd65b" + }, + "name": "case-067", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf83980808275309400000000000000000000000000000000000000c0019a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53de", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x3e8/1/0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-068", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76403e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0xde0b6b3a76403e8", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea8080830186a09400000000000000000000000000000000000000048203e888602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x602a5f5260205ffd", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/2/0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016|0xde0b6b3a76403e8/2/0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x529a", + "txGasUsed": "0x5348" + }, + "name": "case-069", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd5808082520880018a5f5f20505f5260205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53162, got 21000" + }, + "name": "case-070", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x40afebb0370e6b0e15b344f0de89c0025a6c65cd", + "codeHash": "0x6ae4d841db10aeb28b8db896bb714f8e2c1d9ae49a2822887efca4259b6b4198", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x521e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ade1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x521e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ade1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe08001830186a09400000000000000000000000000000000000000040100250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x00", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x521e/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ade1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x521e", + "txGasUsed": "0x521e" + }, + "name": "case-071", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x53c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ac3f", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x53c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ac3f", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xeb8001830186a09400000000000000000000000000000000000000c1018be367cb651ae7cb779cdf71250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53c0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x53c0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ac3f/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52b8", + "txGasUsed": "0x53c0" + }, + "name": "case-072", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5258", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ada8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5258", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ada8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2800183030d40940000000000000000000000000000000000000004808233ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x33ff", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5258/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ada8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x0000000000000000000000000000000000000004|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x523a", + "txGasUsed": "0x5258" + }, + "name": "case-073", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 1, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52f8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad08", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52f8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad08", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe580018275309400000000000000000000000000000000000000c1018660015f5533ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52f8", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x52f8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad08/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/1/0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0x5278", + "txGasUsed": "0x52f8" + }, + "name": "case-074", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf2808083030d4094000000000000000000000000000000000000dead8203e89067602a5f5260205ff35f5260086018f3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5488", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5308", + "txGasUsed": "0x5488" + }, + "name": "case-075", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2, + "storage": { + "0x1": "0x2a", + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xcf3e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76330c2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xcf3e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76330c2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcf8001830186a08080835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xcf3e/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76330c2/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0xcf3e", + "txGasUsed": "0xcf3e" + }, + "name": "case-076", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e9", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xeb8080827530940000000000000000000000000000000000000004018cf83cdf916ef873a931af5641250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53e8", + "logs": [], + "output": "0xf83cdf916ef873a931af5641", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x3e8/2/0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7|0x3e9/2/0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52da", + "txGasUsed": "0x53e8" + }, + "name": "case-077", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5b22de85d84b", + "codeHash": "0xf78fd76870fc2358dd71af73dfa62218f2a1c15aa86a8401f296751e1d8f57c1", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x7530", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7638ad0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x7530", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7638ad0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe180018275309400000000000000000000000000000000000000c08203e880250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x7530/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7638ad0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xf78fd76870fc2358dd71af73dfa62218f2a1c15aa86a8401f296751e1d8f57c1" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-078", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 0, + "storage": { + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x53c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ac40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x53c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ac40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xeb800183030d40940000000000000000000000000000000000000004808b9cf76f05fcb3dd97412146250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53c0", + "logs": [], + "output": "0x9cf76f05fcb3dd97412146", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x53c0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ac40/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x0000000000000000000000000000000000000004|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52ca", + "txGasUsed": "0x53c0" + }, + "name": "case-079", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x6cd2dfd36d62", + "codeHash": "0x07459d29bc33b9bf39f08f7c8b6f6f9a6630229c8739ec048a7516ef21db6dc2", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xce80808252088080835f5ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53050, got 21000" + }, + "name": "case-080", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x81c3ccee407d7faff32b3fe1f07f1e9211ada725bc4b8e", + "codeHash": "0xf0bc7c5104c2aad502c6db6106b08723fb799ec3df48e86c9a665058c867cbbd", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0xcd8ace9251b8b550e0ad2c75911dff8ddbf13250", + "codeHash": "0xa466519b68017351ba9f7e7ebe7b360892dffb01f99239571c93e21f4b948b17", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x410959", + "codeHash": "0x37e37151642ee0fdcf65b7d0dd7e4ee7f33b268ce88137c0941ca869cddcd702", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5800183030d409400000000000000000000000000000000000000c18203e8835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/0/0xa466519b68017351ba9f7e7ebe7b360892dffb01f99239571c93e21f4b948b17" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-081", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xeb80808275309400000000000000000000000000000000000000c0808c5f545f52602a5f5560205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52c8", + "txGasUsed": "0x52c8" + }, + "name": "case-082", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x61490028e4abd586", + "codeHash": "0xf984a4e46d530966477396540c0e73776c4f1b5145b88dd66133f7e503a1d805", + "nonce": 1, + "storage": { + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe4800183030d409400000000000000000000000000000000000000c18203e8822d15250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x1/1/0xf984a4e46d530966477396540c0e73776c4f1b5145b88dd66133f7e503a1d805" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-083", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 2, + "storage": { + "0x0": "0x1", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 0, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd080018275308001853d5f5f3e00250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53070, got 30000" + }, + "name": "case-084", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0xa70b3f7e389e0cab9e804973ae72c303ba6e1a0297", + "codeHash": "0x78b5feafacf99c711ee31038aef3770ae78f93b657c0942d53a8bf23a8627c4d", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe380808275309400000000000000000000000000000000000000c180845f3f5000250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x528a", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x0/0/0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x524d", + "txGasUsed": "0x528a" + }, + "name": "case-085", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x1e789fa31db1e77e3f94a580ae6faf", + "codeHash": "0x5bb1c12b06485d1e7295c74b6fe5476399e6041d0c11556c9075e77e66bb2b5d", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x76eb7ff8b9fd7218a480", + "codeHash": "0xbb6d92d5287c5f052d93fd66b142726ed5cd5ff4463c13be99192fac62ae5e25", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd98080827530808203e88c22dbdb2306f9295740672ed6250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53194, got 30000" + }, + "name": "case-086", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x26a1d672af85a96a9b2f14fddc1288", + "codeHash": "0x91d9e74299c7134c11b0ac2007d0d0754b22d53cb1f16203c0f95a68337a4b4e", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x33cd5c1945ff57", + "codeHash": "0x04d36b43191da6297828838adcd770d0eb8629486c044e428810e01a73d57930", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xec808083030d4094000000000000000000000000000000000000dead8203e88a5f5f20505f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52a8", + "txGasUsed": "0x52a8" + }, + "name": "case-087", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe7808082753094000000000000000000000000000000000000dead8203e88609920812ce26250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5268", + "txGasUsed": "0x5268" + }, + "name": "case-088", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xc81e87574ac19a4b08eaa0ac5c516175e763809a", + "codeHash": "0xf08043897eade962bc716f32d718319c6b84ae71544222eca83812c64105bc68", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x7530", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7638ad0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x7530", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7638ad0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe480018275309400000000000000000000000000000000000000c001853d5f5f3e00250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x7530/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7638ad0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/2/0xf08043897eade962bc716f32d718319c6b84ae71544222eca83812c64105bc68" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-089", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0xf663e897d63617a9d297", + "codeHash": "0x123e766ab212b6c5f0b2e9f0a8945f0e138eb8298f28f1247223c1b8032fd27a", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xcf1d", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76330e3", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xcf1d", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76330e3", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcc8001830186a080807d250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xcf1d/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76330e3/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcf1d", + "txGasUsed": "0xcf1d" + }, + "name": "case-090", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xcfd3", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763302d", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xcfd3", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763302d", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe6800183030d4080809a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xcfd3/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763302d/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcfd3", + "txGasUsed": "0xcfd3" + }, + "name": "case-091", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x4b3c48d4c1ad", + "codeHash": "0x2afa58872d4180cb2273a2f2e8b502f052e7a25a43fa418967cfc38c5c355805", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5800183030d409400000000000000000000000000000000000000c001853d5f5f3e00250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x1/2/0x2afa58872d4180cb2273a2f2e8b502f052e7a25a43fa418967cfc38c5c355805" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-092", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x1" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x0", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1 + }, + "original": { + "balance": "0x1", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": "0x1", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xec808083030d409400000000000000000000000000000000000000c0018c8e7a65baa9c16be52ed48ede250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53e8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x1/1/0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007|0x0/1/0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640001/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": ["0x00000000000000000000000000000000000000c0|0x0|0x0|0x1"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 3, + "totalGasSpent": "0xbcab", + "txGasUsed": "0xbcab" + }, + "name": "case-093", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5352", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763acae", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5352", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763acae", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe98001830186a094000000000000000000000000000000000000dead808960015f5560025f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5352", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5352/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763acae/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x528c", + "txGasUsed": "0x5352" + }, + "name": "case-094", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe4808083030d4094000000000000000000000000000000000000dead01845f5f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523c", + "txGasUsed": "0x523c" + }, + "name": "case-095", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0, + "storage": { + "0x0": "0x1", + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x523d", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adc2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x523d", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adc2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe280018275309400000000000000000000000000000000000000c101835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/0/0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af|0xde0b6b3a7640001/0/0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x523d/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adc2/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523d", + "txGasUsed": "0x523d" + }, + "name": "case-096", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe1808083030d409400000000000000000000000000000000000000048081fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0xfe", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x1/2/0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x522a", + "txGasUsed": "0x5230" + }, + "name": "case-097", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe4808082520894000000000000000000000000000000000000000401855f5f5fa100250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-098", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd7800182753080808c5f545f52602a5f5560205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53194, got 30000" + }, + "name": "case-099", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x25b9dbd3cb7574aa8b01b651d22439102cb2a05a59", + "codeHash": "0x0a336bc49106ce98019a7d02b606cfd59973e91e91803f08821721718fb5b316", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe18080827530940000000000000000000000000000000000000004808233ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x33ff", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/2/0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x523a", + "txGasUsed": "0x523a" + }, + "name": "case-100", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd28001825208808203e8853d5f5f3e00250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53070, got 21000" + }, + "name": "case-101", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5308", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763acf7", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5308", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763acf7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf08001830186a094000000000000000000000000000000000000dead019067602a5f5260205ff35f5260086018f3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5308/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763acf7/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5308", + "txGasUsed": "0x5308" + }, + "name": "case-102", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x3ac4eae68c65f27267", + "codeHash": "0xe48bae119a24b0612d25ecb1597ab1b33f23333a4edd9fd6fb5af1c234598fae", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5352", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763acae", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5352", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763acae", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe9800183030d4094000000000000000000000000000000000000dead808960015f5560025f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5352", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5352/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763acae/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x528c", + "txGasUsed": "0x5352" + }, + "name": "case-103", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52f8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad08", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52f8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad08", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe68001830186a09400000000000000000000000000000000000000c0808660015f5533ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52f8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x52f8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad08/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/2/0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5275", + "txGasUsed": "0x52f8" + }, + "name": "case-104", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xdb80808252088001904e043ab85825108694dd34cfcab10c73250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53258, got 21000" + }, + "name": "case-105", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5398", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a880", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e9", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2 + }, + "original": { + "balance": "0x1", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5398", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a880", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xec800183030d409400000000000000000000000000000000000000c08203e88a5f5f20505f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5398", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x1/2/0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a|0x3e9/2/0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5398/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a880/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52a8", + "txGasUsed": "0x5398" + }, + "name": "case-106", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x520c", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763aa0c", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x520c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763aa0c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2800183030d4094000000000000000000000000000000000000dead8203e800250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x520c/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763aa0c/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x520c", + "txGasUsed": "0x520c" + }, + "name": "case-107", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x692a24ab86e88fff87f429c08bb95cd0de5b547f91", + "codeHash": "0xfcf4f83b04ae466a381df2fe024304e6c411847814e6b83673c4895a39d4fa4c", + "nonce": 2, + "storage": { + "0x1": "0x1", + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xea80808252089400000000000000000000000000000000000000c0018b704e3c2a9ef5c71fa5c606250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21176, got 21000" + }, + "name": "case-108", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcf808083030d408080835f5ff3250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xcf3e", + "txGasUsed": "0xcf3e" + }, + "name": "case-109", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5228", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763add8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5228", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763add8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3800183030d409400000000000000000000000000000000000000c18203e881fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5228/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763add8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x0/2/0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0x5228", + "txGasUsed": "0x5228" + }, + "name": "case-110", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5218", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ade7", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5218", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ade7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe0800182753094000000000000000000000000000000000000dead0181fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5218/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ade7/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5218" + }, + "name": "case-111", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0xcf151ac321", + "codeHash": "0xb1b39f12a7f4afa043d3212d91c64709ca6562345798860f8f0c61168e260030", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xcd80808275308080824700250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53022, got 30000" + }, + "name": "case-112", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x2" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + }, + "original": { + "balance": "0x0", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": "0x2", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2808083030d409400000000000000000000000000000000000000c101824700250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x0/0/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2|0x1/0/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": ["0x00000000000000000000000000000000000000c1|0x0|0x0|0x2"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xa8de", + "txGasUsed": "0xa8de" + }, + "name": "case-113", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe6800182520894000000000000000000000000000000000000dead8203e88560015f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-114", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5348", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a8d0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5348", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a8d0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea8001830186a09400000000000000000000000000000000000000c18203e888602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5348/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a8d0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5348" + }, + "name": "case-115", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5238", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adc8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5238", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adc8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2800182753094000000000000000000000000000000000000dead80835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5238/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adc8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5238" + }, + "name": "case-116", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0xdedd7f15f1", + "codeHash": "0xe5c33c5df90d8ab672d998cfde94aaf2501d38ef31d788d0d1564fcfc506794d", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xea80808252089400000000000000000000000000000000000000c08203e889e31702e09b1a12f9e5250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21144, got 21000" + }, + "name": "case-117", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe180808252089400000000000000000000000000000000000000c18203e880250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/0/0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + }, + "name": "case-118", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0xb54cd5a8", + "codeHash": "0xa0ba46dc11b6a8dbb96c90fa02c852ff9d27d789e319158bbcdc1f41b45bc598", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5348", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763acb8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5348", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763acb8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe780018275309400000000000000000000000000000000000000c080884eee33b602e5627c250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5348/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763acb8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000c0|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5348" + }, + "name": "case-119", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe1808082753094000000000000000000000000000000000000dead808233ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5228", + "txGasUsed": "0x5258" + }, + "name": "case-120", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd98001830186a080808d06e06c87808be3d8f00ab5b25b250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5410", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-121", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x1" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [ + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": "0x1", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd3808083030d40808203e88560015f5500250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": ["0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|0x0|0x1"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x125a7", + "txGasUsed": "0x125a7" + }, + "name": "case-122", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xdf808082520894000000000000000000000000000000000000dead8074250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21016, got 21000" + }, + "name": "case-123", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe880808252089400000000000000000000000000000000000000c1018960015f5560025f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21132, got 21000" + }, + "name": "case-124", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x2a" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xa904", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76356fb", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xa904", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76356fb", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": "0x2a", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea8001830186a09400000000000000000000000000000000000000c0018a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x537a", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000000", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/1/0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016|0xde0b6b3a7640001/1/0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016|false|false", + "0x00000000000000000000000000000000000000cb|absent|0xa904/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76356fb/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [ + "0x00000000000000000000000000000000000000c0|0x0|0x0|0x2a" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xa904", + "txGasUsed": "0xa904" + }, + "name": "case-125", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x4767b739fda494972128b3ca12359a90d0", + "codeHash": "0x832c150b7e33a300d12d519808ad19a9dec0f4e2b3e27e1f25e2c75805f58d83", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe7808083030d409400000000000000000000000000000000000000c18203e885c690dec292250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52d0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x3e8/2/0x832c150b7e33a300d12d519808ad19a9dec0f4e2b3e27e1f25e2c75805f58d83", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-126", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x282aa2ac9e", + "codeHash": "0xd4da8fb425d6bc222026c8f846af56d0635eb5a077761bffd00302beeb3ce282", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe280808252089400000000000000000000000000000000000000c001835f5ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21048, got 21000" + }, + "name": "case-127", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5238", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adc8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5238", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adc8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2800182753094000000000000000000000000000000000000dead80835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5238/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adc8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5238" + }, + "name": "case-128", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x9a756f618727", + "codeHash": "0xe6d9e6586ab9f518483928ebd5cb79bd785be3a9a02238e89589f239bc6476d0", + "nonce": 2, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 1, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe98001825208940000000000000000000000000000000000000004018a602a5f5260205f5fa200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21148, got 21000" + }, + "name": "case-129", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2, + "storage": { + "0x0": "0x2a", + "0x1": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0, + "storage": { + "0x0": "0x2a", + "0x1": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x31bad2421ad1", + "codeHash": "0x7d01164d891844100eb6610abaa3518c09e3f5fb7c55d514ceaad72c5ed2d1c6", + "nonce": 1, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x7d0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5578", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a6a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x7d0", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5578", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a6a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf838800183030d409400000000000000000000000000000000000000c08203e89657974dbfd7fafccac11be76b01309c264b12409d84a8250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5578", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x3e8/2/0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a|0x7d0/2/0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5578/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a6a0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5368", + "txGasUsed": "0x5578" + }, + "name": "case-130", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x9dc043d952762a2d226c968675b17a76d5", + "codeHash": "0x265e6e29aff7babcb87fa278120a806c2c17cc9dba983fe8ea6080c417739add", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5280", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a998", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5280", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a998", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe480018275309400000000000000000000000000000000000000c08203e8835b5f56250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5280/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a998/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5280" + }, + "name": "case-131", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x1": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x53e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ac17", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0 + }, + "original": { + "balance": "0x0", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x53e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ac17", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xeb80018275309400000000000000000000000000000000000000c1018c5f545f52602a5f5560205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53e8", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x0/0/0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385|0x1/0/0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x53e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ac17/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52d9", + "txGasUsed": "0x53e8" + }, + "name": "case-132", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x3e84fa01dc53fd38c42094c9e940c6aa2bf2ab83584c", + "codeHash": "0x8177978b907c4e43de147f84ea98a0a286cb363e08a76e3dc45fbbab6dd37609", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe6808083030d409400000000000000000000000000000000000000048203e8845f3f5000250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x528a", + "logs": [], + "output": "0x5f3f5000", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x524e", + "txGasUsed": "0x528a" + }, + "name": "case-133", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x1", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0 + }, + "original": { + "balance": "0x0", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe280808275309400000000000000000000000000000000000000c001835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af|0x1/0/0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523d", + "txGasUsed": "0x523d" + }, + "name": "case-134", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5280", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad7f", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 1 + }, + "original": { + "balance": "0x0", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5280", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad7f", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3800183030d409400000000000000000000000000000000000000c1018341b359250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x0/1/0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a|0x1/1/0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5280/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad7f/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5280" + }, + "name": "case-135", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 1, + "storage": { + "0x0": "0x0", + "0x1": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0xe6840b6faba158be3fdc5c", + "codeHash": "0xfc42fb5dbbeb05dfb19e83c1577a106cc3f287a4d87dc955fb177b74ad3200eb", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2800183030d409400000000000000000000000000000000000000c1808233ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x0/1/0xfc42fb5dbbeb05dfb19e83c1577a106cc3f287a4d87dc955fb177b74ad3200eb" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-136", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x8f6f3c", + "codeHash": "0xbc14728f9cef3a7aa72454a2fe1449cc446221a0169e4efbf67c975fd5f35ce4", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe6808082753094000000000000000000000000000000000000dead8203e8853d5f5f3e00250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x524c", + "txGasUsed": "0x52b2" + }, + "name": "case-137", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x289edc733f87", + "codeHash": "0xeb243e79e4687d5edd77c43b49761a85f4319a6b809f8aa8e8ab6c68be11e029", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x7652f80e47183ee8", + "codeHash": "0xa7a3323a23ee9788c93dd32a223616f7ae12c9ad42a6d10c0dbce0f242aeadda", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x523c", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adc4", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x523c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adc4", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe4800183030d4094000000000000000000000000000000000000dead80845f5f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x523c/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adc4/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523c", + "txGasUsed": "0x523c" + }, + "name": "case-138", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 0, + "storage": { + "0x1": "0x2a", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2, + "storage": { + "0x1": "0x2a", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe48080830186a094000000000000000000000000000000000000dead01845f3f5000250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x528a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523c", + "txGasUsed": "0x528a" + }, + "name": "case-139", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0xbd7b86e999dd55", + "codeHash": "0xb61c92fa6b5c1778a8336d4aa331b332fd8b6dbb8d6a4f332f081352780b0cd6", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 1, + "storage": { + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe0808083030d409400000000000000000000000000000000000000c00180250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + }, + "name": "case-140", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 0, + "storage": { + "0x1": "0x0", + "0x2": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe780018252089400000000000000000000000000000000000000048088602a5f5260205ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21128, got 21000" + }, + "name": "case-141", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x08ce2119e5ddad26c234fbc5e1f13a428a4cff63", + "codeHash": "0x1a8031467544dd414b115fc377a41be8afd45ebebf1061d4d1e00bbfa4817d2c", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3808083030d40808203e8958116dca602d8dd383183941361eef9e65f3d88f69f250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5550", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-142", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0, + "storage": { + "0x1": "0x2a", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x529e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad61", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x2", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0 + }, + "original": { + "balance": "0x1", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x529e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad61", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe98001830186a0940000000000000000000000000000000000000004018960015f5560025f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x60015f5560025f5500", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x1/0/0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8|0x2/0/0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x529e/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad61/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x529e", + "txGasUsed": "0x529e" + }, + "name": "case-143", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe480808252089400000000000000000000000000000000000000c1018560015f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-144", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe380808252089400000000000000000000000000000000000000c001845f5f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21052, got 21000" + }, + "name": "case-145", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0xbab95ffff7b027d0", + "codeHash": "0x8b7577b834895877b15f5b49336012fe06d36f677da35f8a980b3858cb9347f3", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe280018252089400000000000000000000000000000000000000c001835f5ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21048, got 21000" + }, + "name": "case-146", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd58001825208808203e888602a5f5260205ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53130, got 21000" + }, + "name": "case-147", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xce8080827530808083484900250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53038, got 30000" + }, + "name": "case-148", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe48080830186a09400000000000000000000000000000000000000c001845f3f5000250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x528a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523c", + "txGasUsed": "0x528a" + }, + "name": "case-149", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd080018275308080855f5f5fa100250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53070, got 30000" + }, + "name": "case-150", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd4800182753080808960015f5560025f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53134, got 30000" + }, + "name": "case-151", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x27be338afab750241b781343eb65bf52baed48", + "codeHash": "0x7fb0cb336c590984d04e0fe9fe4f5b3ce633e1c35a686ebc560c5eae4003c1aa", + "nonce": 0, + "storage": { + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf18080830186a094000000000000000000000000000000000000dead8203e88f35ba3f1062af44d413caa130aded93250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5460", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52f8", + "txGasUsed": "0x5460" + }, + "name": "case-152", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 1, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xdf8080825208808094e92c905d7b857452ae75e35dabacee4ac71fcd6b250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53322, got 21000" + }, + "name": "case-153", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x74036f12bd3f58e4110652d4236c", + "codeHash": "0x9da0fa17324f168f7978ef2b37f589c03a2a7b406d041108d39d4d3f5b2c7a5b", + "nonce": 1, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x7d0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x531d", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a8fb", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x7d0", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x531d", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a8fb", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf280018275309400000000000000000000000000000000000000c08203e8918a333e6de8e279ca8fc776234bd3ac6b70250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x3e8/0/0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3|0x7d0/0/0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x531d/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a8fb/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x531d", + "txGasUsed": "0x531d" + }, + "name": "case-154", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2, + "storage": { + "0x1": "0x2a", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcd8080830186a0808081fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-155", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xd1601efc0cc98dd2e527174c3a24801ca1bf2c1c36", + "codeHash": "0x148b4608f609a19e70282dce56316222cae464a1a0ae52a910fa724d67771ddd", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0xc0ea66b583b65c68", + "codeHash": "0x160ec6f61dddfdbf32a394fca4f4bec4b5d1851d21d51240fe03633c3ba9abc7", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5318", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a900", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5318", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a900", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf38001830186a094000000000000000000000000000000000000dead8203e891aae391f4bd415da59dfb5dc95c2d3e3b74250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5318/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a900/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5318", + "txGasUsed": "0x5318" + }, + "name": "case-156", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0xef9501f2", + "codeHash": "0xf28169c1e530e54356d66873f270da18a1c2424944971e5f686e92b3056c3a8a", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe58080830186a09400000000000000000000000000000000000000c18203e8835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/1/0xf28169c1e530e54356d66873f270da18a1c2424944971e5f686e92b3056c3a8a", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-157", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe180808275309400000000000000000000000000000000000000c0808233ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5228", + "txGasUsed": "0x5258" + }, + "name": "case-158", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xda5301c44378", + "codeHash": "0x15eeaf42bc46a7c825e0e34aacf61a21df9c9580e368c06a360083077efaa66b", + "nonce": 1, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3800183030d409400000000000000000000000000000000000000c08203e881fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/1/0x15eeaf42bc46a7c825e0e34aacf61a21df9c9580e368c06a360083077efaa66b" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-159", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x57e0df7a712986d1fc45e9be1db84aae8aea9d95", + "codeHash": "0x65d4ce552167911a944311f438755366bf1edc78b4d3c95701a964a5dea6bf31", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xce80018275308001835b5f56250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53050, got 30000" + }, + "name": "case-160", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 2, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd28080825208808203e8855f5f5fa100250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53070, got 21000" + }, + "name": "case-161", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0, + "storage": { + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5230", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adcf", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5230", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adcf", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe0800183030d409400000000000000000000000000000000000000c00128250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0x1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5230/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adcf/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5230" + }, + "name": "case-162", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe48080830186a09400000000000000000000000000000000000000048203e8829c67250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x9c67", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x523a", + "txGasUsed": "0x5258" + }, + "name": "case-163", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x0f539a3611971bf9", + "codeHash": "0x987078b3fb06943335d7a346ee511a0208ddd502307fa6020d711f8a977cf8c6", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd08080830186a0808203e8824115250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcf2f", + "txGasUsed": "0xcf2f" + }, + "name": "case-164", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf180018252089400000000000000000000000000000000000000048203e89067602a5f5260205ff35f5260086018f3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21256, got 21000" + }, + "name": "case-165", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x7b00023f8a6ca8abd7b9cc89ff2b766fadf482", + "codeHash": "0xbeccd462ddd9d1bef281db263c17747dd26f23c0e1911574dea3913cfd9691ba", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x2909fac6", + "codeHash": "0xd0b013e508f43e66e468146640edef9ef03835fe28515212c8e9c70eee085d86", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000000", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xd96a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76322ae", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xd96a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76322ae", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd28001830186a0808203e8845f3f5000250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x528a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xd96a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76322ae/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x0000000000000000000000000000000000000000|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xd96a", + "txGasUsed": "0xd96a" + }, + "name": "case-166", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x078448a633e256ca6adfb4ae", + "codeHash": "0x5b71227f34ff26f2e473c2a88b9b01637de7f92f1ad942042fd3b3180b5975db", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5492", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ab6e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5492", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ab6e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf18001830186a09400000000000000000000000000000000000000c08091db7fd2a47af6542c13c2c1b7b69f002250250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5492", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5492/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ab6e/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/1/0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5310", + "txGasUsed": "0x5492" + }, + "name": "case-167", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe4808082753094000000000000000000000000000000000000000480855f5f5fa100250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x5f5f5fa100", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x525e", + "txGasUsed": "0x525e" + }, + "name": "case-168", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x1a24bb330a37210c7670426ab7a0043b44888e84", + "codeHash": "0x00a50604826223d3bdc3699fddb0fb999f9eef3157bfd33b4f908f3dd1c296d3", + "nonce": 2, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xcf80808275308080845f3f5000250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53054, got 30000" + }, + "name": "case-169", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2, + "storage": { + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdf80808252089400000000000000000000000000000000000000c00180250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x3e8/1/0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 32, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + }, + "name": "case-170", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x32e2bcb4166d0434e7ea9fbe60c6a4e3439043274de02f", + "codeHash": "0xaf45084867f40c39e224b54850462d185710965a08d1429c3e557a47947054eb", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe4808083030d4094000000000000000000000000000000000000dead80845f3f5000250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x528a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523c", + "txGasUsed": "0x528a" + }, + "name": "case-171", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe580808275309400000000000000000000000000000000000000c1808660015f5533ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52f8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/1/0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x526c", + "txGasUsed": "0x52f8" + }, + "name": "case-172", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x529c", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad63", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x529c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad63", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe980018275309400000000000000000000000000000000000000c1018a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x529c/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad63/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x529c", + "txGasUsed": "0x529c" + }, + "name": "case-173", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe4808082520894000000000000000000000000000000000000000401853d5f5f3e00250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-174", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5262", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a9b6", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e8", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2 + }, + "original": { + "balance": "0x0", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5262", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a9b6", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe480018275309400000000000000000000000000000000000000048203e883484900250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5262", + "logs": [], + "output": "0x484900", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x0/2/0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f|0x3e8/2/0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5262/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a9b6/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x523e", + "txGasUsed": "0x5262" + }, + "name": "case-175", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xaca9928d0b1311d42096fd0e31", + "codeHash": "0xfb276c12ab6b5742819d503ddf15e1579ca65cd9974d3ee55f9d997cd0547bf1", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf839808082753094000000000000000000000000000000000000dead809a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52c4", + "txGasUsed": "0x52c4" + }, + "name": "case-176", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe980018252089400000000000000000000000000000000000000c1808a0561978d5c7ee66270e1250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21160, got 21000" + }, + "name": "case-177", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0xfd", + "codeHash": "0xd03d757462cd3c828bf24d0fbdebc852dae2b8a808805773442109c615167140", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52a1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad5e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e9", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52a1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad5e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea8001830186a09400000000000000000000000000000000000000c0018a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x3e8/2/0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af|0x3e9/2/0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x52a1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad5e/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52a1", + "txGasUsed": "0x52a1" + }, + "name": "case-178", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcc808083030d40808080250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcf08", + "txGasUsed": "0xcf08" + }, + "name": "case-179", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x09b8", + "codeHash": "0x340cc6e625a422969ab645fa196f5c15d58d7164af4ddf06441be259260032a2", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xcf9a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7633066", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xcf9a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7633066", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd6800183030d40808203e888602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xcf9a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7633066/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0xcf9a", + "txGasUsed": "0xcf9a" + }, + "name": "case-180", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd78001830186a080808b3fb14132eed80059450e08250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53a2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-181", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe5808082753080809a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53190, got 30000" + }, + "name": "case-182", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2, + "storage": { + "0x0": "0x0", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe4808082520894000000000000000000000000000000000000000401853d5f5f3e00250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-183", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf380808252089400000000000000000000000000000000000000c08203e8922456be1ac7b2db4522cd69218950f2d7a83d250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21288, got 21000" + }, + "name": "case-184", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0xd03fea1f56bb560cca11a5c4cc3508d8", + "codeHash": "0x0df93de301066c40171ce7e815cace4a4b95d722a835c7c209806553d4f1acc6", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe18080830186a094000000000000000000000000000000000000dead8081fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5230" + }, + "name": "case-185", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x2": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xcd8001825208808203e880250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53000, got 21000" + }, + "name": "case-186", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x9b1c5af33818b5c57e3d5a51320855b1dfe8", + "codeHash": "0x76586716016d49ed7eb242ce9b3755822d99f8624dcf10e6272278e57961af70", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe58080830186a094000000000000000000000000000000000000dead8203e8835b5f56250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5238" + }, + "name": "case-187", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": ["0x8464135c8f25da09e49bc8782676a84730c318bc"] + }, + "chainId": "0x1", + "envelope": "0xce808083030d4080808233ff250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|absent|true|true" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": ["0x8464135c8f25da09e49bc8782676a84730c318bc"] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 3, + "totalGasSpent": "0xe2b4", + "txGasUsed": "0xe2b4" + }, + "name": "case-188", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xf0f6d8f37409024b92bf257997551c209ce2903d", + "codeHash": "0x703473bd8f99aa285b19515c3ef670235f62bb58f7c2d8d8ba0991f95dd035bc", + "nonce": 0, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x1450d782c352c3d5a830f866e41101d8fed65d1d", + "codeHash": "0x3f22133539407d16d5e7bc2c1ee3242efe25e750162d497be6d93cfb2a9737a9", + "nonce": 2, + "storage": { + "0x0": "0x1", + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe48080830186a094000000000000000000000000000000000000dead8203e88233ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5228", + "txGasUsed": "0x5258" + }, + "name": "case-189", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0xeb4085df56e36df29997f9c3a0d42d6fbf", + "codeHash": "0x5c66ea8fc96d77a8d8c5620c1b563bf2fb17691b2659f49d14ef2b4846602e4a", + "nonce": 0, + "storage": { + "0x0": "0x0", + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x525e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ada2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x525e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ada2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe58001830186a0940000000000000000000000000000000000000004808560015f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x60015f5500", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x525e/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ada2/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x0000000000000000000000000000000000000004|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x525e", + "txGasUsed": "0x525e" + }, + "name": "case-190", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xa99387bd275cdd93e72ba56c0a10d3d71a", + "codeHash": "0x9e0859a806a6bfc564a848e7882a2883c858a69be2d54e32e3aece23d9917288", + "nonce": 0, + "storage": { + "0x0": "0x2a", + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd68001830186a0808203e88829d0ced2ea63f1a5250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-191", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x18c57c97cf4d7df6beb92daaba1e403259ee3198991d", + "codeHash": "0x0b86ffe1e672c5e866777fa13db9ad4eef7dd6364cce5c00fbd2298b91066b9c", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x6fa8eb85ef53", + "codeHash": "0xd10f9294d70e97eec629abc788af78b46dc633a4c568ada143876f2185eede01", + "nonce": 2, + "storage": { + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe0808083030d4094000000000000000000000000000000000000dead8080250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + }, + "name": "case-192", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd0808082520880808560015f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53070, got 21000" + }, + "name": "case-193", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x7908618214e128a8dea41aae4823fe81dd308a", + "codeHash": "0xa4c2463979976b6583ca20d9abfaa74c0808954f1a5744e6ddcf8c6452845e67", + "nonce": 1, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52da", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad25", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x2", + "codeHash": "0xa4c2463979976b6583ca20d9abfaa74c0808954f1a5744e6ddcf8c6452845e67", + "nonce": 1 + }, + "original": { + "balance": "0x1", + "codeHash": "0xa4c2463979976b6583ca20d9abfaa74c0808954f1a5744e6ddcf8c6452845e67", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52da", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad25", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe68001830186a094000000000000000000000000000000000000000401865f61ffff5200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52da", + "logs": [], + "output": "0x5f61ffff5200", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x1/1/0xa4c2463979976b6583ca20d9abfaa74c0808954f1a5744e6ddcf8c6452845e67|0x2/1/0xa4c2463979976b6583ca20d9abfaa74c0808954f1a5744e6ddcf8c6452845e67|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x52da/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad25/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x526e", + "txGasUsed": "0x52da" + }, + "name": "case-194", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x10771", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a762f4a7", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x10771", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a762f4a7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd4800183030d40808203e8865f61ffff5200250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52da", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x10771/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a762f4a7/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x10771", + "txGasUsed": "0x10771" + }, + "name": "case-195", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0, + "storage": { + "0x0": "0x2a", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x53188cfe3c256ed413d6e63ec9847f2426c20c43", + "codeHash": "0xc15d7d815a5222ba7b68663a8f01cc20e775bd6c4f37d4188b944474bbd85b93", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5258", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ada7", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5258", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ada7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe1800182753094000000000000000000000000000000000000dead018233ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5258/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ada7/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5228", + "txGasUsed": "0x5258" + }, + "name": "case-196", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000000", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xd96a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7632696", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xd96a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7632696", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd08001830186a08080845f3f5000250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x528a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xd96a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7632696/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x0000000000000000000000000000000000000000|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xd96a", + "txGasUsed": "0xd96a" + }, + "name": "case-197", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x72d7c8a8d2c56463bf7eccef", + "codeHash": "0x172a96c1707ef9e4dac53d6ca5878d80ee464ddc114dafeed775d27ae995fd55", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe780018252089400000000000000000000000000000000000000048203e8865f61ffff5200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21084, got 21000" + }, + "name": "case-198", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe980808275309400000000000000000000000000000000000000c1808a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x537a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x1/1/0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-199", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf28001825208940000000000000000000000000000000000000004019326ddcbbb53897b772b79c39a2a11e6ebc355cf250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21304, got 21000" + }, + "name": "case-200", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd3808083030d40808203e885a14ecdd39b250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52d0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-201", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x1adeec691b255c533686bf7adda556239318", + "codeHash": "0x38fd9a1e4ad6b722502c1accc6fc80c73f599a516bf9368d9aa4f20b2b3cfdce", + "nonce": 1, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5238", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adc8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5238", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adc8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe280018275309400000000000000000000000000000000000000c180835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5238/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adc8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000c1|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5238" + }, + "name": "case-202", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0, + "storage": { + "0x1": "0x0", + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5348", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763acb8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5348", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763acb8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe88001830186a094000000000000000000000000000000000000dead8088602a5f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5348/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763acb8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5348" + }, + "name": "case-203", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x8fd220cbd2a736064cc1cfdd6ebe75d9", + "codeHash": "0xe1d353dee05fc1e8a0aef33338b35cb8ba07805342461a2ee4de300b55cd270f", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x11d8", + "codeHash": "0x993ad5c53acd9a1a583af0f8cdc8e4462603465643ce98da9f2e72e3d169ba57", + "nonce": 2, + "storage": { + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd1808083030d40808203e8835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0xcf3e", + "txGasUsed": "0xcf3e" + }, + "name": "case-204", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x7d0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x7d0", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe180808275309400000000000000000000000000000000000000c18203e800250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5212", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x3e8/2/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|0x7d0/2/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x521c", + "txGasUsed": "0x521c" + }, + "name": "case-205", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x4415029415f2cf8c00f067f7a29014cc33ab591abaf4", + "codeHash": "0xc75492b2128e4c5e5c39ca8dcba523ebda4a83451cb9cd99bf68a22f82cfad96", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x531a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ace6", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x531a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ace6", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xef8001827530940000000000000000000000000000000000000004809067602a5f5260205ff35f5260086018f3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x67602a5f5260205ff35f5260086018f3", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x531a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ace6/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x0/2/0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x531a", + "txGasUsed": "0x531a" + }, + "name": "case-206", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xcf80808252088080845f5f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53054, got 21000" + }, + "name": "case-207", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5cec09a1ea2d90661a3dba4e09ab5e8d4955", + "codeHash": "0xd14b85c1a782090dec9a3f75bd97a6addcb77e5466b27c753d7436519998d0b2", + "nonce": 2, + "storage": { + "0x1": "0x0", + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd18080830186a0808203e8835b5f56250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 32, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-208", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2, + "storage": { + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 1, + "storage": { + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": ["0x0"] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe480808275309400000000000000000000000000000000000000c08203e883484900250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5262", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/2/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [ + "0x00000000000000000000000000000000000000c0|0x0|read|0x0" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 32, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-209", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x033238c53d1451d7ddb1a959d329e88b45f3dbe9", + "codeHash": "0xb85652818ca2192971ccfe12e7c025d03e688198f9a00bda87de127da6f71551", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x1" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xa8a5", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7635373", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0 + }, + "original": { + "balance": "0x0", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xa8a5", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7635373", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": "0x1", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe78001830186a09400000000000000000000000000000000000000c08203e88560015f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559|0x3e8/0/0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559|false|false", + "0x00000000000000000000000000000000000000cb|absent|0xa8a5/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7635373/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": ["0x00000000000000000000000000000000000000c0|0x0|0x0|0x1"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xa8a5", + "txGasUsed": "0xa8a5" + }, + "name": "case-210", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe7808082753094000000000000000000000000000000000000dead8088602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5288" + }, + "name": "case-211", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0xfe9f9d75e312dfa93177", + "codeHash": "0x10b6cfa88b4745ba4a8b8c6694ba5f7117afc84402bbc238bf3b579d9a629962", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x899a7d72b44ec7221656616e", + "codeHash": "0x68a4fe93b55202f2de0958b493b4b8c82956047356aa261bf366fb81455dbb02", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x2", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0 + }, + "original": { + "balance": "0x1", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2808083030d409400000000000000000000000000000000000000c101824700250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x523a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x1/0/0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca|0x2/0/0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5229", + "txGasUsed": "0x523a" + }, + "name": "case-212", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2, + "storage": { + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdf80808252089400000000000000000000000000000000000000c08080250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/2/0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 32, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + }, + "name": "case-213", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x1" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [ + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": "0x1", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd1808083030d4080808560015f5500250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": ["0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|0x0|0x1"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x125a7", + "txGasUsed": "0x125a7" + }, + "name": "case-214", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [ + { + "code": "0x602a5f5260205ff3", + "index": 1 + } + ], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 1 + }, + "original": null + } + ], + "code": [ + { + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd" + } + ], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xde808083030d40808203e89067602a5f5260205ff35f5260086018f3250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5488", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|true|false" + ], + "bytecode": [ + "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|0x602a5f5260205ff3" + ], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xd65b", + "txGasUsed": "0xd65b" + }, + "name": "case-215", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 0, + "storage": { + "0x1": "0x1", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf680808275309400000000000000000000000000000000000000c08203e895de7222b90d389b59732097b0e0902dd9fd91c38315250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5358", + "txGasUsed": "0x5358" + }, + "name": "case-216", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0xc9e5", + "codeHash": "0xb41d48d49a363e8e5f10c9ce9ce81a0f64668ee475182c91da915a57d88d6279", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe48001830186a09400000000000000000000000000000000000000c101842ee826e2250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52a8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x1/1/0xb41d48d49a363e8e5f10c9ce9ce81a0f64668ee475182c91da915a57d88d6279" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-217", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0xb09551cae67702e3c73e72fcc170aeb2a48568", + "codeHash": "0xf16eb270217a61ad0a6251aa8f24c0bd439e92f8000e2ae9defe3b70a7b41a59", + "nonce": 0, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 1, + "storage": { + "0x2": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf1800182520894000000000000000000000000000000000000dead8092d2e297720388d6fd8f3ece7851af33ebf7d6250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21288, got 21000" + }, + "name": "case-218", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0xa6930a7f2da3c804e621b50f096954", + "codeHash": "0x1ab418b412b20b93ec5f659c3e8a9ebdac522244d2bd23cd27e7215be9347bcf", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x8502ffe7cd3658ad9d2c7e9b71c9", + "codeHash": "0x792ab99dc8248d90ca49f1ac260b760526a6efac1a5012d41f2b6abc6f6cc0d8", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd38001825208808203e8865f61ffff5200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53086, got 21000" + }, + "name": "case-219", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [ + { + "code": "0x000000000000000000000000000000000000000000000000000000000000002a", + "index": 1 + } + ], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2", + "nonce": 1 + }, + "original": null + } + ], + "code": [ + { + "code": "0x000000000000000000000000000000000000000000000000000000000000002a", + "codeHash": "0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2" + } + ], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd48080830186a0808088602a5f5260205ff3250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2|true|false" + ], + "bytecode": [ + "0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2|0x000000000000000000000000000000000000000000000000000000000000002a" + ], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xe89a", + "txGasUsed": "0xe89a" + }, + "name": "case-220", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd1800183030d40808203e8835b5f56250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 32, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-221", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 1, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe38080830186a094000000000000000000000000000000000000dead01835b5f56250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5238" + }, + "name": "case-222", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 1, + "storage": { + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52a8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad57", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52a8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad57", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea8001830186a094000000000000000000000000000000000000dead018a58acfd81cebe7648c079250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x52a8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad57/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52a8", + "txGasUsed": "0x52a8" + }, + "name": "case-223", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf68080830186a09400000000000000000000000000000000000000c08203e89428b3d9d556365db5f75a549b8b94f156859de3f6250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5528", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/2/0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 32, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-224", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x956e556ec7ea", + "codeHash": "0xadeb6d8b8850a31d575fa40afce4933e27da7239c3a005066e5f64960bf08578", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe180808252089400000000000000000000000000000000000000c101824700250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21020, got 21000" + }, + "name": "case-225", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0xcd7169a6e966d0543dc24d770d", + "codeHash": "0xdc177bb777b90b07d350d39af7f39a661169e89931421d0c3ec2ff40ab460c61", + "nonce": 2, + "storage": { + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xcd80808275308080829832250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53034, got 30000" + }, + "name": "case-226", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5352", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763acad", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x2", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0 + }, + "original": { + "balance": "0x1", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5352", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763acad", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe98001830186a0940000000000000000000000000000000000000004018960015f5560025f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5352", + "logs": [], + "output": "0x60015f5560025f5500", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x1/0/0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e|0x2/0/0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5352/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763acad/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x529e", + "txGasUsed": "0x5352" + }, + "name": "case-227", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe780808275309400000000000000000000000000000000000000c18088602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5348" + }, + "name": "case-228", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x1", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2 + }, + "original": { + "balance": "0x0", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xed8080827530940000000000000000000000000000000000000004018e28c743ae4dbad063a129ab06cd7d250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x28c743ae4dbad063a129ab06cd7d", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x0/2/0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f|0x1/2/0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52fa", + "txGasUsed": "0x52fa" + }, + "name": "case-229", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0, + "storage": { + "0x1": "0x1", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x8a4b", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76375b5", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x8a4b", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76375b5", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3800183030d409400000000000000000000000000000000000000c180835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x8a4b/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76375b5/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x0/0/0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x8a4b", + "txGasUsed": "0x8a4b" + }, + "name": "case-230", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5fda295e4dc7676ba0ad86dd095ab8e07034", + "codeHash": "0xdc7742ae1b5e6d54001ab5b09e934ef73ce9ee8f226179ba27268738625a101e", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf38080830186a09400000000000000000000000000000000000000c18203e891310fdf0941578e2b9e18096af8fb1f9b1b250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x54b0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5318", + "txGasUsed": "0x54b0" + }, + "name": "case-231", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x35c505e06949", + "codeHash": "0x7e5491a04e9e3389166e0d5bd07c4c29addda963d0686fca198dc0dd30bf1ea3", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x9b922d746f6baf3a687784", + "codeHash": "0x8f2e3f4715cd95d1cccd55a96310094d699b34d6fd48083b33487ce0d6726bc8", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x65c2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7639e26", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x0", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x65c2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7639e26", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe58001830186a09400000000000000000000000000000000000000c08203e8835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x3e8/1/0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91|0x0/1/0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x65c2/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7639e26/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 3, + "totalGasSpent": "0x65c2", + "txGasUsed": "0x65c2" + }, + "name": "case-232", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe98080827530940000000000000000000000000000000000000004808a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x602a5f5260205f5fa200", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/0/0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52ae", + "txGasUsed": "0x52ae" + }, + "name": "case-233", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2808083030d40940000000000000000000000000000000000000004018233ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x33ff", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x523a", + "txGasUsed": "0x523a" + }, + "name": "case-234", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd6808083030d40808203e888602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0xcf9a", + "txGasUsed": "0xcf9a" + }, + "name": "case-235", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0xbf9c0b19598ff46c1cd9", + "codeHash": "0xb3914fc7ba761c84f99ca6ab8053b159e9668883ed95dc4bbb34615f53c68d4d", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5218", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763aa00", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5218", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763aa00", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe38001830186a09400000000000000000000000000000000000000c08203e881fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5218/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763aa00/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5218" + }, + "name": "case-236", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe6808082520894000000000000000000000000000000000000dead8203e8855f5f5fa100250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-237", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2, + "storage": { + "0x0": "0x1", + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe48080830186a09400000000000000000000000000000000000000c101845f5f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x528a", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/2/0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385|0xde0b6b3a7640001/2/0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x524d", + "txGasUsed": "0x528a" + }, + "name": "case-238", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x4addab108dc187f64f93", + "codeHash": "0xafa0a5b51821b89058539f9483622793cbd88d6606f22a44a827544ac347f17a", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe980808275309400000000000000000000000000000000000000c1018a172f5cfba879033c7d6f250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5398", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52a8", + "txGasUsed": "0x5398" + }, + "name": "case-239", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x8b320e43d5643846c8b225c82765fa5dde6253a4", + "codeHash": "0x0286e98af7f2127c10283f16c83dced949791dac4078314ba75496228314f5e5", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2, + "storage": { + "0x0": "0x0", + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5280", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad7f", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5280", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad7f", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2800182753094000000000000000000000000000000000000000401835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x5f5ff3", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5280/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad7f/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x524a", + "txGasUsed": "0x5280" + }, + "name": "case-240", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5230", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763add0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5230", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763add0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdf80018275309400000000000000000000000000000000000000c1802f250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5230/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763add0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/1/0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x521d", + "txGasUsed": "0x5230" + }, + "name": "case-241", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x7530", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7638ad0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x7530", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7638ad0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf83b80018275309400000000000000000000000000000000000000c08203e89a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53de", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x7530/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7638ad0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x3e8/1/0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 33, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-242", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xce8001825208808203e881fe250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53018, got 21000" + }, + "name": "case-243", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x4fd42577db95", + "codeHash": "0x8dec8fbd730e41331f45dead7237603156daa0f871de0f280455938e68ca4d1f", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3808083030d409400000000000000000000000000000000000000c10183261f8e250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0x1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5280" + }, + "name": "case-244", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe980808275309400000000000000000000000000000000000000c1018a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x537a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x529c", + "txGasUsed": "0x537a" + }, + "name": "case-245", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x1854409175318ea0220bfe18a818a0ea", + "codeHash": "0x02adab215a3027745ca5f4f932fa049a75bb96fff2141acea06be01b1543cafa", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x77e4b88adedca01f7f7a19ce3ab5cabf4d2b283853acea", + "codeHash": "0x664998f816822a122f11dd68dee384ba5310614a1bbfc771e0d09003630b9862", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xe89a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763137e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [ + { + "code": "0x000000000000000000000000000000000000000000000000000000000000002a", + "index": 1 + } + ], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xe89a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763137e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2", + "nonce": 1 + }, + "original": null + } + ], + "code": [ + { + "code": "0x000000000000000000000000000000000000000000000000000000000000002a", + "codeHash": "0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2" + } + ], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd6800183030d40808203e888602a5f5260205ff3250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xe89a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763137e/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2|true|false" + ], + "bytecode": [ + "0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2|0x000000000000000000000000000000000000000000000000000000000000002a" + ], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xe89a", + "txGasUsed": "0xe89a" + }, + "name": "case-246", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0xc8", + "codeHash": "0x8b73219eaab4833eb74d922f09161346d037946654ef1129e7854e8edb1df9a3", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x7530", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7638ad0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x7530", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7638ad0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe480018275309400000000000000000000000000000000000000c18203e8835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x7530/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7638ad0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/1/0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-247", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe3808082520894000000000000000000000000000000000000dead8203e8824700250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21020, got 21000" + }, + "name": "case-248", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe480808252089400000000000000000000000000000000000000c18203e8835f5ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21048, got 21000" + }, + "name": "case-249", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x1" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [ + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": "0x1", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd1808083030d4080808560015f5500250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": ["0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|0x0|0x1"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x125a7", + "txGasUsed": "0x125a7" + }, + "name": "case-250", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x88ba0ed5796af11731219c4a259aa749a9322504", + "codeHash": "0x14fac6c0c7d20c4f13adec334c372be89d152b03fa7d075200b37230b628988e", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x536a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a8ae", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e9", + "codeHash": "0x14fac6c0c7d20c4f13adec334c372be89d152b03fa7d075200b37230b628988e", + "nonce": 1 + }, + "original": { + "balance": "0x1", + "codeHash": "0x14fac6c0c7d20c4f13adec334c372be89d152b03fa7d075200b37230b628988e", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x536a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a8ae", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf680018275309400000000000000000000000000000000000000048203e895ebd09a7a4bf7a923f1cf0c864ae90c79e97f840359250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0xebd09a7a4bf7a923f1cf0c864ae90c79e97f840359", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x1/1/0x14fac6c0c7d20c4f13adec334c372be89d152b03fa7d075200b37230b628988e|0x3e9/1/0x14fac6c0c7d20c4f13adec334c372be89d152b03fa7d075200b37230b628988e|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x536a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a8ae/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x536a", + "txGasUsed": "0x536a" + }, + "name": "case-251", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x535a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a8be", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e9", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2 + }, + "original": { + "balance": "0x1", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x535a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a8be", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf6800183030d409400000000000000000000000000000000000000048203e894a65f96abb620d0c858086ca17e52ba5e5973f744250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0xa65f96abb620d0c858086ca17e52ba5e5973f744", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x1/2/0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016|0x3e9/2/0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x535a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a8be/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x535a", + "txGasUsed": "0x535a" + }, + "name": "case-252", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xeb80018252089400000000000000000000000000000000000000c0018c5f545f52602a5f5560205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21192, got 21000" + }, + "name": "case-253", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x7dca5046", + "codeHash": "0xbfb5db2edee89a7405da308ed6fddf312e7102cf353d3db34bb6fd9088b02a0d", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x4983281cf3", + "codeHash": "0x8ce87df1ec862caa36b425bb745f73bcb938ecf561afbc9eaa34150910bff642", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 1, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe8800183030d409400000000000000000000000000000000000000c18203e88660015f5533ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x1/0/0x8ce87df1ec862caa36b425bb745f73bcb938ecf561afbc9eaa34150910bff642" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-254", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 1, + "storage": { + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe880808275309400000000000000000000000000000000000000c101897d15d4e6bc8e7e0f7f250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5370", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5298", + "txGasUsed": "0x5370" + }, + "name": "case-255", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0, + "storage": { + "0x0": "0x1", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd180808275308080865f61ffff5200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53086, got 30000" + }, + "name": "case-256", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe5800182520880809a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53190, got 21000" + }, + "name": "case-257", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0xd9d0f65c445ce8550f5147f97e7ac870", + "codeHash": "0xf4b30d553f39437e40cabf80ba38a0c889a6f0e843e8c3e22abe4bebece53ca1", + "nonce": 0, + "storage": { + "0x1": "0x1", + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5348", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a8d0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5348", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a8d0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea800183030d4094000000000000000000000000000000000000dead8203e888602a5f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5348/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a8d0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5348" + }, + "name": "case-258", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xfa4353c89804f79e9fdae4e7aadf5dcf92", + "codeHash": "0x7f81dee3e6e34a5c70efd7ce1b607f73428d39cbc0cc0a7dd09048f8e2d022af", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xee808082520894000000000000000000000000000000000000dead808fdc85bb1f68f7325245097d700ebc84250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21240, got 21000" + }, + "name": "case-259", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x40b31730dd7f0548d25eef31ec1f85", + "codeHash": "0x2a34c8524ff7a5fe48f524ffbe87704c4928a8d3e8bb1fa7230d57fa40ec401c", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe38080830186a094000000000000000000000000000000000000dead01837679be250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5280" + }, + "name": "case-260", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x8c88e568e94cf378", + "codeHash": "0xf93891124505415a40b687fa62e9c79a34e7f275506a90433cae9d5f994dbfb1", + "nonce": 1, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x7530", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7638ad0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x7530", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7638ad0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xef80018275309400000000000000000000000000000000000000c08203e88e5ff41ccf57e0f8ad0577f9d40bed250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5438", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x7530/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7638ad0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x3e8/1/0xf93891124505415a40b687fa62e9c79a34e7f275506a90433cae9d5f994dbfb1" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-261", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x7ee9023f4cd65e32d3e98efda3", + "codeHash": "0x9d3cca95e8d3ffb6218a54a4f1e8b9b90da63300cf597c5b03b7b8741eaeebb8", + "nonce": 1, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd5800182520880808a5f5f20505f5260205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53162, got 21000" + }, + "name": "case-262", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0, + "storage": { + "0x0": "0x1", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5215", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adeb", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5215", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adeb", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe08001830186a09400000000000000000000000000000000000000c18080250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5215/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adeb/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x0/0/0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5215", + "txGasUsed": "0x5215" + }, + "name": "case-263", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xce80018252088001835f5ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53050, got 21000" + }, + "name": "case-264", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0xc11f225c34196efdac7c2517dc6a0c0d4de607", + "codeHash": "0xa885b8bf997d0727f267cfc307cc6fe6655aff7fb630f74335413b251277d757", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe280808252089400000000000000000000000000000000000000c10183484900250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21036, got 21000" + }, + "name": "case-265", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x95ebf052b4d3d71092259e32", + "codeHash": "0xc2d4a8cf62d148056c9f12bea7aa3617fea62a5449e47b9fd0e044355cfd01b7", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x1": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2, + "storage": { + "0x1": "0x2a", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xed80018252089400000000000000000000000000000000000000048203e88c50ffebe8525bb9e1fb6c3916250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21192, got 21000" + }, + "name": "case-266", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xd013", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7632fec", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xd013", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7632fec", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdc8001830186a0800190653dad69c2af2c1971514f236f4107b7250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5488", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xd013/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7632fec/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xd013", + "txGasUsed": "0xd013" + }, + "name": "case-267", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0, + "storage": { + "0x0": "0x0", + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x53e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a830", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x53e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a830", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xee8001830186a09400000000000000000000000000000000000000c08203e88c5f545f52602a5f5560205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53e8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x53e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a830/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52c8", + "txGasUsed": "0x53e8" + }, + "name": "case-268", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x7b807c56", + "codeHash": "0x363830b828dc0e9e341e65b7562cd956c0a99f4dd16091adaee3b18d9967ad81", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd78001827530808203e88a602a5f5260205f5fa200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53150, got 30000" + }, + "name": "case-269", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0xdaf5ee6c", + "codeHash": "0x81657cb06b27114b8afe1cd93639551cdea75e984c4946b2f53e9f64f9efda5e", + "nonce": 1, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcd8001830186a0800181fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-270", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x1e7aef191cd2306fe83fe40e59", + "codeHash": "0x25df358e3ca34e7a4e316926e88393455f5130e5d6394ace8936abdd438bc927", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdb8080830186a0808203e88def393e79ca5010be3dedc98a26250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5410", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-271", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xde808083030d40808203e890b7b692842dd0604799308e92a0f9ae4e250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-272", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x6be553eeb6ce0525c8188e060750cec68865b915f6", + "codeHash": "0xbfef88f225cb8c8b20eeb1c99857e5c3380101b9ffee0f9f961594c6ff6a9015", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xcd8080827530808203e811250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53018, got 30000" + }, + "name": "case-273", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x7c7b58779fd44209b9a5302689ab11", + "codeHash": "0xa4be3e595d4ecb9814a4f477731183c97b69827568ec0d34476c7a60aaecdf5a", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x72f2a20b39e9a502a6925d5ff94da496b9f9a63601f91e", + "codeHash": "0xcc87e990900b703a8a47c7da7a9bf17789aace9ee5cda2d1b245c844c35751ee", + "nonce": 2, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd0808083030d40808203e8824700250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcf23", + "txGasUsed": "0xcf23" + }, + "name": "case-274", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf280808252089400000000000000000000000000000000000000048093d4d16ac50b681833ceaae7bf9170bf701d07ac250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21304, got 21000" + }, + "name": "case-275", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x1": "0x2a", + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2 + }, + "original": { + "balance": "0x0", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe38080830186a09400000000000000000000000000000000000000c101835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x0/2/0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf|0x1/2/0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5241", + "txGasUsed": "0x5241" + }, + "name": "case-276", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd08001825208808203e883484900250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53038, got 21000" + }, + "name": "case-277", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe48001830186a09400000000000000000000000000000000000000c18203e88277f1250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x3e8/0/0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-278", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2, + "storage": { + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xdb8001825208800190b0d4a0f6f5b7181c707b58e277661738250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53258, got 21000" + }, + "name": "case-279", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x113e42d831", + "codeHash": "0xffff9b3592a9d8704b2846f188a3b03d4bbee5b922064bd209be43e658bbd3ef", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0, + "storage": { + "0x0": "0x2a", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdf80808275309400000000000000000000000000000000000000048080250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x3e8/0/0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5217", + "txGasUsed": "0x5217" + }, + "name": "case-280", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000000", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe280808275309400000000000000000000000000000000000000c180838eb335250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000000|absent", + "0x00000000000000000000000000000000000000c1|0x3e8/1/0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5c64", + "txGasUsed": "0x5c64" + }, + "name": "case-281", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd080018275308080855f5f5fa100250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53070, got 30000" + }, + "name": "case-282", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x827828c411077c80481ea87b50", + "codeHash": "0x97034862cdd1b39f8b7e771972d3ad52230b7f193e80a3f303556442eeb3b8b8", + "nonce": 0, + "storage": { + "0x0": "0x0", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x22ec496bb9d17e43288e8e", + "codeHash": "0x038c160e370aa105d1f63e8ab72fae113ee78e4df83e499bf298b86e050afd79", + "nonce": 1, + "storage": { + "0x0": "0x0", + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x93185a4b2977b54689c1f1aabee2b85a8822cc7ee0009c", + "codeHash": "0x84a7bd692a3051d9afe00a830b137a915e931cd5ff0e5d40c3ad8830dd356660", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe380808275309400000000000000000000000000000000000000c101845f5f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x0/1/0x038c160e370aa105d1f63e8ab72fae113ee78e4df83e499bf298b86e050afd79", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-283", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 0, + "storage": { + "0x1": "0x1", + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000000", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xd96a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7632695", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xd96a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7632695", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd0800183030d408001845f3f5000250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xd96a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7632695/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x0000000000000000000000000000000000000000|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xd96a", + "txGasUsed": "0xd96a" + }, + "name": "case-284", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe2808082520894000000000000000000000000000000000000dead01835f5ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21048, got 21000" + }, + "name": "case-285", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x798aa221cf548217", + "codeHash": "0x958d79423ee5e29e3bc72ef81a74a81fe50dfedd1f6d0bb1ff8180ce6f9328ee", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0xb8f0380e3bac57507a6bb56ad58359de4e07988808", + "codeHash": "0x6f7dfe8c66da98803b461fe5e0378e45302f342736f5def2b0256caf6c563475", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76403e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0xde0b6b3a76403e8", + "codeHash": "0x6f7dfe8c66da98803b461fe5e0378e45302f342736f5def2b0256caf6c563475", + "nonce": 2 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x6f7dfe8c66da98803b461fe5e0378e45302f342736f5def2b0256caf6c563475", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xeb808083030d409400000000000000000000000000000000000000048203e88916155133284334d391250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x16155133284334d391", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/2/0x6f7dfe8c66da98803b461fe5e0378e45302f342736f5def2b0256caf6c563475|0xde0b6b3a76403e8/2/0x6f7dfe8c66da98803b461fe5e0378e45302f342736f5def2b0256caf6c563475|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52aa", + "txGasUsed": "0x52aa" + }, + "name": "case-286", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x9d9dbfcf9d674997a78b343e16679fdaf583", + "codeHash": "0xd4d218c4fd1dfebcc37cfa88045443b5a9632179f69ced33b0e28f627e621f63", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5808083030d409400000000000000000000000000000000000000c18203e8835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/2/0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0x523c", + "txGasUsed": "0x523c" + }, + "name": "case-287", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1, + "storage": { + "0x1": "0x2a", + "0x2": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd8800182753080018d6122f81f1638c09f7c76f11e5e250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53210, got 30000" + }, + "name": "case-288", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x2" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": "0x2", + "key": "0x0", + "original": "0x1" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xeb80808275309400000000000000000000000000000000000000c1808c5f545f52602a5f5560205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53e8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x1/0/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": ["0x00000000000000000000000000000000000000c1|0x0|0x1|0x2"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x66be", + "txGasUsed": "0x66be" + }, + "name": "case-289", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe1808082753094000000000000000000000000000000000000dead80824700250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x523a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x521c", + "txGasUsed": "0x523a" + }, + "name": "case-290", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe5800182520894000000000000000000000000000000000000dead80865f61ffff5200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21084, got 21000" + }, + "name": "case-291", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x1" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xa891", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763576e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e9", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 1 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xa891", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763576e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": "0x1", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe38001830186a09400000000000000000000000000000000000000c101835b5f56250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x3e8/1/0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559|0x3e9/1/0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559|false|false", + "0x00000000000000000000000000000000000000cb|absent|0xa891/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763576e/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": ["0x00000000000000000000000000000000000000c1|0x0|0x0|0x1"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xa891", + "txGasUsed": "0xa891" + }, + "name": "case-292", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0xc0f6f1e761e26a", + "codeHash": "0xa8d46153a97cb9ae97c1a922e9cb1842c90a03e1ace594bc8c3761de1c9ec2e2", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52b2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad4e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52b2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad4e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5800183030d409400000000000000000000000000000000000000c080855f5f5fa100250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x52b2/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad4e/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x3e8/0/0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0x525c", + "txGasUsed": "0x52b2" + }, + "name": "case-293", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5280", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad7f", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5280", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad7f", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3800183030d409400000000000000000000000000000000000000c101835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/1/0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3|0xde0b6b3a7640001/1/0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5280/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad7f/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523d", + "txGasUsed": "0x5280" + }, + "name": "case-294", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5230", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763add0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5230", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763add0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe1800183030d4094000000000000000000000000000000000000dead8081fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5230/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763add0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5230" + }, + "name": "case-295", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0xa06c7585f652ac7e9ebfb1c65ce3af6979f44c6d3c4768", + "codeHash": "0xbd34f4add98cc13984a7e4678347daf7bc194a5703132115e62f1f321a9e3d71", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xed8001825208940000000000000000000000000000000000000004808e4456070e98df04e500845742e8d7250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21212, got 21000" + }, + "name": "case-296", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5520", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763aae0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5520", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763aae0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe280018275309400000000000000000000000000000000000000c18083484900250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5262", + "logs": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "data": "0x", + "topics": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + } + ], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5520/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763aae0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x3e8/0/0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5520", + "txGasUsed": "0x5520" + }, + "name": "case-297", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x775b97e8a7c26c98773eed87095d695a", + "codeHash": "0x97066a50ee85d48900a1d96ae23d1d1dcaff6fc75e4104ceaec222497631c670", + "nonce": 0, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76403e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x8b4f", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76370c9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0xde0b6b3a76403e8", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x8b4f", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76370c9", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf6800183030d409400000000000000000000000000000000000000c08203e894ad3b00300929714f4df68d2b5db2c0131383a7ee250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x550a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/2/0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a|0xde0b6b3a76403e8/2/0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x8b4f/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76370c9/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x8b4f", + "txGasUsed": "0x8b4f" + }, + "name": "case-298", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 0, + "storage": { + "0x1": "0x2a", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0xd2a2", + "codeHash": "0xa9b3d633238214ec8cbe891d26139513a3f8aa05f8146c2f9a1461461e6cf040", + "nonce": 2, + "storage": { + "0x0": "0x0", + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x520c", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adf4", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x520c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adf4", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdf80018275309400000000000000000000000000000000000000c00180250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x520c/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adf4/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x3e8/0/0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0x520c", + "txGasUsed": "0x520c" + }, + "name": "case-299", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x6a93bd", + "codeHash": "0x3fc995d7a6a50aca0219099876efa4242ed83021b5d9b31def1d6b55fe4de3dc", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf380018252089400000000000000000000000000000000000000048203e892c44df752ca807fbc1eb6fe56cbbbbb37525e250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21288, got 21000" + }, + "name": "case-300", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": ["0x0"] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + }, + "original": { + "balance": "0x0", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe180808275309400000000000000000000000000000000000000c08203e800250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93|0x3e8/0/0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [ + "0x00000000000000000000000000000000000000c0|0x0|read|0x0" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5aa8", + "txGasUsed": "0x5aa8" + }, + "name": "case-301", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xce8080825208808203e881fe250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53018, got 21000" + }, + "name": "case-302", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0, + "storage": { + "0x1": "0x0", + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76403e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x2" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xa94a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76352ce", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0xde0b6b3a76403e8", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xa94a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76352ce", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": "0x2", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea800183030d409400000000000000000000000000000000000000c18203e888eb7a829a70cfa578250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/2/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2|0xde0b6b3a76403e8/2/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2|false|false", + "0x00000000000000000000000000000000000000cb|absent|0xa94a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76352ce/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": ["0x00000000000000000000000000000000000000c1|0x0|0x0|0x2"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xa94a", + "txGasUsed": "0xa94a" + }, + "name": "case-303", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2, + "storage": { + "0x1": "0x0", + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd28001825208808203e88560015f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53070, got 21000" + }, + "name": "case-304", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0xfdb2e31a453a", + "codeHash": "0x61aea4f2f2b9146cad37e4b53ace6c5c05e32737c020d9614d86e57dd4a8f165", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd8800183030d40808203e88a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x537a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-305", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x7290fcab62104c2f9e78a502405ee7", + "codeHash": "0xd1bc499500efb6d0134a9de66e654cbbac1fc0fbece61bdae019bfdcc2df6414", + "nonce": 1, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcf808083030d408080835f5ff3250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xcf3e", + "txGasUsed": "0xcf3e" + }, + "name": "case-306", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x11e1328174565cfb7fcaff44", + "codeHash": "0x0499fd25c2489ebdd45526e452e51cab2168ddf2f2a3d1ac08b89781a8c43a4b", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xde808083030d40808203e890c42fcc770e55f14f88a9062b9eee492f250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5488", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-307", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0, + "storage": { + "0x1": "0x0", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x580764a81f7266ce61c110285a772da44cd6ca03", + "codeHash": "0xaae555044dc51888ae15a2bb022fcab9f9b30925c260123427969fd4d80d056f", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd280808252088001878c0d8088d22cb8250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53114, got 21000" + }, + "name": "case-308", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x104c56a976b8e63a7e22f5e88997", + "codeHash": "0x545581a3eaf2d9f1c431e92ee8ccb97b74116a73fb51a18bf56dda2d171d22ce", + "nonce": 1, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0, + "storage": { + "0x0": "0x2a", + "0x2": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd38080825208808088f62eb618479d364e250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53130, got 21000" + }, + "name": "case-309", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0xe0d032fa168b98aab2090c759dbd", + "codeHash": "0x3a725aff96e5bc09f32c13f6fbc2a894e18c18e80b75ca83aba3b45addfc454d", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd0808082753080018560015f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53070, got 30000" + }, + "name": "case-310", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0xaf1e7641", + "codeHash": "0xe804fdcfc7e9e5d7e86b4acbe4c445eb9d704618541c8a6c8e20a33614f828f4", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe98080830186a09400000000000000000000000000000000000000c101890bd300e48034d7744c250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x528c", + "txGasUsed": "0x528c" + }, + "name": "case-311", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x6503b4e0fc686da303b24b77928e912418", + "codeHash": "0xec391dc412dcd0534c8a93bff9278f4c3dc1d980c9182f8faf9430266ba22609", + "nonce": 1, + "storage": { + "0x0": "0x0", + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x524a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adb6", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x524a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adb6", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2800182753094000000000000000000000000000000000000000480835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x5f5ff3", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x524a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adb6/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x0/2/0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x524a", + "txGasUsed": "0x524a" + }, + "name": "case-312", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5100e1a6d68ece0e24aaf3a9b1ed004f8c", + "codeHash": "0x536324273b39a5eb0947e757f65a3b0ab8ee29b2406606a47bd1925a03d91036", + "nonce": 0, + "storage": { + "0x0": "0x2a", + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf83c8001830186a09400000000000000000000000000000000000000c18203e89a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53de", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/0/0x536324273b39a5eb0947e757f65a3b0ab8ee29b2406606a47bd1925a03d91036" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-313", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x533c", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a8dc", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e9", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0 + }, + "original": { + "balance": "0x1", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x533c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a8dc", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf480018275309400000000000000000000000000000000000000c08203e89355a1e70fc2790bf46548b8e7e59582c30b5a3e250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x1/0/0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12|0x3e9/0/0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x533c/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a8dc/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x533c", + "txGasUsed": "0x533c" + }, + "name": "case-314", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x027a265af59e6d57", + "codeHash": "0x03a8bf6ea144c4fbdb3e1868bcc4132ea11942ba71197e7243557b81d2528582", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe680018252089400000000000000000000000000000000000000048203e88560015f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-315", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2808082753094000000000000000000000000000000000000dead80835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5238" + }, + "name": "case-316", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0, + "storage": { + "0x0": "0x2a", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf83a8080830186a094000000000000000000000000000000000000dead019a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52c4", + "txGasUsed": "0x52c4" + }, + "name": "case-317", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 0, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": ["0x0"] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5b04", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a114", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e8", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + }, + "original": { + "balance": "0x0", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5b04", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a114", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe780018275309400000000000000000000000000000000000000c18203e88660015f5533ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52f8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x0/0/0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93|0x3e8/0/0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5b04/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a114/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [ + "0x00000000000000000000000000000000000000c1|0x0|read|0x0" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5b04", + "txGasUsed": "0x5b04" + }, + "name": "case-318", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2, + "storage": { + "0x0": "0x0", + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea8080830186a09400000000000000000000000000000000000000c08203e888839a57438808411d250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5348" + }, + "name": "case-319", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe38080830186a09400000000000000000000000000000000000000c080835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/1/0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-320", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x8289f1212249e2b2779e8bf2", + "codeHash": "0x7f5c8e94624b7b028c04fa34dd2cf2eb698ba2a542c7942c9a805ae68a9325b8", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe6800183030d409400000000000000000000000000000000000000c1808660015f5533ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52f8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x0/2/0x7f5c8e94624b7b028c04fa34dd2cf2eb698ba2a542c7942c9a805ae68a9325b8" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-321", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2, + "storage": { + "0x1": "0x2a", + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0xe15718a33804a1087abca0ee60dcc004b8f0dcbef9e6", + "codeHash": "0xef1d7aedb5bce0b3c509fb02c4aa48cac3f07462515edff8535e7b9c5f818bf7", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52ea", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a92e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e8", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2 + }, + "original": { + "balance": "0x0", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52ea", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a92e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xef8001830186a09400000000000000000000000000000000000000048203e88dc2c387839a656fb8cbe137e420250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0xc2c387839a656fb8cbe137e420", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x0/2/0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91|0x3e8/2/0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x52ea/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a92e/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52ea", + "txGasUsed": "0x52ea" + }, + "name": "case-322", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 0, + "storage": { + "0x1": "0x2a", + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x64fcee75984aef35eea10d1f", + "codeHash": "0x026d5f7a87d88e5cca4be081ae1814235d4c621763fd8c9638d47ba341f295e0", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5808082753094000000000000000000000000000000000000000480865f61ffff5200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52da", + "logs": [], + "output": "0x5f61ffff5200", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x1/2/0x026d5f7a87d88e5cca4be081ae1814235d4c621763fd8c9638d47ba341f295e0", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x526e", + "txGasUsed": "0x52da" + }, + "name": "case-323", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xc0", + "codeHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe380808275309400000000000000000000000000000000000000c001848d8dbaec250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-324", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0xd6c4b1635d5a0debe610", + "codeHash": "0x5b9683b668149cfed5fcd8a6a0f7bb985bda5dcdf85b6d27b21682eff0b0bcfc", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xeb800182520894000000000000000000000000000000000000dead808c5f545f52602a5f5560205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21192, got 21000" + }, + "name": "case-325", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0xd2845c697ff641a2", + "codeHash": "0x779b6ba208704460537b96a87a694d44737ca017c9241b90775df254031f2de7", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x90a0d03f", + "codeHash": "0x04d8e4b78b92994c2f9aab98c8fbd7ff8d927c1e87d155fa52e2798a43df0641", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe48001825208940000000000000000000000000000000000000004808560015f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-326", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x6b456c1c88b3b93d262246c519535a5621d5ffb4b2", + "codeHash": "0x83aebb4906d2268d984cd543bb6c8bb5a8c8aabb84396e59ff1b07ada6e19754", + "nonce": 0, + "storage": { + "0x0": "0x1", + "0x1": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 0, + "storage": { + "0x0": "0x1", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5348", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763acb7", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e9", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5348", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763acb7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe88001830186a09400000000000000000000000000000000000000040188602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x602a5f5260205ffd", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x3e8/1/0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12|0x3e9/1/0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5348/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763acb7/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x529a", + "txGasUsed": "0x5348" + }, + "name": "case-327", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd58001827530808203e888602a5f5260205ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53130, got 30000" + }, + "name": "case-328", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0, + "storage": { + "0x1": "0x0", + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x10b630b76f627a4c714b23d1eebe168f36e718af4b2210", + "codeHash": "0xe808b18db9118b9d351866f66701cc28f5f7c3125e8ca1465d088d4067b117ca", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x0cca528d20", + "codeHash": "0xf518e47b1fab8972dac9208d2f6671addf8ed0e190365b8d93114a9749720726", + "nonce": 1, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xd65b", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76325bd", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [ + { + "code": "0x602a5f5260205ff3", + "index": 1 + } + ], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xd65b", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76325bd", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 1 + }, + "original": null + } + ], + "code": [ + { + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd" + } + ], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xde800183030d40808203e89067602a5f5260205ff35f5260086018f3250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5488", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xd65b/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76325bd/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|true|false" + ], + "bytecode": [ + "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|0x602a5f5260205ff3" + ], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xd65b", + "txGasUsed": "0xd65b" + }, + "name": "case-329", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x501bbb2486db153333234b8b068cc966ae", + "codeHash": "0xdd71b433c375d540ec3bcc6839a6ea2653b6b396a54f5459c9b1ddf9bf264cd0", + "nonce": 2, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe680808275309400000000000000000000000000000000000000c18203e8855f5f5fa100250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x0/2/0xdd71b433c375d540ec3bcc6839a6ea2653b6b396a54f5459c9b1ddf9bf264cd0", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-330", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52b2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad4d", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52b2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad4d", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5800183030d409400000000000000000000000000000000000000c1018560015f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/2/0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af|0xde0b6b3a7640001/2/0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x52b2/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad4d/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5251", + "txGasUsed": "0x52b2" + }, + "name": "case-331", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe280808252089400000000000000000000000000000000000000c001835f5ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21048, got 21000" + }, + "name": "case-332", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xa7fc", + "codeHash": "0xabd495c16df7d1f72a7e8b556dcb0009e4d0ae3fa01f0828342a20e9f0a954c6", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xd242", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7632dbe", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xd242", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7632dbe", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd18001830186a08080855f5f5fa100250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52b2", + "logs": [ + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "data": "0x", + "topics": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + } + ], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xd242/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7632dbe/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xd242", + "txGasUsed": "0xd242" + }, + "name": "case-333", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x523c", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a9dc", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x523c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a9dc", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe68001830186a09400000000000000000000000000000000000000c18203e8845f5f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x523c/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a9dc/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523c", + "txGasUsed": "0x523c" + }, + "name": "case-334", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0xdfaf8baf60e8d195a1c497744099e61a0899a86ed6", + "codeHash": "0x8f388eb302718ffdbb391710a7aeb38bc62cc6d9b5e7961e2461831228d8bf1c", + "nonce": 2, + "storage": { + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf83b80018252089400000000000000000000000000000000000000c08203e89a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21188, got 21000" + }, + "name": "case-335", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x84", + "codeHash": "0xcf50d641d7984383a234449960e5af06c34cab1f0529b602cda105255e84f187", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x2a" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xa8a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7635760", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xa8a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7635760", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": "0x2a", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe38001830186a09400000000000000000000000000000000000000c080835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x0000000000000000000000000000000000000000000000000000000000000000", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xa8a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7635760/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x3e8/2/0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016" + ], + "storage": [ + "0x00000000000000000000000000000000000000c0|0x0|0x0|0x2a" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xa8a0", + "txGasUsed": "0xa8a0" + }, + "name": "case-336", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0, + "storage": { + "0x0": "0x1", + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e9", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0 + }, + "original": { + "balance": "0x1", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe480808275309400000000000000000000000000000000000000048203e8835b5f56250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x5b5f56", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x1/0/0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3|0x3e9/0/0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x524a", + "txGasUsed": "0x5280" + }, + "name": "case-337", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2, + "storage": { + "0x0": "0x0", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xcb8080825208808000250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53006, got 21000" + }, + "name": "case-338", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x2", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2 + }, + "original": { + "balance": "0x1", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xec8080830186a09400000000000000000000000000000000000000c0018c5f545f52602a5f5560205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x1/2/0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a|0x2/2/0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x8adb", + "txGasUsed": "0x8adb" + }, + "name": "case-339", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5348", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a8d0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5348", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a8d0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea800183030d4094000000000000000000000000000000000000dead8203e888602a5f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5348/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a8d0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5348" + }, + "name": "case-340", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x959a95616727d5058b4dcab5242df7da6f6551b5ad1569", + "codeHash": "0xeba105884a4dbd752869489558c9d6ae388932db436de2f9b665cae49591e5f8", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcf808083030d408001835f5ff3250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xcf3e", + "txGasUsed": "0xcf3e" + }, + "name": "case-341", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5808083030d409400000000000000000000000000000000000000c18203e883484900250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5262", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x522c", + "txGasUsed": "0x5262" + }, + "name": "case-342", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xa1e18acc43401fa92e", + "codeHash": "0xaf5a54dfa9ae1230fb61f3227ab8263d6650bbb3b127fd31eb71ebb1e59fec1a", + "nonce": 2, + "storage": { + "0x1": "0x2a", + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x6d2594238a71ff9a67678570dab5fe98e84a1d", + "codeHash": "0xc9781a96b74cb37a3acb646eaaf560b14314e34b6023269548662b4f46581a29", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd6800183030d4080018a5f5f20505f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5398", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-343", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xde8080830186a08080926c0f4f014c5a25f42391a8d7280e7c90c089250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xd030", + "txGasUsed": "0xd030" + }, + "name": "case-344", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x80fd15a940b8e9229aff5d32a69187049e4231d62de38b", + "codeHash": "0xc8ebd43b269572e5ff92e489c62ed67cdf315fff973e9bdb8f56477d1ba55bc9", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd5800182520880018a602a5f5260205f5fa200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53150, got 21000" + }, + "name": "case-345", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe780808252089400000000000000000000000000000000000000048088602a5f5260205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21128, got 21000" + }, + "name": "case-346", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x4bd9c543a7dfd0d55072fec92f45869e16d8238a7f", + "codeHash": "0xb4930b5b45ebe9f1bf1f11550223e6e7461f2477874f27cc3f1a8c35f6cc9fed", + "nonce": 0, + "storage": { + "0x1": "0x1", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2, + "storage": { + "0x1": "0x2a", + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf83a808083030d409400000000000000000000000000000000000000c1019a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53de", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/2/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640001/2/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52c4", + "txGasUsed": "0x53de" + }, + "name": "case-347", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e8", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 1 + }, + "original": { + "balance": "0x0", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 1 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe680808275309400000000000000000000000000000000000000048203e88560015f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x60015f5500", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x0/1/0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b|0x3e8/1/0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x525e", + "txGasUsed": "0x52b2" + }, + "name": "case-348", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52da", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a93e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52da", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a93e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe88001830186a09400000000000000000000000000000000000000c08203e8865f61ffff5200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52da", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x52da/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a93e/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x525c", + "txGasUsed": "0x52da" + }, + "name": "case-349", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe38001830186a08080977096ce52709b8f34e13c8d3fcd8ea0063601e4f6411ca1250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x55a0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-350", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe38001830186a0808097f9fc31fab917e6f5323b455b8ff43bfd4d83b613aebfd7250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-351", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe5808082520894000000000000000000000000000000000000dead018660015f5533ff250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21096, got 21000" + }, + "name": "case-352", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x03eb878733ff6dcf8c738ecd26a001e5550c0e8a2b", + "codeHash": "0xf2f35a2c12bb86b363499592e2a1821f3c9057fe41e30e3b58216293cc4e1931", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5258", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a9c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e8", + "codeHash": "0xf2f35a2c12bb86b363499592e2a1821f3c9057fe41e30e3b58216293cc4e1931", + "nonce": 0 + }, + "original": { + "balance": "0x0", + "codeHash": "0xf2f35a2c12bb86b363499592e2a1821f3c9057fe41e30e3b58216293cc4e1931", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5258", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a9c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe48001830186a09400000000000000000000000000000000000000048203e8823354250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x3354", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x0/0/0xf2f35a2c12bb86b363499592e2a1821f3c9057fe41e30e3b58216293cc4e1931|0x3e8/0/0xf2f35a2c12bb86b363499592e2a1821f3c9057fe41e30e3b58216293cc4e1931|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5258/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a9c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x523a", + "txGasUsed": "0x5258" + }, + "name": "case-353", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [ + { + "code": "0x000000000000000000000000000000000000000000000000000000000000002a", + "index": 1 + } + ], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x1", + "codeHash": "0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2", + "nonce": 1 + }, + "original": null + } + ], + "code": [ + { + "code": "0x000000000000000000000000000000000000000000000000000000000000002a", + "codeHash": "0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2" + } + ], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd48080830186a0800188602a5f5260205ff3250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x1/1/0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2|true|false" + ], + "bytecode": [ + "0xbeced09521047d05b8960b7e7bcc1d1292cf3e4b2a6b63f48335cbde5f7545d2|0x000000000000000000000000000000000000000000000000000000000000002a" + ], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0xe89a", + "txGasUsed": "0xe89a" + }, + "name": "case-354", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x42f665abe306ef6ed1b59eebccff015478", + "codeHash": "0xe9232594f408af2364173fd50df961750fe3ebf04ee6180ebbf9fb3b771cb872", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xdf80808252089400000000000000000000000000000000000000c00147250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21016, got 21000" + }, + "name": "case-355", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0, + "storage": { + "0x0": "0x2a", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5137d6", + "codeHash": "0x506f90a9cc30940ac3fc6216c4ad585dbb9e0847810c70459c40d8a9650e870a", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x6632", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0x1bc16d674ec799ce", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x0", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x6632", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0x1bc16d674ec799ce", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe980018275309400000000000000000000000000000000000000c0808a5f5f20505f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5398", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/0/0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91|0x0/0/0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x6632/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0x1bc16d674ec799ce/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 3, + "totalGasSpent": "0x6632", + "txGasUsed": "0x6632" + }, + "name": "case-356", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x7d0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x7d0", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe180808275309400000000000000000000000000000000000000048203e880250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x3e8/0/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2|0x7d0/0/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5217", + "txGasUsed": "0x5217" + }, + "name": "case-357", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xef808082753094000000000000000000000000000000000000dead809067602a5f5260205ff35f5260086018f3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5488", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5308", + "txGasUsed": "0x5488" + }, + "name": "case-358", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe580018252089400000000000000000000000000000000000000c001865f61ffff5200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21084, got 21000" + }, + "name": "case-359", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0xd73ac454590ee9", + "codeHash": "0x5410e4a71906a9965a112fb1ecce720f3ff3f9d129df95a0b176af9b4fdb84b1", + "nonce": 0, + "storage": { + "0x1": "0x0", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": ["0x0"] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": ["0x8464135c8f25da09e49bc8782676a84730c318bc"] + }, + "chainId": "0x1", + "envelope": "0xd48080830186a0808203e88660015f5533ff250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52f8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|absent|true|true" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [ + "0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|read|0x0" + ], + "wipes": ["0x8464135c8f25da09e49bc8782676a84730c318bc"] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 3, + "totalGasSpent": "0x1394d", + "txGasUsed": "0x1394d" + }, + "name": "case-360", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0, + "storage": { + "0x1": "0x1", + "0x2": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd28001827530808203e8853d5f5f3e00250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53070, got 30000" + }, + "name": "case-361", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd3808083030d40808203e8855f5f5fa100250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52b2", + "logs": [ + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "data": "0x", + "topics": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + } + ], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xd242", + "txGasUsed": "0xd242" + }, + "name": "case-362", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd5800182520880018a5f5f20505f5260205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53162, got 21000" + }, + "name": "case-363", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x521e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a9fa", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x521e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a9fa", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2800183030d409400000000000000000000000000000000000000048203e800250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x00", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x521e/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a9fa/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x521e", + "txGasUsed": "0x521e" + }, + "name": "case-364", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0xd23a765df7b91f1f672ed6e502dc095e440357acb7", + "codeHash": "0x5008c5635d7c918b04f2a0384396751f59793030d3cdcb1636d6ae84432f627d", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe0800182520894000000000000000000000000000000000000dead8081fe250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21016, got 21000" + }, + "name": "case-365", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5438", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763abc7", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e9", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5438", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763abc7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xee8001830186a09400000000000000000000000000000000000000c0018e6376927f71abd601494cd24d4575250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5438", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x3e8/1/0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf|0x3e9/1/0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5438/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763abc7/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52f1", + "txGasUsed": "0x5438" + }, + "name": "case-366", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xd51938633575ebd7ece126089452b1bd41ac82", + "codeHash": "0x01343cf31c50cbf601ab68ff4f843636ed642aa54d30f4c9cb5a771142377da7", + "nonce": 0, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x7530", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7638ad0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x7530", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7638ad0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe780018275309400000000000000000000000000000000000000c08203e8863d33eaf09197250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52f8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x7530/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7638ad0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/0/0x01343cf31c50cbf601ab68ff4f843636ed642aa54d30f4c9cb5a771142377da7" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-367", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x63059aec98f9e2feeefd17f5", + "codeHash": "0x8712a063c2d96dcac2d60206ac903a3c484c86656fbf109c081515b959047ea0", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x7c827c", + "codeHash": "0x9b8b549ffb94ae08488055b9dbf5afa4b5c00c1c6e17b19d7b212316ae1791d4", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2808082753094000000000000000000000000000000000000dead80835b5f56250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5280" + }, + "name": "case-368", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x4861735e922a785d981199d9", + "codeHash": "0x23737e372d2a500d5373540ead009625f2f5ba8dbfc7a8f19cf622df6543889c", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf080808275309400000000000000000000000000000000000000c18203e88f593008f64a392fcea2d5ae643345a3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5460", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x3e8/2/0x23737e372d2a500d5373540ead009625f2f5ba8dbfc7a8f19cf622df6543889c", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-369", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x524c", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adb3", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x524c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adb3", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5800183030d409400000000000000000000000000000000000000c101855f5f5fa100250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x524c/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adb3/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x524c", + "txGasUsed": "0x524c" + }, + "name": "case-370", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1, + "storage": { + "0x0": "0x0", + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 2, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xed808082520894000000000000000000000000000000000000dead808ede93b401cb46e587e25e4b6332a7250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21224, got 21000" + }, + "name": "case-371", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0xefe3", + "codeHash": "0x336d2e951e728a5b8a0d80bcb2432a1443ce3b0541e36fcfbb6a10e6f28e5fb7", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe08001825208808203e89310864fc2cc2770346e201b9cca1924687d0071250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53294, got 21000" + }, + "name": "case-372", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe280808252089400000000000000000000000000000000000000c001835b5f56250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21048, got 21000" + }, + "name": "case-373", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x22ddc4ab0e43d303ba3498a36fb161f74d49857a", + "codeHash": "0x2d8b8056ec780d2d23ae8b7809b50c160038295a3cd53ae2192521c9806d5e5e", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe780018252089400000000000000000000000000000000000000040188602a5f5260205ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21128, got 21000" + }, + "name": "case-374", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe980018252089400000000000000000000000000000000000000c18203e888602a5f5260205ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21128, got 21000" + }, + "name": "case-375", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2, + "storage": { + "0x0": "0x0", + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe08080830186a09400000000000000000000000000000000000000040180250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/1/0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f|0xde0b6b3a7640001/1/0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5217", + "txGasUsed": "0x5217" + }, + "name": "case-376", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 0, + "storage": { + "0x1": "0x0", + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xcf08", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76330f8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xcf08", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76330f8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcc800183030d40808080250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xcf08/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76330f8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcf08", + "txGasUsed": "0xcf08" + }, + "name": "case-377", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x8f6d8b9346c14b231da7ef80c78bbea5d3", + "codeHash": "0x4ed85ba9dc1218b18ff9ba8bfe01b1296313c773fbbda00d88bc47561ed672a5", + "nonce": 1, + "storage": { + "0x0": "0x0", + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf380808275309400000000000000000000000000000000000000c08203e8925148015f72ba08951ef63507192547e73c0f250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x54d8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5328", + "txGasUsed": "0x54d8" + }, + "name": "case-378", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x8778652e700b78f630691a0b39ee4bf302cd6cda", + "codeHash": "0xe339ce07e0ba13c96254a594ec7261b9d62f96d992273b0b6e9c79202b62b289", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x6e6b8cc69365dff6fc1df0a5264503", + "codeHash": "0x96b41ba0dd8030254b8bc609bd695bc72dc2d86b66760225f3fb80d5552ada02", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5217", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ade9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5217", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ade9", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdf80018275309400000000000000000000000000000000000000048080250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5217/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ade9/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/1/0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5217", + "txGasUsed": "0x5217" + }, + "name": "case-379", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf0800182520894000000000000000000000000000000000000dead8091ad99335efa2bbf786c82eb491d4293abaf250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21272, got 21000" + }, + "name": "case-380", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x6099ac", + "codeHash": "0xa8642f5c71bebe5b709a2454839b9febad6484e0f57b2167e48765c5832a6699", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xcb8080827530800180250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53000, got 30000" + }, + "name": "case-381", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe78080830186a094000000000000000000000000000000000000000480872da9a6c88d68d6250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x2da9a6c88d68d6", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/0/0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x528a", + "txGasUsed": "0x528a" + }, + "name": "case-382", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x523a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adc5", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x523a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adc5", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe1800182753094000000000000000000000000000000000000dead01824700250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x523a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x523a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adc5/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x521c", + "txGasUsed": "0x523a" + }, + "name": "case-383", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0xd3266ee2be00aa019683261d7df5c7a1", + "codeHash": "0xb44045c265ce5a8afae999bc4f3eab868d445b3e7ff3fd07442b375d257dc5d7", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe680808252089400000000000000000000000000000000000000048203e88573d757738c250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21080, got 21000" + }, + "name": "case-384", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5348", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763acb8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5348", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763acb8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe88001830186a094000000000000000000000000000000000000dead8088602a5f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5348/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763acb8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5348" + }, + "name": "case-385", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe1808083030d4094000000000000000000000000000000000000dead8081fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5230" + }, + "name": "case-386", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xef808083030d40940000000000000000000000000000000000000004808f198d2c15f592b4ed0b3312873483cd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5460", + "logs": [], + "output": "0x198d2c15f592b4ed0b3312873483cd", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/2/0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x530a", + "txGasUsed": "0x5460" + }, + "name": "case-387", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea8080830186a0940000000000000000000000000000000000000004808a5f5f20505f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x5f5f20505f5260205ff3", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52ba", + "txGasUsed": "0x52ba" + }, + "name": "case-388", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 1, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xcf8001825208808203e8824700250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53022, got 21000" + }, + "name": "case-389", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5398", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ac67", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5398", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ac67", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea8001830186a09400000000000000000000000000000000000000c1018a5f5f20505f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5398", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640001/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5398/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ac67/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52a8", + "txGasUsed": "0x5398" + }, + "name": "case-390", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0, + "storage": { + "0x0": "0x0", + "0x2": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd38080827530808203e8865f61ffff5200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53086, got 30000" + }, + "name": "case-391", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0xf24f016688aad1cc794e5bd62b87609ca8bb545d0f", + "codeHash": "0x0e1cca26178fe24e7545a3585ac3625bf9ca574480effc294a7d3a9cb494fe8f", + "nonce": 0, + "storage": { + "0x0": "0x2a", + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd68080830186a0808203e888602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0xcf9a", + "txGasUsed": "0xcf9a" + }, + "name": "case-392", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x0d16d6238696f5", + "codeHash": "0xeecc6f41978fbfd9b8b460ebe6e80a42ae3c12bebe7b2fa12cf76e4352cb3a27", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd08001825208808203e8835b5f56250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53050, got 21000" + }, + "name": "case-393", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 1, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2, + "storage": { + "0x1": "0x1", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe780808275309400000000000000000000000000000000000000c08088602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5288" + }, + "name": "case-394", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xeeffd0cf897bc55c9f9fd88ef311de2ee3d80db8", + "codeHash": "0x343cf235022f3866f9b4a7d0c7f05396f6fa66dc28127de1d56b61307e8ad682", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x537a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ac86", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x537a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ac86", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea8001830186a094000000000000000000000000000000000000dead808a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x537a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x537a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ac86/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x529c", + "txGasUsed": "0x537a" + }, + "name": "case-395", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0, + "storage": { + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x15cf0904f7c5aeac00249bdbecb259667195", + "codeHash": "0x3535a8a2c6089dc5c374eb0b40464bf0766201f96baea2f478e0b8e7a514c1e6", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2808083030d409400000000000000000000000000000000000000c18082f291250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x3e8/0/0x3535a8a2c6089dc5c374eb0b40464bf0766201f96baea2f478e0b8e7a514c1e6", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-396", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x01da57374d97122cddfbfc9e1b5dd5ab9d", + "codeHash": "0x2b5e29e5db29c2d0c6743e9e1b27299b2fbd5dd7c12140b5736f1055a7cc57c2", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe280018252089400000000000000000000000000000000000000c08083484900250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21036, got 21000" + }, + "name": "case-397", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x457fa09f849722b09e33b23c", + "codeHash": "0x8f70cb4ddc68188dbde9305f7c5390b4e39a5b71184a0b57f77b01d458429ebd", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe5800182520894000000000000000000000000000000000000dead8203e8845f3f5000250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21052, got 21000" + }, + "name": "case-398", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0, + "storage": { + "0x0": "0x1", + "0x2": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xcc8080825208800181fe250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53018, got 21000" + }, + "name": "case-399", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1, + "storage": { + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5370", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a8a8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5370", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a8a8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea800182753094000000000000000000000000000000000000dead8203e889674eb22d83d579783c250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5370", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5370/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a8a8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5298", + "txGasUsed": "0x5370" + }, + "name": "case-400", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x3f6a7d444e4f51d6", + "codeHash": "0xadb46d578d76aa23c72bb500b60e21eb804c000e8116a7844f7d4fdfabec9a09", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x94657ed6eb605e", + "codeHash": "0x4ab33550252d88b5285ef7de30a9aa7401bb9e4f1d3d2316f9db553fc3039f12", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5238", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adc8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5238", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adc8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe280018275309400000000000000000000000000000000000000c180835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5238/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adc8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x0/0/0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5238" + }, + "name": "case-401", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0xf6b4f8ee0ccc8a7f9a925c763b", + "codeHash": "0x043013d21367f5bff85d8301c53e0a91d789052f52be9bfccb5fffbd00068c70", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2, + "storage": { + "0x1": "0x1", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x161a4a91fb6fdf8b", + "codeHash": "0x7e74464ca5029afacf6e4a7e12be0f2cb1f318ab46f40d6b0b6a0e657e0c14c5", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x7530", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7638ad0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x7530", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7638ad0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe580018275309400000000000000000000000000000000000000c080865f61ffff5200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52da", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x7530/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7638ad0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x3e8/1/0x043013d21367f5bff85d8301c53e0a91d789052f52be9bfccb5fffbd00068c70" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-402", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea808082753094000000000000000000000000000000000000dead8203e88960015f5560025f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5352", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x528c", + "txGasUsed": "0x5352" + }, + "name": "case-403", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe2800182520894000000000000000000000000000000000000dead8203e881fe250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21016, got 21000" + }, + "name": "case-404", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 1, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52da", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad26", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52da", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad26", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe68001830186a09400000000000000000000000000000000000000048086ab0079ef1a72250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52da", + "logs": [], + "output": "0xab0079ef1a72", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x52da/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad26/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x3e8/1/0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x526e", + "txGasUsed": "0x52da" + }, + "name": "case-405", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1, + "storage": { + "0x0": "0x0", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x1" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [ + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": "0x1", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd38080830186a0808203e88560015f5500250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": ["0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|0x0|0x1"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x125a7", + "txGasUsed": "0x125a7" + }, + "name": "case-406", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x46", + "codeHash": "0xe61d9a3d3848fb2cdd9a2ab61e2f21a10ea431275aed628a0557f9dee697c37a", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0xea25b20ed90dae8549223c89e5857283", + "codeHash": "0xfd6ea9b80d497caff0c9a8260a0f22455a71cc6f4c3dc57386e85eeb3012c49d", + "nonce": 2, + "storage": { + "0x1": "0x2a", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe4808083030d409400000000000000000000000000000000000000c180845f3f5000250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x0/0/0xe61d9a3d3848fb2cdd9a2ab61e2f21a10ea431275aed628a0557f9dee697c37a", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523e", + "txGasUsed": "0x523e" + }, + "name": "case-407", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe48080830186a09400000000000000000000000000000000000000c08203e8824700250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x523a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/0/0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-408", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1, + "storage": { + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe480808252089400000000000000000000000000000000000000c08203e8835b5f56250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21048, got 21000" + }, + "name": "case-409", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3800183030d409400000000000000000000000000000000000000c180835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/2/0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-410", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xfe24fcddcc8f2d2d15434b3e31", + "codeHash": "0x597b3d0d905882c0463353f5cfb0c30ae6f223542db0ece44ca8c2d248c57156", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd78080827530808203e88a5f5f20505f5260205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53162, got 30000" + }, + "name": "case-411", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0xd962e2371a34d0a8c439", + "codeHash": "0xb7ebae56db8fe11d50acb7ad18a2b0ef850553727a8fff22321c843f0600fad3", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd1808082520880018660015f5533ff250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53098, got 21000" + }, + "name": "case-412", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2, + "storage": { + "0x0": "0x1", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdf80808275309400000000000000000000000000000000000000040180250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/1/0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91|0xde0b6b3a7640001/1/0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5217", + "txGasUsed": "0x5217" + }, + "name": "case-413", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x7257c83f11c39db83f948fd5ffd9", + "codeHash": "0xa9ddfb452c17c18921df250daacf746eff3ef62c087af0e560e207ab1399d087", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x53de", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ac22", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x53de", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ac22", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf8398001827530940000000000000000000000000000000000000004809a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53de", + "logs": [], + "output": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x53de/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ac22/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0xde0b6b3a7640000/2/0xa9ddfb452c17c18921df250daacf746eff3ef62c087af0e560e207ab1399d087" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52d6", + "txGasUsed": "0x53de" + }, + "name": "case-414", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x19", + "codeHash": "0xd13bb74f59f99a49783890a86b564ca750ec6e4c3e245b880b6a0c088db3f523", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0xf25794222c26071a046f", + "codeHash": "0x8a4042da2560ed3ddf7d2b856defe54945e0477277be32dd05d1bf07f8b407b1", + "nonce": 2, + "storage": { + "0x1": "0x1", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf83980808252089400000000000000000000000000000000000000c0019a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21188, got 21000" + }, + "name": "case-415", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x53de", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a83a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x53de", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a83a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf83c800183030d4094000000000000000000000000000000000000dead8203e89a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53de", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x53de/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a83a/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52c4", + "txGasUsed": "0x53de" + }, + "name": "case-416", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2, + "storage": { + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd180018275308001865f61ffff5200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53086, got 30000" + }, + "name": "case-417", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1, + "storage": { + "0x1": "0x2a", + "0x2": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe580808252089400000000000000000000000000000000000000c08203e8845f5f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21052, got 21000" + }, + "name": "case-418", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5455de9cccaef31f7f305a93a497", + "codeHash": "0x2199d62d8d0e73cdc919b95508d4ba094d555c5148256bafbd440dd05ce444ae", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52b2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad4e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52b2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad4e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5800183030d4094000000000000000000000000000000000000dead808560015f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52b2", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x52b2/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad4e/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x524c", + "txGasUsed": "0x52b2" + }, + "name": "case-419", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2, + "storage": { + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x4eb319", + "codeHash": "0x4068c9f02f964fe67b03bebc599c3056b6f51cf22bf98ca7bd9f5a0de9cc7f7e", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xeb80018252089400000000000000000000000000000000000000c08203e88a602a5f5260205f5fa200250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21148, got 21000" + }, + "name": "case-420", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2, + "storage": { + "0x1": "0x1", + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe8808083030d409400000000000000000000000000000000000000040188602a5f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x529a", + "txGasUsed": "0x5348" + }, + "name": "case-421", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xbd821126bedc7f720a40580e969d75491969d666", + "codeHash": "0x7c503739e79d47631ee9fdfe2ce4877e83c7315a3c0f2eeccbd34be3f133ea63", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0xd741387626da03885f874a", + "codeHash": "0x72858ce66dffccca06e37fdb15cedba782ef6b5b5b05a7117a4b16ae6d7ae675", + "nonce": 0, + "storage": { + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x992e1dbed348f959e1e4", + "codeHash": "0x524f81b1e2744a3194453e6cb7ed9961bfe028d91f7cad8d4083b372ba72e3d7", + "nonce": 2, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe380808252089400000000000000000000000000000000000000c08203e8824700250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21020, got 21000" + }, + "name": "case-422", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": ["0x0"] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd2808083030d40808203e8845f5f5500250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x528a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [ + "0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|read|0x0" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xd7da", + "txGasUsed": "0xd7da" + }, + "name": "case-423", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 1, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": ["0x0"] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x7530", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7638ad0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x7530", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7638ad0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe880018275309400000000000000000000000000000000000000c0808960015f5560025f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x7530/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7638ad0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x1/1/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2" + ], + "storage": [ + "0x00000000000000000000000000000000000000c0|0x0|read|0x0" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 32, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-424", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 2, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x2", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 0 + }, + "original": { + "balance": "0x1", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 0 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe1808083030d409400000000000000000000000000000000000000c10181fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x1/0/0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a|0x2/0/0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5218", + "txGasUsed": "0x5230" + }, + "name": "case-425", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7640001", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5238", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adc7", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0xde0b6b3a7640001", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5238", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adc7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe180018275309400000000000000000000000000000000000000c001821d6d250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/0/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|0xde0b6b3a7640001/0/0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5238/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adc7/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5238" + }, + "name": "case-426", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0, + "storage": { + "0x1": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0xe106940394fee0", + "codeHash": "0x81b7d82c090f1358e89ef103d762ec837023aaf422c5d4aeb920d63858ddbf45", + "nonce": 2, + "storage": { + "0x0": "0x2a", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x7d0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x525e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a9ba", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x7d0", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x525e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a9ba", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe7800183030d409400000000000000000000000000000000000000048203e8853d5f5f3e00250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x3d5f5f3e00", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x3e8/0/0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca|0x7d0/0/0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x525e/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a9ba/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x525e", + "txGasUsed": "0x525e" + }, + "name": "case-427", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe28080830186a0808203e89424cb259fef4cf71882b4d8d9ad8f2bdbd7a73349250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5528", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-428", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x537a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a89e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x537a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a89e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xec800183030d4094000000000000000000000000000000000000dead8203e88a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x537a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x537a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a89e/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x529c", + "txGasUsed": "0x537a" + }, + "name": "case-429", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x634f7e074166500dd57cdd515018760ae93780f5", + "codeHash": "0x61b71018045eb130ddc9e904d8a4ece0f50c7640a90fde5876788235da32987a", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5280", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad7f", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5280", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad7f", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3800183030d4094000000000000000000000000000000000000dead01835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5280/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad7f/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5280" + }, + "name": "case-430", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x525e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ada1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x525e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ada1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe58001830186a094000000000000000000000000000000000000000401853d5f5f3e00250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x3d5f5f3e00", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x525e/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ada1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x525e", + "txGasUsed": "0x525e" + }, + "name": "case-431", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xef80808252089400000000000000000000000000000000000000c0019067602a5f5260205ff35f5260086018f3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21256, got 21000" + }, + "name": "case-432", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52b8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52b8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xec800182753094000000000000000000000000000000000000dead8203e88be6a201750efb8037f883fd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x52b8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52b8", + "txGasUsed": "0x52b8" + }, + "name": "case-433", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xd114ce8c32", + "codeHash": "0x33dd78ec82a910eac0d66c942fd3bca6ad46221cb58d6ac4d233c7cb6886cb13", + "nonce": 2, + "storage": { + "0x0": "0x0", + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0xff510ee433ac90", + "codeHash": "0x8f4e265d8675741cc00ae64eb26faae56e2b7ac08bf76e68330d712a0b275b1c", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe3800182520894000000000000000000000000000000000000000480845f3f5000250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21052, got 21000" + }, + "name": "case-434", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x560cda75d6409fd884c4efefc1211973da1d", + "codeHash": "0x084cb54ccf04eb10ac60c6ca3fe1847e2086cac0f741080f3ad7c04393b4f50a", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe9800182520894000000000000000000000000000000000000dead808a312f2b1de101f9907280250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21160, got 21000" + }, + "name": "case-435", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0xfef96aae90ddf7077cb33620", + "codeHash": "0x776cea838cc07a2581808e90fc50cd89510a3fd55ea5762ad234484f5533dad9", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1, + "storage": { + "0x0": "0x1", + "0x2": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe480808252089400000000000000000000000000000000000000c180853d5f5f3e00250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-436", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xd34de7681a48a564", + "codeHash": "0x0521a373b8dbf0c12ebff99ca50bf5552cdb45ce1b36fb68d101b43beb51d5ba", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1, + "storage": { + "0x1": "0x1", + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe0800182520894000000000000000000000000000000000000dead8081fe250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21016, got 21000" + }, + "name": "case-437", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcd800183030d40800181fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-438", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe480018252089400000000000000000000000000000000000000c08203e883484900250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21036, got 21000" + }, + "name": "case-439", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe8808083030d409400000000000000000000000000000000000000040188602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x602a5f5260205ffd", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x529a", + "txGasUsed": "0x529a" + }, + "name": "case-440", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xda800183030d40808203e88c864f582d991e0dd36b21237d250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53e8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-441", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 1, + "storage": { + "0x1": "0x0", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0xd73d47091cad", + "codeHash": "0xbb7b8ed5a4b6c4352ece809bb09e60d72334092a2e5ef35047159418d5107e31", + "nonce": 1, + "storage": { + "0x0": "0x0", + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52c8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a950", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52c8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a950", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xed80018275309400000000000000000000000000000000000000c08203e88c5f545f52602a5f5560205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x52c8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a950/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52c8", + "txGasUsed": "0x52c8" + }, + "name": "case-442", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x790ffc66", + "codeHash": "0x7ba0665bd549769561ef480a259113e3c6567175d8322f36907a2ed01af9dc04", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe2808082520894000000000000000000000000000000000000dead80835f5ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21048, got 21000" + }, + "name": "case-443", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd68001830186a080018a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x537a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-444", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3808083030d4094000000000000000000000000000000000000dead01835b5f56250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5280" + }, + "name": "case-445", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x2" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x674e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76398b1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e9", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + }, + "original": { + "balance": "0x3e8", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x674e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76398b1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": "0x2", + "key": "0x0", + "original": "0x2a" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf5800183030d409400000000000000000000000000000000000000c00195c8b449ea4dc9d66c26eea48e7b4725ae16db7ca74e250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5550", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x3e8/0/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2|0x3e9/0/0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x674e/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76398b1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [ + "0x00000000000000000000000000000000000000c0|0x0|0x2a|0x2" + ], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x674e", + "txGasUsed": "0x674e" + }, + "name": "case-446", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 0, + "storage": { + "0x0": "0x0", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x529a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad66", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x529a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad66", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe8800183030d409400000000000000000000000000000000000000048088602a5f5260205ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x602a5f5260205ffd", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x529a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad66/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x0/0/0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x529a", + "txGasUsed": "0x529a" + }, + "name": "case-447", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x8741b65ea38a01555f0de480b3a853ed9b50", + "codeHash": "0x0a5df3271e9a9af2ec05240acedba8f91bce207dacaa19fb1dc95dd1e7a1466e", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe0800183030d409400000000000000000000000000000000000000c18000250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5212", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/1/0x0a5df3271e9a9af2ec05240acedba8f91bce207dacaa19fb1dc95dd1e7a1466e" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-448", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52f8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad08", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52f8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad08", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe6800183030d40940000000000000000000000000000000000000004808660015f5533ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x52f8", + "logs": [], + "output": "0x60015f5533ff", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x52f8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad08/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x1/1/0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x527a", + "txGasUsed": "0x52f8" + }, + "name": "case-449", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0xe082147c14a875d4f4f9e4fc96c88776a3b5481c", + "codeHash": "0x5cedd8714b9d5d56f7686706aa0979eb6fa15e4f3ab07d2cc3b8da896a815dfa", + "nonce": 0, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x6c", + "codeHash": "0x6a0d259bd4fb907339fd7c65a133083c1e9554f2ca6325b806612c8df6d7df22", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x288fb0cd55fb5b41", + "codeHash": "0x7fff9a5ba24e5a9f959a93edaac81b6c5a1a8b539c509e3baf6c67b139fa7c22", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd38080827530808088602a5f5260205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53130, got 30000" + }, + "name": "case-450", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1, + "storage": { + "0x0": "0x0", + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 0, + "storage": { + "0x2": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xcf80808252088080845f5f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53054, got 21000" + }, + "name": "case-451", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd7808082520880808c5f545f52602a5f5560205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53194, got 21000" + }, + "name": "case-452", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2, + "storage": { + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea808083030d409400000000000000000000000000000000000000c0808a602a5f5260205f5fa200250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x537a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x1/0/0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 32, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-453", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5208", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adf8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5208", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adf8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdf80018275309400000000000000000000000000000000000000c08080250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5208/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adf8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000c0|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + }, + "name": "case-454", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xdf80808252089400000000000000000000000000000000000000c00100250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21004, got 21000" + }, + "name": "case-455", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f545f52602a5f5560205ff3", + "codeHash": "0x8684fa4f0a6f6ab1ca576953c27e9d08ae10879e2bf5e4d34b03a3875ad72016", + "nonce": 2, + "storage": { + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 1, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x520c", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adf4", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x520c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adf4", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdf80018275309400000000000000000000000000000000000000c08080250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x520c/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adf4/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x520c", + "txGasUsed": "0x520c" + }, + "name": "case-456", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0xdf7b5969374d77171c6fe6f3c1a56a6d8b1f", + "codeHash": "0x21ae94bcff30131e929d21f3380dc239c2fc149f7f409224567f598a08afaa96", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 2, + "storage": { + "0x0": "0x0", + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe4808082753094000000000000000000000000000000000000dead8203e8835f5ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5280" + }, + "name": "case-457", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x69b561ad05349797c55e83a6", + "codeHash": "0x3d1e9bbfbe2832f3a2127102b644cb4a435169ac5411806c7bc9d9f11a8568e4", + "nonce": 1, + "storage": { + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe0808083030d40808203e8929ee4b9a1ecfbb740e48bad31d3f5c0c402a3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x54d8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-458", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1, + "storage": { + "0x1": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd18080830186a0808203e883484900250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5262", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcf33", + "txGasUsed": "0xcf33" + }, + "name": "case-459", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea808083030d409400000000000000000000000000000000000000c1808a4ef088f6d5178ba140dc250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5398", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52a8", + "txGasUsed": "0x5398" + }, + "name": "case-460", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x8ba4b0c581", + "codeHash": "0xbcdce71aa5a84a518d21a575c6211f54890a30e58896c67f49336af95627fd96", + "nonce": 2, + "storage": { + "0x1": "0x0", + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x30d40", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a760f2c0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x30d40", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a760f2c0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea800183030d409400000000000000000000000000000000000000c08203e888602a5f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x30d40/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a760f2c0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x1/2/0xbcdce71aa5a84a518d21a575c6211f54890a30e58896c67f49336af95627fd96" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 43, + "totalGasSpent": "0x30d40", + "txGasUsed": "0x30d40" + }, + "name": "case-461", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 2, + "storage": { + "0x2": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xee80808252089400000000000000000000000000000000000000c1808f7258a51ddab46413e7c77d60bc8874250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21240, got 21000" + }, + "name": "case-462", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x528a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a98e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x528a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a98e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe6800183030d409400000000000000000000000000000000000000c08203e8845f3f5000250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x528a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x528a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a98e/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523c", + "txGasUsed": "0x528a" + }, + "name": "case-463", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x96714a", + "codeHash": "0x6a0f5720b51f55e4aa6123ca92aa1e0f6713e7fdc1a9958da73c7d01ee70c095", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf08080830186a0940000000000000000000000000000000000000004809067602a5f5260205ff35f5260086018f3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5488", + "logs": [], + "output": "0x67602a5f5260205ff35f5260086018f3", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x1/1/0x6a0f5720b51f55e4aa6123ca92aa1e0f6713e7fdc1a9958da73c7d01ee70c095", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x531a", + "txGasUsed": "0x5488" + }, + "name": "case-464", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2, + "storage": { + "0x0": "0x1", + "0x1": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf580018252089400000000000000000000000000000000000000c18203e894bc9d414a6ae6011b5e45878eae500831b3a96ad2250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21320, got 21000" + }, + "name": "case-465", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 0, + "storage": { + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe08080830186a09400000000000000000000000000000000000000c18080250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x602a5f5260205ff3", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/0/0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x5219", + "txGasUsed": "0x5219" + }, + "name": "case-466", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x75", + "codeHash": "0x32cefdcd8e794145c9af8dd1f4b1fbd92d6e547ae855553080fc8bd19c4883a0", + "nonce": 0, + "storage": { + "0x0": "0x2a", + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0xb58e06b2c2d77b1ac5b75c3e6aaad5d950", + "codeHash": "0x6462fd130c9d5dddb4e07da4aeeb1bd34a45fd7c6617f794fa1f46c75c9c94fe", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe080808275309400000000000000000000000000000000000000c18081f9250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0x3e8/2/0x6462fd130c9d5dddb4e07da4aeeb1bd34a45fd7c6617f794fa1f46c75c9c94fe", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-467", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 2, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2 + }, + "original": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2 + } + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe38080830186a094000000000000000000000000000000000000000401835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x5f5ffd", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|0x0/2/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0x1/2/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x524a", + "txGasUsed": "0x524a" + }, + "name": "case-468", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0xbb", + "codeHash": "0x9f1a1ebcae59b0879e9fb23ad9f90461016010b02c4a57af0fab0ee41025b4aa", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe7808082753094000000000000000000000000000000000000dead0188602a5f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5348", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5288", + "txGasUsed": "0x5348" + }, + "name": "case-469", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x07af8412dd544c", + "codeHash": "0x0c3c1ed9016d3fc1852bc2517db920b0017ae16b45d61a9a2fdf7d137c438832", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x53e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a830", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x53e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a830", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xee800183030d409400000000000000000000000000000000000000c18203e88c5f545f52602a5f5560205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53e8", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x53e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a830/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52c8", + "txGasUsed": "0x53e8" + }, + "name": "case-470", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5208", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adf8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5208", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adf8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe0800183030d4094000000000000000000000000000000000000dead8080250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5208", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5208/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adf8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5208", + "txGasUsed": "0x5208" + }, + "name": "case-471", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x4bec", + "codeHash": "0xeeecc6173b0a4f59922509e65da3b22c82d668a4db27ba6fe4dd47ce4a4756d1", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x60a5c01ce8ed22692be34281b99e362604e9fc8594da", + "codeHash": "0xb11cc725daebe1b8233a93bb1ddedcbe95930034991624afb9ce0d3355e1a24c", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x7530", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7638ad0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x7530", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7638ad0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe380018275309400000000000000000000000000000000000000c080845f5f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x528a", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x7530/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7638ad0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x0/2/0xeeecc6173b0a4f59922509e65da3b22c82d668a4db27ba6fe4dd47ce4a4756d1" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-472", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x186a0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7627960", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x186a0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7627960", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe08001830186a0808203e892d4c5b94d84b19ea4a318e949356222dacf5b250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x186a0/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7627960/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x8464135c8f25da09e49bc8782676a84730c318bc|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x186a0", + "txGasUsed": "0x186a0" + }, + "name": "case-473", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x7090d8877f333bf9", + "codeHash": "0x8611397df1081584569cdfa60b1391fb9a9cc5293463fe5bcc0c5c3a8336a5ec", + "nonce": 0, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe680808252089400000000000000000000000000000000000000c18203e8853d5f5f3e00250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-474", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0xef0db80af123beab70d8d4", + "codeHash": "0xbf8e0276b96068c03b116341f822fd00925e9563b9c9ec231d5085b853eb6795", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1, + "storage": { + "0x0": "0xffffffffffffffff", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x5f5f20505f5260205ff3", + "codeHash": "0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x52ba", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad46", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x52ba", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad46", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea800183030d40940000000000000000000000000000000000000004808a5f5f20505f5260205ff3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x5f5f20505f5260205ff3", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x52ba/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad46/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x0/2/0x0ff5c68fac8b406cd2549eff31f210bf87e1e23edadbe54db36a5313519766b8" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52ba", + "txGasUsed": "0x52ba" + }, + "name": "case-475", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1, + "storage": { + "0x1": "0x2a", + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 0, + "storage": { + "0x0": "0x0", + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5280", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad7f", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5280", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad7f", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3800183030d4094000000000000000000000000000000000000dead01835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5280/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad7f/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5280" + }, + "name": "case-476", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea8080827530940000000000000000000000000000000000000004018b5f3f44a6e0305eb52faf99250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x5f3f44a6e0305eb52faf99", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52ca", + "txGasUsed": "0x52ca" + }, + "name": "case-477", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x80e7732235677dbc3794d1c8671efcc1e5e4", + "codeHash": "0xd80db54169911d95c9fb6ada906fab781f9d9dae99805589dd79d409600bd1fe", + "nonce": 1, + "storage": { + "0x1": "0x0", + "0x2": "0x1" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x84b9180f43a179b66c74236e", + "codeHash": "0x3f7297c5afd9a51944e2e692d0e3b548bdd8efd5495a65a6bccade9cab28dfe3", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe4800182520894000000000000000000000000000000000000dead80855f5f5fa100250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21068, got 21000" + }, + "name": "case-478", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 0, + "storage": { + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xea8080830186a09400000000000000000000000000000000000000c1808aa75bcf53be9a8c304ce3250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|absent", + "0x00000000000000000000000000000000000000cb|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52a8", + "txGasUsed": "0x52a8" + }, + "name": "case-479", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 2, + "storage": { + "0x0": "0x0" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf8398080827530940000000000000000000000000000000000000004019a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53de", + "logs": [], + "output": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x1/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x52d6", + "txGasUsed": "0x53de" + }, + "name": "case-480", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x5c3ad55dc84fd726040a40788df1", + "codeHash": "0x308df2a9b261b157ce00c22ee6fef3cc97b11251a4f91d796647ee4f4d3ac40e", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd58001825208808203e888602a5f5260205ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53130, got 21000" + }, + "name": "case-481", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x00", + "codeHash": "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xeb80808252089400000000000000000000000000000000000000c1018c5f545f52602a5f5560205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21192, got 21000" + }, + "name": "case-482", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0, + "storage": { + "0x1": "0x1", + "0x2": "0x0" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5280", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ad80", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5280", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ad80", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe2800182753094000000000000000000000000000000000000000480835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x5f5ffd", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5280/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ad80/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x0/0/0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x524a", + "txGasUsed": "0x5280" + }, + "name": "case-483", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f3f5000", + "codeHash": "0x1efa94a1bf9a4216fcf42c7ad4573736393a498ea78ccdeec7ec5de7b013a2ac", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x602a5f5260205ff3", + "codeHash": "0x30962a84ef989ca0f724a5b2ec94f9cbf6a731752ce2c0be5333bf96e460c9fd", + "nonce": 2, + "storage": { + "0x1": "0x1", + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x58f6", + "codeHash": "0x73e56c1889a154882aebb7ea1ad3ef104b35dda7237a40259bca89443753916d", + "nonce": 2, + "storage": { + "0x0": "0x1" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd280808275308001874bce32c87e7527250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53114, got 30000" + }, + "name": "case-484", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x602a5f5260205f5fa200", + "codeHash": "0x0ddf8e8ef7c012613f616f62b20ec98dccfc71348e03e334050d72538ce7182f", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd38080825208800188602a5f5260205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53130, got 21000" + }, + "name": "case-485", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5f5fa100", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5520", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a6f8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e8", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1 + }, + "original": { + "balance": "0x0", + "codeHash": "0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7", + "nonce": 1 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5520", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a6f8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe480018275309400000000000000000000000000000000000000c18203e883484900250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5262", + "logs": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "data": "0x", + "topics": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + } + ], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x0/1/0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7|0x3e8/1/0x36b59beb05e390e9a8fb0033fab1301c4edbdbfe683c96b8c55a88aab1ff70b7|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5520/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a6f8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5520", + "txGasUsed": "0x5520" + }, + "name": "case-486", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5341", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a8d7", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0x3e8", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0 + }, + "original": { + "balance": "0x0", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5341", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a8d7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf58001830186a09400000000000000000000000000000000000000c08203e893436c0365257dbabdca0956af99a5af3e7d8cf2250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0x0/0/0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf|0x3e8/0/0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5341/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a8d7/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5341", + "txGasUsed": "0x5341" + }, + "name": "case-487", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x2d9e694a68710e2fcbf63996c7852e", + "codeHash": "0x031220873668bc25e70710155dc49a7ec060ce589e01006c4c6ae4c7de79d2c2", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x1e9204176112a71174e508", + "codeHash": "0xe2830c99757ff0c70537ef238bd0551aff15ed51aca25990d9fcfb319b2519e2", + "nonce": 0, + "storage": { + "0x0": "0x2a", + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf380018252089400000000000000000000000000000000000000c080948bb129ff4c7519b4c83027d2862e36d0494fe27d250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21320, got 21000" + }, + "name": "case-488", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe380018252089400000000000000000000000000000000000000c180845f5f5500250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21052, got 21000" + }, + "name": "case-489", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x67602a5f5260205ff35f5260086018f3", + "codeHash": "0xcbf2af69ec25b3b405353a90438369c2edda4d1cdb0dc0fd3d881865ab944385", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x35069e3b75c7a7473b", + "codeHash": "0x0cae65f4773d3bf83d061e49a7f4c008ffa386f1c7881c86fc89ad65afc4b718", + "nonce": 0, + "storage": { + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ffff", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x2" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ffff", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [ + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": "0x2", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd5808083030d4080018960015f5560025f5500250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ffff/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": ["0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|0x0|0x2"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x12650", + "txGasUsed": "0x12650" + }, + "name": "case-490", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 0, + "storage": { + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0xb957645dddcb1440", + "codeHash": "0x8100ff20b2644682157ca235ff4eee5dc2d51fa342bd49bdfbc25eb7bb236ffc", + "nonce": 1, + "storage": { + "0x0": "0x0", + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf4808082753094000000000000000000000000000000000000dead8095d9d20a7753bd810c5f437cd92ae0c94bf42707f36e250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5550", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7640000/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000cb|absent", + "0x000000000000000000000000000000000000dead|absent" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5358", + "txGasUsed": "0x5550" + }, + "name": "case-491", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0xa5531c5c88d1", + "codeHash": "0x0fb9453f77c92da67941ebc8fce537d8ab53f56a53b1834215caf5f28c3e979f", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xdf80808252089400000000000000000000000000000000000000048000250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21004, got 21000" + }, + "name": "case-492", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 0, + "storage": { + "0x0": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xf4800182520894000000000000000000000000000000000000dead8203e89339991f2a101c156d19602d78bc971c851bf1a5250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21304, got 21000" + }, + "name": "case-493", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x5f5f5500", + "codeHash": "0xb0b7eb204c6fadf444869accff97a1207fdea71ac2225ea1be155a84276bbe93", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ff3", + "codeHash": "0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x63edb8aae58a743d31264a87ea1c208c04f3df9e95", + "codeHash": "0xe5131aafa0adc45e9fbb1b3789591cc4260dc86531c98493d6e187639e98be49", + "nonce": 0, + "storage": { + "0x0": "0xffffffffffffffff", + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5230", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763add0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5230", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763add0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe1800183030d409400000000000000000000000000000000000000c18081fe250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5230", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5230/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763add0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c1|0xde0b6b3a7640000/2/0x17c3092b6f26b342c59b9f80e8d3d8f3ae124106cbd6c0c7f36e6f7951ee0c12" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x521c", + "txGasUsed": "0x5230" + }, + "name": "case-494", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x53de", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a83a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x53de", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a83a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xf83b80018275309400000000000000000000000000000000000000c18203e89a5f5f5f5f5f730000000000000000000000000000000000000004250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x53de", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x53de/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a83a/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x52c4", + "txGasUsed": "0x53de" + }, + "name": "case-495", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 1, + "storage": { + "0x1": "0x2a" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5228", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a9f0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5228", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a9f0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe3800182753094000000000000000000000000000000000000dead8203e88233ff250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5228/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a9f0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x5228", + "txGasUsed": "0x5228" + }, + "name": "case-496", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0xf00a13b683172e", + "codeHash": "0x0ac6f722705dda0dcce691a6df7ae263878a1e9cac217585d75c0ffa9988e2fe", + "nonce": 1 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x7ea7f6e0ae04171badb15584", + "codeHash": "0x32c99d0b52dfa8752ca974dd72b9cf5f8f951f43e5febcaafef14a54008f376e", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "balanceChanges": [ + { + "balance": "0x3e9", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5352", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a8c6", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c1", + "current": { + "balance": "0x3e9", + "codeHash": "0x32c99d0b52dfa8752ca974dd72b9cf5f8f951f43e5febcaafef14a54008f376e", + "nonce": 2 + }, + "original": { + "balance": "0x1", + "codeHash": "0x32c99d0b52dfa8752ca974dd72b9cf5f8f951f43e5febcaafef14a54008f376e", + "nonce": 2 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5352", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a8c6", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xeb800183030d409400000000000000000000000000000000000000c18203e88960015f5560025f5500250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5352", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c1|0x1/2/0x32c99d0b52dfa8752ca974dd72b9cf5f8f951f43e5febcaafef14a54008f376e|0x3e9/2/0x32c99d0b52dfa8752ca974dd72b9cf5f8f951f43e5febcaafef14a54008f376e|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5352/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a8c6/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x528f", + "txGasUsed": "0x5352" + }, + "name": "case-497", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0xb9bbf4f7a4f68b5e0ffc0b60355be6e84d67", + "codeHash": "0x893eec68afcfe1f8a605850439ea46e9db2127184704f906de4c0971f8a54459", + "nonce": 2 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5f61ffff5200", + "codeHash": "0x8f9b98480ec1c558475db49eb8ed2e33298c4da9aa3bf3186cff610ed70f456a", + "nonce": 2, + "storage": { + "0x1": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x136e03b9a5", + "codeHash": "0x011b739643528eafe679d4caac8431ddaa52dda0d069cd9caee7a738f8aa7a5f", + "nonce": 1, + "storage": { + "0x2": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x7530", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a7638ad0", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x7530", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a7638ad0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe480018275309400000000000000000000000000000000000000c08203e8835d9374250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x7530/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a7638ad0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x1/2/0x893eec68afcfe1f8a605850439ea46e9db2127184704f906de4c0971f8a54459" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 40, + "totalGasSpent": "0x7530", + "txGasUsed": "0x7530" + }, + "name": "case-498", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x3d5f5f3e00", + "codeHash": "0xf42829ff2b8e007d5d7d0018345c7f2baa5859d49c563b1377b749eaf8238daf", + "nonce": 0, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xce808083030d40808203e800250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5212", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x3e8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcf0e", + "txGasUsed": "0xcf0e" + }, + "name": "case-499", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x4dac727e8fda377adbe5082d473c49", + "codeHash": "0x2082ab4b45881507d3077e85e56d9d7f20a93a319454d599a66cb554fafcda3d", + "nonce": 0, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763fc18", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x000000000000000000000000000000000000dead", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763fc18", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe78080830186a094000000000000000000000000000000000000dead8203e8855f5f5fa100250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x000000000000000000000000000000000000dead|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763fc18/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x00000000000000000000000000000000000000cb|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x524c", + "txGasUsed": "0x524c" + }, + "name": "case-500", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x602a5f5260205ffd", + "codeHash": "0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0xbfde5097c3a824db8561f254", + "codeHash": "0x441501d6f3fb275e2b482f8de5d77a22f092d6f24bfe29a4c621663955f0a28c", + "nonce": 0, + "storage": { + "0x1": "0x2a", + "0x2": "0x0" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5258", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763ada8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5258", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763ada8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe380018275309400000000000000000000000000000000000000c08203e882cdaf250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5258", + "logs": [], + "output": "0x000000000000000000000000000000000000000000000000000000000000002a", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x5258/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763ada8/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x00000000000000000000000000000000000000c0|0x1/0/0x6d3f3b3073da8beb2ecd53914c9331de711d7b70f0e3557f0abf4a030250f86c" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": false, + "stop": 16, + "totalGasSpent": "0x5238", + "txGasUsed": "0x5258" + }, + "name": "case-501", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0, + "storage": { + "0x0": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 1, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x3e8", + "code": "0x24b258837006fb957f507a6a8009556a4727", + "codeHash": "0x0a21aaf19b531fd273028d208cefe96f73ab6848d123d461faf4be8c7747449e", + "nonce": 2, + "storage": { + "0x1": "0x1" + } + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x523a", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adc6", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x523a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adc6", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe1800182753094000000000000000000000000000000000000000480824700250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x523a", + "logs": [], + "output": "0x4700", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x523a/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adc6/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [ + "0x0000000000000000000000000000000000000004|0x3e8/2/0x0a21aaf19b531fd273028d208cefe96f73ab6848d123d461faf4be8c7747449e" + ], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x522e", + "txGasUsed": "0x523a" + }, + "name": "case-502", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x00bf23f6b8c8e4024636978ca9", + "codeHash": "0xcf43cb32a3e74f849a6591dc057c474e4b43c0f0cb41070dd56036e6ebc97de7", + "nonce": 0, + "storage": { + "0x2": "0x1" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 2, + "storage": { + "0x2": "0x2a" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x12", + "codeHash": "0x5fa2358263196dbbf23d1ca7a509451f7a2f64c15837bfbb81298b1e3e24e4fa", + "nonce": 2 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xd38080827530800188602a5f5260205ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 53130, got 30000" + }, + "name": "case-503", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0xc36a", + "codeHash": "0xcdf174be4dc28100ea4061c03e15b4e679dc619cfbe5f0dab3e5d048572eeda0", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0xcf0e", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76330f2", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0xcf0e", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a76330f2", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xcc800183030d40808000250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x5212", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0xcf0e/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a76330f2/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x0/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0xcf0e", + "txGasUsed": "0xcf0e" + }, + "name": "case-504", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x77983e380df526bbf63391d6701701a39f75daf671", + "codeHash": "0x03cd8687a3f0bbe76b4f635e5ba7a984836c1426cd7e1047fe6df00587b768d2", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5533ff", + "codeHash": "0xf416c3516fae78047aa43997307b1892adabee86712e286220c4412ff74ab007", + "nonce": 1, + "storage": { + "0x2": "0xffffffffffffffff" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe98001825208940000000000000000000000000000000000000004018a5f5f20505f5260205ff3250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21160, got 21000" + }, + "name": "case-505", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "prague" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x3e8", + "code": "0x4700", + "codeHash": "0x5870a3ab1298b28c92c2a1106fdf797a5b9dc72f6cccc0eb5f0c40424e202ac3", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x520c", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x000000000000000000000000000000000000dead", + "balanceChanges": [], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763adf4", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x520c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763adf4", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xdf800182753094000000000000000000000000000000000000dead8000250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x520c/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763adf4/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": ["0x000000000000000000000000000000000000dead|absent"], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x520c", + "txGasUsed": "0x520c" + }, + "name": "case-506", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x1", + "code": "0x484900", + "codeHash": "0x03e9058507d616fb4656d38639da8c19394dfffb2a02480e30a11c13bd66d5af", + "nonce": 2 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0x86f9577199e394c15dc01b73", + "codeHash": "0xdf79e62eb6975b18630d4d7a10370913c27542b4a2ab1aa07361b79828f79d01", + "nonce": 0 + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x125a7", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a762da58", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "balanceChanges": [ + { + "balance": "0x1", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [ + { + "changes": [ + { + "index": 1, + "value": "0x1" + } + ], + "slot": "0x0" + } + ], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x125a7", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a762da58", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + }, + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": { + "balance": "0x1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": null + } + ], + "code": [], + "storage": [ + { + "address": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "current": "0x1", + "key": "0x0", + "original": "0x0" + } + ], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xd1800183030d4080018560015f5500250101", + "expected": { + "createdAddress": "0x8464135c8f25da09e49bc8782676a84730c318bc", + "errorCode": null, + "floorGas": "0x0", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000cb|absent|0x125a7/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a762da58/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x8464135c8f25da09e49bc8782676a84730c318bc|absent|0x1/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|true|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": ["0x8464135c8f25da09e49bc8782676a84730c318bc|0x0|0x0|0x1"], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x125a7", + "txGasUsed": "0x125a7" + }, + "name": "case-507", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0x0", + "code": "0x5b5f56", + "codeHash": "0xd040b874b2ea26a9c9d103ad79665bf1df14fec8e774185a7d3f4beced2fad5e", + "nonce": 1, + "storage": { + "0x1": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x3e8", + "code": "0x5f5f5f5f5f730000000000000000000000000000000000000004", + "codeHash": "0x26dddb9d95c9a62445331e25341735e85e7d4ce522dadd3475d799728827cfca", + "nonce": 2, + "storage": { + "0x1": "0xffffffffffffffff", + "0x2": "0x0" + } + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x1", + "code": "0xfe", + "codeHash": "0xbcc90f2d6dada5b18e155c17a1c0a55920aae94f39857d39d0d8ed07ae8f228b", + "nonce": 2, + "storage": { + "0x0": "0x2a" + } + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe280018252089400000000000000000000000000000000000000c180835b5f56250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21048, got 21000" + }, + "name": "case-508", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0xde0b6b3a7640000", + "code": "0x33ff", + "codeHash": "0x5164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a91", + "nonce": 1 + } + ], + "bal": null, + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": null, + "chainId": "0x1", + "envelope": "0xe2800182520894000000000000000000000000000000000000dead01835f5ffd250101", + "expected": { + "handlerError": "intrinsic gas too low: required 21048, got 21000" + }, + "name": "case-509", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "cancun" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x7b856b6b9d017d3ff7d6db77649d08b418ec084048", + "codeHash": "0xf03cd6434a63f56212c0129911fc4175bdb29dcb7c1f7cc128fcd068d27c1878", + "nonce": 0, + "storage": { + "0x0": "0x1", + "0x2": "0xffffffffffffffff" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0x0", + "code": "0x60015f5560025f5500", + "codeHash": "0x769194a4d6cc455c08b8a773c9e01e73c118e1f7ad931b8d55f99c6d5cee9aa2", + "nonce": 1 + }, + { + "address": "0x0000000000000000000000000000000000000004", + "balance": "0x0", + "code": "0xa7501001e80a450b9bf803e5", + "codeHash": "0xdb8ceaafeaaac5bf8ee882bda82ad24f240bee77c07119252b41fa4f9a2b7107", + "nonce": 1, + "storage": { + "0x0": "0x2a", + "0x1": "0xffffffffffffffff" + } + } + ], + "bal": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "balanceChanges": [ + { + "balance": "0xde0b6b3a76403e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5280", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a998", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x00000000000000000000000000000000000000c0", + "current": { + "balance": "0xde0b6b3a76403e8", + "codeHash": "0xf03cd6434a63f56212c0129911fc4175bdb29dcb7c1f7cc128fcd068d27c1878", + "nonce": 0 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xf03cd6434a63f56212c0129911fc4175bdb29dcb7c1f7cc128fcd068d27c1878", + "nonce": 0 + } + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5280", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a998", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5800183030d409400000000000000000000000000000000000000c08203e8835f5ffd250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x", + "pendingState": { + "accounts": [ + "0x00000000000000000000000000000000000000c0|0xde0b6b3a7640000/0/0xf03cd6434a63f56212c0129911fc4175bdb29dcb7c1f7cc128fcd068d27c1878|0xde0b6b3a76403e8/0/0xf03cd6434a63f56212c0129911fc4175bdb29dcb7c1f7cc128fcd068d27c1878|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5280/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a998/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 1, + "totalGasSpent": "0x523b", + "txGasUsed": "0x5280" + }, + "name": "case-510", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + }, + { + "accounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xde0b6b3a7640000", + "code": "0x", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + { + "address": "0x00000000000000000000000000000000000000c0", + "balance": "0xde0b6b3a7640000", + "code": "0x5f5ffd", + "codeHash": "0x2451445de446d278512ff1eedde6f7cdfd6a01b16d0a0de35d2f60e96e15280f", + "nonce": 0, + "storage": { + "0x1": "0x1", + "0x2": "0x2a" + } + }, + { + "address": "0x00000000000000000000000000000000000000c1", + "balance": "0xde0b6b3a7640000", + "code": "0x60015f5500", + "codeHash": "0x0b756d92562d91f2128f5a6472f5b7a93b042c651625eb1342102d97a49fa559", + "nonce": 2 + } + ], + "bal": [ + { + "address": "0x0000000000000000000000000000000000000004", + "balanceChanges": [ + { + "balance": "0x3e8", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "balanceChanges": [ + { + "balance": "0x5280", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [], + "storageChanges": [], + "storageReads": [] + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balanceChanges": [ + { + "balance": "0xde0b6b3a763a998", + "index": 1 + } + ], + "codeChanges": [], + "nonceChanges": [ + { + "index": 1, + "nonce": 1 + } + ], + "storageChanges": [], + "storageReads": [] + } + ], + "block": { + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1" + }, + "blockState": { + "accounts": [ + { + "address": "0x0000000000000000000000000000000000000004", + "current": { + "balance": "0x3e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x00000000000000000000000000000000000000cb", + "current": { + "balance": "0x5280", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + }, + "original": null + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "current": { + "balance": "0xde0b6b3a763a998", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 1 + }, + "original": { + "balance": "0xde0b6b3a7640000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0 + } + } + ], + "code": [], + "storage": [], + "storageWipes": [] + }, + "chainId": "0x1", + "envelope": "0xe5800183030d409400000000000000000000000000000000000000048203e8835b5f56250101", + "expected": { + "createdAddress": null, + "errorCode": null, + "floorGas": "0x5280", + "logs": [], + "output": "0x5b5f56", + "pendingState": { + "accounts": [ + "0x0000000000000000000000000000000000000004|absent|0x3e8/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x00000000000000000000000000000000000000cb|absent|0x5280/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false", + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8|0xde0b6b3a7640000/0/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|0xde0b6b3a763a998/1/0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470|false|false" + ], + "bytecode": [], + "empty": false, + "reads": [], + "storage": [], + "wipes": [] + }, + "refunded": "0x0", + "stateGasSpent": "0x0", + "status": true, + "stop": 2, + "totalGasSpent": "0x524a", + "txGasUsed": "0x5280" + }, + "name": "case-511", + "signer": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "spec": "osaka" + } + ], + "count": 512, + "seed": "0x5eed1eafc0ffee01" +} diff --git a/wasm/evm2/rust-toolchain.toml b/wasm/evm2/rust-toolchain.toml new file mode 100644 index 00000000..97c62d5e --- /dev/null +++ b/wasm/evm2/rust-toolchain.toml @@ -0,0 +1,8 @@ +# Pinned because the compiled bytes depend on the exact compiler version, and +# because evm2 selects its tail-call interpreter backend on nightly -- which +# needs unstable features WASM cannot use. Stable resolves to `single_return`. +[toolchain] +channel = "1.97.0" +components = ["rust-std"] +profile = "minimal" +targets = ["wasm32-unknown-unknown"] diff --git a/wasm/evm2/src/abi.rs b/wasm/evm2/src/abi.rs new file mode 100644 index 00000000..3783fbba --- /dev/null +++ b/wasm/evm2/src/abi.rs @@ -0,0 +1,477 @@ +//! Versioned binary ABI shared by the adapter and its TypeScript codec. +//! +//! ABI v1 is Ox's compatibility boundary: evm2's Rust types, lifetimes, and +//! generics never cross it. Integers are fixed-width little-endian, 256-bit +//! values are exactly 32 big-endian bytes, addresses 20 bytes, and hashes 32. + +use alloc::vec::Vec; +use alloy_primitives::{Address, B256, U256}; +use core::fmt; + +/// Magic bytes prefixing every request and response header. +pub const MAGIC: u32 = u32::from_le_bytes(*b"EVM2"); + +/// ABI version. +pub const VERSION: u16 = 1; + +/// Request and response header size, in bytes. +/// +/// Layout: `magic u32 | version u16 | op-or-status u16 | flags u32 | length u32`. +pub const HEADER_SIZE: usize = 16; + +/// Largest request the adapter will accept, in bytes. +/// +/// Bounds the arena before any allocation so an absurd length is rejected rather +/// than attempted. Consensus sets no usable ceiling here: the block gas limit is +/// caller-supplied, and before Osaka's per-transaction cap a high limit makes +/// very large calldata valid at four gas per zero byte. This is therefore an +/// adapter bound, chosen to exceed any transaction a real chain would carry +/// while still protecting linear memory. +pub const MAX_REQUEST: usize = 64 * 1024 * 1024; + +/// ABI operations. +pub mod op { + /// Creates or replaces the engine. + pub const CREATE: u16 = 1; + /// Drops the engine and releases its allocations. + pub const DESTROY: u16 = 2; + /// Replaces the block environment and selected specification. + pub const SET_BLOCK: u16 = 3; + /// Executes a transaction for its result and discards its state changes. + pub const CALL_TX: u16 = 4; + /// Reads an account through the accepted overlay and the database. + pub const READ_ACCOUNT: u16 = 5; + /// Executes a transaction and leaves its state changes pending. + pub const TRANSACT: u16 = 6; + /// Accepts the pending transaction into the engine's overlay. + pub const COMMIT: u16 = 7; + /// Drops the pending transaction and keeps its result. + pub const DISCARD: u16 = 8; + /// Moves the pending transaction out as owned state. + pub const DETACH: u16 = 9; + /// Streams the pending changes to the host, then accepts the transaction. + pub const COMMIT_WITH: u16 = 10; + /// Streams the pending changes to the host, then drops the transaction. + pub const DISCARD_WITH: u16 = 11; + /// Installs or removes the execution inspector. + pub const SET_INSPECTOR: u16 = 12; + /// Attaches a block access list and sets the database-fallback switch. + pub const SET_BAL: u16 = 13; + /// Enables or discards the block access list builder. + pub const SET_BAL_BUILDER: u16 = 14; + /// Drains the built block access list. + pub const TAKE_BAL: u16 = 15; + /// Sets the block access index reads and writes are keyed at. + pub const SET_BAL_INDEX: u16 = 16; + /// Streams the pending changes into the block accumulator, then commits. + pub const COMMIT_TO: u16 = 17; + /// Starts a block accumulator, returning the token identifying it. + pub const START_BLOCK_STATE: u16 = 18; + /// Drains the block state a token identifies. + pub const TAKE_BLOCK_STATE: u16 = 19; + /// Prewarms the precompile addresses. + pub const WARM_PRECOMPILES: u16 = 20; + /// Applies caller-supplied changes to the accepted state overlay. + pub const COMMIT_SOURCE: u16 = 21; + /// Executes a system call and parks its handle. + pub const SYSTEM_CALL: u16 = 22; +} + +/// Builds a response header with an empty payload. +/// +/// This exists so a status the adapter cannot allocate for, such as refusing a +/// reentrant call, still answers with a well-formed response. +pub const fn header(status: u16) -> [u8; HEADER_SIZE] { + let magic = MAGIC.to_le_bytes(); + let version = VERSION.to_le_bytes(); + let status = status.to_le_bytes(); + [ + magic[0], magic[1], magic[2], magic[3], version[0], version[1], status[0], status[1], 0, 0, + 0, 0, 0, 0, 0, 0, + ] +} + +/// Header parsed from a request. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct Header { + /// Requested operation, one of [`op`]. + pub op: u16, + /// Reserved for future use. Must be zero. + pub flags: u32, + /// Payload length following the header. + pub length: u32, +} + +/// Parses and validates a request header, returning it with its payload. +pub fn request(bytes: &[u8]) -> Result<(Header, &[u8]), Error> { + if bytes.len() < HEADER_SIZE { + return Err(Error::Truncated); + } + let magic = u32::from_le_bytes(bytes[0..4].try_into().unwrap()); + if magic != MAGIC { + return Err(Error::Magic(magic)); + } + let version = u16::from_le_bytes(bytes[4..6].try_into().unwrap()); + if version != VERSION { + return Err(Error::Version(version)); + } + let header = Header { + op: u16::from_le_bytes(bytes[6..8].try_into().unwrap()), + flags: u32::from_le_bytes(bytes[8..12].try_into().unwrap()), + length: u32::from_le_bytes(bytes[12..16].try_into().unwrap()), + }; + if header.flags != 0 { + return Err(Error::Flags(header.flags)); + } + let payload = bytes.get(HEADER_SIZE..).ok_or(Error::Truncated)?; + if payload.len() != header.length as usize { + return Err(Error::Length { declared: header.length, actual: payload.len() }); + } + Ok((header, payload)) +} + +/// Bounds-checked cursor over a request payload. +#[derive(Debug)] +pub struct Reader<'a> { + bytes: &'a [u8], +} + +impl<'a> Reader<'a> { + /// Creates a reader over `bytes`. + pub const fn new(bytes: &'a [u8]) -> Self { + Self { bytes } + } + + fn take(&mut self, length: usize) -> Result<&'a [u8], Error> { + if self.bytes.len() < length { + return Err(Error::Truncated); + } + let (head, tail) = self.bytes.split_at(length); + self.bytes = tail; + Ok(head) + } + + /// Reads a single byte. + pub fn u8(&mut self) -> Result { + Ok(self.take(1)?[0]) + } + + /// Reads a byte as a boolean, where any non-zero value is true. + pub fn bool(&mut self) -> Result { + Ok(self.u8()? != 0) + } + + /// Reads a 32-byte hash. + pub fn hash(&mut self) -> Result { + Ok(B256::from_slice(self.take(32)?)) + } + + /// Reads a little-endian `u32`. + pub fn u32(&mut self) -> Result { + Ok(u32::from_le_bytes(self.take(4)?.try_into().unwrap())) + } + + /// Reads a little-endian `u64`. + pub fn u64(&mut self) -> Result { + Ok(u64::from_le_bytes(self.take(8)?.try_into().unwrap())) + } + + /// Reads a 32-byte big-endian 256-bit word. + pub fn word(&mut self) -> Result { + Ok(U256::from_be_bytes::<32>(self.take(32)?.try_into().unwrap())) + } + + /// Reads a 20-byte address. + pub fn address(&mut self) -> Result { + Ok(Address::from_slice(self.take(20)?)) + } + + /// Reads a `u32`-length-prefixed byte sequence, rejecting lengths above `max`. + pub fn bytes(&mut self, max: usize) -> Result<&'a [u8], Error> { + let length = self.u32()? as usize; + if length > max { + return Err(Error::TooLarge { length, max }); + } + self.take(length) + } + + /// Asserts the payload was consumed exactly. + /// + /// Trailing bytes mean the caller encoded a different shape than the + /// operation declares, so they are rejected rather than ignored. + pub fn finish(&self) -> Result<(), Error> { + if self.bytes.is_empty() { Ok(()) } else { Err(Error::Trailing(self.bytes.len())) } + } +} + +/// Response builder. Reserves the header up front and backfills it on finish. +#[derive(Debug)] +pub struct Writer { + bytes: Vec, +} + +impl Writer { + /// Creates a writer with the header space reserved. + pub fn new() -> Self { + Self { bytes: alloc::vec![0; HEADER_SIZE] } + } + + /// Appends a `u8`. + pub fn u8(&mut self, value: u8) { + self.bytes.push(value); + } + + /// Appends a boolean as a `u8`. + pub fn bool(&mut self, value: bool) { + self.u8(u8::from(value)); + } + + /// Appends a little-endian `u16`. + pub fn u16(&mut self, value: u16) { + self.bytes.extend_from_slice(&value.to_le_bytes()); + } + + /// Appends a little-endian `u32`. + pub fn u32(&mut self, value: u32) { + self.bytes.extend_from_slice(&value.to_le_bytes()); + } + + /// Appends a little-endian `u64`. + pub fn u64(&mut self, value: u64) { + self.bytes.extend_from_slice(&value.to_le_bytes()); + } + + /// Appends a 32-byte big-endian 256-bit word. + pub fn word(&mut self, value: U256) { + self.bytes.extend_from_slice(&value.to_be_bytes::<32>()); + } + + /// Appends a 20-byte address. + pub fn address(&mut self, value: Address) { + self.bytes.extend_from_slice(value.as_slice()); + } + + /// Appends a 32-byte hash. + pub fn hash(&mut self, value: B256) { + self.bytes.extend_from_slice(value.as_slice()); + } + + /// Appends a `u32`-length-prefixed byte sequence. + pub fn bytes(&mut self, value: &[u8]) { + self.u32(value.len() as u32); + self.bytes.extend_from_slice(value); + } + + /// Appends a `u32`-length-prefixed UTF-8 string. + pub fn str(&mut self, value: &str) { + self.bytes(value.as_bytes()); + } + + /// Writes the header for `status` and returns the finished response. + pub fn finish(mut self, status: u16) -> Vec { + let length = (self.bytes.len() - HEADER_SIZE) as u32; + self.bytes[0..4].copy_from_slice(&MAGIC.to_le_bytes()); + self.bytes[4..6].copy_from_slice(&VERSION.to_le_bytes()); + self.bytes[6..8].copy_from_slice(&status.to_le_bytes()); + self.bytes[8..12].copy_from_slice(&0u32.to_le_bytes()); + self.bytes[12..16].copy_from_slice(&length.to_le_bytes()); + self.bytes + } +} + +/// Reason a request could not be decoded. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum Error { + /// Header magic did not match [`MAGIC`]. + Magic(u32), + /// Header version is not [`VERSION`]. + Version(u16), + /// Reserved header flags were set. + Flags(u32), + /// Declared payload length disagrees with the request. + Length { + /// Length declared by the header. + declared: u32, + /// Length actually supplied. + actual: usize, + }, + /// Payload ended before the operation's fields did. + Truncated, + /// Payload had bytes left over after the operation's fields. + Trailing(usize), + /// A length-prefixed sequence exceeded its bound. + TooLarge { + /// Declared length. + length: usize, + /// Maximum accepted length. + max: usize, + }, + /// Operation is not part of this ABI version. + UnknownOp(u16), + /// Specification ID is not an evm2 `SpecId` discriminant. + UnknownSpecId(u32), + /// A version field this ABI does not define. + UnknownField(u32), + /// A version field wider than this target can hold. + FieldTooLarge { + /// Field the caller set. + field: &'static str, + /// Value it carried. + value: u64, + }, + /// A feature index outside evm2's declared flags. + UnknownFeature(u32), + /// A gas parameter index outside evm2's `GasId`. + UnknownGasId(u32), + /// Transaction envelope failed EIP-2718 decoding. + /// A change stream carried a record tag this ABI version does not define. + UnknownRecord(u8), + /// A block access list carried bytecode evm2 refuses to decode. + Bytecode, + Envelope, +} + +impl fmt::Display for Error { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::Magic(magic) => write!(f, "expected magic {MAGIC:#010x}, got {magic:#010x}"), + Self::Version(version) => { + write!(f, "expected ABI version {VERSION}, got {version}") + } + Self::Flags(flags) => write!(f, "reserved header flags must be zero, got {flags:#x}"), + Self::Length { declared, actual } => { + write!(f, "header declared {declared} payload bytes, got {actual}") + } + Self::Truncated => f.write_str("request payload ended early"), + Self::Trailing(count) => write!(f, "request payload had {count} trailing bytes"), + Self::TooLarge { length, max } => { + write!(f, "length {length} exceeds the {max} byte maximum") + } + Self::UnknownOp(op) => write!(f, "unknown operation {op}"), + Self::UnknownSpecId(spec_id) => write!(f, "unknown spec id {spec_id}"), + Self::UnknownField(bits) => write!(f, "unknown version field bits {bits:#x}"), + Self::FieldTooLarge { field, value } => { + write!(f, "{field} value {value} exceeds this target's usize") + } + Self::UnknownFeature(index) => write!(f, "unknown feature index {index}"), + Self::UnknownGasId(index) => write!(f, "unknown gas parameter index {index}"), + Self::UnknownRecord(tag) => write!(f, "unknown change record {tag}"), + Self::Bytecode => f.write_str("block access list carries undecodable bytecode"), + Self::Envelope => f.write_str("transaction envelope is not valid EIP-2718"), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + fn request_bytes(op: u16, payload: &[u8]) -> Vec { + let mut bytes = Vec::from(header(op)); + bytes[6..8].copy_from_slice(&op.to_le_bytes()); + bytes[12..16].copy_from_slice(&(payload.len() as u32).to_le_bytes()); + bytes.extend_from_slice(payload); + bytes + } + + #[test] + fn request_rejects_a_short_buffer() { + assert_eq!(request(&[0; HEADER_SIZE - 1]), Err(Error::Truncated)); + } + + #[test] + fn request_rejects_foreign_magic() { + let mut bytes = request_bytes(op::CREATE, &[]); + bytes[0] = 0; + assert_eq!(request(&bytes), Err(Error::Magic(MAGIC & 0xffff_ff00))); + } + + #[test] + fn request_rejects_another_version() { + let mut bytes = request_bytes(op::CREATE, &[]); + bytes[4..6].copy_from_slice(&2u16.to_le_bytes()); + assert_eq!(request(&bytes), Err(Error::Version(2))); + } + + #[test] + fn request_rejects_reserved_flags() { + let mut bytes = request_bytes(op::CREATE, &[]); + bytes[8] = 1; + assert_eq!(request(&bytes), Err(Error::Flags(1))); + } + + #[test] + fn request_rejects_a_mismatched_length() { + let mut bytes = request_bytes(op::CREATE, &[1, 2, 3]); + bytes[12..16].copy_from_slice(&4u32.to_le_bytes()); + assert_eq!(request(&bytes), Err(Error::Length { declared: 4, actual: 3 })); + } + + #[test] + fn reader_reads_every_field_width() { + let mut payload = Vec::new(); + payload.extend_from_slice(&7u32.to_le_bytes()); + payload.extend_from_slice(&9u64.to_le_bytes()); + payload.extend_from_slice(&U256::from(11).to_be_bytes::<32>()); + payload.extend_from_slice(Address::with_last_byte(13).as_slice()); + payload.extend_from_slice(&2u32.to_le_bytes()); + payload.extend_from_slice(&[0xaa, 0xbb]); + + let mut reader = Reader::new(&payload); + assert_eq!(reader.u32(), Ok(7)); + assert_eq!(reader.u64(), Ok(9)); + assert_eq!(reader.word(), Ok(U256::from(11))); + assert_eq!(reader.address(), Ok(Address::with_last_byte(13))); + assert_eq!(reader.bytes(8), Ok(&[0xaa, 0xbb][..])); + assert_eq!(reader.finish(), Ok(())); + } + + #[test] + fn reader_rejects_trailing_bytes() { + let mut reader = Reader::new(&[0; 5]); + assert_eq!(reader.u32(), Ok(0)); + assert_eq!(reader.finish(), Err(Error::Trailing(1))); + } + + #[test] + fn reader_rejects_a_truncated_field() { + let mut reader = Reader::new(&[0; 3]); + assert_eq!(reader.u32(), Err(Error::Truncated)); + } + + #[test] + fn reader_rejects_a_sequence_over_its_bound() { + let mut payload = Vec::from(9u32.to_le_bytes()); + payload.extend_from_slice(&[0; 9]); + let mut reader = Reader::new(&payload); + assert_eq!(reader.bytes(8), Err(Error::TooLarge { length: 9, max: 8 })); + } + + #[test] + fn reader_rejects_a_length_that_overflows_the_payload() { + let payload = Vec::from(u32::MAX.to_le_bytes()); + let mut reader = Reader::new(&payload); + assert_eq!( + reader.bytes(usize::MAX), + Err(Error::Truncated), + "a declared length beyond the payload must not be read", + ); + } + + #[test] + fn writer_backfills_its_header() { + let mut writer = Writer::new(); + writer.u64(42); + let response = writer.finish(3); + assert_eq!(&response[0..4], &MAGIC.to_le_bytes()); + assert_eq!(&response[4..6], &VERSION.to_le_bytes()); + assert_eq!(&response[6..8], &3u16.to_le_bytes()); + assert_eq!(&response[12..16], &8u32.to_le_bytes()); + assert_eq!(&response[HEADER_SIZE..], &42u64.to_le_bytes()); + } + + #[test] + fn header_matches_an_empty_writer() { + assert_eq!(header(5).as_slice(), Writer::new().finish(5).as_slice()); + } +} diff --git a/wasm/evm2/src/bal.rs b/wasm/evm2/src/bal.rs new file mode 100644 index 00000000..37bbf19b --- /dev/null +++ b/wasm/evm2/src/bal.rs @@ -0,0 +1,254 @@ +//! EIP-7928 block access list serialization. +//! +//! One wire shape serves both directions: the canonical [`BlockAccessList`] +//! (`Vec`), which evm2 converts to and from its own `Bal`. So +//! evm2 owns validation and the fold, and this module owns only the bytes. + +use alloc::vec::Vec; +use alloy_eip7928::{ + AccountChanges, BalanceChange, BlockAccessIndex, BlockAccessList, CodeChange, NonceChange, + SlotChanges, StorageChange, +}; +use evm2::{constants::MAX_CODE_SIZE_AMSTERDAM as MAX_CODE, evm::Bal}; + +use crate::abi::{self, Reader, Writer}; + +/// Largest code a single change may carry. +/// +/// The same ceiling the account-code landing buffer uses, so a list built from an +/// execution under the highest configured limit round-trips rather than being +/// refused on the way back in. + +/// Reads a block access list, validating it through evm2. +/// +/// Malformed bytecode (an EIP-7702 designator of the wrong length or version) is +/// rejected here rather than surfacing as a bad read mid-execution. +pub fn read(reader: &mut Reader<'_>) -> Result { + let count = reader.u32()? as usize; + let mut accounts = Vec::with_capacity(count.min(1024)); + + for _ in 0..count { + let address = reader.address()?; + let mut changes = AccountChanges::new(address); + + for _ in 0..reader.u32()? { + let slot = reader.word()?; + let mut slot_changes = Vec::new(); + for _ in 0..reader.u32()? { + let block_access_index = index(reader)?; + let new_value = reader.word()?; + slot_changes.push(StorageChange { block_access_index, new_value }); + } + changes.storage_changes.push(SlotChanges::new(slot, slot_changes)); + } + for _ in 0..reader.u32()? { + changes.storage_reads.push(reader.word()?); + } + for _ in 0..reader.u32()? { + let block_access_index = index(reader)?; + let post_balance = reader.word()?; + changes.balance_changes.push(BalanceChange { block_access_index, post_balance }); + } + for _ in 0..reader.u32()? { + let block_access_index = index(reader)?; + let new_nonce = reader.u64()?; + changes.nonce_changes.push(NonceChange { block_access_index, new_nonce }); + } + for _ in 0..reader.u32()? { + let block_access_index = index(reader)?; + let new_code = reader.bytes(MAX_CODE)?.to_vec().into(); + changes.code_changes.push(CodeChange { block_access_index, new_code }); + } + + accounts.push(changes); + } + + Bal::try_from(accounts).map_err(|_| abi::Error::Bytecode) +} + +/// Writes a block access list. +pub fn write(writer: &mut Writer, bal: Bal) { + let accounts = BlockAccessList::from(bal); + writer.u32(accounts.len() as u32); + + for account in &accounts { + writer.address(account.address); + + writer.u32(account.storage_changes.len() as u32); + for slot in &account.storage_changes { + writer.word(slot.slot); + writer.u32(slot.changes.len() as u32); + for change in &slot.changes { + writer.u64(change.block_access_index.0); + writer.word(change.new_value); + } + } + writer.u32(account.storage_reads.len() as u32); + for slot in &account.storage_reads { + writer.word(*slot); + } + writer.u32(account.balance_changes.len() as u32); + for change in &account.balance_changes { + writer.u64(change.block_access_index.0); + writer.word(change.post_balance); + } + writer.u32(account.nonce_changes.len() as u32); + for change in &account.nonce_changes { + writer.u64(change.block_access_index.0); + writer.u64(change.new_nonce); + } + writer.u32(account.code_changes.len() as u32); + for change in &account.code_changes { + writer.u64(change.block_access_index.0); + writer.bytes(&change.new_code); + } + } +} + +/// Reads a block access index. +fn index(reader: &mut Reader<'_>) -> Result { + Ok(BlockAccessIndex(reader.u64()?)) +} + +#[cfg(test)] +mod tests { + use super::*; + use alloy_primitives::{Address, U256}; + + /// Builds a list exercising every field, so a round trip covers the shape. + fn sample() -> Vec { + let mut writer = Writer::new(); + writer.u32(1); + writer.address(Address::repeat_byte(0xab)); + // One slot with two writes. + writer.u32(1); + writer.word(U256::from(7)); + writer.u32(2); + writer.u64(1); + writer.word(U256::from(11)); + writer.u64(2); + writer.word(U256::from(12)); + // One read. + writer.u32(1); + writer.word(U256::from(9)); + // Balance, nonce, code. + writer.u32(1); + writer.u64(1); + writer.word(U256::from(500)); + writer.u32(1); + writer.u64(1); + writer.u64(3); + writer.u32(1); + writer.u64(1); + writer.bytes(&[0x60, 0x00]); + writer.finish(0) + } + + /// Strips the response header the writer reserves. + fn payload(bytes: &[u8]) -> &[u8] { + &bytes[crate::abi::HEADER_SIZE..] + } + + #[test] + fn round_trips_every_field() { + let encoded = sample(); + let bal = read(&mut Reader::new(payload(&encoded))).unwrap(); + + let mut writer = Writer::new(); + write(&mut writer, bal); + let again = writer.finish(0); + + // Byte-identical, so neither direction drops or reorders a field. + assert_eq!(payload(&encoded), payload(&again)); + } + + /// Writes one account carrying only the two storage reads given. + fn account(writer: &mut Writer, address: Address, reads: &[u64]) { + writer.address(address); + writer.u32(0); + writer.u32(reads.len() as u32); + for read in reads { + writer.word(U256::from(*read)); + } + writer.u32(0); + writer.u32(0); + writer.u32(0); + } + + #[test] + fn writes_canonical_order_whatever_the_input_order() { + let mut writer = Writer::new(); + writer.u32(2); + // Descending by address, and the slots descending within an account, so + // both orderings have to be corrected on the way out. + account(&mut writer, Address::repeat_byte(0xcc), &[9, 2]); + account(&mut writer, Address::repeat_byte(0x11), &[5, 1]); + let encoded = writer.finish(0); + + let bal = read(&mut Reader::new(payload(&encoded))).unwrap(); + let mut writer = Writer::new(); + write(&mut writer, bal); + let out = writer.finish(0); + + let mut expected = Writer::new(); + expected.u32(2); + account(&mut expected, Address::repeat_byte(0x11), &[1, 5]); + account(&mut expected, Address::repeat_byte(0xcc), &[2, 9]); + let expected = expected.finish(0); + + // EIP-7928 requires deterministic ordering, and evm2's canonical + // conversion applies it, so the wire is sorted regardless of input. + assert_eq!(payload(&out), payload(&expected)); + } + + #[test] + fn reads_an_empty_list() { + let mut writer = Writer::new(); + writer.u32(0); + let encoded = writer.finish(0); + + let bal = read(&mut Reader::new(payload(&encoded))).unwrap(); + assert!(bal.accounts.is_empty()); + } + + #[test] + fn rejects_malformed_delegation_code() { + let mut writer = Writer::new(); + writer.u32(1); + writer.address(Address::ZERO); + writer.u32(0); + writer.u32(0); + writer.u32(0); + writer.u32(0); + writer.u32(1); + writer.u64(1); + // The EIP-7702 magic prefix with nothing after it, which evm2 refuses. + writer.bytes(&[0xef, 0x01]); + let encoded = writer.finish(0); + + assert!(matches!( + read(&mut Reader::new(payload(&encoded))), + Err(abi::Error::Bytecode) + )); + } + + #[test] + fn refuses_code_above_the_cap() { + let mut writer = Writer::new(); + writer.u32(1); + writer.address(Address::ZERO); + writer.u32(0); + writer.u32(0); + writer.u32(0); + writer.u32(0); + writer.u32(1); + writer.u64(1); + writer.bytes(&vec![0; MAX_CODE + 1]); + let encoded = writer.finish(0); + + assert!(matches!( + read(&mut Reader::new(payload(&encoded))), + Err(abi::Error::TooLarge { .. }) + )); + } +} diff --git a/wasm/evm2/src/block.rs b/wasm/evm2/src/block.rs new file mode 100644 index 00000000..1bf12abe --- /dev/null +++ b/wasm/evm2/src/block.rs @@ -0,0 +1,113 @@ +//! Block state accumulation. +//! +//! evm2's `BlockStateAccumulator` gathers what a block's transactions changed, so +//! it outlives any one of them and is held here rather than passed per call. A +//! transaction records into it by resolving through `commit_to`. + +use alloc::vec::Vec; +use evm2::evm::{AccountInfo, BlockStateAccumulator}; + +use crate::abi::Writer; + +/// Holds the accumulator outside the engine, like the trace collector. +/// +/// The engine is borrowed while a transaction handle is outstanding, and a block +/// commits many transactions into one accumulator, so it cannot live on either. +struct Slot(core::cell::UnsafeCell>); + +// The adapter is single-threaded: WebAssembly has one instance per isolate and +// reentrancy is refused before any handler runs. +unsafe impl Sync for Slot {} + +static BLOCK: Slot = Slot(core::cell::UnsafeCell::new(None)); + +/// Identifies the accumulator in progress. +/// +/// The caller holds this rather than the accumulator itself, which cannot cross +/// the ABI. Bumped on every start, so a token outlives its accumulator only as a +/// value that no longer matches. +struct Generation(core::cell::UnsafeCell); + +unsafe impl Sync for Generation {} + +static GENERATION: Generation = Generation(core::cell::UnsafeCell::new(0)); + +fn generation() -> u64 { + unsafe { *GENERATION.0.get() } +} + +/// Installs an empty accumulator, discarding any in progress, and identifies it. +pub fn start() -> u64 { + unsafe { + *GENERATION.0.get() += 1; + *BLOCK.0.get() = Some(BlockStateAccumulator::new()); + *GENERATION.0.get() + } +} + +/// Returns the accumulator `token` identifies, if it is the one in progress. +pub fn accumulator(token: u64) -> Option<&'static mut BlockStateAccumulator> { + if token != generation() { + return None; + } + unsafe { (*BLOCK.0.get()).as_mut() } +} + +/// Takes the accumulator `token` identifies, leaving none behind. +pub fn take(token: u64) -> Option { + if token != generation() { + return None; + } + unsafe { (*BLOCK.0.get()).take() } +} + +/// Writes an accumulator's contents in a deterministic order. +/// +/// Accounts, storage, and wipes use evm2's sorted accessors. Code has none, so it +/// is sorted here by hash: it is a hash map upstream, and an unsorted enumeration +/// would differ run to run. +pub fn write(writer: &mut Writer, block: &BlockStateAccumulator) { + let accounts = block.accounts_sorted(); + writer.u32(accounts.len() as u32); + for (address, tracked) in &accounts { + writer.address(*address); + info(writer, &tracked.original); + info(writer, &tracked.current); + } + + let wipes = block.storage_wipes_sorted(); + writer.u32(wipes.len() as u32); + for address in &wipes { + writer.address(*address); + } + + let storage = block.storage_sorted(); + writer.u32(storage.len() as u32); + for (key, tracked) in &storage { + writer.address(key.address()); + writer.word(key.key()); + writer.word(tracked.original); + writer.word(tracked.current); + } + + let mut code: Vec<_> = block.code().collect(); + code.sort_unstable_by_key(|(hash, _)| **hash); + writer.u32(code.len() as u32); + for (hash, bytecode) in &code { + writer.hash(**hash); + writer.bytes(bytecode.original_bytes().as_ref()); + } +} + +/// Writes an account's fields, or a flag saying it is absent. +fn info(writer: &mut Writer, value: &Option) { + match value { + Some(info) => { + writer.bool(true); + writer.word(info.balance); + writer.u64(info.nonce); + writer.hash(info.code_hash); + } + None => writer.bool(false), + } +} diff --git a/wasm/evm2/src/database.rs b/wasm/evm2/src/database.rs new file mode 100644 index 00000000..5c517e88 --- /dev/null +++ b/wasm/evm2/src/database.rs @@ -0,0 +1,329 @@ +//! Synchronous host bridge for evm2's [`Database`] trait. +//! +//! The adapter supplies external values and nothing else: caching, journaling, +//! and rollback stay evm2's. A read the host cannot serve is a database error, +//! and evm2 decides what that does to transaction state. + +use alloc::vec::Vec; +use alloy_primitives::{Address, B256}; +use core::fmt; +use evm2::{ + bytecode::Bytecode, + constants::MAX_CODE_SIZE_AMSTERDAM, + evm::{AccountInfo, Database}, + interpreter::Word, +}; + +/// Encoded [`AccountInfo`] size: `balance` (32 BE), `nonce` (8 LE), +/// `code_hash` (32), `has_code` (1). +const ACCOUNT_SIZE: usize = 73; + +/// Host read succeeded and wrote its output. +const FOUND: u32 = 0; +/// Account does not exist. Only [`Database::get_account`] may report this. +const MISSING: u32 = 1; +/// Code did not fit the landing buffer. The host wrote the length it needs. +const TOO_LARGE: u32 = 3; + +/// The host does not have the value yet and will supply it out of band. +/// +/// An asynchronous source cannot answer inside a synchronous import, so it +/// reports this instead. The read fails, evm2 unwinds the attempt without +/// accepting any state, and the host retries once it has fetched the value. +const PENDING: u32 = 4; + +/// Absolute ceiling on code the adapter will accept from the host. +/// +/// The landing buffer starts at the largest size any fork lets a contract deploy +/// and grows on demand, because `get_code_by_hash` returns code that already +/// exists in state rather than code being deployed now. +/// +/// This ceiling is a deliberate adapter bound, not an attempt to mirror a +/// consensus rule. evm2 itself accepts bytecode of any length, but the length +/// driving the allocation is reported by the host, so an unbounded buffer would +/// let a wrong or hostile length exhaust linear memory. 16 MiB is 256 times the +/// largest code any spec permits to deploy, and depositing that much would cost +/// over three billion gas, so no real chain can hold an account this exceeds. +const CODE_CEILING: usize = 16 * 1024 * 1024; + +/// Host read failed. Any status other than [`FOUND`] or [`MISSING`] is a failure. +#[cfg(not(target_arch = "wasm32"))] +const FAILED: u32 = 2; + +#[cfg(target_arch = "wasm32")] +#[link(wasm_import_module = "ox_evm2")] +unsafe extern "C" { + /// Writes `balance` (32 BE), `nonce` (8 LE), `code_hash` (32), and a + /// `has_code` flag (1) to `out`. + /// + /// A source that already holds the account's code sets the flag and writes + /// the code to `code`, reporting its length in `code_length`. That is what + /// evm2's own `AccountInfo.code` is for, and it saves the separate + /// `get_code_by_hash` round trip a source keyed by address cannot answer. + #[link_name = "get_account"] + fn host_get_account( + address: *const u8, + out: *mut u8, + code: *mut u8, + code_capacity: u32, + code_length: *mut u32, + ) -> u32; + + /// Writes up to `capacity` code bytes to `out` and their count to `length`. + #[link_name = "get_code_by_hash"] + fn host_get_code_by_hash( + code_hash: *const u8, + out: *mut u8, + capacity: u32, + length: *mut u32, + ) -> u32; + + /// Writes the slot value as 32 big-endian bytes to `out`. + #[link_name = "get_storage"] + fn host_get_storage(address: *const u8, key: *const u8, out: *mut u8) -> u32; + + /// Writes the 32-byte block hash to `out`. + #[link_name = "get_block_hash"] + fn host_get_block_hash(number: *const u8, out: *mut u8) -> u32; +} + +/// Host builds have no imports, so every read reports failure. Database +/// behavior is covered against the compiled artifact, not here. +#[cfg(not(target_arch = "wasm32"))] +mod host { + use super::FAILED; + + pub unsafe fn get_account( + _address: *const u8, + _out: *mut u8, + _code: *mut u8, + _code_capacity: u32, + _code_length: *mut u32, + ) -> u32 { + FAILED + } + + pub unsafe fn get_block_hash(_number: *const u8, _out: *mut u8) -> u32 { + FAILED + } + + pub unsafe fn get_code_by_hash( + _code_hash: *const u8, + _out: *mut u8, + _capacity: u32, + _length: *mut u32, + ) -> u32 { + FAILED + } + + pub unsafe fn get_storage(_address: *const u8, _key: *const u8, _out: *mut u8) -> u32 { + FAILED + } +} + +#[cfg(not(target_arch = "wasm32"))] +use host::{ + get_account as host_get_account, get_block_hash as host_get_block_hash, + get_code_by_hash as host_get_code_by_hash, get_storage as host_get_storage, +}; + +/// Database whose reads are served by host imports. +#[derive(Debug)] +pub struct HostDb { + /// Reused zeroed landing buffer for code, so a host that under-writes it + /// cannot expose stale or uninitialized bytes. + code: Vec, +} + +impl Default for HostDb { + fn default() -> Self { + Self { code: alloc::vec![0; MAX_CODE_SIZE_AMSTERDAM] } + } +} + +impl HostDb { + /// One `get_account` import call against the current landing buffer. + fn read_account( + &mut self, + address: &Address, + out: &mut [u8; ACCOUNT_SIZE], + code_length: &mut u32, + ) -> u32 { + let capacity = self.code.len(); + unsafe { + host_get_account( + address.as_ptr(), + out.as_mut_ptr(), + self.code.as_mut_ptr(), + capacity as u32, + code_length as *mut u32, + ) + } + } + + /// One `get_code_by_hash` import call against the current landing buffer. + fn read_code(&mut self, code_hash: &B256, length: &mut u32) -> u32 { + let capacity = self.code.len(); + unsafe { + host_get_code_by_hash( + code_hash.as_ptr(), + self.code.as_mut_ptr(), + capacity as u32, + length as *mut u32, + ) + } + } + + /// Grows the landing buffer to `needed`, refusing beyond [`CODE_CEILING`]. + fn grow_code(&mut self, needed: usize) -> Result<(), HostError> { + if needed > CODE_CEILING { + return Err(HostError::CodeTooLarge { length: needed, max: CODE_CEILING }); + } + self.code.resize(needed, 0); + Ok(()) + } + + /// Reads `length` bytes out of the landing buffer as classified bytecode. + fn take_code(&mut self, length: usize) -> Result { + if length > self.code.len() { + return Err(HostError::CodeTooLarge { length, max: self.code.len() }); + } + // `new_raw_checked` classifies an EIP-7702 delegation designator; forcing + // legacy would make Prague execute the `0xef` prefix as invalid code. + // + // Bytes that merely start with the prefix without being a designator are + // ordinary legacy code, which genesis and pre-EIP-3541 state can hold, so + // they run as legacy rather than failing the read. + let bytes: alloy_primitives::Bytes = Vec::from(&self.code[..length]).into(); + Ok(Bytecode::new_raw_checked(bytes.clone()) + .unwrap_or_else(|_| Bytecode::new_legacy(bytes))) + } +} + +impl Database for HostDb { + type Error = HostError; + + fn get_account(&mut self, address: &Address) -> Result, Self::Error> { + let mut out = [0u8; ACCOUNT_SIZE]; + let mut code_length = 0u32; + let mut status = self.read_account(address, &mut out, &mut code_length); + + if status == TOO_LARGE { + self.grow_code(code_length as usize)?; + status = self.read_account(address, &mut out, &mut code_length); + } + match status { + FOUND => {} + MISSING => return Ok(None), + PENDING => return Err(HostError::Pending), + _ => return Err(HostError::Account(*address)), + } + + // evm2 accepts code alongside the account. When a source supplies it, + // `CacheDB` files it under its hash and `get_code_by_hash` never runs. + let code = match out[72] { + 0 => None, + _ => Some(self.take_code(code_length as usize)?), + }; + + Ok(Some(AccountInfo { + balance: Word::from_be_slice(&out[0..32]), + nonce: u64::from_le_bytes(out[32..40].try_into().unwrap()), + code_hash: B256::from_slice(&out[40..72]), + code, + _non_exhaustive: (), + })) + } + + fn get_code_by_hash(&mut self, code_hash: &B256) -> Result { + let mut length = 0u32; + let mut status = self.read_code(code_hash, &mut length); + + // The host reports what it needs when the buffer is short, so one grow + // and one retry always suffices. + if status == TOO_LARGE { + self.grow_code(length as usize)?; + status = self.read_code(code_hash, &mut length); + } + if status == PENDING { + return Err(HostError::Pending); + } + if status != FOUND { + return Err(HostError::Code(*code_hash)); + } + self.take_code(length as usize) + } + + fn get_storage(&mut self, address: &Address, key: &Word) -> Result { + let mut out = [0u8; 32]; + let status = unsafe { + host_get_storage(address.as_ptr(), key.to_be_bytes::<32>().as_ptr(), out.as_mut_ptr()) + }; + if status == PENDING { + return Err(HostError::Pending); + } + if status != FOUND { + return Err(HostError::Storage { address: *address, key: *key }); + } + Ok(Word::from_be_bytes(out)) + } + + fn get_block_hash(&mut self, number: &Word) -> Result { + let mut out = [0u8; 32]; + let status = + unsafe { host_get_block_hash(number.to_be_bytes::<32>().as_ptr(), out.as_mut_ptr()) }; + if status == PENDING { + return Err(HostError::Pending); + } + if status != FOUND { + return Err(HostError::BlockHash(*number)); + } + Ok(B256::from_slice(&out)) + } +} + +/// A host read the adapter could not complete. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum HostError { + /// `get_account` failed. + Account(Address), + /// A read the host has not fetched yet. The attempt is abandoned, not failed. + Pending, + /// `get_block_hash` failed. + BlockHash(Word), + /// `get_code_by_hash` failed. + Code(B256), + /// The host reported more code than the landing buffer holds. + CodeTooLarge { + /// Length the host reported. + length: usize, + /// Buffer capacity. + max: usize, + }, + /// `get_storage` failed. + Storage { + /// Account whose slot was read. + address: Address, + /// Slot key. + key: Word, + }, +} + +impl fmt::Display for HostError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::Account(address) => write!(f, "host could not read account {address}"), + Self::Pending => write!(f, "host has not fetched a value this read needs"), + Self::BlockHash(number) => write!(f, "host could not read block hash {number}"), + Self::Code(code_hash) => write!(f, "host could not read code {code_hash}"), + Self::CodeTooLarge { length, max } => { + write!(f, "host reported {length} code bytes, over the {max} byte maximum") + } + Self::Storage { address, key } => { + write!(f, "host could not read storage {address} slot {key}") + } + } + } +} + +impl core::error::Error for HostError {} diff --git a/wasm/evm2/src/error.rs b/wasm/evm2/src/error.rs new file mode 100644 index 00000000..edd39eb1 --- /dev/null +++ b/wasm/evm2/src/error.rs @@ -0,0 +1,320 @@ +//! Response statuses and lossless failure encoding. +//! +//! Database failures, invalid transactions, and adapter-boundary failures stay +//! distinct: reverts and exceptional halts are not failures at all, they are +//! fields on a successful `TxResult`. + +use crate::abi::Writer; +use alloc::string::ToString; +use alloy_primitives::U256; +use evm2::registry::HandlerError; + +/// Response statuses. +pub mod status { + /// The operation succeeded. + pub const OK: u16 = 0; + /// The request could not be decoded, or named an unknown operation. + pub const ABI: u16 = 1; + /// The operation needs an engine that has not been created. + pub const ENGINE_MISSING: u16 = 2; + /// The engine is already executing. A host callback may not reenter it. + pub const ENGINE_BUSY: u16 = 3; + /// evm2 rejected or aborted the transaction. The payload encodes which. + pub const HANDLER: u16 = 4; + /// A host database read failed. The payload carries the host's message. + pub const DATABASE: u16 = 5; + /// An executed transaction still holds the engine. Resolve it first. + pub const ENGINE_BORROWED: u16 = 6; + /// A resolution named no outstanding executed transaction. + pub const NOT_EXECUTED: u16 = 7; + /// A host state-change sink refused a record, so evm2 discarded the + /// transaction rather than committing it. + pub const SINK: u16 = 8; + /// A read needed a value the host has not fetched. No state was accepted; + /// the host supplies the value and repeats the operation. + pub const PENDING: u16 = 9; + + /// A read fell outside the attached block access list while fallback was + /// disabled, so it was refused rather than served from the database. + pub const BAL_NOT_COVERED: u16 = 10; + + /// A transaction was resolved into a block accumulator while none was + /// installed. Nothing was committed. + pub const NO_BLOCK_STATE: u16 = 11; +} + +/// Discriminants for [`HandlerError`] variants. +/// +/// The match producing these is exhaustive, so an evm2 revision that adds a +/// variant fails to compile here rather than silently collapsing into a +/// neighbour. +pub mod handler { + /// [`HandlerError::Fatal`]. One word: the raw error code. + pub const FATAL: u16 = 1; + /// [`HandlerError::External`]. + pub const EXTERNAL: u16 = 2; + /// [`HandlerError::UnsupportedTransactionType`]. One word: the type byte. + pub const UNSUPPORTED_TRANSACTION_TYPE: u16 = 3; + /// [`HandlerError::WrongTransactionType`]. One word: the expected type byte. + pub const WRONG_TRANSACTION_TYPE: u16 = 4; + /// [`HandlerError::InvalidNonce`]. Words: expected, got. + pub const INVALID_NONCE: u16 = 5; + /// [`HandlerError::InvalidChainId`]. Words: expected, got. + pub const INVALID_CHAIN_ID: u16 = 6; + /// [`HandlerError::MissingChainId`]. + pub const MISSING_CHAIN_ID: u16 = 7; + /// [`HandlerError::IntrinsicGasTooLow`]. Words: required, got. + pub const INTRINSIC_GAS_TOO_LOW: u16 = 8; + /// [`HandlerError::InsufficientFunds`]. + pub const INSUFFICIENT_FUNDS: u16 = 9; + /// [`HandlerError::RejectCallerWithCode`]. + pub const REJECT_CALLER_WITH_CODE: u16 = 10; + /// [`HandlerError::NonceOverflow`]. + pub const NONCE_OVERFLOW: u16 = 11; + /// [`HandlerError::GasLimitMoreThanBlock`]. Words: gas limit, block gas limit. + pub const GAS_LIMIT_MORE_THAN_BLOCK: u16 = 12; + /// [`HandlerError::TxGasLimitGreaterThanCap`]. Words: gas limit, cap. + pub const TX_GAS_LIMIT_GREATER_THAN_CAP: u16 = 13; + /// [`HandlerError::CreateInitCodeSizeLimit`]. Words: limit, got. + pub const CREATE_INIT_CODE_SIZE_LIMIT: u16 = 14; + /// [`HandlerError::OutOfFunds`]. + pub const OUT_OF_FUNDS: u16 = 15; + /// [`HandlerError::SignerRecoveryFailed`]. + pub const SIGNER_RECOVERY_FAILED: u16 = 16; + /// [`HandlerError::FeeCapLessThanBaseFee`]. Words: max fee per gas, base fee. + pub const FEE_CAP_LESS_THAN_BASE_FEE: u16 = 17; + /// [`HandlerError::EmptyAuthorizationList`]. + pub const EMPTY_AUTHORIZATION_LIST: u16 = 18; + /// [`HandlerError::BlobFeeCapLessThanBlobBaseFee`]. Words: max fee per blob gas, blob base fee. + pub const BLOB_FEE_CAP_LESS_THAN_BLOB_BASE_FEE: u16 = 19; + /// [`HandlerError::EmptyBlobs`]. + pub const EMPTY_BLOBS: u16 = 20; + /// [`HandlerError::TooManyBlobs`]. Words: have, max. + pub const TOO_MANY_BLOBS: u16 = 21; + /// [`HandlerError::BlobVersionNotSupported`]. + pub const BLOB_VERSION_NOT_SUPPORTED: u16 = 22; + /// [`HandlerError::PriorityFeeGreaterThanMaxFee`]. + pub const PRIORITY_FEE_GREATER_THAN_MAX_FEE: u16 = 23; + /// [`HandlerError::UnsupportedCaller`]. One word: the caller address. + pub const UNSUPPORTED_CALLER: u16 = 24; +} + +/// Writes a handler failure as `kind u16 | word count u8 | words | message`. +/// +/// Every numeric field is a 32-byte big-endian word so one shape covers `u8` +/// through `U256`; addresses take their right-aligned word form. +pub fn write_handler(writer: &mut Writer, error: &HandlerError) { + let (kind, words): (u16, &[U256]) = match error { + HandlerError::Fatal(code) => (handler::FATAL, &[U256::from(code.get())]), + HandlerError::External(_) => (handler::EXTERNAL, &[]), + HandlerError::UnsupportedTransactionType(ty) => { + (handler::UNSUPPORTED_TRANSACTION_TYPE, &[U256::from(*ty)]) + } + HandlerError::WrongTransactionType { expected } => { + (handler::WRONG_TRANSACTION_TYPE, &[U256::from(*expected)]) + } + HandlerError::InvalidNonce { expected, got } => { + (handler::INVALID_NONCE, &[U256::from(*expected), U256::from(*got)]) + } + HandlerError::InvalidChainId { expected, got } => { + (handler::INVALID_CHAIN_ID, &[U256::from(*expected), U256::from(*got)]) + } + HandlerError::MissingChainId => (handler::MISSING_CHAIN_ID, &[]), + HandlerError::IntrinsicGasTooLow { required, got } => { + (handler::INTRINSIC_GAS_TOO_LOW, &[U256::from(*required), U256::from(*got)]) + } + HandlerError::InsufficientFunds => (handler::INSUFFICIENT_FUNDS, &[]), + HandlerError::RejectCallerWithCode => (handler::REJECT_CALLER_WITH_CODE, &[]), + HandlerError::NonceOverflow => (handler::NONCE_OVERFLOW, &[]), + HandlerError::GasLimitMoreThanBlock { gas_limit, block_gas_limit } => { + (handler::GAS_LIMIT_MORE_THAN_BLOCK, &[U256::from(*gas_limit), *block_gas_limit]) + } + HandlerError::TxGasLimitGreaterThanCap { gas_limit, cap } => { + (handler::TX_GAS_LIMIT_GREATER_THAN_CAP, &[U256::from(*gas_limit), U256::from(*cap)]) + } + HandlerError::CreateInitCodeSizeLimit { limit, got } => { + (handler::CREATE_INIT_CODE_SIZE_LIMIT, &[U256::from(*limit), U256::from(*got)]) + } + HandlerError::OutOfFunds => (handler::OUT_OF_FUNDS, &[]), + HandlerError::SignerRecoveryFailed => (handler::SIGNER_RECOVERY_FAILED, &[]), + HandlerError::FeeCapLessThanBaseFee { max_fee_per_gas, base_fee } => { + (handler::FEE_CAP_LESS_THAN_BASE_FEE, &[*max_fee_per_gas, *base_fee]) + } + HandlerError::EmptyAuthorizationList => (handler::EMPTY_AUTHORIZATION_LIST, &[]), + HandlerError::BlobFeeCapLessThanBlobBaseFee { max_fee_per_blob_gas, blob_base_fee } => { + (handler::BLOB_FEE_CAP_LESS_THAN_BLOB_BASE_FEE, &[ + *max_fee_per_blob_gas, + *blob_base_fee, + ]) + } + HandlerError::EmptyBlobs => (handler::EMPTY_BLOBS, &[]), + HandlerError::TooManyBlobs { have, max } => { + (handler::TOO_MANY_BLOBS, &[U256::from(*have), U256::from(*max)]) + } + HandlerError::BlobVersionNotSupported => (handler::BLOB_VERSION_NOT_SUPPORTED, &[]), + HandlerError::PriorityFeeGreaterThanMaxFee => { + (handler::PRIORITY_FEE_GREATER_THAN_MAX_FEE, &[]) + } + HandlerError::UnsupportedCaller(address) => { + (handler::UNSUPPORTED_CALLER, &[address.into_word().into()]) + } + }; + + writer.u16(kind); + writer.u8(words.len() as u8); + for word in words { + writer.word(*word); + } + writer.str(&error.to_string()); +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::abi::{HEADER_SIZE, Reader}; + use alloc::{vec, vec::Vec}; + use alloy_primitives::Address; + use evm2::ErrorCode; + + /// Every variant paired with the discriminant and words it must encode. + /// + /// The encoder's match is exhaustive, so this list going stale is the only + /// way a variant can lose coverage. + fn cases() -> Vec<(HandlerError, u16, Vec)> { + let code = ErrorCode::new_custom(7).unwrap(); + vec![ + (HandlerError::Fatal(code), handler::FATAL, vec![U256::from(code.get())]), + (HandlerError::external(HostFailure), handler::EXTERNAL, vec![]), + ( + HandlerError::UnsupportedTransactionType(5), + handler::UNSUPPORTED_TRANSACTION_TYPE, + vec![U256::from(5)], + ), + ( + HandlerError::WrongTransactionType { expected: 2 }, + handler::WRONG_TRANSACTION_TYPE, + vec![U256::from(2)], + ), + ( + HandlerError::InvalidNonce { expected: 3, got: 4 }, + handler::INVALID_NONCE, + vec![U256::from(3), U256::from(4)], + ), + ( + HandlerError::InvalidChainId { expected: 1, got: 10 }, + handler::INVALID_CHAIN_ID, + vec![U256::from(1), U256::from(10)], + ), + (HandlerError::MissingChainId, handler::MISSING_CHAIN_ID, vec![]), + ( + HandlerError::IntrinsicGasTooLow { required: 21_000, got: 100 }, + handler::INTRINSIC_GAS_TOO_LOW, + vec![U256::from(21_000), U256::from(100)], + ), + (HandlerError::InsufficientFunds, handler::INSUFFICIENT_FUNDS, vec![]), + (HandlerError::RejectCallerWithCode, handler::REJECT_CALLER_WITH_CODE, vec![]), + (HandlerError::NonceOverflow, handler::NONCE_OVERFLOW, vec![]), + ( + HandlerError::GasLimitMoreThanBlock { + gas_limit: 30_000_000, + block_gas_limit: U256::from(1_000), + }, + handler::GAS_LIMIT_MORE_THAN_BLOCK, + vec![U256::from(30_000_000), U256::from(1_000)], + ), + ( + HandlerError::TxGasLimitGreaterThanCap { gas_limit: 40, cap: 30 }, + handler::TX_GAS_LIMIT_GREATER_THAN_CAP, + vec![U256::from(40), U256::from(30)], + ), + ( + HandlerError::CreateInitCodeSizeLimit { limit: 49_152, got: 49_153 }, + handler::CREATE_INIT_CODE_SIZE_LIMIT, + vec![U256::from(49_152), U256::from(49_153)], + ), + (HandlerError::OutOfFunds, handler::OUT_OF_FUNDS, vec![]), + (HandlerError::SignerRecoveryFailed, handler::SIGNER_RECOVERY_FAILED, vec![]), + ( + HandlerError::FeeCapLessThanBaseFee { + max_fee_per_gas: U256::from(1), + base_fee: U256::from(2), + }, + handler::FEE_CAP_LESS_THAN_BASE_FEE, + vec![U256::from(1), U256::from(2)], + ), + (HandlerError::EmptyAuthorizationList, handler::EMPTY_AUTHORIZATION_LIST, vec![]), + ( + HandlerError::BlobFeeCapLessThanBlobBaseFee { + max_fee_per_blob_gas: U256::from(3), + blob_base_fee: U256::from(4), + }, + handler::BLOB_FEE_CAP_LESS_THAN_BLOB_BASE_FEE, + vec![U256::from(3), U256::from(4)], + ), + (HandlerError::EmptyBlobs, handler::EMPTY_BLOBS, vec![]), + ( + HandlerError::TooManyBlobs { have: 7, max: 6 }, + handler::TOO_MANY_BLOBS, + vec![U256::from(7), U256::from(6)], + ), + (HandlerError::BlobVersionNotSupported, handler::BLOB_VERSION_NOT_SUPPORTED, vec![]), + ( + HandlerError::PriorityFeeGreaterThanMaxFee, + handler::PRIORITY_FEE_GREATER_THAN_MAX_FEE, + vec![], + ), + ( + HandlerError::UnsupportedCaller(Address::with_last_byte(0x42)), + handler::UNSUPPORTED_CALLER, + vec![Address::with_last_byte(0x42).into_word().into()], + ), + ] + } + + #[derive(Debug)] + struct HostFailure; + + impl core::fmt::Display for HostFailure { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + f.write_str("host failure") + } + } + + impl core::error::Error for HostFailure {} + + #[test] + fn write_handler_encodes_every_variant() { + for (error, kind, words) in cases() { + let mut writer = Writer::new(); + write_handler(&mut writer, &error); + let response = writer.finish(status::HANDLER); + + let payload = &response[HEADER_SIZE..]; + assert_eq!( + u16::from_le_bytes(payload[0..2].try_into().unwrap()), + kind, + "kind for {error:?}", + ); + assert_eq!(payload[2], words.len() as u8, "word count for {error:?}"); + + let mut reader = Reader::new(&payload[3..]); + for expected in &words { + assert_eq!(reader.word(), Ok(*expected), "word for {error:?}"); + } + let message = reader.bytes(4096).expect("message"); + assert_eq!( + core::str::from_utf8(message).unwrap(), + alloc::format!("{error}"), + "message for {error:?}", + ); + assert_eq!(reader.finish(), Ok(()), "trailing bytes for {error:?}"); + } + } + + #[test] + fn handler_kinds_are_distinct_and_contiguous() { + let mut kinds: Vec = cases().iter().map(|(_, kind, _)| *kind).collect(); + kinds.sort_unstable(); + assert_eq!(kinds, (1..=kinds.len() as u16).collect::>()); + } +} diff --git a/wasm/evm2/src/features.rs b/wasm/evm2/src/features.rs new file mode 100644 index 00000000..dac5cea3 --- /dev/null +++ b/wasm/evm2/src/features.rs @@ -0,0 +1,95 @@ +//! evm2's feature flags, addressed by declaration order. +//! +//! `EvmFeatures` keeps its bitmap private and exposes each flag as an associated +//! constant, so the ABI carries an index into this list rather than raw bits. The +//! list is exhaustive: an index outside it is rejected, which makes a flag added +//! upstream a visible gap instead of a bit that crosses unnoticed. + +use evm2::version::EvmFeatures; + +/// Every flag evm2 declares, in its own declaration order. +/// +/// The position is the wire index, so entries are never reordered or removed. +pub const ALL: &[EvmFeatures] = &[ + EvmFeatures::TX_CHAIN_ID_CHECK, + EvmFeatures::NONCE_CHECK, + EvmFeatures::BALANCE_CHECK, + EvmFeatures::BALANCE_TOP_UP, + EvmFeatures::BLOCK_GAS_LIMIT_CHECK, + EvmFeatures::EIP3607, + EvmFeatures::PRIORITY_FEE_CHECK, + EvmFeatures::FEE_CHARGE, + EvmFeatures::EIP2, + EvmFeatures::EIP150, + EvmFeatures::EIP161, + EvmFeatures::CODE_SIZE_CHECK, + EvmFeatures::EIP2028, + EvmFeatures::EIP2200, + EvmFeatures::EIP2929, + EvmFeatures::EIP3529, + EvmFeatures::EIP3541, + EvmFeatures::BASE_FEE_CHECK, + EvmFeatures::EIP4399, + EvmFeatures::EIP3651, + EvmFeatures::EIP3860, + EvmFeatures::EIP6780, + EvmFeatures::EIP7623, + EvmFeatures::EIP7702, + EvmFeatures::EIP8037, + EvmFeatures::EIP7708, + EvmFeatures::EIP8246, + EvmFeatures::EIP2780, +]; + +/// Returns the flag at `index`, or `None` when this build does not know it. +pub fn from_index(index: u32) -> Option { + ALL.get(index as usize).copied() +} + +#[cfg(test)] +mod tests { + use super::*; + use evm2::{SpecId, version::Version}; + + #[test] + fn every_flag_is_distinct() { + // A copy-paste duplicate would silently alias two wire indices. + for (index, flag) in ALL.iter().enumerate() { + for (other, second) in ALL.iter().enumerate() { + if index != other { + assert_ne!(flag, second, "index {index} duplicates {other}"); + } + } + } + } + + #[test] + fn the_list_covers_every_flag_amsterdam_enables() { + // Amsterdam turns on everything evm2 currently declares, so a flag added + // upstream shows up here as a bit no index accounts for. + let features = Version::new(SpecId::AMSTERDAM).features; + let mut rebuilt = EvmFeatures::empty(); + for flag in ALL { + if features.contains(*flag) { + rebuilt.insert(*flag); + } + } + assert_eq!(features, rebuilt, "ALL is missing a flag Amsterdam enables"); + } + + #[test] + fn round_trips_every_specification() { + for index in 0..=SpecId::AMSTERDAM as u32 { + let Some(spec) = SpecId::try_from_u32(index) else { continue }; + let features = Version::new(spec).features; + let mut rebuilt = EvmFeatures::empty(); + for (position, flag) in ALL.iter().enumerate() { + if features.contains(*flag) { + assert!(from_index(position as u32).is_some()); + rebuilt.insert(*flag); + } + } + assert_eq!(features, rebuilt, "{spec:?} did not round-trip"); + } + } +} diff --git a/wasm/evm2/src/lib.rs b/wasm/evm2/src/lib.rs new file mode 100644 index 00000000..d46f430f --- /dev/null +++ b/wasm/evm2/src/lib.rs @@ -0,0 +1,962 @@ +//! Ox's WebAssembly ABI and host bridge over [`evm2`]. +//! +//! This crate owns the boundary and nothing behind it: a versioned binary ABI, +//! a host adapter for evm2's `Database` trait, lossless failure encoding, and +//! the runtime glue `no_std` needs. EVM execution, gas accounting, transaction +//! validation, journaling, precompiles, and fork behavior are evm2's. +//! +//! One engine lives per WebAssembly instance, matching evm2's owned `Evm`. + +// The shipped artifact is `no_std`. Host builds keep `std` so `cargo test` can +// cover the ABI and failure encodings without a WebAssembly runtime. +#![cfg_attr(target_arch = "wasm32", no_std)] + +extern crate alloc; + +mod abi; +mod bal; +mod block; +mod database; +mod error; +mod features; +mod state; +mod trace; + +use crate::{ + abi::{Reader, Writer, op}, + database::{HostDb, HostError}, + error::status, +}; +use alloc::{sync::Arc, vec::Vec}; +use alloy_consensus::{EthereumTxEnvelope, TxEip4844, transaction::Recovered}; +use alloy_eips::eip2718::Decodable2718; +use core::{ + cell::UnsafeCell, + sync::atomic::{AtomicBool, Ordering}, +}; +use alloy_primitives::Address; +use evm2::{ + AnyError, BaseEvmTypes, ErrorCode, Evm, ExecutionConfig, Precompiles, SpecId, TxResult, + Version, + registry::HandlerError, + env::BlockEnvExt, + ethereum::{TxEnvelope, ethereum_tx_registry}, + evm::{Bal, BalError, BlockAccessIndex, Db, ExecutedTx, SystemTx}, + version::GasId, +}; + +#[cfg(target_arch = "wasm32")] +#[global_allocator] +static ALLOCATOR: dlmalloc::GlobalDlmalloc = dlmalloc::GlobalDlmalloc; + +/// `panic = "abort"` still needs a handler in a `no_std` cdylib. A panic is an +/// adapter bug, so it traps and the binding reports it as a trap. +#[cfg(target_arch = "wasm32")] +#[panic_handler] +fn panic(_info: &core::panic::PanicInfo) -> ! { + core::arch::wasm32::unreachable() +} + +/// Adapter state for this WebAssembly instance. +struct Adapter { + request: Vec, + response: Vec, +} + +impl Adapter { + const fn new() -> Self { + Self { request: Vec::new(), response: Vec::new() } + } +} + +/// The engine, held apart from [`Adapter`] so an outstanding [`ExecutedTx`] can +/// borrow it without aliasing the adapter borrow every export takes. +struct EngineSlot(UnsafeCell>>); + +// Single-threaded, and `RUNNING` serializes every access. +unsafe impl Sync for EngineSlot {} + +static ENGINE: EngineSlot = EngineSlot(UnsafeCell::new(None)); + +/// An executed transaction awaiting resolution. +/// +/// This holds the engine's exclusive borrow between two host calls, which is +/// what `ExecutedTx` does in Rust within one scope. While it is `Some`, every +/// operation reaching the engine directly is refused with +/// [`status::ENGINE_BORROWED`], so only one path to the engine exists at a time. +struct ExecutedSlot(UnsafeCell>>); + +unsafe impl Sync for ExecutedSlot {} + +static EXECUTED: ExecutedSlot = ExecutedSlot(UnsafeCell::new(None)); + +/// Borrows the engine, or reports why it is unavailable. +/// +/// SAFETY: callers hold the [`RUNNING`] claim, and the borrow is refused while +/// [`EXECUTED`] is `Some`, so this never aliases the handle's own borrow. +fn engine() -> Result<&'static mut Evm<'static, BaseEvmTypes>, u16> { + if executed().is_some() { + return Err(status::ENGINE_BORROWED); + } + unsafe { (*ENGINE.0.get()).as_mut() }.ok_or(status::ENGINE_MISSING) +} + +/// Replaces the engine, refusing while an executed transaction borrows it. +fn set_engine(value: Option>) -> Result<(), u16> { + if executed().is_some() { + return Err(status::ENGINE_BORROWED); + } + unsafe { *ENGINE.0.get() = value }; + Ok(()) +} + +fn executed() -> &'static mut Option> { + unsafe { &mut *EXECUTED.0.get() } +} + +struct Slot(UnsafeCell); + +// WebAssembly instances are single-threaded, and `RUNNING` is what keeps the +// exclusive borrow below from overlapping with a reentrant call. +unsafe impl Sync for Slot {} + +static ADAPTER: Slot = Slot(UnsafeCell::new(Adapter::new())); + +/// Set while an export holds the exclusive adapter borrow. +/// +/// A host database callback runs with that borrow live, so a callback that +/// reenters an export must be refused rather than allowed to alias it. The flag +/// lives outside [`Adapter`] so the check happens before the borrow exists. +static RUNNING: AtomicBool = AtomicBool::new(false); + +/// Claims the adapter, or returns `None` when an export is already running. +/// +/// A panic traps rather than unwinding, so a trap leaves the flag set and the +/// instance unusable. That is the intended outcome: a panic here is an adapter +/// bug, and the binding discards the instance. +fn claim() -> Option<&'static mut Adapter> { + if RUNNING.compare_exchange(false, true, Ordering::Acquire, Ordering::Relaxed).is_err() { + return None; + } + // SAFETY: `RUNNING` was false and is now true, so no other borrow is live, + // and WebAssembly gives us no other thread that could take one. + Some(unsafe { &mut *ADAPTER.0.get() }) +} + +/// Releases the adapter claimed by [`claim`]. +fn release() { + RUNNING.store(false, Ordering::Release); +} + +/// Returns the ABI version this module implements. +#[unsafe(no_mangle)] +pub extern "C" fn ox_abi_version() -> u32 { + u32::from(abi::VERSION) +} + +/// Response handed to a reentrant caller, which cannot be given the adapter's +/// own response buffer. +static BUSY: [u8; abi::HEADER_SIZE] = abi::header(status::ENGINE_BUSY); + +/// Reserves `length` request bytes and returns their address. +/// +/// Returns `0` when the length is over [`abi::MAX_REQUEST`] or a host callback +/// reentered the adapter. The address is only valid until the next call, since +/// growing the buffer can move it. +#[unsafe(no_mangle)] +pub extern "C" fn ox_alloc(length: u32) -> u32 { + let length = length as usize; + if length > abi::MAX_REQUEST { + return 0; + } + let Some(adapter) = claim() else { return 0 }; + adapter.request.clear(); + adapter.request.resize(length, 0); + let pointer = adapter.request.as_ptr() as u32; + release(); + pointer +} + +/// Releases the request and response buffers. +/// +/// The engine and its accepted state are untouched; use [`op::DESTROY`] for +/// that. +#[unsafe(no_mangle)] +pub extern "C" fn ox_reset() { + let Some(adapter) = claim() else { return }; + adapter.request = Vec::new(); + adapter.response = Vec::new(); + release(); +} + +/// Executes the request occupying the first `length` reserved bytes. +/// +/// Returns the address of a response whose header carries its status and length. +/// A host callback that reenters this export is answered with [`BUSY`] rather +/// than being allowed to alias the adapter. +#[unsafe(no_mangle)] +pub extern "C" fn ox_call(length: u32) -> u32 { + let Some(adapter) = claim() else { return BUSY.as_ptr() as u32 }; + let response = dispatch(adapter, length as usize); + adapter.response = response; + let pointer = adapter.response.as_ptr() as u32; + release(); + pointer +} + +fn dispatch(adapter: &mut Adapter, length: usize) -> Vec { + if length > adapter.request.len() { + return abi_failure(abi::Error::Length { + declared: length as u32, + actual: adapter.request.len(), + }); + } + + // The engine lives in its own slot, so this payload borrow stays live across + // the engine mutation below. + let (header, payload) = match abi::request(&adapter.request[..length]) { + Ok(parsed) => parsed, + Err(error) => return abi_failure(error), + }; + let mut reader = Reader::new(payload); + + match header.op { + op::CREATE => match read_config(&mut reader) { + Ok((spec_id, block, version)) => { + let engine = Evm::new_with_execution_config( + ExecutionConfig::for_spec_and_version(spec_id, version), + spec_id, + block, + ethereum_tx_registry(spec_id), + Db::new(HostDb::default()), + Precompiles::base(spec_id), + ); + match set_engine(Some(engine)) { + Ok(()) => Writer::new().finish(status::OK), + Err(status) => Writer::new().finish(status), + } + } + Err(error) => abi_failure(error), + }, + op::DESTROY => match reader.finish() { + Ok(()) => match set_engine(None) { + Ok(()) => Writer::new().finish(status::OK), + Err(status) => Writer::new().finish(status), + }, + Err(error) => abi_failure(error), + }, + op::SET_BLOCK => { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + match read_config(&mut reader) { + Ok((spec_id, block, version)) => { + engine.set_block_and_execution_config( + block, + ExecutionConfig::for_spec_and_version(spec_id, version), + spec_id, + ethereum_tx_registry(spec_id), + Precompiles::base(spec_id), + ); + Writer::new().finish(status::OK) + } + Err(error) => abi_failure(error), + } + } + op::CALL_TX => { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + match read_tx(&mut reader) { + Ok(tx) => call_tx(engine, &tx), + Err(error) => abi_failure(error), + } + } + op::READ_ACCOUNT => { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + match read_address(&mut reader) { + Ok(address) => read_account(engine, &address), + Err(error) => abi_failure(error), + } + } + op::SET_INSPECTOR => match read_inspector(&mut reader) { + Ok(options) => set_inspector(options), + Err(error) => abi_failure(error), + }, + op::SET_BAL => match read_bal(&mut reader) { + Ok((fallback, bal)) => set_bal(fallback, bal), + Err(error) => abi_failure(error), + }, + op::SET_BAL_BUILDER => match read_flag(&mut reader) { + Ok(enabled) => set_bal_builder(enabled), + Err(error) => abi_failure(error), + }, + op::TAKE_BAL => match reader.finish() { + Ok(()) => take_bal(), + Err(error) => abi_failure(error), + }, + op::SET_BAL_INDEX => match read_index(&mut reader) { + Ok(index) => set_bal_index(index), + Err(error) => abi_failure(error), + }, + op::START_BLOCK_STATE => match reader.finish() { + Ok(()) => start_block_state(), + Err(error) => abi_failure(error), + }, + op::TAKE_BLOCK_STATE => match read_token(&mut reader) { + Ok(token) => take_block_state(token), + Err(error) => abi_failure(error), + }, + op::WARM_PRECOMPILES => match reader.finish() { + Ok(()) => warm_precompiles(), + Err(error) => abi_failure(error), + }, + op::COMMIT_SOURCE => match state::read_pending(&mut reader) { + Ok(pending) => commit_source(&pending), + Err(error) => abi_failure(error), + }, + op::SYSTEM_CALL => match read_system_tx(&mut reader) { + Ok(tx) => system_call(tx), + Err(error) => abi_failure(error), + }, + op::TRANSACT => match read_tx(&mut reader) { + Ok(tx) => transact(&tx), + Err(error) => abi_failure(error), + }, + op::COMMIT_TO => match read_token(&mut reader) { + Ok(token) => resolve_to(token), + Err(error) => abi_failure(error), + }, + op::COMMIT + | op::DISCARD + | op::DETACH + | op::COMMIT_WITH + | op::DISCARD_WITH => match reader.finish() { + Ok(()) => resolve(header.op), + Err(error) => abi_failure(error), + }, + unknown => abi_failure(abi::Error::UnknownOp(unknown)), + } +} + +/// Reads the specification, block environment, and chain id shared by +/// [`op::CREATE`] and [`op::SET_BLOCK`]. +fn read_config( + reader: &mut Reader<'_>, +) -> Result<(SpecId, BlockEnvExt, Version), abi::Error> { + let raw = reader.u32()?; + let spec_id = SpecId::try_from_u32(raw).ok_or(abi::Error::UnknownSpecId(raw))?; + let chain_id = reader.u64()?; + // Field order follows evm2's `BlockEnvExt` declaration order. + let block = BlockEnvExt { + number: reader.word()?, + beneficiary: reader.address()?, + timestamp: reader.word()?, + gas_limit: reader.word()?, + basefee: reader.word()?, + difficulty: reader.word()?, + prevrandao: reader.word()?, + blob_basefee: reader.word()?, + slot_num: reader.word()?, + ext: (), + _non_exhaustive: (), + }; + // Overrides apply on top of the specification's own version, so evm2 stays + // the source of every default rather than this adapter restating its tables. + let mut version = Version { chain_id, ..Version::new(spec_id) }; + read_overrides(reader, &mut version)?; + reader.finish()?; + Ok((spec_id, block, version)) +} + +/// Scalar version fields, in the order the ABI carries their presence bits. +mod field { + /// Transaction gas limit cap. + pub const TX_GAS_LIMIT_CAP: u32 = 1 << 0; + /// Hard memory limit, in bytes. + pub const MEMORY_LIMIT: u32 = 1 << 1; + /// Largest deployable bytecode. + pub const MAX_CODE_SIZE: u32 = 1 << 2; + /// Largest creation initcode. + pub const MAX_INITCODE_SIZE: u32 = 1 << 3; + /// Blobs allowed in one transaction. + pub const MAX_BLOBS_PER_TX: u32 = 1 << 4; + /// Blob base fee update fraction. + pub const BLOB_BASE_FEE_UPDATE_FRACTION: u32 = 1 << 5; + /// Every bit this ABI defines. + pub const KNOWN: u32 = TX_GAS_LIMIT_CAP + | MEMORY_LIMIT + | MAX_CODE_SIZE + | MAX_INITCODE_SIZE + | MAX_BLOBS_PER_TX + | BLOB_BASE_FEE_UPDATE_FRACTION; +} + +/// Reads a field evm2 stores as `usize`, refusing a value this target cannot hold. +/// +/// `usize` is 32-bit on the shipped wasm32 build while the ABI carries these as +/// `u64`, so an unchecked cast would truncate. A caller relaxing `maxCodeSize` to +/// 2^32 would silently get zero. +fn read_usize(reader: &mut Reader<'_>, field: &'static str) -> Result { + let value = reader.u64()?; + usize::try_from(value).map_err(|_| abi::Error::FieldTooLarge { field, value }) +} + +/// Applies the caller's version overrides. +/// +/// Each group is partial: a field, feature, or gas parameter the caller did not +/// mention keeps the value the specification gave it. +fn read_overrides(reader: &mut Reader<'_>, version: &mut Version) -> Result<(), abi::Error> { + let present = reader.u32()?; + if present & !field::KNOWN != 0 { + return Err(abi::Error::UnknownField(present & !field::KNOWN)); + } + if present & field::TX_GAS_LIMIT_CAP != 0 { + version.tx_gas_limit_cap = reader.u64()?; + } + if present & field::MEMORY_LIMIT != 0 { + version.memory_limit = reader.u64()?; + } + if present & field::MAX_CODE_SIZE != 0 { + version.max_code_size = read_usize(reader, "maxCodeSize")?; + } + if present & field::MAX_INITCODE_SIZE != 0 { + version.max_initcode_size = read_usize(reader, "maxInitcodeSize")?; + } + if present & field::MAX_BLOBS_PER_TX != 0 { + version.max_blobs_per_tx = read_usize(reader, "maxBlobsPerTx")?; + } + if present & field::BLOB_BASE_FEE_UPDATE_FRACTION != 0 { + version.blob_base_fee_update_fraction = reader.u64()?; + } + + // Features arrive as (index, on) pairs against evm2's declaration order, so + // an unnamed flag is rejected rather than silently ignored. + for _ in 0..reader.u32()? { + let index = reader.u32()?; + let on = reader.u32()? != 0; + let flag = features::from_index(index).ok_or(abi::Error::UnknownFeature(index))?; + version.features.set(flag, on); + } + + // Gas parameters are keyed by evm2's own `GasId` discriminant. + for _ in 0..reader.u32()? { + let index = reader.u32()?; + let cost = reader.u32()?; + let id = GasId::from_usize(index as usize).ok_or(abi::Error::UnknownGasId(index))?; + version.gas_params.set(id, cost); + } + Ok(()) +} + +/// Reads a recovered transaction as a signer plus its EIP-2718 envelope. +/// +/// evm2's `TxEnvelope` is signature-stripped and takes its signer from +/// `Recovered`, so the decoded signature is dropped rather than re-derived. +fn read_tx(reader: &mut Reader<'_>) -> Result, abi::Error> { + let signer = reader.address()?; + let bytes = reader.bytes(abi::MAX_REQUEST)?; + reader.finish()?; + // The cursor is kept so trailing bytes are rejected rather than ignored, + // matching how every other field in this ABI is decoded. + let mut cursor = &bytes[..]; + let envelope = EthereumTxEnvelope::::decode_2718(&mut cursor) + .map_err(|_| abi::Error::Envelope)?; + if !cursor.is_empty() { + return Err(abi::Error::Envelope); + } + Ok(Recovered::new_unchecked(TxEnvelope::from(envelope), signer)) +} + +fn call_tx(engine: &mut Evm<'static, BaseEvmTypes>, tx: &Recovered) -> Vec { + // An abandoned attempt already recorded hooks, so the retry starts from empty. + trace::reset(); + match engine.call_tx(tx) { + Ok(result) => { + let mut writer = Writer::new(); + write_result(&mut writer, &result); + write_trace(&mut writer); + writer.finish(status::OK) + } + Err(failure) => { + // A host read failure is recorded on the database rather than in the + // handler error, so it is recovered from there and reported apart + // from transaction rejections. + let host = engine + .database_as_mut::>() + .and_then(|db| db.take_result().err()); + let mut writer = Writer::new(); + match host { + Some(error) if is_pending(&error) => writer.finish(status::PENDING), + Some(error) => { + writer.str(&alloc::format!("{error}")); + writer.finish(status::DATABASE) + } + None if is_bal_uncovered(&failure) => writer.finish(status::BAL_NOT_COVERED), + None => { + error::write_handler(&mut writer, &failure); + writer.finish(status::HANDLER) + } + } + } + } +} + +/// Executes a transaction and parks its handle for a later resolution. +/// +/// The result is returned now so a caller reads it without another call, which +/// is what `ExecutedTx::result` does without consuming the handle. +fn transact(tx: &Recovered) -> Vec { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + // An abandoned attempt already recorded hooks, so the retry starts from empty. + trace::reset(); + // Storing the handle takes the engine's borrow for as long as it is + // outstanding, so this arm returns rather than falling through to a path + // that would need the engine again. + let failure = match engine.transact(tx) { + Ok(handle) => { + let mut writer = Writer::new(); + write_result(&mut writer, handle.result()); + *executed() = Some(handle); + // The collector lives outside the engine, so the parked handle's + // borrow does not hide it: a transaction reports its own trace. + write_trace(&mut writer); + return writer.finish(status::OK); + } + Err(failure) => failure, + }; + // Nothing was stored, so the engine is free to report why it refused. + let host = engine_failure(); + let mut writer = Writer::new(); + match host { + Some(error) if is_pending(&error) => writer.finish(status::PENDING), + Some(error) => { + writer.str(&alloc::format!("{error}")); + writer.finish(status::DATABASE) + } + None if is_bal_uncovered(&failure) => writer.finish(status::BAL_NOT_COVERED), + None => { + error::write_handler(&mut writer, &failure); + writer.finish(status::HANDLER) + } + } +} + +/// Takes a host read failure recorded on the database, if one is pending. +/// +/// Host failures are recorded there rather than in the handler error, so they are +/// recovered separately from transaction rejections. +fn engine_failure() -> Option { + let engine = engine().ok()?; + engine.database_as_mut::>().and_then(|db| db.take_result().err()) +} + +/// Whether a recorded host failure is a read the host has not fetched. +/// +/// Not a failure: the attempt was abandoned before any state was accepted, and +/// the host repeats the operation once the value is available. +fn is_pending(error: &AnyError) -> bool { + matches!(error.downcast_ref::(), Some(HostError::Pending)) +} + +/// Whether a failure is a read refused for falling outside the attached BAL. +/// +/// evm2 reports this as `Fatal(BAL_NOT_COVERED)`, keeping the `BalError` itself on +/// a context the public API does not reach, so which address was missing is not +/// recoverable here. `External` is matched too, for the revision that surfaces it. +fn is_bal_uncovered(failure: &HandlerError) -> bool { + match failure { + HandlerError::Fatal(code) => *code == ErrorCode::BAL_NOT_COVERED, + HandlerError::External(error) => error.downcast_ref::().is_some(), + _ => false, + } +} + +/// Resolves the outstanding handle into the block accumulator `token` identifies. +/// +/// The token is checked before the handle is taken: taking it and returning early +/// would drop it, and dropping an executed transaction discards it, silently +/// losing the one the caller asked to commit. +fn resolve_to(token: u64) -> Vec { + if block::accumulator(token).is_none() { + return Writer::new().finish(status::NO_BLOCK_STATE); + } + let Some(handle) = executed().take() else { + return Writer::new().finish(status::NOT_EXECUTED); + }; + if let Some(accumulator) = block::accumulator(token) { + let _ = handle.commit_to(accumulator); + } + Writer::new().finish(status::OK) +} + +/// Resolves the outstanding handle, releasing the engine borrow. +/// +/// Taking the handle out first is what makes the engine reachable again, so a +/// resolution is single-use: a second one finds nothing outstanding. +fn resolve(op: u16) -> Vec { + let Some(handle) = executed().take() else { + return Writer::new().finish(status::NOT_EXECUTED); + }; + let mut writer = Writer::new(); + match op { + // The result was already returned when the transaction executed, so both + // of these resolve for their state effect and drop the repeat copy. + op::COMMIT => { + let _ = handle.commit(); + } + op::DISCARD => { + let _ = handle.discard(); + } + + // A sink that refuses a record makes evm2 drop the handle, which + // discards. The status says so rather than reporting a false commit. + op::COMMIT_WITH => { + let mut sink = state::HostSink::new(); + if handle.commit_with(&mut sink).is_err() { + return Writer::new().finish(status::SINK); + } + } + op::DISCARD_WITH => { + let mut sink = state::HostSink::new(); + if handle.discard_with(&mut sink).is_err() { + return Writer::new().finish(status::SINK); + } + } + // Detaching is the only resolution whose payload differs: the state + // leaves the engine with the caller rather than being applied or dropped. + _ => state::write_pending(&mut writer, &handle.detach().pending_state), + } + writer.finish(status::OK) +} + +/// Reads inspector options, or `None` to remove the inspector. +fn read_inspector(reader: &mut Reader<'_>) -> Result, abi::Error> { + let enabled = reader.u32()? != 0; + let options = trace::Options { + steps: reader.u32()? != 0, + stack: reader.u32()? != 0, + memory: reader.u32()? != 0, + limit: reader.u32()?, + }; + reader.finish()?; + Ok(enabled.then_some(options)) +} + +/// Installs a collector, or removes whatever is installed. +/// +/// Removing rather than leaving an idle collector installed is what makes tracing +/// free when off: evm2 checks one `Option` per instruction, but a collector that +/// is present costs a virtual call on every step whatever it records. +fn set_inspector(options: Option) -> Vec { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + match options { + Some(options) => engine.set_inspector(trace::install(options)), + None => { + engine.clear_inspector(); + trace::remove(); + } + } + Writer::new().finish(status::OK) +} + +/// Reads the fallback switch and the block access list that follows it. +fn read_bal(reader: &mut Reader<'_>) -> Result<(bool, Bal), abi::Error> { + let fallback = reader.u32()? != 0; + let bal = bal::read(reader)?; + reader.finish()?; + Ok((fallback, bal)) +} + +/// Reads a lone boolean operand. +fn read_flag(reader: &mut Reader<'_>) -> Result { + let value = reader.u32()? != 0; + reader.finish()?; + Ok(value) +} + +/// Reads a lone block access index operand. +fn read_index(reader: &mut Reader<'_>) -> Result { + let index = reader.u64()?; + reader.finish()?; + Ok(BlockAccessIndex(index)) +} + +/// Attaches a block access list and sets whether uncovered reads may fall back. +/// +/// evm2 has no way to detach one, so an empty list with fallback enabled is how a +/// caller returns to unrestricted reads: every lookup misses and falls through, +/// which is what an unattached BAL does. +fn set_bal(fallback: bool, bal: Bal) -> Vec { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + let state = engine.state_mut(); + state.set_bal(Arc::new(bal)); + state.set_allow_bal_db_fallback(fallback); + Writer::new().finish(status::OK) +} + +/// Enables the block access list builder, or discards the one in progress. +fn set_bal_builder(enabled: bool) -> Vec { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + let state = engine.state_mut(); + if enabled { + state.enable_bal_builder(); + } else { + // evm2 disables by removing the builder, which is what taking it does. + state.take_bal_builder(); + } + Writer::new().finish(status::OK) +} + +/// Drains the built block access list, resetting the block access index. +fn take_bal() -> Vec { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + let mut writer = Writer::new(); + match engine.state_mut().take_bal_builder() { + Some(built) => { + writer.bool(true); + bal::write(&mut writer, built); + } + None => writer.bool(false), + } + writer.finish(status::OK) +} + +/// Sets the block access index reads are served at and writes recorded under. +fn set_bal_index(index: BlockAccessIndex) -> Vec { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + engine.state_mut().set_bal_index(index); + Writer::new().finish(status::OK) +} + +/// Reads a lone block-accumulator token. +fn read_token(reader: &mut Reader<'_>) -> Result { + let token = reader.u64()?; + reader.finish()?; + Ok(token) +} + +/// Starts a block accumulator, returning the token identifying it. +fn start_block_state() -> Vec { + let mut writer = Writer::new(); + writer.u64(block::start()); + writer.finish(status::OK) +} + +/// Drains the block state `token` identifies. +/// +/// A token that is not the one in progress is refused rather than serving another +/// block's state. +fn take_block_state(token: u64) -> Vec { + let mut writer = Writer::new(); + match block::take(token) { + Some(accumulated) => block::write(&mut writer, &accumulated), + None => return writer.finish(status::NO_BLOCK_STATE), + } + writer.finish(status::OK) +} + +/// Reads a system call's caller, target, and calldata. +fn read_system_tx(reader: &mut Reader<'_>) -> Result { + let caller = reader.address()?; + let system_contract_address = reader.address()?; + let data = reader.bytes(abi::MAX_REQUEST)?.to_vec().into(); + reader.finish()?; + Ok(SystemTx { caller, system_contract_address, data, _non_exhaustive: () }) +} + +/// Executes a system call and parks its handle for a later resolution. +/// +/// Mirrors [`transact`]: the result comes back now and the handle stays +/// outstanding, so a system call resolves through the same paths a transaction +/// does. A system call is not inspected, so no trace section follows. +fn system_call(tx: SystemTx) -> Vec { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + // An abandoned attempt already recorded hooks, so the retry starts from empty. + trace::reset(); + let failure = match engine.system_call(tx) { + Ok(handle) => { + let mut writer = Writer::new(); + write_result(&mut writer, handle.result()); + *executed() = Some(handle); + write_trace(&mut writer); + return writer.finish(status::OK); + } + Err(failure) => failure, + }; + + let host = engine_failure(); + let mut writer = Writer::new(); + match host { + Some(error) if is_pending(&error) => writer.finish(status::PENDING), + Some(error) => { + writer.str(&alloc::format!("{error}")); + writer.finish(status::DATABASE) + } + None if is_bal_uncovered(&failure) => writer.finish(status::BAL_NOT_COVERED), + None => { + error::write_handler(&mut writer, &failure); + writer.finish(status::HANDLER) + } + } +} + +/// Applies caller-supplied changes to the accepted state overlay. +/// +/// The counterpart to detaching: state a caller took out, edited, and is putting +/// back. evm2 derives whether code changed from the values, so nothing beyond +/// accounts and storage crosses. +fn commit_source(pending: &evm2::evm::PendingState) -> Vec { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + engine.commit_source(pending); + Writer::new().finish(status::OK) +} + +/// Prewarms the precompile addresses, so a block pays their cold cost once. +fn warm_precompiles() -> Vec { + let engine = match engine() { + Ok(engine) => engine, + Err(status) => return Writer::new().finish(status), + }; + engine.warm_precompiles(); + Writer::new().finish(status::OK) +} + +/// Drains the installed collector, if there is one, into `writer`. +/// +/// Reads the collector's own slot rather than reaching through the engine, so a +/// trace is available even while a transaction handle holds the engine's borrow. +fn write_trace(writer: &mut Writer) { + match trace::take() { + Some((stream, truncated)) => { + writer.bool(true); + writer.bool(truncated); + writer.bytes(&stream); + } + None => writer.bool(false), + } +} + +/// Reads a bare address operand. +fn read_address(reader: &mut Reader<'_>) -> Result { + let address = reader.address()?; + reader.finish()?; + Ok(address) +} + +/// Reads an account through the EVM, so accepted state is included. +fn read_account(engine: &mut Evm<'static, BaseEvmTypes>, address: &Address) -> Vec { + match engine.read_account_info(address) { + Ok(account) => { + let mut writer = Writer::new(); + match account { + Some(info) => { + writer.bool(true); + writer.word(info.balance); + writer.u64(info.nonce); + writer.hash(info.code_hash); + // Code is included when the overlay already holds it, so a + // caller does not need a second read to see it. + writer.bytes( + info.code.as_ref().map(|code| code.original_bytes()).unwrap_or_default().as_ref(), + ); + } + None => writer.bool(false), + } + writer.finish(status::OK) + } + Err(code) => { + let host = engine + .database_as_mut::>() + .and_then(|db| db.take_result().err()); + let mut writer = Writer::new(); + match host { + Some(error) if is_pending(&error) => writer.finish(status::PENDING), + Some(error) => { + writer.str(&alloc::format!("{error}")); + writer.finish(status::DATABASE) + } + // The code is in hand here, so the BAL sentinel is recognized + // without a handler error to inspect. + None if code == ErrorCode::BAL_NOT_COVERED => { + writer.finish(status::BAL_NOT_COVERED) + } + None => { + error::write_handler(&mut writer, &HandlerError::Fatal(code)); + writer.finish(status::HANDLER) + } + } + } + } +} + +/// Writes a [`TxResult`], preserving evm2's fields. +/// +/// `ext` carries no data for the base EVM types, so it has nothing to encode. +fn write_result(writer: &mut Writer, result: &TxResult) { + writer.bool(result.status); + writer.u8(result.stop as u8); + writer.u64(result.total_gas_spent); + writer.u64(result.state_gas_spent); + writer.u64(result.refunded); + writer.u64(result.floor_gas); + match result.created_address { + Some(address) => { + writer.bool(true); + writer.address(address); + } + None => writer.bool(false), + } + match result.error_code { + Some(code) => { + writer.bool(true); + writer.u64(code.get() as u64); + } + None => writer.bool(false), + } + writer.bytes(&result.output); + writer.u32(result.logs.len() as u32); + for log in &result.logs { + writer.address(log.address); + writer.u32(log.topics().len() as u32); + for topic in log.topics() { + writer.hash(*topic); + } + writer.bytes(&log.data.data); + } +} + +fn abi_failure(error: abi::Error) -> Vec { + let mut writer = Writer::new(); + writer.str(&alloc::format!("{error}")); + writer.finish(status::ABI) +} diff --git a/wasm/evm2/src/state.rs b/wasm/evm2/src/state.rs new file mode 100644 index 00000000..2b6cdf14 --- /dev/null +++ b/wasm/evm2/src/state.rs @@ -0,0 +1,502 @@ +//! State-change serialization. +//! +//! evm2 keeps `PendingState`'s fields crate-private and streams them through +//! [`StateChangeSource::visit`], so this encodes the visited stream rather than +//! reading the structure. For `PendingState` that order is deterministic, unlike +//! the trait's general contract. + +use alloc::{collections::BTreeMap, vec::Vec}; +use alloy_primitives::{Address, B256}; +use evm2::evm::{ + AccountChangeRef, AccountInfo, AccountInfoRef, PendingState, StateChangeSink, + StateChangeSource, StorageChange, +}; +use evm2::bytecode::Bytecode; +use evm2::interpreter::Word; + +use crate::abi::{self, Reader, Writer}; + +/// Record tags in a serialized change stream. +pub mod record { + /// End of the stream. + pub const END: u8 = 0; + /// Bytecode keyed by its hash. + pub const BYTECODE: u8 = 1; + /// An account whose value changed. + pub const ACCOUNT: u8 = 2; + /// A storage wipe, emitted before the account's slot changes. + pub const STORAGE_WIPE: u8 = 3; + /// A storage slot whose value changed. + pub const STORAGE: u8 = 4; + /// An account the transaction loaded but left unchanged. + pub const ACCOUNT_READ: u8 = 5; + /// A storage slot the transaction loaded but left unchanged. + pub const STORAGE_READ: u8 = 6; +} + +/// Writes a visited change stream into an ABI response. +struct Sink<'a>(&'a mut Writer); + +impl Sink<'_> { + /// Writes an optional account as a presence flag and, when present, its + /// fields. Code is written separately under [`record::BYTECODE`], so only the + /// hash appears here. + fn account_info(&mut self, info: Option>) { + match info { + Some(info) => { + self.0.bool(true); + self.0.word(info.balance); + self.0.u64(info.nonce); + self.0.hash(info.code_hash); + } + None => self.0.bool(false), + } + } +} + +impl StateChangeSink for Sink<'_> { + // Writing into a growable buffer cannot fail, which keeps this sink off the + // path where evm2 discards a transaction because its sink errored. + type Error = core::convert::Infallible; + + fn bytecode( + &mut self, + code_hash: alloy_primitives::B256, + code: &evm2::bytecode::Bytecode, + ) -> Result<(), Self::Error> { + self.0.u8(record::BYTECODE); + self.0.hash(code_hash); + self.0.bytes(code.original_bytes().as_ref()); + Ok(()) + } + + fn account(&mut self, change: AccountChangeRef<'_>) -> Result<(), Self::Error> { + self.0.u8(record::ACCOUNT); + self.0.address(change.address); + self.account_info(change.original); + self.account_info(change.current); + self.0.bool(change.created); + self.0.bool(change.selfdestructed); + Ok(()) + } + + fn storage_wipe(&mut self, address: Address) -> Result<(), Self::Error> { + self.0.u8(record::STORAGE_WIPE); + self.0.address(address); + Ok(()) + } + + fn storage(&mut self, change: StorageChange) -> Result<(), Self::Error> { + self.0.u8(record::STORAGE); + self.0.address(change.address); + self.0.word(change.key); + self.0.word(change.original); + self.0.word(change.current); + Ok(()) + } + + fn account_read( + &mut self, + address: Address, + info: Option>, + ) -> Result<(), Self::Error> { + self.0.u8(record::ACCOUNT_READ); + self.0.address(address); + self.account_info(info); + Ok(()) + } + + fn storage_read( + &mut self, + address: Address, + key: Word, + value: Word, + ) -> Result<(), Self::Error> { + self.0.u8(record::STORAGE_READ); + self.0.address(address); + self.0.word(key); + self.0.word(value); + Ok(()) + } +} + +/// Writes a detached pending state as a change stream. +pub fn write_pending(writer: &mut Writer, pending: &PendingState) { + let Ok(()) = pending.visit(&mut Sink(writer)); + writer.u8(record::END); +} + +/// Host sink return value meaning the host accepted the record. +#[cfg(not(target_arch = "wasm32"))] +const ACCEPTED: u32 = 0; + +#[cfg(target_arch = "wasm32")] +#[link(wasm_import_module = "ox_evm2")] +unsafe extern "C" { + /// Hands one serialized change record to the host. + /// + /// Returns zero when the host accepted it. Anything else is a sink failure, + /// which evm2 turns into a discard rather than a commit. + #[link_name = "sink_record"] + fn host_sink_record(pointer: *const u8, length: u32) -> u32; +} + +#[cfg(not(target_arch = "wasm32"))] +unsafe fn host_sink_record(_pointer: *const u8, _length: u32) -> u32 { + // Host builds have no imports, so a streamed resolution always fails here. + ACCEPTED + 1 +} + +/// A host state-change sink failed. +#[derive(Debug)] +pub struct SinkFailed; + +/// Streams each record to the host as it is produced. +/// +/// One record per call rather than a buffered batch: evm2 discards the +/// transaction when a sink errors, so the host's verdict has to arrive before the +/// commit decision, not after it. +pub struct HostSink { + record: Vec, +} + +impl HostSink { + pub const fn new() -> Self { + Self { record: Vec::new() } + } + + fn send(&mut self) -> Result<(), SinkFailed> { + let status = unsafe { host_sink_record(self.record.as_ptr(), self.record.len() as u32) }; + self.record.clear(); + if status == 0 { Ok(()) } else { Err(SinkFailed) } + } + + fn u8(&mut self, value: u8) { + self.record.push(value); + } + + fn bool(&mut self, value: bool) { + self.u8(u8::from(value)); + } + + fn u64(&mut self, value: u64) { + self.record.extend_from_slice(&value.to_le_bytes()); + } + + fn word(&mut self, value: Word) { + self.record.extend_from_slice(&value.to_be_bytes::<32>()); + } + + fn address(&mut self, value: Address) { + self.record.extend_from_slice(value.as_slice()); + } + + fn hash(&mut self, value: alloy_primitives::B256) { + self.record.extend_from_slice(value.as_slice()); + } + + fn bytes(&mut self, value: &[u8]) { + self.record.extend_from_slice(&(value.len() as u32).to_le_bytes()); + self.record.extend_from_slice(value); + } + + fn account_info(&mut self, info: Option>) { + match info { + Some(info) => { + self.bool(true); + self.word(info.balance); + self.u64(info.nonce); + self.hash(info.code_hash); + } + None => self.bool(false), + } + } +} + +impl StateChangeSink for HostSink { + type Error = SinkFailed; + + fn bytecode( + &mut self, + code_hash: alloy_primitives::B256, + code: &evm2::bytecode::Bytecode, + ) -> Result<(), Self::Error> { + self.u8(record::BYTECODE); + self.hash(code_hash); + self.bytes(code.original_bytes().as_ref()); + self.send() + } + + fn account(&mut self, change: AccountChangeRef<'_>) -> Result<(), Self::Error> { + self.u8(record::ACCOUNT); + self.address(change.address); + self.account_info(change.original); + self.account_info(change.current); + self.bool(change.created); + self.bool(change.selfdestructed); + self.send() + } + + fn storage_wipe(&mut self, address: Address) -> Result<(), Self::Error> { + self.u8(record::STORAGE_WIPE); + self.address(address); + self.send() + } + + fn storage(&mut self, change: StorageChange) -> Result<(), Self::Error> { + self.u8(record::STORAGE); + self.address(change.address); + self.word(change.key); + self.word(change.original); + self.word(change.current); + self.send() + } + + fn account_read( + &mut self, + address: Address, + info: Option>, + ) -> Result<(), Self::Error> { + self.u8(record::ACCOUNT_READ); + self.address(address); + self.account_info(info); + self.send() + } + + fn storage_read( + &mut self, + address: Address, + key: Word, + value: Word, + ) -> Result<(), Self::Error> { + self.u8(record::STORAGE_READ); + self.address(address); + self.word(key); + self.word(value); + self.send() + } +} + +/// Rebuilds a [`PendingState`] from a serialized change stream. +/// +/// The reverse of the stream [`write_pending`] produces, so state a caller +/// detached and edited can be applied back. Each record is read in the shape the +/// sink wrote it; a tag's fields are consumed whether or not they are used. +pub fn read_pending(reader: &mut Reader<'_>) -> Result { + let mut pending = PendingState::default(); + // Accounts are buffered because bytecode can arrive after the account whose + // hash names it, and an account applied without its code would leave a hash + // pointing at bytes the target EVM never saw. + let mut accounts: Vec<(Address, Option, Option)> = Vec::new(); + let mut code: BTreeMap = BTreeMap::new(); + + loop { + match reader.u8()? { + record::END => break, + record::ACCOUNT => { + let address = reader.address()?; + let original = read_info(reader)?; + let current = read_info(reader)?; + // The created and selfdestructed flags are read and dropped: + // `insert_account` takes neither, and re-inserting state must not + // carry a lifecycle marker from the transaction that produced it. + let _created = reader.bool()?; + let _selfdestructed = reader.bool()?; + accounts.push((address, original, current)); + } + record::ACCOUNT_READ => { + let address = reader.address()?; + // A read carries one value, so it goes back as unchanged. + let info = read_info(reader)?; + accounts.push((address, info.clone(), info)); + } + record::STORAGE => { + let address = reader.address()?; + let key = reader.word()?; + let original = reader.word()?; + let current = reader.word()?; + pending.insert_storage(address, key, original, current); + } + record::STORAGE_READ => { + let address = reader.address()?; + let key = reader.word()?; + let value = reader.word()?; + pending.insert_storage(address, key, value, value); + } + // A wipe is the storage half of a selfdestruct, which is dropped for + // the same reason the marker is. + record::STORAGE_WIPE => { + let _address = reader.address()?; + } + record::BYTECODE => { + let code_hash = reader.hash()?; + let bytes = reader.bytes(abi::MAX_REQUEST)?; + let decoded = Bytecode::new_raw_checked(bytes.to_vec().into()) + .map_err(|_| abi::Error::Bytecode)?; + code.insert(code_hash, decoded); + } + unknown => return Err(abi::Error::UnknownRecord(unknown)), + } + } + reader.finish()?; + + for (address, original, current) in accounts { + let current = current.map(|mut info| { + if let Some(bytecode) = code.get(&info.code_hash) { + info = info.with_code(bytecode.clone()); + } + info + }); + pending.insert_account(address, original, current); + } + + Ok(pending) +} + +/// Reads an account's fields, or nothing when the flag says it is absent. +fn read_info(reader: &mut Reader<'_>) -> Result, abi::Error> { + if !reader.bool()? { + return Ok(None); + } + let balance = reader.word()?; + let nonce = reader.u64()?; + let code_hash = reader.hash()?; + Ok(Some(AccountInfo { balance, nonce, code_hash, code: None, _non_exhaustive: () })) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::abi::HEADER_SIZE; + use alloy_primitives::U256; + + /// Strips the response header the writer reserves. + fn payload(bytes: &[u8]) -> &[u8] { + &bytes[HEADER_SIZE..] + } + + /// A stream carrying every record the sink can emit. + fn stream() -> Vec { + let mut writer = Writer::new(); + let code = Bytecode::new_raw_checked(alloy_primitives::Bytes::from_static(&[0x60, 0x00])) + .unwrap(); + let code_hash = code.hash_slow(); + writer.u8(record::BYTECODE); + writer.hash(code_hash); + writer.bytes(code.original_bytes().as_ref()); + + writer.u8(record::ACCOUNT); + writer.address(Address::repeat_byte(0x11)); + writer.bool(true); + writer.word(U256::from(1)); + writer.u64(2); + writer.hash(code_hash); + writer.bool(true); + writer.word(U256::from(3)); + writer.u64(4); + writer.hash(code_hash); + writer.bool(true); + writer.bool(true); + + writer.u8(record::ACCOUNT_READ); + writer.address(Address::repeat_byte(0x22)); + writer.bool(false); + + writer.u8(record::STORAGE); + writer.address(Address::repeat_byte(0x11)); + writer.word(U256::from(7)); + writer.word(U256::from(8)); + writer.word(U256::from(9)); + + writer.u8(record::STORAGE_READ); + writer.address(Address::repeat_byte(0x22)); + writer.word(U256::from(10)); + writer.word(U256::from(11)); + + writer.u8(record::STORAGE_WIPE); + writer.address(Address::repeat_byte(0x33)); + + writer.u8(record::END); + writer.finish(0) + } + + #[test] + fn reads_every_record_the_sink_writes() { + // Consuming the stream exactly is the property: a record read in the wrong + // shape leaves the cursor mid-record and the next tag is garbage. + let encoded = stream(); + let pending = read_pending(&mut Reader::new(payload(&encoded))).unwrap(); + + let account = pending.account_info(&Address::repeat_byte(0x11)).expect("account"); + assert_eq!((account.balance, account.nonce), (U256::from(3), 4)); + assert_eq!(pending.account_info(&Address::repeat_byte(0x22)), None); + } + + #[test] + fn attaches_bytecode_to_the_account_naming_it() { + // Without this an account applied to another EVM carries a hash for bytes + // that EVM never saw, and its code reads as empty. + let encoded = stream(); + let pending = read_pending(&mut Reader::new(payload(&encoded))).unwrap(); + + let account = pending.account_info(&Address::repeat_byte(0x11)).expect("account"); + let code = account.code.as_ref().expect("code travelled with the account"); + assert_eq!(code.original_bytes().as_ref(), &[0x60, 0x00]); + } + + #[test] + fn re_inserted_state_carries_no_selfdestruct_marker() { + let encoded = stream(); + let pending = read_pending(&mut Reader::new(payload(&encoded))).unwrap(); + + // The stream said the account was created and selfdestructed. Visiting the + // rebuilt state must not repeat either, or committing it would wipe + // storage the caller meant to keep. + let mut writer = Writer::new(); + write_pending(&mut writer, &pending); + let out = writer.finish(0); + let body = payload(&out); + + let mut wipes = 0; + let mut flags = 0; + let mut reader = Reader::new(body); + while let Ok(tag) = reader.u8() { + match tag { + record::END => break, + record::STORAGE_WIPE => { + wipes += 1; + let _ = reader.address(); + } + record::ACCOUNT => { + let _ = reader.address(); + let _ = read_info(&mut reader); + let _ = read_info(&mut reader); + if reader.bool().unwrap() { + flags += 1; + } + if reader.bool().unwrap() { + flags += 1; + } + } + record::ACCOUNT_READ => { + let _ = reader.address(); + let _ = read_info(&mut reader); + } + record::STORAGE => { + let _ = reader.address(); + for _ in 0..3 { + let _ = reader.word(); + } + } + record::STORAGE_READ => { + let _ = reader.address(); + for _ in 0..2 { + let _ = reader.word(); + } + } + _ => break, + } + } + assert_eq!((wipes, flags), (0, 0)); + } +} diff --git a/wasm/evm2/src/trace.rs b/wasm/evm2/src/trace.rs new file mode 100644 index 00000000..2052aa90 --- /dev/null +++ b/wasm/evm2/src/trace.rs @@ -0,0 +1,446 @@ +//! Records evm2's inspector hooks as a flat event stream. +//! +//! The hooks fire with live interpreter state that cannot cross the ABI, and +//! `step` fires once per instruction, so a host callback per hook is not an +//! option. This collector runs compiled instead, appending one record per hook in +//! the order evm2 calls them. +//! +//! It records and nothing else. Structure, call trees, and gas attribution are +//! the caller's to build from the stream, which keeps this side free of any shape +//! evm2 did not hand us and lets that shape change without a rebuilt artifact. + +use alloc::vec::Vec; + +use alloy_primitives::{Address, B256, Log, U256}; +use evm2::{ + BaseEvmTypes, Inspector, + interpreter::{Interpreter, Message, MessageKind, MessageResult}, +}; + +/// Record tags in a serialized event stream. +pub mod event { + /// End of the stream. + pub const END: u8 = 0; + /// A frame's interpreter was initialized. + pub const INITIALIZE: u8 = 1; + /// An instruction is about to execute. + pub const STEP: u8 = 2; + /// An instruction finished. + pub const STEP_END: u8 = 3; + /// A log was emitted. + pub const LOG: u8 = 4; + /// A call message is about to execute. + pub const CALL: u8 = 5; + /// A call message finished. + pub const CALL_END: u8 = 6; + /// A create message is about to execute. + pub const CREATE: u8 = 7; + /// A create message finished. + pub const CREATE_END: u8 = 8; + /// A contract self-destructed. + pub const SELFDESTRUCT: u8 = 9; +} + +/// What a collector records. +#[derive(Clone, Copy, Debug, Default)] +pub struct Options { + /// Records `step` and `step_end`. + /// + /// Off by default, and deliberately: these fire once per instruction, so a + /// mainnet transaction produces millions of records where the message hooks + /// produce tens. + pub steps: bool, + /// Records the stack on each step. Requires [`Self::steps`]. + pub stack: bool, + /// Records memory size on each step. Requires [`Self::steps`]. + pub memory: bool, + /// Largest stream to keep, in bytes. + pub limit: u32, +} + +/// Collects hook records into a bounded buffer. +#[derive(Debug, Default)] +pub struct Collector { + options: Options, + stream: Vec, + /// Set once the limit stopped a record from being written. + truncated: bool, +} + +impl Collector { + /// Creates a collector recording what `options` selects. + pub fn new(options: Options) -> Self { + Self { options, stream: Vec::new(), truncated: false } + } + + /// Takes the recorded stream and whether it stopped short. + pub fn take(&mut self) -> (Vec, bool) { + // Terminates outside the byte budget: a truncated stream must still end + // with a marker, or a reader cannot tell it from a short response. + self.stream.push(event::END); + (core::mem::take(&mut self.stream), core::mem::take(&mut self.truncated)) + } + + /// Clears the recording, keeping the options. + /// + /// An abandoned attempt (an asynchronous read that was not cached) records + /// hooks before it gives up, so each attempt starts from empty rather than + /// prepending a partial execution to the one that succeeds. + pub fn reset(&mut self) { + self.stream.clear(); + self.truncated = false; + } + + /// Whether a record of `length` bytes still fits. + /// + /// Refusing whole records rather than trimming one keeps every record in the + /// stream complete, so a reader never meets a half-written one. + fn fits(&mut self, length: usize) -> bool { + // Latched: once a record is refused the stream stays a prefix of the + // execution. Admitting later, smaller records would leave holes, and a + // reader pairing end events with open frames would mis-nest them. + if self.truncated { + return false; + } + if self.stream.len() + length <= self.options.limit as usize { + return true; + } + self.truncated = true; + false + } + + fn u8(&mut self, value: u8) { + self.stream.push(value); + } + + fn u16(&mut self, value: u16) { + self.stream.extend_from_slice(&value.to_le_bytes()); + } + + fn u32(&mut self, value: u32) { + self.stream.extend_from_slice(&value.to_le_bytes()); + } + + fn u64(&mut self, value: u64) { + self.stream.extend_from_slice(&value.to_le_bytes()); + } + + fn word(&mut self, value: U256) { + self.stream.extend_from_slice(&value.to_be_bytes::<32>()); + } + + fn address(&mut self, value: Address) { + self.stream.extend_from_slice(value.as_slice()); + } + + fn hash(&mut self, value: B256) { + self.stream.extend_from_slice(value.as_slice()); + } + + fn bytes(&mut self, value: &[u8]) { + self.u32(value.len() as u32); + self.stream.extend_from_slice(value); + } + + /// Writes the fields shared by every message hook. + fn message(&mut self, message: &Message) { + self.u8(kind(message.kind)); + self.u16(message.depth); + self.u64(message.gas_limit); + self.address(message.caller); + self.address(message.destination); + self.address(message.code_address); + self.word(message.value); + self.bytes(&message.input); + } + + /// Writes the fields shared by every message-end hook. + fn result(&mut self, result: &MessageResult) { + self.u8(result.stop as u8); + self.u64(result.gas.remaining()); + self.u64(result.gas.spent()); + match result.created_address { + Some(address) => { + self.u8(1); + self.address(address); + } + None => self.u8(0), + } + self.bytes(&result.output); + } +} + +/// evm2's `MessageKind`, as the ABI numbers it. +fn kind(value: MessageKind) -> u8 { + match value { + MessageKind::Call => 0, + MessageKind::DelegateCall => 1, + MessageKind::CallCode => 2, + MessageKind::Create => 3, + MessageKind::Create2 => 4, + MessageKind::StaticCall => 5, + // `MessageKind` is `#[non_exhaustive]`, so an evm2 revision can add a + // kind. Reporting it as unknown keeps the stream readable rather than + // failing an execution that is otherwise fine. + _ => u8::MAX, + } +} + +/// The collector, held outside the engine. +/// +/// Keeping it here rather than inside the engine is what lets a trace be read +/// while a transaction handle is parked: that handle holds the engine's exclusive +/// borrow, so anything reached through the engine is unreachable until it +/// resolves. A [`Proxy`] goes into the engine instead and forwards here. +struct Slot(core::cell::UnsafeCell>); + +// Single-threaded, and the adapter's running flag serializes every access. +unsafe impl Sync for Slot {} + +static COLLECTOR: Slot = Slot(core::cell::UnsafeCell::new(None)); + +/// Borrows the collector, when one is installed. +/// +/// SAFETY: callers hold the adapter's exclusive claim, so no other borrow is live. +fn collector() -> Option<&'static mut Collector> { + unsafe { (*COLLECTOR.0.get()).as_mut() } +} + +/// Installs a collector and returns the inspector to hand evm2. +pub fn install(options: Options) -> Proxy { + unsafe { *COLLECTOR.0.get() = Some(Collector::new(options)) }; + Proxy +} + +/// Removes the collector. +pub fn remove() { + unsafe { *COLLECTOR.0.get() = None }; +} + +/// Takes the recorded stream, when a collector is installed. +pub fn take() -> Option<(Vec, bool)> { + collector().map(Collector::take) +} + +/// Clears whatever the installed collector has recorded so far. +pub fn reset() { + if let Some(collector) = collector() { + collector.reset(); + } +} + +/// Forwards evm2's hooks to the collector held outside the engine. +/// +/// Stateless, so evm2 owning it costs nothing and the trace survives being read +/// while a transaction handle holds the engine. +#[derive(Debug)] +pub struct Proxy; + +impl Inspector for Proxy { + fn initialize_interp(&mut self, interp: &mut Interpreter<'_, '_, BaseEvmTypes>) { + if let Some(collector) = collector() { + collector.initialize_interp(interp); + } + } + + fn step(&mut self, interp: &mut Interpreter<'_, '_, BaseEvmTypes>) { + if let Some(collector) = collector() { + collector.step(interp); + } + } + + fn step_end(&mut self, interp: &mut Interpreter<'_, '_, BaseEvmTypes>) { + if let Some(collector) = collector() { + collector.step_end(interp); + } + } + + fn log(&mut self, log: &Log, host: &mut ::Host<'_>) { + if let Some(collector) = collector() { + collector.log(log, host); + } + } + + fn call( + &mut self, + interp: &mut Interpreter<'_, '_, BaseEvmTypes>, + message: &mut Message, + ) -> Option> { + if let Some(collector) = collector() { + collector.call(interp, message); + } + // Always `None`: a result here would replace the call. + None + } + + fn call_end( + &mut self, + interp: &mut Interpreter<'_, '_, BaseEvmTypes>, + message: &Message, + result: &mut MessageResult, + ) { + if let Some(collector) = collector() { + collector.call_end(interp, message, result); + } + } + + fn create( + &mut self, + interp: &mut Interpreter<'_, '_, BaseEvmTypes>, + message: &mut Message, + ) -> Option> { + if let Some(collector) = collector() { + collector.create(interp, message); + } + None + } + + fn create_end( + &mut self, + interp: &mut Interpreter<'_, '_, BaseEvmTypes>, + message: &Message, + result: &mut MessageResult, + ) { + if let Some(collector) = collector() { + collector.create_end(interp, message, result); + } + } + + fn selfdestruct( + &mut self, + contract: &Address, + target: &Address, + value: &U256, + host: &mut ::Host<'_>, + ) { + if let Some(collector) = collector() { + collector.selfdestruct(contract, target, value, host); + } + } +} + +impl Inspector for Collector { + fn initialize_interp(&mut self, interp: &mut Interpreter<'_, '_, BaseEvmTypes>) { + if !self.options.steps || !self.fits(1 + 2 + 8) { + return; + } + self.u8(event::INITIALIZE); + self.u16(interp.message().depth); + self.u64(interp.gas().remaining()); + } + + fn step(&mut self, interp: &mut Interpreter<'_, '_, BaseEvmTypes>) { + if !self.options.steps { + return; + } + let stack = if self.options.stack { interp.stack().len() } else { 0 }; + // Sized before anything is written, so a record is never half-appended. + if !self.fits(1 + 4 + 1 + 2 + 8 + 4 + 2 + stack * 32) { + return; + } + self.u8(event::STEP); + self.u32(interp.pc() as u32); + self.u8(interp.opcode()); + self.u16(interp.message().depth); + self.u64(interp.gas().remaining()); + self.u32(if self.options.memory { interp.memory().len() as u32 } else { 0 }); + // `u16`, not `u8`: the stack holds up to 1024 words, and a wrapped count + // would leave the words a reader does not expect to be read as events. + self.u16(stack as u16); + for index in 0..stack { + // Top of stack first, matching how a reader thinks about operands. + let value = interp.stack().peek(index).unwrap_or_default(); + self.word(value); + } + } + + fn step_end(&mut self, interp: &mut Interpreter<'_, '_, BaseEvmTypes>) { + if !self.options.steps || !self.fits(1 + 8) { + return; + } + self.u8(event::STEP_END); + self.u64(interp.gas().remaining()); + } + + fn log(&mut self, log: &Log, _host: &mut ::Host<'_>) { + let topics = log.topics().len(); + if !self.fits(1 + 20 + 1 + topics * 32 + 4 + log.data.data.len()) { + return; + } + self.u8(event::LOG); + self.address(log.address); + self.u8(topics as u8); + for topic in log.topics() { + self.hash(*topic); + } + self.bytes(&log.data.data); + } + + fn call( + &mut self, + _interp: &mut Interpreter<'_, '_, BaseEvmTypes>, + message: &mut Message, + ) -> Option> { + if self.fits(1 + 1 + 2 + 8 + 60 + 32 + 4 + message.input.len()) { + self.u8(event::CALL); + self.message(message); + } + // Always `None`: returning a result here would replace the call, and an + // observer must not change what executes. + None + } + + fn call_end( + &mut self, + _interp: &mut Interpreter<'_, '_, BaseEvmTypes>, + _message: &Message, + result: &mut MessageResult, + ) { + if !self.fits(1 + 18 + 21 + 4 + result.output.len()) { + return; + } + self.u8(event::CALL_END); + self.result(result); + } + + fn create( + &mut self, + _interp: &mut Interpreter<'_, '_, BaseEvmTypes>, + message: &mut Message, + ) -> Option> { + if self.fits(1 + 1 + 2 + 8 + 60 + 32 + 4 + message.input.len()) { + self.u8(event::CREATE); + self.message(message); + } + None + } + + fn create_end( + &mut self, + _interp: &mut Interpreter<'_, '_, BaseEvmTypes>, + _message: &Message, + result: &mut MessageResult, + ) { + if !self.fits(1 + 18 + 21 + 4 + result.output.len()) { + return; + } + self.u8(event::CREATE_END); + self.result(result); + } + + fn selfdestruct( + &mut self, + contract: &Address, + target: &Address, + value: &U256, + _host: &mut ::Host<'_>, + ) { + if !self.fits(1 + 20 + 20 + 32) { + return; + } + self.u8(event::SELFDESTRUCT); + self.address(*contract); + self.address(*target); + self.word(*value); + } +} diff --git a/wasm/evm2/tests/oracle.rs b/wasm/evm2/tests/oracle.rs new file mode 100644 index 00000000..ac09685f --- /dev/null +++ b/wasm/evm2/tests/oracle.rs @@ -0,0 +1,1167 @@ +//! Native evm2 is the oracle for the WASM artifact. +//! +//! This runs the shared fixtures through `Evm::transact` compiled for the host +//! and owns the `expected` half of `fixtures/call-tx.json`. The TypeScript suite +//! runs the same fixtures through the artifact and verifies the same file, so a +//! disagreement between native and WASM evm2 shows up as a diff rather than as +//! two independently plausible results. +//! +//! Regenerate with `OX_UPDATE_FIXTURES=1 cargo test --test oracle`. + +use alloy_consensus::{EthereumTxEnvelope, TxEip4844, transaction::Recovered}; +use alloy_eips::eip2718::Decodable2718; +use alloy_primitives::{Address, Bytes, U256, hex}; +use evm2::{ + BaseEvmTypes, Evm, ExecutionConfig, Precompiles, SpecId, TxResult, Version, + bytecode::Bytecode, + env::BlockEnvExt, + ethereum::{TxEnvelope, ethereum_tx_registry}, + evm::{ + AccountChangeRef, AccountInfo, AccountInfoRef, InMemoryDB, PendingState, StateChangeSink, + StateChangeSource, StorageChange, + }, + interpreter::Word, +}; +use serde_json::{Map, Value, json}; +use std::{fs, path::PathBuf}; + +fn path() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("fixtures/call-tx.json") +} + +fn hex_word(value: &Value) -> U256 { + U256::from_str_radix(value.as_str().unwrap().trim_start_matches("0x"), 16).unwrap() +} + +fn hex_bytes(value: &Value) -> Bytes { + Bytes::from(hex::decode(value.as_str().unwrap()).unwrap()) +} + +fn spec_id(name: &str) -> SpecId { + match name { + "cancun" => SpecId::CANCUN, + "prague" => SpecId::PRAGUE, + "osaka" => SpecId::OSAKA, + other => panic!("unknown spec `{other}`"), + } +} + +fn block_env(block: &Map) -> BlockEnvExt { + BlockEnvExt { + number: hex_word(&block["number"]), + beneficiary: block["beneficiary"].as_str().unwrap().parse().unwrap(), + timestamp: hex_word(&block["timestamp"]), + gas_limit: hex_word(&block["gasLimit"]), + basefee: hex_word(&block["basefee"]), + difficulty: hex_word(&block["difficulty"]), + prevrandao: hex_word(&block["prevrandao"]), + blob_basefee: hex_word(&block["blobBasefee"]), + slot_num: hex_word(&block["slotNum"]), + ext: (), + _non_exhaustive: (), + } +} + +/// Seeds evm2's own in-memory database from the fixture accounts. +fn database(accounts: &[Value]) -> InMemoryDB { + let mut db = InMemoryDB::default(); + for account in accounts { + let address: Address = account["address"].as_str().unwrap().parse().unwrap(); + let code = hex_bytes(&account["code"]); + let mut info = AccountInfo { + balance: Word::from(hex_word(&account["balance"])), + nonce: account["nonce"].as_u64().unwrap(), + code_hash: account["codeHash"].as_str().unwrap().parse().unwrap(), + code: None, + _non_exhaustive: (), + }; + if !code.is_empty() { + info = info.with_code(Bytecode::new_raw_checked(code).expect("fixture code")); + } + db.insert_account_info(&address, info); + if let Some(slots) = account.get("storage").and_then(Value::as_object) { + for (key, value) in slots { + db.insert_account_storage( + &address, + &hex_word(&Value::String(key.clone())), + &hex_word(value), + ); + } + } + } + db +} + +fn recovered(fixture: &Map) -> Recovered { + let bytes = hex_bytes(&fixture["envelope"]); + let envelope = EthereumTxEnvelope::::decode_2718(&mut &bytes[..]) + .expect("fixture envelope is valid EIP-2718"); + let signer: Address = fixture["signer"].as_str().unwrap().parse().unwrap(); + Recovered::new_unchecked(TxEnvelope::from(envelope), signer) +} + +/// The same shape the TypeScript codec decodes, so both sides compare like for +/// like rather than through two different projections. +fn encode(result: &TxResult) -> Value { + json!({ + "status": result.status, + "stop": result.stop as u8, + "totalGasSpent": format!("{:#x}", result.total_gas_spent), + "stateGasSpent": format!("{:#x}", result.state_gas_spent), + "refunded": format!("{:#x}", result.refunded), + "floorGas": format!("{:#x}", result.floor_gas), + "txGasUsed": format!("{:#x}", result.tx_gas_used()), + "createdAddress": result.created_address.map(|a| a.to_string().to_lowercase()), + "errorCode": result.error_code.map(|c| format!("{:#x}", c.get())), + "output": format!("0x{}", hex::encode(&result.output)), + "logs": result.logs.iter().map(|log| json!({ + "address": log.address.to_string().to_lowercase(), + "topics": log.topics().iter().map(|t| format!("{t:#x}")).collect::>(), + "data": format!("0x{}", hex::encode(&log.data.data)), + })).collect::>(), + }) +} + +/// Collects a pending state into sorted JSON. +/// +/// Sorted rather than visit-ordered: the TypeScript side groups records by kind, +/// so this compares the same sets rather than an interleaving neither side keeps. +#[derive(Default)] +struct Records { + accounts: Vec, + bytecode: Vec, + reads: Vec, + storage: Vec, + wipes: Vec, +} + +fn info(value: Option>) -> String { + match value { + Some(info) => format!( + "{:#x}/{}/{:#x}", + info.balance, info.nonce, info.code_hash + ), + None => "absent".to_string(), + } +} + +impl StateChangeSink for Records { + type Error = core::convert::Infallible; + + fn bytecode( + &mut self, + code_hash: alloy_primitives::B256, + code: &Bytecode, + ) -> Result<(), Self::Error> { + self.bytecode + .push(format!("{code_hash:#x}|0x{}", hex::encode(code.original_bytes()))); + Ok(()) + } + + fn account(&mut self, change: AccountChangeRef<'_>) -> Result<(), Self::Error> { + self.accounts.push(format!( + "{}|{}|{}|{}|{}", + change.address.to_string().to_lowercase(), + info(change.original), + info(change.current), + change.created, + change.selfdestructed, + )); + Ok(()) + } + + fn storage_wipe(&mut self, address: Address) -> Result<(), Self::Error> { + self.wipes.push(address.to_string().to_lowercase()); + Ok(()) + } + + fn storage(&mut self, change: StorageChange) -> Result<(), Self::Error> { + self.storage.push(format!( + "{}|{:#x}|{:#x}|{:#x}", + change.address.to_string().to_lowercase(), + change.key, + change.original, + change.current, + )); + Ok(()) + } + + fn account_read( + &mut self, + address: Address, + value: Option>, + ) -> Result<(), Self::Error> { + self.reads + .push(format!("{}|{}", address.to_string().to_lowercase(), info(value))); + Ok(()) + } + + fn storage_read( + &mut self, + address: Address, + key: Word, + value: Word, + ) -> Result<(), Self::Error> { + self.storage.push(format!( + "{}|{:#x}|read|{:#x}", + address.to_string().to_lowercase(), + key, + value, + )); + Ok(()) + } +} + +fn pending(state: &PendingState) -> Value { + let mut records = Records::default(); + let Ok(()) = state.visit(&mut records); + records.accounts.sort(); + records.bytecode.sort(); + records.reads.sort(); + records.storage.sort(); + records.wipes.sort(); + json!({ + "accounts": records.accounts, + "bytecode": records.bytecode, + "empty": state.is_empty(), + "reads": records.reads, + "storage": records.storage, + "wipes": records.wipes, + }) +} + +/// Serializes a built list the way the TypeScript `Bal` type carries it. +fn bal_json(bal: evm2::evm::Bal) -> Value { + let accounts = alloy_eip7928::BlockAccessList::from(bal); + Value::Array( + accounts + .iter() + .map(|account| { + json!({ + "address": format!("{:?}", account.address), + "balanceChanges": account.balance_changes.iter().map(|change| json!({ + "balance": format!("{:#x}", change.post_balance), + "index": change.block_access_index.0, + })).collect::>(), + "codeChanges": account.code_changes.iter().map(|change| json!({ + "code": format!("0x{}", hex::encode(&change.new_code)), + "index": change.block_access_index.0, + })).collect::>(), + "nonceChanges": account.nonce_changes.iter().map(|change| json!({ + "index": change.block_access_index.0, + "nonce": change.new_nonce, + })).collect::>(), + "storageChanges": account.storage_changes.iter().map(|slot| json!({ + "changes": slot.changes.iter().map(|change| json!({ + "index": change.block_access_index.0, + "value": format!("{:#x}", change.new_value), + })).collect::>(), + "slot": format!("{:#x}", slot.slot), + })).collect::>(), + "storageReads": account.storage_reads.iter() + .map(|slot| format!("{slot:#x}")).collect::>(), + }) + }) + .collect(), + ) +} + +/// Serializes an accumulator the way the TypeScript `BlockState` type carries it. +fn block_json(block: &evm2::evm::BlockStateAccumulator) -> Value { + let info = |value: &Option| match value { + Some(info) => json!({ + "balance": format!("{:#x}", info.balance), + "codeHash": format!("{:?}", info.code_hash), + "nonce": info.nonce, + }), + None => Value::Null, + }; + // Code has no sorted accessor upstream, so it is sorted by hash here, the + // same way the adapter writes it. + let mut code: Vec<_> = block.code().collect(); + code.sort_unstable_by_key(|(hash, _)| **hash); + + json!({ + "accounts": block.accounts_sorted().iter().map(|(address, tracked)| json!({ + "address": format!("{address:?}"), + "current": info(&tracked.current), + "original": info(&tracked.original), + })).collect::>(), + "code": code.iter().map(|(hash, bytecode)| json!({ + "code": format!("0x{}", hex::encode(bytecode.original_bytes())), + "codeHash": format!("{hash:?}"), + })).collect::>(), + "storage": block.storage_sorted().iter().map(|(key, tracked)| json!({ + "address": format!("{:?}", key.address()), + "current": format!("{:#x}", tracked.current), + "key": format!("{:#x}", key.key()), + "original": format!("{:#x}", tracked.original), + })).collect::>(), + "storageWipes": block.storage_wipes_sorted().iter() + .map(|address| format!("{address:?}")).collect::>(), + }) +} + +/// Runs a fixture into a block accumulator, returning what it gathered. +/// +/// A separate run from `run`: accumulation happens on the committing path, which +/// the detaching path deliberately does not take. +fn run_block(fixture: &Map, spec: &str) -> Value { + let spec_id = spec_id(spec); + let chain_id = hex_word(&fixture["chainId"]).to::(); + + let mut evm: Evm<'_, BaseEvmTypes> = Evm::new_with_execution_config( + ExecutionConfig::for_spec_and_version( + spec_id, + Version { chain_id, ..Version::new(spec_id) }, + ), + spec_id, + block_env(fixture["block"].as_object().unwrap()), + ethereum_tx_registry(spec_id), + database(fixture["accounts"].as_array().unwrap()), + Precompiles::base(spec_id), + ); + + let mut block = evm2::evm::BlockStateAccumulator::new(); + // The handle borrows the engine, so it is resolved inside its own scope. + let committed = match evm.transact(&recovered(fixture)) { + Ok(handle) => { + let _ = handle.commit_to(&mut block); + true + } + Err(_) => false, + }; + // A rejected transaction accumulates nothing, which the replay must match. + if !committed { + return Value::Null; + } + + block_json(&block) +} + +/// Runs a fixture with the BAL builder on, returning the list it folded. +/// +/// A separate run from `run`: the fold happens when a transaction commits, which +/// the detaching path deliberately does not do. +fn run_bal(fixture: &Map, spec: &str) -> Value { + let spec_id = spec_id(spec); + let chain_id = hex_word(&fixture["chainId"]).to::(); + + let mut evm: Evm<'_, BaseEvmTypes> = Evm::new_with_execution_config( + ExecutionConfig::for_spec_and_version( + spec_id, + Version { chain_id, ..Version::new(spec_id) }, + ), + spec_id, + block_env(fixture["block"].as_object().unwrap()), + ethereum_tx_registry(spec_id), + database(fixture["accounts"].as_array().unwrap()), + Precompiles::base(spec_id), + ); + + evm.state_mut().enable_bal_builder(); + // Transaction 0 records at index 1, matching the EIP-7928 layout. + evm.state_mut().set_bal_index(alloy_eip7928::BlockAccessIndex(1)); + + // The handle borrows the engine, so it is resolved and dropped before the + // builder is read back. + let committed = match evm.transact(&recovered(fixture)) { + Ok(handle) => { + let _ = handle.commit(); + true + } + Err(_) => false, + }; + // A rejected transaction folds nothing, which the replay must match. + if !committed { + return Value::Null; + } + + bal_json(evm.state_mut().take_bal_builder().expect("builder is enabled")) +} + +fn run(fixture: &Map, spec: &str) -> Value { + let spec_id = spec_id(spec); + let chain_id = hex_word(&fixture["chainId"]).to::(); + let accounts = fixture["accounts"].as_array().unwrap(); + + let mut evm: Evm<'_, BaseEvmTypes> = Evm::new_with_execution_config( + ExecutionConfig::for_spec_and_version( + spec_id, + Version { chain_id, ..Version::new(spec_id) }, + ), + spec_id, + block_env(fixture["block"].as_object().unwrap()), + ethereum_tx_registry(spec_id), + database(accounts), + Precompiles::base(spec_id), + ); + + match evm.transact(&recovered(fixture)) { + Ok(handle) => { + // Detaching records what the transaction would have written, which + // `call_tx` discards before a caller can see it. + let detached = handle.detach(); + let mut value = encode(&detached.result); + value["pendingState"] = pending(&detached.pending_state); + value + } + Err(error) => json!({ "handlerError": error.to_string() }), + } +} + +#[test] +fn native_evm2_matches_the_recorded_expectations() { + let file = path(); + let mut root: Value = + serde_json::from_str(&fs::read_to_string(&file).expect("fixtures/call-tx.json")).unwrap(); + + let specs: Vec = root["specs"] + .as_array() + .unwrap() + .iter() + .map(|s| s.as_str().unwrap().to_owned()) + .collect(); + + let update = std::env::var_os("OX_UPDATE_FIXTURES").is_some(); + let mut mismatches = Vec::new(); + + let fixtures = root["fixtures"].as_array_mut().unwrap(); + for fixture in fixtures { + let object = fixture.as_object_mut().unwrap(); + let name = object["name"].as_str().unwrap().to_owned(); + + let mut expected = Map::new(); + for spec in &specs { + let actual = run(object, spec); + if update { + expected.insert(spec.clone(), actual); + continue; + } + let recorded = object + .get("expected") + .and_then(|value| value.get(spec)) + .unwrap_or_else(|| panic!("`{name}` has no expectation for `{spec}`")); + if recorded != &actual { + mismatches.push(format!( + "{name} / {spec}\n recorded: {recorded}\n native: {actual}" + )); + } + } + if update { + object.insert("expected".to_owned(), Value::Object(expected)); + } + } + + if update { + fs::write(&file, format!("{}\n", serde_json::to_string_pretty(&root).unwrap())).unwrap(); + return; + } + + assert!(mismatches.is_empty(), "native evm2 disagrees:\n\n{}", mismatches.join("\n\n")); +} + +/// Every recorded expectation must be reachable, so a stale spec or a renamed +/// fixture cannot sit in the file unnoticed. +#[test] +fn recorded_expectations_have_no_stale_entries() { + let root: Value = + serde_json::from_str(&fs::read_to_string(path()).expect("fixtures/call-tx.json")).unwrap(); + // Sorted on both sides: the file's key order is the serializer's business, + // not a contract. + let mut specs: Vec<&str> = + root["specs"].as_array().unwrap().iter().map(|s| s.as_str().unwrap()).collect(); + specs.sort_unstable(); + + for fixture in root["fixtures"].as_array().unwrap() { + let name = fixture["name"].as_str().unwrap(); + let expected = fixture["expected"] + .as_object() + .unwrap_or_else(|| panic!("`{name}` has no expectations")); + let mut recorded: Vec<&str> = expected.keys().map(String::as_str).collect(); + recorded.sort_unstable(); + assert_eq!(recorded, specs, "`{name}` records specs the fixture does not declare"); + } +} + +/// A fixture whose `expected` says nothing is a fixture that proves nothing. +#[test] +fn no_fixture_only_records_a_handler_error() { + let root: Value = serde_json::from_str(&fs::read_to_string(path()).unwrap()).unwrap(); + let mut all_failed = Vec::new(); + for fixture in root["fixtures"].as_array().unwrap() { + let expected = fixture["expected"].as_object().unwrap(); + if expected.values().all(|v| v.get("handlerError").is_some()) { + all_failed.push(fixture["name"].as_str().unwrap().to_owned()); + } + } + assert!( + all_failed.is_empty(), + "these fixtures are rejected on every spec, so they test transaction validation \ + rather than execution: {}", + all_failed.join(", "), + ); +} + +/// Generated-corpus differential. +/// +/// The hand-written fixtures above cover known shapes; this covers shapes nobody +/// thought of. A seeded generator emits transactions, accounts, and code, records +/// what native evm2 does with them, and the TypeScript suite replays the same +/// corpus through the artifact. Regenerate with +/// `OX_UPDATE_FIXTURES=1 cargo test --test oracle`. +mod generated { + use super::*; + use alloy_consensus::{SignableTransaction, TxLegacy}; + use alloy_eips::eip2718::Encodable2718; + use alloy_primitives::{Signature, TxKind}; + + /// Cases in the corpus. Large enough to reach past the curated shapes, small + /// enough that the recorded file stays reviewable. + const COUNT: usize = 512; + + /// Fixed seed: the corpus is a committed regression suite, not a fresh draw + /// each run. Change it to explore elsewhere. + const SEED: u64 = 0x5eed_1eaf_c0ff_ee01; + + fn path() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("fixtures/fuzz.json") + } + + /// xorshift64*, so the corpus reproduces without a dependency. + struct Rng(u64); + + impl Rng { + fn next(&mut self) -> u64 { + self.0 ^= self.0 >> 12; + self.0 ^= self.0 << 25; + self.0 ^= self.0 >> 27; + self.0.wrapping_mul(0x2545_f491_4f6c_dd1d) + } + + fn below(&mut self, bound: u64) -> u64 { + self.next() % bound + } + + fn pick<'a, T>(&mut self, items: &'a [T]) -> &'a T { + &items[self.below(items.len() as u64) as usize] + } + } + + /// Snippets worth reaching, by opcode class. + /// + /// `BLOCKHASH` is deliberately absent: `Database.fromMemory` fails an + /// unseeded hash where evm2's `InMemoryDB` synthesizes one, a recorded + /// divergence that would show up here as a false mismatch. + const CODE: &[&str] = &[ + "", // no code + "00", // STOP + "602a5f5260205ff3", // return 42 + "5f545f52602a5f5560205ff3", // load slot 0, store 42, return the old value + "60015f5500", // store 1 into slot 0 + "5f5f5500", // clear slot 0, an EIP-3529 refund + "60015f5560025f5500", // store twice, warm on the second + "5f5ffd", // REVERT with empty data + "602a5f5260205ffd", // REVERT with data + "fe", // INVALID + "5f5f5fa100", // LOG1 + "602a5f5260205f5fa200", // LOG2 with data + "33ff", // CALLER SELFDESTRUCT + "60015f5533ff", // store then SELFDESTRUCT + "5f5f20505f5260205ff3", // KECCAK256 over empty memory + "5f61ffff5200", // expand memory + "5f5f5f5f5f730000000000000000000000000000000000000004", // CALL identity + "67602a5f5260205ff35f5260086018f3", // initcode deploying a returner + "5f5ff3", // deploy empty code + "5b5f56", // JUMPDEST, PUSH0, JUMP: a tight loop out of gas + "3d5f5f3e00", // RETURNDATACOPY with no return data + "5f3f5000", // EXTCODEHASH of address zero + "4700", // SELFBALANCE + "484900", // PREVRANDAO BLOBBASEFEE + ]; + + /// Addresses the corpus draws from. The last has no account, so reads miss. + const ADDRESSES: &[&str] = &[ + "0x00000000000000000000000000000000000000c0", + "0x00000000000000000000000000000000000000c1", + "0x0000000000000000000000000000000000000004", + "0x000000000000000000000000000000000000dead", + ]; + + const SENDER: &str = "0x70997970c51812dc3a010c7d01b50e0d17dc79c8"; + const SPECS: &[&str] = &["cancun", "prague", "osaka"]; + + fn code(rng: &mut Rng) -> String { + // A quarter of the corpus is arbitrary bytes: whatever they decode to, + // both engines have to agree on how it halts. + if rng.below(4) == 0 { + let length = rng.below(24) as usize; + let mut bytes = String::new(); + for _ in 0..length { + bytes.push_str(&format!("{:02x}", rng.below(256))); + } + return format!("0x{bytes}"); + } + format!("0x{}", rng.pick(CODE)) + } + + fn account(rng: &mut Rng, address: &str, code: &str) -> Value { + let mut entry = json!({ + "address": address, + "balance": format!("{:#x}", rng.pick(&[0u64, 1, 1_000, 1_000_000_000_000_000_000])), + "code": code, + "codeHash": format!("{:#x}", alloy_primitives::keccak256(hex_bytes(&json!(code)))), + "nonce": rng.below(3), + }); + // Half the accounts carry storage, so warm reads and clears are reached. + if rng.below(2) == 0 { + let mut slots = Map::new(); + for _ in 0..=rng.below(2) { + slots.insert( + format!("{:#x}", rng.below(3)), + json!(format!("{:#x}", rng.pick(&[0u64, 1, 42, u64::MAX]))), + ); + } + entry["storage"] = Value::Object(slots); + } + entry + } + + fn case(rng: &mut Rng, index: usize) -> Map { + let create = rng.below(4) == 0; + let target = rng.pick(ADDRESSES).to_string(); + + let mut accounts = vec![json!({ + "address": SENDER, + "balance": format!("{:#x}", 10u128.pow(18)), + "code": "0x", + "codeHash": format!("{:#x}", alloy_primitives::keccak256([])), + "nonce": 0, + })]; + for address in ADDRESSES.iter().take(3) { + if rng.below(4) == 0 { + continue; + } + let code = code(rng); + accounts.push(account(rng, address, &code)); + } + + let data = if create { code(rng) } else { code(rng) }; + let gas_limit = *rng.pick(&[21_000u64, 30_000, 100_000, 200_000]); + let gas_price = *rng.pick(&[0u64, 1]); + let value = *rng.pick(&[0u64, 1, 1_000]); + + let tx = TxLegacy { + chain_id: Some(1), + nonce: 0, + gas_price: gas_price as u128, + gas_limit, + to: if create { + TxKind::Create + } else { + TxKind::Call(target.parse().unwrap()) + }, + value: U256::from(value), + input: hex_bytes(&json!(data)), + }; + // The signature is inert: evm2 strips it and takes the signer from + // `Recovered`, so a placeholder is enough to satisfy 2718 decoding. + let signed = tx.into_signed(Signature::new(U256::from(1), U256::from(1), false)); + let mut envelope = Vec::new(); + signed.encode_2718(&mut envelope); + + let mut fixture = Map::new(); + fixture.insert("accounts".into(), Value::Array(accounts)); + fixture.insert( + "block".into(), + json!({ + "basefee": "0x0", + "beneficiary": "0x00000000000000000000000000000000000000cb", + "blobBasefee": "0x1", + "difficulty": "0x0", + "gasLimit": "0x1c9c380", + "number": "0x1", + "prevrandao": "0x0", + "slotNum": "0x0", + "timestamp": "0x1", + }), + ); + fixture.insert("chainId".into(), json!("0x1")); + fixture.insert("envelope".into(), json!(format!("0x{}", hex::encode(&envelope)))); + fixture.insert("name".into(), json!(format!("case-{index:03}"))); + fixture.insert("signer".into(), json!(SENDER)); + fixture.insert("spec".into(), json!(*rng.pick(SPECS))); + fixture + } + + #[test] + fn native_evm2_matches_the_generated_corpus() { + let mut rng = Rng(SEED); + let cases: Vec = (0..COUNT) + .map(|index| { + let mut fixture = case(&mut rng, index); + let spec = fixture["spec"].as_str().unwrap().to_string(); + let expected = run(&fixture, &spec); + fixture.insert("expected".into(), expected); + let bal = run_bal(&fixture, &spec); + fixture.insert("bal".into(), bal); + let block = run_block(&fixture, &spec); + fixture.insert("blockState".into(), block); + Value::Object(fixture) + }) + .collect(); + + let recorded = json!({ + "$comment": "Generated by `cargo test --test oracle`. Do not edit by hand.", + "cases": cases, + "count": COUNT, + "seed": format!("{SEED:#x}"), + }); + + let file = path(); + if std::env::var_os("OX_UPDATE_FIXTURES").is_some() { + fs::write( + &file, + format!("{}\n", serde_json::to_string_pretty(&recorded).unwrap()), + ) + .unwrap(); + return; + } + + let previous: Value = + serde_json::from_str(&fs::read_to_string(&file).expect("fixtures/fuzz.json")).unwrap(); + assert_eq!( + previous, recorded, + "the generated corpus drifted; regenerate with OX_UPDATE_FIXTURES=1" + ); + } +} + +/// EIP-7928 block access lists, against native evm2. +/// +/// The adapter's job is to carry a BAL across the ABI and report an uncovered +/// read apart from a transaction rejection. Both halves are evm2's behavior, so +/// they are pinned here before the artifact is asked to reproduce them. +mod bal { + use super::*; + use alloy_primitives::TxKind; + use evm2::{ErrorCode, evm::Bal, registry::HandlerError}; + use std::sync::Arc; + + const SENDER: Address = Address::repeat_byte(0x11); + const TARGET: Address = Address::repeat_byte(0xc0); + + /// An EVM over an empty database, so every read must come from the BAL. + fn evm(spec_id: SpecId) -> Evm<'static, BaseEvmTypes> { + Evm::new_with_execution_config( + ExecutionConfig::for_spec_and_version(spec_id, Version::new(spec_id)), + spec_id, + BlockEnvExt::default(), + ethereum_tx_registry(spec_id), + InMemoryDB::default(), + Precompiles::base(spec_id), + ) + } + + /// A zero-cost call, so nothing but the reads can make it fail. + fn call() -> Recovered { + let envelope = alloy_consensus::TxLegacy { + chain_id: Some(1), + gas_limit: 100_000, + gas_price: 0, + to: TxKind::Call(TARGET), + value: U256::ZERO, + ..Default::default() + }; + let signed = alloy_consensus::Signed::new_unchecked( + envelope, + alloy_primitives::Signature::test_signature(), + Default::default(), + ); + let encoded = alloy_eips::eip2718::Encodable2718::encoded_2718(&signed); + let decoded = EthereumTxEnvelope::::decode_2718(&mut &encoded[..]).unwrap(); + Recovered::new_unchecked(TxEnvelope::from(decoded), SENDER) + } + + #[test] + fn an_uncovered_read_is_refused_rather_than_served() { + let mut evm = evm(SpecId::OSAKA); + // Attached but empty, so the sender is not covered. + evm.state_mut().set_bal(Arc::new(Bal::new())); + evm.state_mut().set_allow_bal_db_fallback(false); + + let failure = evm.call_tx(&call()).unwrap_err(); + + // The refusal carries evm2's own sentinel, which is what lets the adapter + // report it apart from an ordinary rejection. Carried as `Fatal`, with the + // `BalError` kept on a context the public API does not reach. + assert!( + matches!(failure, HandlerError::Fatal(code) if code == ErrorCode::BAL_NOT_COVERED), + "{failure}" + ); + } + + #[test] + fn fallback_lets_an_uncovered_read_through() { + let mut evm = evm(SpecId::OSAKA); + evm.state_mut().set_bal(Arc::new(Bal::new())); + evm.state_mut().set_allow_bal_db_fallback(true); + + // The empty database serves a zero account, so execution proceeds. This + // is the pair to the refusal above, and what an empty BAL plus fallback + // is relied on for as the way to detach. + assert!(evm.call_tx(&call()).is_ok()); + } + + #[test] + fn the_builder_records_what_a_transaction_touched() { + let mut evm = evm(SpecId::OSAKA); + evm.state_mut().enable_bal_builder(); + evm.state_mut().bump_bal_index(); + + let handle = evm.transact(&call()).unwrap(); + let _ = handle.commit(); + + let built = evm.state_mut().take_bal_builder().unwrap(); + // The sender pays and its nonce moves, so it must appear. + assert!(built.accounts.contains_key(&SENDER), "{built}"); + } +} + +/// Block state accumulation, against native evm2. +/// +/// The accumulator gathers what a block changed across transactions, so the +/// behavior worth pinning is what survives several of them and in what order it +/// enumerates. +mod block { + use super::*; + use alloy_primitives::TxKind; + use evm2::evm::BlockStateAccumulator; + + const SENDER: Address = Address::repeat_byte(0x11); + const TARGET: Address = Address::repeat_byte(0xc0); + + /// PUSH1 1, PUSH0, SSTORE: writes slot 0, so a block has storage to gather. + const CODE: &[u8] = &[0x60, 0x01, 0x5f, 0x55]; + + fn evm() -> Evm<'static, BaseEvmTypes> { + let mut db = InMemoryDB::default(); + db.insert_account_info( + &SENDER, + AccountInfo { + balance: U256::from(10u64).pow(U256::from(18)), + ..Default::default() + }, + ); + db.insert_account_info( + &TARGET, + AccountInfo::default() + .with_code(Bytecode::new_raw_checked(Bytes::from_static(CODE)).unwrap()), + ); + Evm::new_with_execution_config( + ExecutionConfig::for_spec_and_version(SpecId::OSAKA, Version::new(SpecId::OSAKA)), + SpecId::OSAKA, + BlockEnvExt::default(), + ethereum_tx_registry(SpecId::OSAKA), + db, + Precompiles::base(SpecId::OSAKA), + ) + } + + fn call(nonce: u64) -> Recovered { + let envelope = alloy_consensus::TxLegacy { + chain_id: Some(1), + gas_limit: 200_000, + gas_price: 0, + nonce, + to: TxKind::Call(TARGET), + value: U256::ZERO, + ..Default::default() + }; + let signed = alloy_consensus::Signed::new_unchecked( + envelope, + alloy_primitives::Signature::test_signature(), + Default::default(), + ); + let encoded = alloy_eips::eip2718::Encodable2718::encoded_2718(&signed); + let decoded = EthereumTxEnvelope::::decode_2718(&mut &encoded[..]).unwrap(); + Recovered::new_unchecked(TxEnvelope::from(decoded), SENDER) + } + + #[test] + fn accumulates_across_transactions() { + let mut evm = evm(); + let mut block = BlockStateAccumulator::new(); + assert!(block.is_empty()); + + for nonce in 0..3 { + let handle = evm.transact(&call(nonce)).unwrap(); + let _ = handle.commit_to(&mut block); + } + + // One entry per account whatever the transaction count, carrying the + // block's original and its latest value. + let accounts = block.accounts_sorted(); + assert!(!block.is_empty()); + let sender = accounts.iter().find(|(a, _)| *a == SENDER).expect("sender"); + assert_eq!(sender.1.original.as_ref().map(|i| i.nonce), Some(0)); + assert_eq!(sender.1.current.as_ref().map(|i| i.nonce), Some(3)); + } + + #[test] + fn enumerates_deterministically() { + let build = || { + let mut evm = evm(); + let mut block = BlockStateAccumulator::new(); + for nonce in 0..3 { + let _ = evm.transact(&call(nonce)).unwrap().commit_to(&mut block); + } + let accounts: Vec<_> = block.accounts_sorted().iter().map(|(a, _)| *a).collect(); + let storage: Vec<_> = block.storage_sorted().iter().map(|(k, _)| *k).collect(); + let wipes = block.storage_wipes_sorted(); + // Code has no sorted accessor upstream, so it is sorted by hash here. + let mut code: Vec<_> = block.code().map(|(hash, _)| *hash).collect(); + code.sort_unstable(); + (accounts, storage, wipes, code) + }; + + // Two independent builds agree, which is what the adapter relies on when + // it writes the accumulator out. + assert_eq!(build(), build()); + } + + #[test] + fn storage_carries_the_blocks_original_value() { + let mut evm = evm(); + let mut block = BlockStateAccumulator::new(); + let _ = evm.transact(&call(0)).unwrap().commit_to(&mut block); + + let storage = block.storage_sorted(); + let slot = storage.iter().find(|(key, _)| key.address() == TARGET).expect("slot"); + // Zero before the block, one after, so the pair spans the block rather + // than the transaction. + assert_eq!(slot.1.original, U256::ZERO); + assert_eq!(slot.1.current, U256::from(1)); + } +} + +/// The block-execution flow, written against evm2 directly. +/// +/// The counterpart to the binding's `setBlockState`/`commitTo`/`takeBlockState`. +/// Kept as a test so the documented equivalence is compiled rather than claimed. +mod flow { + use super::*; + use alloy_primitives::TxKind; + use evm2::evm::{BEACON_ROOTS_ADDRESS, BlockStateAccumulator, SystemTx}; + + const SENDER: Address = Address::repeat_byte(0x11); + const TARGET: Address = Address::repeat_byte(0xc0); + + #[test] + fn a_block_accumulates_a_system_call_and_its_transactions() { + let mut db = InMemoryDB::default(); + db.insert_account_info( + &SENDER, + AccountInfo { + balance: U256::from(10u64).pow(U256::from(18)), + ..Default::default() + }, + ); + // CALLDATALOAD(0), PUSH0, SSTORE. + db.insert_account_info( + &BEACON_ROOTS_ADDRESS, + AccountInfo::default().with_code( + Bytecode::new_raw_checked(Bytes::from_static(&[0x5f, 0x35, 0x5f, 0x55])).unwrap(), + ), + ); + db.insert_account_info( + &TARGET, + AccountInfo::default() + .with_code(Bytecode::new_raw_checked(Bytes::from_static(&[0x00])).unwrap()), + ); + + let mut evm: Evm<'_, BaseEvmTypes> = Evm::new_with_execution_config( + ExecutionConfig::for_spec_and_version(SpecId::OSAKA, Version::new(SpecId::OSAKA)), + SpecId::OSAKA, + BlockEnvExt::default(), + ethereum_tx_registry(SpecId::OSAKA), + db, + Precompiles::base(SpecId::OSAKA), + ); + + // The accumulator is a local here. Across the ABI it cannot be, which is + // why the binding installs one in the engine instead. + let mut block = BlockStateAccumulator::new(); + + let root = Bytes::from(vec![1u8; 32]); + let executed = evm.system_call(SystemTx::new(BEACON_ROOTS_ADDRESS, root)).unwrap(); + let _ = executed.commit_to(&mut block); + + for tx in &transactions() { + let executed = evm.transact(tx).unwrap(); + let _ = executed.commit_to(&mut block); + } + + assert!( + block.storage_sorted().iter().any(|(key, _)| key.address() == BEACON_ROOTS_ADDRESS), + "the system call's write is in the block" + ); + assert!( + block.accounts_sorted().iter().any(|(address, _)| *address == SENDER), + "the transaction's sender is in the block" + ); + } + + fn transactions() -> Vec> { + let envelope = alloy_consensus::TxLegacy { + chain_id: Some(1), + gas_limit: 200_000, + gas_price: 0, + to: TxKind::Call(TARGET), + value: U256::ZERO, + ..Default::default() + }; + let signed = alloy_consensus::Signed::new_unchecked( + envelope, + alloy_primitives::Signature::test_signature(), + Default::default(), + ); + let encoded = alloy_eips::eip2718::Encodable2718::encoded_2718(&signed); + let decoded = EthereumTxEnvelope::::decode_2718(&mut &encoded[..]).unwrap(); + vec![Recovered::new_unchecked(TxEnvelope::from(decoded), SENDER)] + } +} + +/// The block-access-list flow, written against evm2 directly. +/// +/// The counterpart to the binding's builder and attach paths. Kept as a test so +/// the documented equivalence is compiled rather than claimed. +mod bal_flow { + use super::*; + use alloy_primitives::TxKind; + use evm2::evm::{Bal, BlockAccessIndex}; + use std::sync::Arc; + + const SENDER: Address = Address::repeat_byte(0x11); + const TARGET: Address = Address::repeat_byte(0xc0); + + /// PUSH1 1, PUSH0, SSTORE. + const CODE: &[u8] = &[0x60, 0x01, 0x5f, 0x55]; + + fn evm() -> Evm<'static, BaseEvmTypes> { + let mut db = InMemoryDB::default(); + db.insert_account_info( + &SENDER, + AccountInfo { + balance: U256::from(10u64).pow(U256::from(18)), + ..Default::default() + }, + ); + db.insert_account_info( + &TARGET, + AccountInfo::default() + .with_code(Bytecode::new_raw_checked(Bytes::from_static(CODE)).unwrap()), + ); + Evm::new_with_execution_config( + ExecutionConfig::for_spec_and_version(SpecId::OSAKA, Version::new(SpecId::OSAKA)), + SpecId::OSAKA, + BlockEnvExt::default(), + ethereum_tx_registry(SpecId::OSAKA), + db, + Precompiles::base(SpecId::OSAKA), + ) + } + + fn call() -> Recovered { + let envelope = alloy_consensus::TxLegacy { + chain_id: Some(1), + gas_limit: 200_000, + gas_price: 0, + to: TxKind::Call(TARGET), + value: U256::ZERO, + ..Default::default() + }; + let signed = alloy_consensus::Signed::new_unchecked( + envelope, + alloy_primitives::Signature::test_signature(), + Default::default(), + ); + let encoded = alloy_eips::eip2718::Encodable2718::encoded_2718(&signed); + let decoded = EthereumTxEnvelope::::decode_2718(&mut &encoded[..]).unwrap(); + Recovered::new_unchecked(TxEnvelope::from(decoded), SENDER) + } + + #[test] + fn builds_then_attaches() { + // BUILD + let mut proposer = evm(); + proposer.state_mut().enable_bal_builder(); + proposer.state_mut().set_bal_index(BlockAccessIndex(1)); + let _ = proposer.transact(&call()).unwrap().commit(); + let bal = proposer.state_mut().take_bal_builder().unwrap(); + assert!(bal.accounts.contains_key(&TARGET), "{bal}"); + + // VALIDATE + let mut validator = evm(); + validator.state_mut().set_bal(Arc::new(bal)); + validator.state_mut().set_bal_index(BlockAccessIndex(1)); + assert!(validator.call_tx(&call()).is_ok()); + + // An uncovered read is refused rather than served. + let mut strict = evm(); + strict.state_mut().set_bal(Arc::new(Bal::new())); + strict.state_mut().set_allow_bal_db_fallback(false); + assert!(strict.call_tx(&call()).is_err()); + + // Fallback lets it through. + let mut lenient = evm(); + lenient.state_mut().set_bal(Arc::new(Bal::new())); + lenient.state_mut().set_allow_bal_db_fallback(true); + assert!(lenient.call_tx(&call()).is_ok()); + } +} + +/// The system addresses and limits the binding publishes. +/// +/// `src/evm/System.ts` carries these as literals, because a constant is a value +/// rather than something the ABI can carry. That makes them a hand-copy, so they +/// are pinned here: an upstream change fails this rather than silently shipping a +/// wrong address. +mod system_constants { + use evm2::evm::{ + BEACON_ROOTS_ADDRESS, BUILDER_DEPOSIT_REQUEST_ADDRESS, BUILDER_EXIT_REQUEST_ADDRESS, + CONSOLIDATION_REQUEST_ADDRESS, HISTORY_STORAGE_ADDRESS, SYSTEM_ADDRESS, + SYSTEM_CALL_GAS_LIMIT, SYSTEM_MAX_SSTORES_PER_CALL, WITHDRAWAL_REQUEST_ADDRESS, + }; + + /// Lowercased, matching how the binding publishes an address. + fn address(value: alloy_primitives::Address) -> String { + format!("{value:?}").to_lowercase() + } + + #[test] + fn match_what_the_binding_publishes() { + // Update `src/evm/System.ts` when one of these fails. + assert_eq!(address(SYSTEM_ADDRESS), "0xfffffffffffffffffffffffffffffffffffffffe"); + assert_eq!(address(BEACON_ROOTS_ADDRESS), "0x000f3df6d732807ef1319fb7b8bb8522d0beac02"); + assert_eq!(address(HISTORY_STORAGE_ADDRESS), "0x0000f90827f1c53a10cb7a02335b175320002935"); + assert_eq!( + address(WITHDRAWAL_REQUEST_ADDRESS), + "0x00000961ef480eb55e80d19ad83579a64c007002" + ); + assert_eq!( + address(CONSOLIDATION_REQUEST_ADDRESS), + "0x0000bbddc7ce488642fb579f8b00f3a590007251" + ); + assert_eq!( + address(BUILDER_DEPOSIT_REQUEST_ADDRESS), + "0x0000bff46984e3725691fa540a8c7589300d8282" + ); + assert_eq!( + address(BUILDER_EXIT_REQUEST_ADDRESS), + "0x000064d678505ad48f8ccb093bc65613800e8282" + ); + assert_eq!(SYSTEM_CALL_GAS_LIMIT, 30_000_000); + assert_eq!(SYSTEM_MAX_SSTORES_PER_CALL, 16); + } +} diff --git a/wasm/toolchain.json b/wasm/toolchain.json index 6ae07d49..f2c894b4 100644 --- a/wasm/toolchain.json +++ b/wasm/toolchain.json @@ -22,5 +22,11 @@ } } }, - "binaryen": "123" + "binaryen": "123", + "rust": { + "$comment": "rustc output is not byte-identical across host platforms, unlike the wasi-sdk clang. The evm2 adapter therefore compiles inside this exact image so the artifact is a function of the image, the lockfile, and the source. `rust-toolchain.toml` pins the channel inside it.", + "image": "rust:1.97.0", + "digest": "sha256:b92b8c8574f8f3b207fcb0912fb3e2de4041580b5934d90312d53938c9a038a9", + "platform": "linux/amd64" + } }