TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019bab3b-aa09-7136-8249-3b5f5266a02c

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:06 AM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
38233 artifact.fetch complete 1 / 3 3 months ago
38234 proxy.resolve complete 1 / 3 3 months ago
38235 tool.cast_disasm complete 1 / 3 3 months ago
38236 analysis.bundle complete 1 / 3 3 months ago
38237 capability.graph complete 1 / 3 3 months ago
38238 detector.run complete 1 / 3 3 months ago
38239 validation.fork complete 1 / 3 3 months ago
38913 report.consolidate complete 1 / 6 3 months ago
38914 tool.slither complete 1 / 2 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
1
Solc
0.8.21 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-mjpjqk_1)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-mjpjqk_1)

BoringVault.enter(address,ERC20,uint256,address,uint256) (src/base/BoringVault.sol#74-85) uses arbitrary from in transferFrom: asset.safeTransferFrom(from,address(this),assetAmount) (src/base/BoringVault.sol#79)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#arbitrary-from-in-transferfrom

FixedPointMathLib.rpow(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#71-158) performs a multiplication on the result of a division:
	- x = xxRound_rpow_asm_0 / scalar (lib/solmate/src/utils/FixedPointMathLib.sol#129)
	- zx_rpow_asm_0 = z * x (lib/solmate/src/utils/FixedPointMathLib.sol#134)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply

Auth.transferOwnership(address).newOwner (lib/solmate/src/auth/Auth.sol#48) lacks a zero-check on :
		- owner = newOwner (lib/solmate/src/auth/Auth.sol#49)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation

ERC20.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (lib/solmate/src/tokens/ERC20.sol#116-160) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(deadline >= block.timestamp,PERMIT_DEADLINE_EXPIRED) (lib/solmate/src/tokens/ERC20.sol#125)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp

LowLevelCall.callNoReturn(address,uint256,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#19-23) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#20-22)
LowLevelCall.callReturn64Bytes(address,uint256,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#38-48) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#43-47)
LowLevelCall.staticcallNoReturn(address,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#51-55) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#52-54)
LowLevelCall.staticcallReturn64Bytes(address,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#62-71) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#66-70)
LowLevelCall.delegatecallNoReturn(address,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#74-78) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#75-77)
LowLevelCall.delegatecallReturn64Bytes(address,bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#85-94) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#89-93)
LowLevelCall.returnDataSize() (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#97-101) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#98-100)
LowLevelCall.returnData() (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#104-111) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#105-110)
LowLevelCall.bubbleRevert() (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#114-120) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#115-119)
LowLevelCall.bubbleRevert(bytes) (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#122-126) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#123-125)
FixedPointMathLib.mulDivDown(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#36-51) uses assembly
	- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#42-50)
FixedPointMathLib.mulDivUp(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#53-69) uses assembly
	- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#59-68)
FixedPointMathLib.rpow(uint256,uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#71-158) uses assembly
	- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#77-157)
FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses assembly
	- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#166-226)
FixedPointMathLib.unsafeMod(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#229-236) uses assembly
	- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#231-235)
FixedPointMathLib.unsafeDiv(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#238-245) uses assembly
	- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#240-244)
FixedPointMathLib.unsafeDivUp(uint256,uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#247-254) uses assembly
	- INLINE ASM (lib/solmate/src/utils/FixedPointMathLib.sol#249-253)
SafeTransferLib.safeTransferETH(address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#15-25) uses assembly
	- INLINE ASM (lib/solmate/src/utils/SafeTransferLib.sol#19-22)
SafeTransferLib.safeTransferFrom(ERC20,address,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#31-63) uses assembly
	- INLINE ASM (lib/solmate/src/utils/SafeTransferLib.sol#40-60)
SafeTransferLib.safeTransfer(ERC20,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#65-95) uses assembly
	- INLINE ASM (lib/solmate/src/utils/SafeTransferLib.sol#73-92)
SafeTransferLib.safeApprove(ERC20,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#97-127) uses assembly
	- INLINE ASM (lib/solmate/src/utils/SafeTransferLib.sol#105-124)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

6 different versions of Solidity are used:
	- Version constraint >=0.6.2 is used by:
		->=0.6.2 (lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol#4)
	- Version constraint ^0.8.20 is used by:
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Errors.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol#4)
	- Version constraint >=0.5.0 is used by:
		->=0.5.0 (lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol#4)
	- Version constraint >=0.4.16 is used by:
		->=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
	- Version constraint >=0.8.0 is used by:
		->=0.8.0 (lib/solmate/src/auth/Auth.sol#2)
		->=0.8.0 (lib/solmate/src/tokens/ERC20.sol#2)
		->=0.8.0 (lib/solmate/src/utils/FixedPointMathLib.sol#2)
		->=0.8.0 (lib/solmate/src/utils/SafeTransferLib.sol#2)
	- Version constraint 0.8.21 is used by:
		-0.8.21 (src/base/BoringVault.sol#2)
		-0.8.21 (src/interfaces/BeforeTransferHook.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

Version constraint >=0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- NestedCalldataArrayAbiReencodingSizeValidation
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- MissingEscapingInFormatting
	- ArraySliceDynamicallyEncodedBaseType
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow.
It is used by:
	- >=0.6.2 (lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol#4)
Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- VerbatimInvalidDeduplication
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess.
It is used by:
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Errors.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol#4)
Version constraint >=0.5.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- DirtyBytesArrayToStorage
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow
	- privateCanBeOverridden
	- SignedArrayStorageCopy
	- ABIEncoderV2StorageArrayWithMultiSlotElement
	- DynamicConstructorArgumentsClippedABIV2
	- UninitializedFunctionPointerInConstructor
	- IncorrectEventSignatureInLibraries
	- ABIEncoderV2PackedStorage.
It is used by:
	- >=0.5.0 (lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol#4)
Version constraint >=0.4.16 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- DirtyBytesArrayToStorage
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow
	- privateCanBeOverridden
	- SignedArrayStorageCopy
	- ABIEncoderV2StorageArrayWithMultiSlotElement
	- DynamicConstructorArgumentsClippedABIV2
	- UninitializedFunctionPointerInConstructor_0.4.x
	- IncorrectEventSignatureInLibraries_0.4.x
	- ExpExponentCleanup
	- NestedArrayFunctionCallDecoder
	- ZeroFunctionSelector.
It is used by:
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
Version constraint >=0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching.
It is used by:
	- >=0.8.0 (lib/solmate/src/auth/Auth.sol#2)
	- >=0.8.0 (lib/solmate/src/tokens/ERC20.sol#2)
	- >=0.8.0 (lib/solmate/src/utils/FixedPointMathLib.sol#2)
	- >=0.8.0 (lib/solmate/src/utils/SafeTransferLib.sol#2)
Version constraint 0.8.21 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- VerbatimInvalidDeduplication.
It is used by:
	- 0.8.21 (src/base/BoringVault.sol#2)
	- 0.8.21 (src/interfaces/BeforeTransferHook.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Function ERC20.DOMAIN_SEPARATOR() (lib/solmate/src/tokens/ERC20.sol#162-164) is not in mixedCase
Variable ERC20.INITIAL_CHAIN_ID (lib/solmate/src/tokens/ERC20.sol#41) is not in mixedCase
Variable ERC20.INITIAL_DOMAIN_SEPARATOR (lib/solmate/src/tokens/ERC20.sol#43) is not in mixedCase
Parameter BoringVault.setBeforeTransferHook(address)._hook (src/base/BoringVault.sol#113) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:
	- ! y_sqrt_asm_0 < 0x10000000000000000000000000000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#176-179)
FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:
	- ! y_sqrt_asm_0 < 0x1000000000000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#180-183)
FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:
	- ! y_sqrt_asm_0 < 0x10000000000 (lib/solmate/src/utils/FixedPointMathLib.sol#184-187)
FixedPointMathLib.sqrt(uint256) (lib/solmate/src/utils/FixedPointMathLib.sol#164-227) uses literals with too many digits:
	- ! y_sqrt_asm_0 < 0x1000000 (lib/solmate/src/utils/FixedPointMathLib.sol#188-191)
SafeTransferLib.safeTransferFrom(ERC20,address,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#31-63) uses literals with too many digits:
	- mstore(uint256,uint256)(freeMemoryPointer_safeTransferFrom_asm_0,0x23b872dd00000000000000000000000000000000000000000000000000000000) (lib/solmate/src/utils/SafeTransferLib.sol#45)
SafeTransferLib.safeTransfer(ERC20,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#65-95) uses literals with too many digits:
	- mstore(uint256,uint256)(freeMemoryPointer_safeTransfer_asm_0,0xa9059cbb00000000000000000000000000000000000000000000000000000000) (lib/solmate/src/utils/SafeTransferLib.sol#78)
SafeTransferLib.safeApprove(ERC20,address,uint256) (lib/solmate/src/utils/SafeTransferLib.sol#97-127) uses literals with too many digits:
	- mstore(uint256,uint256)(freeMemoryPointer_safeApprove_asm_0,0x095ea7b300000000000000000000000000000000000000000000000000000000) (lib/solmate/src/utils/SafeTransferLib.sol#110)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits
. analyzed (16 contracts with 100 detectors), 43 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.8.21",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.8.21",
        "install_stderr": null,
        "install_stdout": "Installing solc '0.8.21'...\nVersion '0.8.21' installed."
    },
    "solc_args": "--base-path /tmp/slither-mjpjqk_1 --include-path /tmp/slither-mjpjqk_1/lib --include-path /tmp/slither-mjpjqk_1/lib/solmate --include-path /tmp/slither-mjpjqk_1/lib/openzeppelin-contracts --allow-paths /tmp/slither-mjpjqk_1,/tmp/slither-mjpjqk_1/lib,/tmp/slither-mjpjqk_1/lib/openzeppelin-contracts,/tmp/slither-mjpjqk_1/lib/solmate,/tmp/slither-mjpjqk_1/src",
    "remappings": [
        "@solmate/=lib/solmate/src/",
        "@forge-std/=lib/forge-std/src/",
        "@ds-test/=lib/forge-std/lib/ds-test/src/",
        "ds-test/=lib/forge-std/lib/ds-test/src/",
        "@openzeppelin/=lib/openzeppelin-contracts/",
        "@ccip/=lib/ccip/",
        "@oapp-auth/=lib/OAppAuth/src/",
        "@devtools-oapp-evm/=lib/OAppAuth/lib/devtools/packages/oapp-evm/contracts/oapp/",
        "@layerzerolabs/lz-evm-messagelib-v2/=lib/OAppAuth/node_modules/@layerzerolabs/lz-evm-messagelib-v2/",
        "@layerzerolabs/lz-evm-protocol-v2/=lib/OAppAuth/lib/LayerZero-V2/packages/layerzero-v2/evm/protocol/",
        "@layerzerolabs/oapp-evm/=lib/OAppAuth/lib/devtools/packages/oapp-evm/",
        "@lz-oapp-evm/=lib/OAppAuth/lib/LayerZero-V2/packages/layerzero-v2/evm/oapp/contracts/oapp/",
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
        "LayerZero-V2/=lib/OAppAuth/lib/",
        "OAppAuth/=lib/OAppAuth/",
        "ccip/=lib/ccip/contracts/",
        "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
        "forge-std/=lib/forge-std/src/",
        "halmos-cheatcodes/=lib/OAppAuth/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "solidity-bytes-utils/=lib/OAppAuth/node_modules/solidity-bytes-utils/",
        "solmate/=lib/solmate/",
        "src/=src/"
    ],
    "source_files": [
        "src/base/BoringVault.sol",
        "lib/openzeppelin-contracts/contracts/utils/Address.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol",
        "lib/solmate/src/utils/FixedPointMathLib.sol",
        "lib/solmate/src/utils/SafeTransferLib.sol",
        "lib/solmate/src/tokens/ERC20.sol",
        "src/interfaces/BeforeTransferHook.sol",
        "lib/solmate/src/auth/Auth.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol",
        "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol",
        "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 43,
    "workspace_hash": "10e946ad9d316b92f3566590a7b346b2748dc89829e7c52f551892da9d1422e2",
    "duration_seconds": 1.0743212699890137,
    "solc_version_requested": "0.8.21"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
0
No findings?
yes
Summary
Reviewed first-party sources in AUDIT_BUNDLE.txt and did not identify exploitable vulnerabilities within the specified focus areas given the existing requiresAuth gating.
View stdout
{"no_findings":true,"summary":"Reviewed first-party sources in AUDIT_BUNDLE.txt and did not identify exploitable vulnerabilities within the specified focus areas given the existing requiresAuth gating.","findings":[]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-8tv2qahx
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bab4b-c6bf-79a3-8b2c-5ed6f0c94981
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Reading AUDIT_BUNDLE.txt**
exec
/bin/bash -lc ls in /tmp/codex-8tv2qahx succeeded in 7ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
lib
src
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-8tv2qahx succeeded in 16ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: src/base/BoringVault.sol
================================================================================
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.21;

import {Address} from "@openzeppelin/contracts/utils/Address.sol";
import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";
import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";
import {FixedPointMathLib} from "@solmate/utils/FixedPointMathLib.sol";
import {SafeTransferLib} from "@solmate/utils/SafeTransferLib.sol";
import {ERC20} from "@solmate/tokens/ERC20.sol";
import {BeforeTransferHook} from "src/interfaces/BeforeTransferHook.sol";
import {Auth, Authority} from "@solmate/auth/Auth.sol";

contract BoringVault is ERC20, Auth, ERC721Holder, ERC1155Holder {
    using Address for address;

thinking
**Analyzing reentrancy and access control risks**

I'm checking for reentrancy vulnerabilities around token transfers and hooks, considering ERC777 callbacks and the use of requiresAuth for sensitive actions. The access control appears robust, mitigating typical risks, though potential recursion in hooks if set maliciously is possible but not a vulnerability since the owner controls it. Management functions may revert on mismatched input lengths but don't pose security issues. Overall, no critical vulnerabilities stand out here, so I'll prepare a JSON output reflecting no findings and a brief summary.
codex
{"no_findings":true,"summary":"Reviewed first-party sources in AUDIT_BUNDLE.txt and did not identify exploitable vulnerabilities within the specified focus areas given the existing requiresAuth gating.","findings":[]}
tokens used
6,615
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T04:24:06.309669+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 13,
        "import_count": 14,
        "first_party_contracts_count": 2
    },
    "summary": "Reviewed first-party sources in AUDIT_BUNDLE.txt and did not identify exploitable vulnerabilities within the specified focus areas given the existing requiresAuth gating.",
    "raw_final": {
        "summary": "Reviewed first-party sources in AUDIT_BUNDLE.txt and did not identify exploitable vulnerabilities within the specified focus areas given the existing requiresAuth gating.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
2
CALL-family (heavy)
9
EXT*/BALANCE
4
Total opcodes
5161
Flags
create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x017e
0000000c: JUMPI
0000000d: PUSH0
0000000e: CALLDATALOAD
0000000f: PUSH1 0xe0
00000011: SHR
00000012: DUP1
00000013: PUSH4 0x7ecebe00
00000018: GT
00000019: PUSH2 0x00cd
0000001c: JUMPI
0000001d: DUP1
0000001e: PUSH4 0xbc197c81
00000023: GT
00000024: PUSH2 0x0087
00000027: JUMPI
00000028: DUP1
00000029: PUSH4 0xdd62ed3e
0000002e: GT
0000002f: PUSH2 0x0062
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0xdd62ed3e
00000039: EQ
0000003a: PUSH2 0x04cd
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0xf23a6e61
00000044: EQ
00000045: PUSH2 0x0503
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0xf2fde38b
0000004f: EQ
00000050: PUSH2 0x052e
00000053: JUMPI
00000054: DUP1
00000055: PUSH4 0xf6e715d0
0000005a: EQ
0000005b: PUSH2 0x054d
0000005e: JUMPI
0000005f: PUSH0
00000060: DUP1
00000061: REVERT
00000062: JUMPDEST
00000063: DUP1
00000064: PUSH4 0xbc197c81
00000069: EQ
0000006a: PUSH2 0x0464
0000006d: JUMPI
0000006e: DUP1
0000006f: PUSH4 0xbf7e214f
00000074: EQ
00000075: PUSH2 0x048f
00000078: JUMPI
00000079: DUP1
0000007a: PUSH4 0xd505accf
0000007f: EQ
00000080: PUSH2 0x04ae
00000083: JUMPI
00000084: PUSH0
00000085: DUP1
00000086: REVERT
00000087: JUMPDEST
00000088: DUP1
00000089: PUSH4 0x7ecebe00
0000008e: EQ
0000008f: PUSH2 0x0391
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0x7f5a7c7b
00000099: EQ
0000009a: PUSH2 0x03bc
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0x8929565f
000000a4: EQ
000000a5: PUSH2 0x03f3
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0x8da5cb5b
000000af: EQ
000000b0: PUSH2 0x0412
000000b3: JUMPI
000000b4: DUP1
000000b5: PUSH4 0x95d89b41
000000ba: EQ
000000bb: PUSH2 0x0431
000000be: JUMPI
000000bf: DUP1
000000c0: PUSH4 0xa9059cbb
000000c5: EQ
000000c6: PUSH2 0x0445
000000c9: JUMPI
000000ca: PUSH0
000000cb: DUP1
000000cc: REVERT
000000cd: JUMPDEST
000000ce: DUP1
000000cf: PUSH4 0x224d8703
000000d4: GT
000000d5: PUSH2 0x0138
000000d8: JUMPI
000000d9: DUP1
000000da: PUSH4 0x3644e515
000000df: GT
000000e0: PUSH2 0x0113
000000e3: JUMPI
000000e4: DUP1
000000e5: PUSH4 0x3644e515
000000ea: EQ
000000eb: PUSH2 0x0314
000000ee: JUMPI
000000ef: DUP1
000000f0: PUSH4 0x39d6ba32
000000f5: EQ
000000f6: PUSH2 0x0328
000000f9: JUMPI
000000fa: DUP1
000000fb: PUSH4 0x70a08231
00000100: EQ
00000101: PUSH2 0x0347
00000104: JUMPI
00000105: DUP1
00000106: PUSH4 0x7a9e5e4b
0000010b: EQ
0000010c: PUSH2 0x0372
0000010f: JUMPI
00000110: PUSH0
00000111: DUP1
00000112: REVERT
00000113: JUMPDEST
00000114: DUP1
00000115: PUSH4 0x224d8703
0000011a: EQ
0000011b: PUSH2 0x0284
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x23b872dd
00000125: EQ
00000126: PUSH2 0x02b0
00000129: JUMPI
0000012a: DUP1
0000012b: PUSH4 0x313ce567
00000130: EQ
00000131: PUSH2 0x02cf
00000134: JUMPI
00000135: PUSH0
00000136: DUP1
00000137: REVERT
00000138: JUMPDEST
00000139: DUP1
0000013a: PUSH4 0x01ffc9a7
0000013f: EQ
00000140: PUSH2 0x0189
00000143: JUMPI
00000144: DUP1
00000145: PUSH4 0x06fdde03
0000014a: EQ
0000014b: PUSH2 0x01bd
0000014e: JUMPI
0000014f: DUP1
00000150: PUSH4 0x095ea7b3
00000155: EQ
00000156: PUSH2 0x01de
00000159: JUMPI
0000015a: DUP1
0000015b: PUSH4 0x150b7a02
00000160: EQ
00000161: PUSH2 0x01fd
00000164: JUMPI
00000165: DUP1
00000166: PUSH4 0x18160ddd
0000016b: EQ
0000016c: PUSH2 0x0240
0000016f: JUMPI
00000170: DUP1
00000171: PUSH4 0x18457e61
00000176: EQ
00000177: PUSH2 0x0263
0000017a: JUMPI
0000017b: PUSH0
0000017c: DUP1
0000017d: REVERT
0000017e: JUMPDEST
0000017f: CALLDATASIZE
00000180: PUSH2 0x0185
00000183: JUMPI
00000184: STOP
00000185: JUMPDEST
00000186: PUSH0
00000187: DUP1
00000188: REVERT
00000189: JUMPDEST
0000018a: CALLVALUE
0000018b: DUP1
0000018c: ISZERO
0000018d: PUSH2 0x0194
00000190: JUMPI
00000191: PUSH0
00000192: DUP1
00000193: REVERT
00000194: JUMPDEST
00000195: POP
00000196: PUSH2 0x01a8
00000199: PUSH2 0x01a3
0000019c: CALLDATASIZE
0000019d: PUSH1 0x04
0000019f: PUSH2 0x147e
000001a2: JUMP
000001a3: JUMPDEST
000001a4: PUSH2 0x056c
000001a7: JUMP
000001a8: JUMPDEST
000001a9: PUSH1 0x40
000001ab: MLOAD
000001ac: SWAP1
000001ad: ISZERO
000001ae: ISZERO
000001af: DUP2
000001b0: MSTORE
000001b1: PUSH1 0x20
000001b3: ADD
000001b4: JUMPDEST
000001b5: PUSH1 0x40
000001b7: MLOAD
000001b8: DUP1
000001b9: SWAP2
000001ba: SUB
000001bb: SWAP1
000001bc: RETURN
000001bd: JUMPDEST
000001be: CALLVALUE
000001bf: DUP1
000001c0: ISZERO
000001c1: PUSH2 0x01c8
000001c4: JUMPI
000001c5: PUSH0
000001c6: DUP1
000001c7: REVERT
000001c8: JUMPDEST
000001c9: POP
000001ca: PUSH2 0x01d1
000001cd: PUSH2 0x05a2
000001d0: JUMP
000001d1: JUMPDEST
000001d2: PUSH1 0x40
000001d4: MLOAD
000001d5: PUSH2 0x01b4
000001d8: SWAP2
000001d9: SWAP1
000001da: PUSH2 0x14f2
000001dd: JUMP
000001de: JUMPDEST
000001df: CALLVALUE
000001e0: DUP1
000001e1: ISZERO
000001e2: PUSH2 0x01e9
000001e5: JUMPI
000001e6: PUSH0
000001e7: DUP1
000001e8: REVERT
000001e9: JUMPDEST
000001ea: POP
000001eb: PUSH2 0x01a8
000001ee: PUSH2 0x01f8
000001f1: CALLDATASIZE
000001f2: PUSH1 0x04
000001f4: PUSH2 0x1518
000001f7: JUMP
000001f8: JUMPDEST
000001f9: PUSH2 0x062d
000001fc: JUMP
000001fd: JUMPDEST
000001fe: CALLVALUE
000001ff: DUP1
00000200: ISZERO
00000201: PUSH2 0x0208
00000204: JUMPI
00000205: PUSH0
00000206: DUP1
00000207: REVERT
00000208: JUMPDEST
00000209: POP
0000020a: PUSH2 0x0227
0000020d: PUSH2 0x0217
00000210: CALLDATASIZE
00000211: PUSH1 0x04
00000213: PUSH2 0x15f3
00000216: JUMP
00000217: JUMPDEST
00000218: PUSH4 0x0a85bd01
0000021d: PUSH1 0xe1
0000021f: SHL
00000220: SWAP5
00000221: SWAP4
00000222: POP
00000223: POP
00000224: POP
00000225: POP
00000226: JUMP
00000227: JUMPDEST
00000228: PUSH1 0x40
0000022a: MLOAD
0000022b: PUSH1 0x01
0000022d: PUSH1 0x01
0000022f: PUSH1 0xe0
00000231: SHL
00000232: SUB
00000233: NOT
00000234: SWAP1
00000235: SWAP2
00000236: AND
00000237: DUP2
00000238: MSTORE
00000239: PUSH1 0x20
0000023b: ADD
0000023c: PUSH2 0x01b4
0000023f: JUMP
00000240: JUMPDEST
00000241: CALLVALUE
00000242: DUP1
00000243: ISZERO
00000244: PUSH2 0x024b
00000247: JUMPI
00000248: PUSH0
00000249: DUP1
0000024a: REVERT
0000024b: JUMPDEST
0000024c: POP
0000024d: PUSH2 0x0255
00000250: PUSH1 0x02
00000252: SLOAD
00000253: DUP2
00000254: JUMP
00000255: JUMPDEST
00000256: PUSH1 0x40
00000258: MLOAD
00000259: SWAP1
0000025a: DUP2
0000025b: MSTORE
0000025c: PUSH1 0x20
0000025e: ADD
0000025f: PUSH2 0x01b4
00000262: JUMP
00000263: JUMPDEST
00000264: CALLVALUE
00000265: DUP1
00000266: ISZERO
00000267: PUSH2 0x026e
0000026a: JUMPI
0000026b: PUSH0
0000026c: DUP1
0000026d: REVERT
0000026e: JUMPDEST
0000026f: POP
00000270: PUSH2 0x0282
00000273: PUSH2 0x027d
00000276: CALLDATASIZE
00000277: PUSH1 0x04
00000279: PUSH2 0x165b
0000027c: JUMP
0000027d: JUMPDEST
0000027e: PUSH2 0x0698
00000281: JUMP
00000282: JUMPDEST
00000283: STOP
00000284: JUMPDEST
00000285: CALLVALUE
00000286: DUP1
00000287: ISZERO
00000288: PUSH2 0x028f
0000028b: JUMPI
0000028c: PUSH0
0000028d: DUP1
0000028e: REVERT
0000028f: JUMPDEST
00000290: POP
00000291: PUSH2 0x02a3
00000294: PUSH2 0x029e
00000297: CALLDATASIZE
00000298: PUSH1 0x04
0000029a: PUSH2 0x16fa
0000029d: JUMP
0000029e: JUMPDEST
0000029f: PUSH2 0x075d
000002a2: JUMP
000002a3: JUMPDEST
000002a4: PUSH1 0x40
000002a6: MLOAD
000002a7: PUSH2 0x01b4
000002aa: SWAP2
000002ab: SWAP1
000002ac: PUSH2 0x178d
000002af: JUMP
000002b0: JUMPDEST
000002b1: CALLVALUE
000002b2: DUP1
000002b3: ISZERO
000002b4: PUSH2 0x02bb
000002b7: JUMPI
000002b8: PUSH0
000002b9: DUP1
000002ba: REVERT
000002bb: JUMPDEST
000002bc: POP
000002bd: PUSH2 0x01a8
000002c0: PUSH2 0x02ca
000002c3: CALLDATASIZE
000002c4: PUSH1 0x04
000002c6: PUSH2 0x17ed
000002c9: JUMP
000002ca: JUMPDEST
000002cb: PUSH2 0x08d1
000002ce: JUMP
000002cf: JUMPDEST
000002d0: CALLVALUE
000002d1: DUP1
000002d2: ISZERO
000002d3: PUSH2 0x02da
000002d6: JUMPI
000002d7: PUSH0
000002d8: DUP1
000002d9: REVERT
000002da: JUMPDEST
000002db: POP
000002dc: PUSH2 0x0302
000002df: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000012
00000300: DUP2
00000301: JUMP
00000302: JUMPDEST
00000303: PUSH1 0x40
00000305: MLOAD
00000306: PUSH1 0xff
00000308: SWAP1
00000309: SWAP2
0000030a: AND
0000030b: DUP2
0000030c: MSTORE
0000030d: PUSH1 0x20
0000030f: ADD
00000310: PUSH2 0x01b4
00000313: JUMP
00000314: JUMPDEST
00000315: CALLVALUE
00000316: DUP1
00000317: ISZERO
00000318: PUSH2 0x031f
0000031b: JUMPI
0000031c: PUSH0
0000031d: DUP1
0000031e: REVERT
0000031f: JUMPDEST
00000320: POP
00000321: PUSH2 0x0255
00000324: PUSH2 0x08f1
00000327: JUMP
00000328: JUMPDEST
00000329: CALLVALUE
0000032a: DUP1
0000032b: ISZERO
0000032c: PUSH2 0x0333
0000032f: JUMPI
00000330: PUSH0
00000331: DUP1
00000332: REVERT
00000333: JUMPDEST
00000334: POP
00000335: PUSH2 0x0282
00000338: PUSH2 0x0342
0000033b: CALLDATASIZE
0000033c: PUSH1 0x04
0000033e: PUSH2 0x165b
00000341: JUMP
00000342: JUMPDEST
00000343: PUSH2 0x094b
00000346: JUMP
00000347: JUMPDEST
00000348: CALLVALUE
00000349: DUP1
0000034a: ISZERO
0000034b: PUSH2 0x0352
0000034e: JUMPI
0000034f: PUSH0
00000350: DUP1
00000351: REVERT
00000352: JUMPDEST
00000353: POP
00000354: PUSH2 0x0255
00000357: PUSH2 0x0361
0000035a: CALLDATASIZE
0000035b: PUSH1 0x04
0000035d: PUSH2 0x182b
00000360: JUMP
00000361: JUMPDEST
00000362: PUSH1 0x03
00000364: PUSH1 0x20
00000366: MSTORE
00000367: PUSH0
00000368: SWAP1
00000369: DUP2
0000036a: MSTORE
0000036b: PUSH1 0x40
0000036d: SWAP1
0000036e: KECCAK256
0000036f: SLOAD
00000370: DUP2
00000371: JUMP
00000372: JUMPDEST
00000373: CALLVALUE
00000374: DUP1
00000375: ISZERO
00000376: PUSH2 0x037d
00000379: JUMPI
0000037a: PUSH0
0000037b: DUP1
0000037c: REVERT
0000037d: JUMPDEST
0000037e: POP
0000037f: PUSH2 0x0282
00000382: PUSH2 0x038c
00000385: CALLDATASIZE
00000386: PUSH1 0x04
00000388: PUSH2 0x182b
0000038b: JUMP
0000038c: JUMPDEST
0000038d: PUSH2 0x09f9
00000390: JUMP
00000391: JUMPDEST
00000392: CALLVALUE
00000393: DUP1
00000394: ISZERO
00000395: PUSH2 0x039c
00000398: JUMPI
00000399: PUSH0
0000039a: DUP1
0000039b: REVERT
0000039c: JUMPDEST
0000039d: POP
0000039e: PUSH2 0x0255
000003a1: PUSH2 0x03ab
000003a4: CALLDATASIZE
000003a5: PUSH1 0x04
000003a7: PUSH2 0x182b
000003aa: JUMP
000003ab: JUMPDEST
000003ac: PUSH1 0x05
000003ae: PUSH1 0x20
000003b0: MSTORE
000003b1: PUSH0
000003b2: SWAP1
000003b3: DUP2
000003b4: MSTORE
000003b5: PUSH1 0x40
000003b7: SWAP1
000003b8: KECCAK256
000003b9: SLOAD
000003ba: DUP2
000003bb: JUMP
000003bc: JUMPDEST
000003bd: CALLVALUE
000003be: DUP1
000003bf: ISZERO
000003c0: PUSH2 0x03c7
000003c3: JUMPI
000003c4: PUSH0
000003c5: DUP1
000003c6: REVERT
000003c7: JUMPDEST
000003c8: POP
000003c9: PUSH1 0x08
000003cb: SLOAD
000003cc: PUSH2 0x03db
000003cf: SWAP1
000003d0: PUSH1 0x01
000003d2: PUSH1 0x01
000003d4: PUSH1 0xa0
000003d6: SHL
000003d7: SUB
000003d8: AND
000003d9: DUP2
000003da: JUMP
000003db: JUMPDEST
000003dc: PUSH1 0x40
000003de: MLOAD
000003df: PUSH1 0x01
000003e1: PUSH1 0x01
000003e3: PUSH1 0xa0
000003e5: SHL
000003e6: SUB
000003e7: SWAP1
000003e8: SWAP2
000003e9: AND
000003ea: DUP2
000003eb: MSTORE
000003ec: PUSH1 0x20
000003ee: ADD
000003ef: PUSH2 0x01b4
000003f2: JUMP
000003f3: JUMPDEST
000003f4: CALLVALUE
000003f5: DUP1
000003f6: ISZERO
000003f7: PUSH2 0x03fe
000003fa: JUMPI
000003fb: PUSH0
000003fc: DUP1
000003fd: REVERT
000003fe: JUMPDEST
000003ff: POP
00000400: PUSH2 0x0282
00000403: PUSH2 0x040d
00000406: CALLDATASIZE
00000407: PUSH1 0x04
00000409: PUSH2 0x182b
0000040c: JUMP
0000040d: JUMPDEST
0000040e: PUSH2 0x0ade
00000411: JUMP
00000412: JUMPDEST
00000413: CALLVALUE
00000414: DUP1
00000415: ISZERO
00000416: PUSH2 0x041d
00000419: JUMPI
0000041a: PUSH0
0000041b: DUP1
0000041c: REVERT
0000041d: JUMPDEST
0000041e: POP
0000041f: PUSH1 0x06
00000421: SLOAD
00000422: PUSH2 0x03db
00000425: SWAP1
00000426: PUSH1 0x01
00000428: PUSH1 0x01
0000042a: PUSH1 0xa0
0000042c: SHL
0000042d: SUB
0000042e: AND
0000042f: DUP2
00000430: JUMP
00000431: JUMPDEST
00000432: CALLVALUE
00000433: DUP1
00000434: ISZERO
00000435: PUSH2 0x043c
00000438: JUMPI
00000439: PUSH0
0000043a: DUP1
0000043b: REVERT
0000043c: JUMPDEST
0000043d: POP
0000043e: PUSH2 0x01d1
00000441: PUSH2 0x0b31
00000444: JUMP
00000445: JUMPDEST
00000446: CALLVALUE
00000447: DUP1
00000448: ISZERO
00000449: PUSH2 0x0450
0000044c: JUMPI
0000044d: PUSH0
0000044e: DUP1
0000044f: REVERT
00000450: JUMPDEST
00000451: POP
00000452: PUSH2 0x01a8
00000455: PUSH2 0x045f
00000458: CALLDATASIZE
00000459: PUSH1 0x04
0000045b: PUSH2 0x1518
0000045e: JUMP
0000045f: JUMPDEST
00000460: PUSH2 0x0b3e
00000463: JUMP
00000464: JUMPDEST
00000465: CALLVALUE
00000466: DUP1
00000467: ISZERO
00000468: PUSH2 0x046f
0000046b: JUMPI
0000046c: PUSH0
0000046d: DUP1
0000046e: REVERT
0000046f: JUMPDEST
00000470: POP
00000471: PUSH2 0x0227
00000474: PUSH2 0x047e
00000477: CALLDATASIZE
00000478: PUSH1 0x04
0000047a: PUSH2 0x18c3
0000047d: JUMP
0000047e: JUMPDEST
0000047f: PUSH4 0xbc197c81
00000484: PUSH1 0xe0
00000486: SHL
00000487: SWAP6
00000488: SWAP5
00000489: POP
0000048a: POP
0000048b: POP
0000048c: POP
0000048d: POP
0000048e: JUMP
0000048f: JUMPDEST
00000490: CALLVALUE
00000491: DUP1
00000492: ISZERO
00000493: PUSH2 0x049a
00000496: JUMPI
00000497: PUSH0
00000498: DUP1
00000499: REVERT
0000049a: JUMPDEST
0000049b: POP
0000049c: PUSH1 0x07
0000049e: SLOAD
0000049f: PUSH2 0x03db
000004a2: SWAP1
000004a3: PUSH1 0x01
000004a5: PUSH1 0x01
000004a7: PUSH1 0xa0
000004a9: SHL
000004aa: SUB
000004ab: AND
000004ac: DUP2
000004ad: JUMP
000004ae: JUMPDEST
000004af: CALLVALUE
000004b0: DUP1
000004b1: ISZERO
000004b2: PUSH2 0x04b9
000004b5: JUMPI
000004b6: PUSH0
000004b7: DUP1
000004b8: REVERT
000004b9: JUMPDEST
000004ba: POP
000004bb: PUSH2 0x0282
000004be: PUSH2 0x04c8
000004c1: CALLDATASIZE
000004c2: PUSH1 0x04
000004c4: PUSH2 0x196a
000004c7: JUMP
000004c8: JUMPDEST
000004c9: PUSH2 0x0b53
000004cc: JUMP
000004cd: JUMPDEST
000004ce: CALLVALUE
000004cf: DUP1
000004d0: ISZERO
000004d1: PUSH2 0x04d8
000004d4: JUMPI
000004d5: PUSH0
000004d6: DUP1
000004d7: REVERT
000004d8: JUMPDEST
000004d9: POP
000004da: PUSH2 0x0255
000004dd: PUSH2 0x04e7
000004e0: CALLDATASIZE
000004e1: PUSH1 0x04
000004e3: PUSH2 0x19db
000004e6: JUMP
000004e7: JUMPDEST
000004e8: PUSH1 0x04
000004ea: PUSH1 0x20
000004ec: SWAP1
000004ed: DUP2
000004ee: MSTORE
000004ef: PUSH0
000004f0: SWAP3
000004f1: DUP4
000004f2: MSTORE
000004f3: PUSH1 0x40
000004f5: DUP1
000004f6: DUP5
000004f7: KECCAK256
000004f8: SWAP1
000004f9: SWAP2
000004fa: MSTORE
000004fb: SWAP1
000004fc: DUP3
000004fd: MSTORE
000004fe: SWAP1
000004ff: KECCAK256
00000500: SLOAD
00000501: DUP2
00000502: JUMP
00000503: JUMPDEST
00000504: CALLVALUE
00000505: DUP1
00000506: ISZERO
00000507: PUSH2 0x050e
0000050a: JUMPI
0000050b: PUSH0
0000050c: DUP1
0000050d: REVERT
0000050e: JUMPDEST
0000050f: POP
00000510: PUSH2 0x0227
00000513: PUSH2 0x051d
00000516: CALLDATASIZE
00000517: PUSH1 0x04
00000519: PUSH2 0x1a12
0000051c: JUMP
0000051d: JUMPDEST
0000051e: PUSH4 0xf23a6e61
00000523: PUSH1 0xe0
00000525: SHL
00000526: SWAP6
00000527: SWAP5
00000528: POP
00000529: POP
0000052a: POP
0000052b: POP
0000052c: POP
0000052d: JUMP
0000052e: JUMPDEST
0000052f: CALLVALUE
00000530: DUP1
00000531: ISZERO
00000532: PUSH2 0x0539
00000535: JUMPI
00000536: PUSH0
00000537: DUP1
00000538: REVERT
00000539: JUMPDEST
0000053a: POP
0000053b: PUSH2 0x0282
0000053e: PUSH2 0x0548
00000541: CALLDATASIZE
00000542: PUSH1 0x04
00000544: PUSH2 0x182b
00000547: JUMP
00000548: JUMPDEST
00000549: PUSH2 0x0d91
0000054c: JUMP
0000054d: JUMPDEST
0000054e: CALLVALUE
0000054f: DUP1
00000550: ISZERO
00000551: PUSH2 0x0558
00000554: JUMPI
00000555: PUSH0
00000556: DUP1
00000557: REVERT
00000558: JUMPDEST
00000559: POP
0000055a: PUSH2 0x01d1
0000055d: PUSH2 0x0567
00000560: CALLDATASIZE
00000561: PUSH1 0x04
00000563: PUSH2 0x1a76
00000566: JUMP
00000567: JUMPDEST
00000568: PUSH2 0x0e0d
0000056b: JUMP
0000056c: JUMPDEST
0000056d: PUSH0
0000056e: PUSH1 0x01
00000570: PUSH1 0x01
00000572: PUSH1 0xe0
00000574: SHL
00000575: SUB
00000576: NOT
00000577: DUP3
00000578: AND
00000579: PUSH4 0x02711897
0000057e: PUSH1 0xe5
00000580: SHL
00000581: EQ
00000582: DUP1
00000583: PUSH2 0x059c
00000586: JUMPI
00000587: POP
00000588: PUSH4 0x01ffc9a7
0000058d: PUSH1 0xe0
0000058f: SHL
00000590: PUSH1 0x01
00000592: PUSH1 0x01
00000594: PUSH1 0xe0
00000596: SHL
00000597: SUB
00000598: NOT
00000599: DUP4
0000059a: AND
0000059b: EQ
0000059c: JUMPDEST
0000059d: SWAP3
0000059e: SWAP2
0000059f: POP
000005a0: POP
000005a1: JUMP
000005a2: JUMPDEST
000005a3: PUSH0
000005a4: DUP1
000005a5: SLOAD
000005a6: PUSH2 0x05ae
000005a9: SWAP1
000005aa: PUSH2 0x1afa
000005ad: JUMP
000005ae: JUMPDEST
000005af: DUP1
000005b0: PUSH1 0x1f
000005b2: ADD
000005b3: PUSH1 0x20
000005b5: DUP1
000005b6: SWAP2
000005b7: DIV
000005b8: MUL
000005b9: PUSH1 0x20
000005bb: ADD
000005bc: PUSH1 0x40
000005be: MLOAD
000005bf: SWAP1
000005c0: DUP2
000005c1: ADD
000005c2: PUSH1 0x40
000005c4: MSTORE
000005c5: DUP1
000005c6: SWAP3
000005c7: SWAP2
000005c8: SWAP1
000005c9: DUP2
000005ca: DUP2
000005cb: MSTORE
000005cc: PUSH1 0x20
000005ce: ADD
000005cf: DUP3
000005d0: DUP1
000005d1: SLOAD
000005d2: PUSH2 0x05da
000005d5: SWAP1
000005d6: PUSH2 0x1afa
000005d9: JUMP
000005da: JUMPDEST
000005db: DUP1
000005dc: ISZERO
000005dd: PUSH2 0x0625
000005e0: JUMPI
000005e1: DUP1
000005e2: PUSH1 0x1f
000005e4: LT
000005e5: PUSH2 0x05fc
000005e8: JUMPI
000005e9: PUSH2 0x0100
000005ec: DUP1
000005ed: DUP4
000005ee: SLOAD
000005ef: DIV
000005f0: MUL
000005f1: DUP4
000005f2: MSTORE
000005f3: SWAP2
000005f4: PUSH1 0x20
000005f6: ADD
000005f7: SWAP2
000005f8: PUSH2 0x0625
000005fb: JUMP
000005fc: JUMPDEST
000005fd: DUP3
000005fe: ADD
000005ff: SWAP2
00000600: SWAP1
00000601: PUSH0
00000602: MSTORE
00000603: PUSH1 0x20
00000605: PUSH0
00000606: KECCAK256
00000607: SWAP1
00000608: JUMPDEST
00000609: DUP2
0000060a: SLOAD
0000060b: DUP2
0000060c: MSTORE
0000060d: SWAP1
0000060e: PUSH1 0x01
00000610: ADD
00000611: SWAP1
00000612: PUSH1 0x20
00000614: ADD
00000615: DUP1
00000616: DUP4
00000617: GT
00000618: PUSH2 0x0608
0000061b: JUMPI
0000061c: DUP3
0000061d: SWAP1
0000061e: SUB
0000061f: PUSH1 0x1f
00000621: AND
00000622: DUP3
00000623: ADD
00000624: SWAP2
00000625: JUMPDEST
00000626: POP
00000627: POP
00000628: POP
00000629: POP
0000062a: POP
0000062b: DUP2
0000062c: JUMP
0000062d: JUMPDEST
0000062e: CALLER
0000062f: PUSH0
00000630: DUP2
00000631: DUP2
00000632: MSTORE
00000633: PUSH1 0x04
00000635: PUSH1 0x20
00000637: SWAP1
00000638: DUP2
00000639: MSTORE
0000063a: PUSH1 0x40
0000063c: DUP1
0000063d: DUP4
0000063e: KECCAK256
0000063f: PUSH1 0x01
00000641: PUSH1 0x01
00000643: PUSH1 0xa0
00000645: SHL
00000646: SUB
00000647: DUP8
00000648: AND
00000649: DUP1
0000064a: DUP6
0000064b: MSTORE
0000064c: SWAP3
0000064d: MSTORE
0000064e: DUP1
0000064f: DUP4
00000650: KECCAK256
00000651: DUP6
00000652: SWAP1
00000653: SSTORE
00000654: MLOAD
00000655: SWAP2
00000656: SWAP3
00000657: SWAP1
00000658: SWAP2
00000659: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
0000067a: SWAP1
0000067b: PUSH2 0x0687
0000067e: SWAP1
0000067f: DUP7
00000680: DUP2
00000681: MSTORE
00000682: PUSH1 0x20
00000684: ADD
00000685: SWAP1
00000686: JUMP
00000687: JUMPDEST
00000688: PUSH1 0x40
0000068a: MLOAD
0000068b: DUP1
0000068c: SWAP2
0000068d: SUB
0000068e: SWAP1
0000068f: LOG3
00000690: POP
00000691: PUSH1 0x01
00000693: SWAP3
00000694: SWAP2
00000695: POP
00000696: POP
00000697: JUMP
00000698: JUMPDEST
00000699: PUSH2 0x06ad
0000069c: CALLER
0000069d: PUSH0
0000069e: CALLDATALOAD
0000069f: PUSH1 0x01
000006a1: PUSH1 0x01
000006a3: PUSH1 0xe0
000006a5: SHL
000006a6: SUB
000006a7: NOT
000006a8: AND
000006a9: PUSH2 0x0e93
000006ac: JUMP
000006ad: JUMPDEST
000006ae: PUSH2 0x06d2
000006b1: JUMPI
000006b2: PUSH1 0x40
000006b4: MLOAD
000006b5: PUSH3 0x461bcd
000006b9: PUSH1 0xe5
000006bb: SHL
000006bc: DUP2
000006bd: MSTORE
000006be: PUSH1 0x04
000006c0: ADD
000006c1: PUSH2 0x06c9
000006c4: SWAP1
000006c5: PUSH2 0x1b32
000006c8: JUMP
000006c9: JUMPDEST
000006ca: PUSH1 0x40
000006cc: MLOAD
000006cd: DUP1
000006ce: SWAP2
000006cf: SUB
000006d0: SWAP1
000006d1: REVERT
000006d2: JUMPDEST
000006d3: PUSH2 0x06dc
000006d6: DUP3
000006d7: DUP3
000006d8: PUSH2 0x0f3a
000006db: JUMP
000006dc: JUMPDEST
000006dd: DUP3
000006de: ISZERO
000006df: PUSH2 0x06f6
000006e2: JUMPI
000006e3: PUSH2 0x06f6
000006e6: PUSH1 0x01
000006e8: PUSH1 0x01
000006ea: PUSH1 0xa0
000006ec: SHL
000006ed: SUB
000006ee: DUP6
000006ef: AND
000006f0: DUP7
000006f1: DUP6
000006f2: PUSH2 0x0fa1
000006f5: JUMP
000006f6: JUMPDEST
000006f7: DUP2
000006f8: PUSH1 0x01
000006fa: PUSH1 0x01
000006fc: PUSH1 0xa0
000006fe: SHL
000006ff: SUB
00000700: AND
00000701: DUP5
00000702: PUSH1 0x01
00000704: PUSH1 0x01
00000706: PUSH1 0xa0
00000708: SHL
00000709: SUB
0000070a: AND
0000070b: DUP7
0000070c: PUSH1 0x01
0000070e: PUSH1 0x01
00000710: PUSH1 0xa0
00000712: SHL
00000713: SUB
00000714: AND
00000715: PUSH32 0xe0c82280a1164680e0cf43be7db4c4c9f985423623ad7a544fb76c772bdc6043
00000736: DUP7
00000737: DUP6
00000738: PUSH1 0x40
0000073a: MLOAD
0000073b: PUSH2 0x074e
0000073e: SWAP3
0000073f: SWAP2
00000740: SWAP1
00000741: SWAP2
00000742: DUP3
00000743: MSTORE
00000744: PUSH1 0x20
00000746: DUP3
00000747: ADD
00000748: MSTORE
00000749: PUSH1 0x40
0000074b: ADD
0000074c: SWAP1
0000074d: JUMP
0000074e: JUMPDEST
0000074f: PUSH1 0x40
00000751: MLOAD
00000752: DUP1
00000753: SWAP2
00000754: SUB
00000755: SWAP1
00000756: LOG4
00000757: POP
00000758: POP
00000759: POP
0000075a: POP
0000075b: POP
0000075c: JUMP
0000075d: JUMPDEST
0000075e: PUSH1 0x60
00000760: PUSH2 0x0774
00000763: CALLER
00000764: PUSH0
00000765: CALLDATALOAD
00000766: PUSH1 0x01
00000768: PUSH1 0x01
0000076a: PUSH1 0xe0
0000076c: SHL
0000076d: SUB
0000076e: NOT
0000076f: AND
00000770: PUSH2 0x0e93
00000773: JUMP
00000774: JUMPDEST
00000775: PUSH2 0x0790
00000778: JUMPI
00000779: PUSH1 0x40
0000077b: MLOAD
0000077c: PUSH3 0x461bcd
00000780: PUSH1 0xe5
00000782: SHL
00000783: DUP2
00000784: MSTORE
00000785: PUSH1 0x04
00000787: ADD
00000788: PUSH2 0x06c9
0000078b: SWAP1
0000078c: PUSH2 0x1b32
0000078f: JUMP
00000790: JUMPDEST
00000791: DUP6
00000792: DUP1
00000793: PUSH8 0xffffffffffffffff
0000079c: DUP2
0000079d: GT
0000079e: ISZERO
0000079f: PUSH2 0x07aa
000007a2: JUMPI
000007a3: PUSH2 0x07aa
000007a6: PUSH2 0x1542
000007a9: JUMP
000007aa: JUMPDEST
000007ab: PUSH1 0x40
000007ad: MLOAD
000007ae: SWAP1
000007af: DUP1
000007b0: DUP3
000007b1: MSTORE
000007b2: DUP1
000007b3: PUSH1 0x20
000007b5: MUL
000007b6: PUSH1 0x20
000007b8: ADD
000007b9: DUP3
000007ba: ADD
000007bb: PUSH1 0x40
000007bd: MSTORE
000007be: DUP1
000007bf: ISZERO
000007c0: PUSH2 0x07dd
000007c3: JUMPI
000007c4: DUP2
000007c5: PUSH1 0x20
000007c7: ADD
000007c8: JUMPDEST
000007c9: PUSH1 0x60
000007cb: DUP2
000007cc: MSTORE
000007cd: PUSH1 0x20
000007cf: ADD
000007d0: SWAP1
000007d1: PUSH1 0x01
000007d3: SWAP1
000007d4: SUB
000007d5: SWAP1
000007d6: DUP2
000007d7: PUSH2 0x07c8
000007da: JUMPI
000007db: SWAP1
000007dc: POP
000007dd: JUMPDEST
000007de: POP
000007df: SWAP2
000007e0: POP
000007e1: PUSH0
000007e2: JUMPDEST
000007e3: DUP2
000007e4: DUP2
000007e5: LT
000007e6: ISZERO
000007e7: PUSH2 0x08c5
000007ea: JUMPI
000007eb: PUSH2 0x0897
000007ee: DUP8
000007ef: DUP8
000007f0: DUP4
000007f1: DUP2
000007f2: DUP2
000007f3: LT
000007f4: PUSH2 0x07ff
000007f7: JUMPI
000007f8: PUSH2 0x07ff
000007fb: PUSH2 0x1b58
000007fe: JUMP
000007ff: JUMPDEST
00000800: SWAP1
00000801: POP
00000802: PUSH1 0x20
00000804: MUL
00000805: DUP2
00000806: ADD
00000807: SWAP1
00000808: PUSH2 0x0811
0000080b: SWAP2
0000080c: SWAP1
0000080d: PUSH2 0x1b6c
00000810: JUMP
00000811: JUMPDEST
00000812: DUP1
00000813: DUP1
00000814: PUSH1 0x1f
00000816: ADD
00000817: PUSH1 0x20
00000819: DUP1
0000081a: SWAP2
0000081b: DIV
0000081c: MUL
0000081d: PUSH1 0x20
0000081f: ADD
00000820: PUSH1 0x40
00000822: MLOAD
00000823: SWAP1
00000824: DUP2
00000825: ADD
00000826: PUSH1 0x40
00000828: MSTORE
00000829: DUP1
0000082a: SWAP4
0000082b: SWAP3
0000082c: SWAP2
0000082d: SWAP1
0000082e: DUP2
0000082f: DUP2
00000830: MSTORE
00000831: PUSH1 0x20
00000833: ADD
00000834: DUP4
00000835: DUP4
00000836: DUP1
00000837: DUP3
00000838: DUP5
00000839: CALLDATACOPY
0000083a: PUSH0
0000083b: SWAP3
0000083c: ADD
0000083d: SWAP2
0000083e: SWAP1
0000083f: SWAP2
00000840: MSTORE
00000841: POP
00000842: DUP10
00000843: SWAP3
00000844: POP
00000845: DUP9
00000846: SWAP2
00000847: POP
00000848: DUP6
00000849: SWAP1
0000084a: POP
0000084b: DUP2
0000084c: DUP2
0000084d: LT
0000084e: PUSH2 0x0859
00000851: JUMPI
00000852: PUSH2 0x0859
00000855: PUSH2 0x1b58
00000858: JUMP
00000859: JUMPDEST
0000085a: SWAP1
0000085b: POP
0000085c: PUSH1 0x20
0000085e: MUL
0000085f: ADD
00000860: CALLDATALOAD
00000861: DUP12
00000862: DUP12
00000863: DUP6
00000864: DUP2
00000865: DUP2
00000866: LT
00000867: PUSH2 0x0872
0000086a: JUMPI
0000086b: PUSH2 0x0872
0000086e: PUSH2 0x1b58
00000871: JUMP
00000872: JUMPDEST
00000873: SWAP1
00000874: POP
00000875: PUSH1 0x20
00000877: MUL
00000878: ADD
00000879: PUSH1 0x20
0000087b: DUP2
0000087c: ADD
0000087d: SWAP1
0000087e: PUSH2 0x0887
00000881: SWAP2
00000882: SWAP1
00000883: PUSH2 0x182b
00000886: JUMP
00000887: JUMPDEST
00000888: PUSH1 0x01
0000088a: PUSH1 0x01
0000088c: PUSH1 0xa0
0000088e: SHL
0000088f: SUB
00000890: AND
00000891: SWAP2
00000892: SWAP1
00000893: PUSH2 0x1024
00000896: JUMP
00000897: JUMPDEST
00000898: DUP4
00000899: DUP3
0000089a: DUP2
0000089b: MLOAD
0000089c: DUP2
0000089d: LT
0000089e: PUSH2 0x08a9
000008a1: JUMPI
000008a2: PUSH2 0x08a9
000008a5: PUSH2 0x1b58
000008a8: JUMP
000008a9: JUMPDEST
000008aa: PUSH1 0x20
000008ac: MUL
000008ad: PUSH1 0x20
000008af: ADD
000008b0: ADD
000008b1: DUP2
000008b2: SWAP1
000008b3: MSTORE
000008b4: POP
000008b5: DUP1
000008b6: PUSH2 0x08be
000008b9: SWAP1
000008ba: PUSH2 0x1bc3
000008bd: JUMP
000008be: JUMPDEST
000008bf: SWAP1
000008c0: POP
000008c1: PUSH2 0x07e2
000008c4: JUMP
000008c5: JUMPDEST
000008c6: POP
000008c7: POP
000008c8: SWAP7
000008c9: SWAP6
000008ca: POP
000008cb: POP
000008cc: POP
000008cd: POP
000008ce: POP
000008cf: POP
000008d0: JUMP
000008d1: JUMPDEST
000008d2: PUSH0
000008d3: PUSH2 0x08dc
000008d6: DUP5
000008d7: DUP5
000008d8: PUSH2 0x10bd
000008db: JUMP
000008dc: JUMPDEST
000008dd: PUSH2 0x08e7
000008e0: DUP5
000008e1: DUP5
000008e2: DUP5
000008e3: PUSH2 0x113a
000008e6: JUMP
000008e7: JUMPDEST
000008e8: SWAP1
000008e9: POP
000008ea: JUMPDEST
000008eb: SWAP4
000008ec: SWAP3
000008ed: POP
000008ee: POP
000008ef: POP
000008f0: JUMP
000008f1: JUMPDEST
000008f2: PUSH0
000008f3: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
00000914: CHAINID
00000915: EQ
00000916: PUSH2 0x0926
00000919: JUMPI
0000091a: PUSH2 0x0921
0000091d: PUSH2 0x1214
00000920: JUMP
00000921: JUMPDEST
00000922: SWAP1
00000923: POP
00000924: SWAP1
00000925: JUMP
00000926: JUMPDEST
00000927: POP
00000928: PUSH32 0x26e058ccd4677bad53a7a6d1abc30b046b30c5adc515c58943849ab6ab20fa20
00000949: SWAP1
0000094a: JUMP
0000094b: JUMPDEST
0000094c: PUSH2 0x0960
0000094f: CALLER
00000950: PUSH0
00000951: CALLDATALOAD
00000952: PUSH1 0x01
00000954: PUSH1 0x01
00000956: PUSH1 0xe0
00000958: SHL
00000959: SUB
0000095a: NOT
0000095b: AND
0000095c: PUSH2 0x0e93
0000095f: JUMP
00000960: JUMPDEST
00000961: PUSH2 0x097c
00000964: JUMPI
00000965: PUSH1 0x40
00000967: MLOAD
00000968: PUSH3 0x461bcd
0000096c: PUSH1 0xe5
0000096e: SHL
0000096f: DUP2
00000970: MSTORE
00000971: PUSH1 0x04
00000973: ADD
00000974: PUSH2 0x06c9
00000977: SWAP1
00000978: PUSH2 0x1b32
0000097b: JUMP
0000097c: JUMPDEST
0000097d: DUP3
0000097e: ISZERO
0000097f: PUSH2 0x0997
00000982: JUMPI
00000983: PUSH2 0x0997
00000986: PUSH1 0x01
00000988: PUSH1 0x01
0000098a: PUSH1 0xa0
0000098c: SHL
0000098d: SUB
0000098e: DUP6
0000098f: AND
00000990: DUP7
00000991: ADDRESS
00000992: DUP7
00000993: PUSH2 0x12ac
00000996: JUMP
00000997: JUMPDEST
00000998: PUSH2 0x09a1
0000099b: DUP3
0000099c: DUP3
0000099d: PUSH2 0x1344
000009a0: JUMP
000009a1: JUMPDEST
000009a2: DUP2
000009a3: PUSH1 0x01
000009a5: PUSH1 0x01
000009a7: PUSH1 0xa0
000009a9: SHL
000009aa: SUB
000009ab: AND
000009ac: DUP5
000009ad: PUSH1 0x01
000009af: PUSH1 0x01
000009b1: PUSH1 0xa0
000009b3: SHL
000009b4: SUB
000009b5: AND
000009b6: DUP7
000009b7: PUSH1 0x01
000009b9: PUSH1 0x01
000009bb: PUSH1 0xa0
000009bd: SHL
000009be: SUB
000009bf: AND
000009c0: PUSH32 0xea00f88768a86184a6e515238a549c171769fe7460a011d6fd0bcd48ca078ea4
000009e1: DUP7
000009e2: DUP6
000009e3: PUSH1 0x40
000009e5: MLOAD
000009e6: PUSH2 0x074e
000009e9: SWAP3
000009ea: SWAP2
000009eb: SWAP1
000009ec: SWAP2
000009ed: DUP3
000009ee: MSTORE
000009ef: PUSH1 0x20
000009f1: DUP3
000009f2: ADD
000009f3: MSTORE
000009f4: PUSH1 0x40
000009f6: ADD
000009f7: SWAP1
000009f8: JUMP
000009f9: JUMPDEST
000009fa: PUSH1 0x06
000009fc: SLOAD
000009fd: PUSH1 0x01
000009ff: PUSH1 0x01
00000a01: PUSH1 0xa0
00000a03: SHL
00000a04: SUB
00000a05: AND
00000a06: CALLER
00000a07: EQ
00000a08: DUP1
00000a09: PUSH2 0x0a8b
00000a0c: JUMPI
00000a0d: POP
00000a0e: PUSH1 0x07
00000a10: SLOAD
00000a11: PUSH1 0x40
00000a13: MLOAD
00000a14: PUSH4 0xb7009613
00000a19: PUSH1 0xe0
00000a1b: SHL
00000a1c: DUP2
00000a1d: MSTORE
00000a1e: PUSH1 0x01
00000a20: PUSH1 0x01
00000a22: PUSH1 0xa0
00000a24: SHL
00000a25: SUB
00000a26: SWAP1
00000a27: SWAP2
00000a28: AND
00000a29: SWAP1
00000a2a: PUSH4 0xb7009613
00000a2f: SWAP1
00000a30: PUSH2 0x0a4c
00000a33: SWAP1
00000a34: CALLER
00000a35: SWAP1
00000a36: ADDRESS
00000a37: SWAP1
00000a38: PUSH1 0x01
00000a3a: PUSH1 0x01
00000a3c: PUSH1 0xe0
00000a3e: SHL
00000a3f: SUB
00000a40: NOT
00000a41: PUSH0
00000a42: CALLDATALOAD
00000a43: AND
00000a44: SWAP1
00000a45: PUSH1 0x04
00000a47: ADD
00000a48: PUSH2 0x1bdb
00000a4b: JUMP
00000a4c: JUMPDEST
00000a4d: PUSH1 0x20
00000a4f: PUSH1 0x40
00000a51: MLOAD
00000a52: DUP1
00000a53: DUP4
00000a54: SUB
00000a55: DUP2
00000a56: DUP7
00000a57: GAS
00000a58: STATICCALL
00000a59: ISZERO
00000a5a: DUP1
00000a5b: ISZERO
00000a5c: PUSH2 0x0a67
00000a5f: JUMPI
00000a60: RETURNDATASIZE
00000a61: PUSH0
00000a62: DUP1
00000a63: RETURNDATACOPY
00000a64: RETURNDATASIZE
00000a65: PUSH0
00000a66: REVERT
00000a67: JUMPDEST
00000a68: POP
00000a69: POP
00000a6a: POP
00000a6b: POP
00000a6c: PUSH1 0x40
00000a6e: MLOAD
00000a6f: RETURNDATASIZE
00000a70: PUSH1 0x1f
00000a72: NOT
00000a73: PUSH1 0x1f
00000a75: DUP3
00000a76: ADD
00000a77: AND
00000a78: DUP3
00000a79: ADD
00000a7a: DUP1
00000a7b: PUSH1 0x40
00000a7d: MSTORE
00000a7e: POP
00000a7f: DUP2
00000a80: ADD
00000a81: SWAP1
00000a82: PUSH2 0x0a8b
00000a85: SWAP2
00000a86: SWAP1
00000a87: PUSH2 0x1c08
00000a8a: JUMP
00000a8b: JUMPDEST
00000a8c: PUSH2 0x0a93
00000a8f: JUMPI
00000a90: PUSH0
00000a91: DUP1
00000a92: REVERT
00000a93: JUMPDEST
00000a94: PUSH1 0x07
00000a96: DUP1
00000a97: SLOAD
00000a98: PUSH1 0x01
00000a9a: PUSH1 0x01
00000a9c: PUSH1 0xa0
00000a9e: SHL
00000a9f: SUB
00000aa0: NOT
00000aa1: AND
00000aa2: PUSH1 0x01
00000aa4: PUSH1 0x01
00000aa6: PUSH1 0xa0
00000aa8: SHL
00000aa9: SUB
00000aaa: DUP4
00000aab: AND
00000aac: SWAP1
00000aad: DUP2
00000aae: OR
00000aaf: SWAP1
00000ab0: SWAP2
00000ab1: SSTORE
00000ab2: PUSH1 0x40
00000ab4: MLOAD
00000ab5: CALLER
00000ab6: SWAP1
00000ab7: PUSH32 0xa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198
00000ad8: SWAP1
00000ad9: PUSH0
00000ada: SWAP1
00000adb: LOG3
00000adc: POP
00000add: JUMP
00000ade: JUMPDEST
00000adf: PUSH2 0x0af3
00000ae2: CALLER
00000ae3: PUSH0
00000ae4: CALLDATALOAD
00000ae5: PUSH1 0x01
00000ae7: PUSH1 0x01
00000ae9: PUSH1 0xe0
00000aeb: SHL
00000aec: SUB
00000aed: NOT
00000aee: AND
00000aef: PUSH2 0x0e93
00000af2: JUMP
00000af3: JUMPDEST
00000af4: PUSH2 0x0b0f
00000af7: JUMPI
00000af8: PUSH1 0x40
00000afa: MLOAD
00000afb: PUSH3 0x461bcd
00000aff: PUSH1 0xe5
00000b01: SHL
00000b02: DUP2
00000b03: MSTORE
00000b04: PUSH1 0x04
00000b06: ADD
00000b07: PUSH2 0x06c9
00000b0a: SWAP1
00000b0b: PUSH2 0x1b32
00000b0e: JUMP
00000b0f: JUMPDEST
00000b10: PUSH1 0x08
00000b12: DUP1
00000b13: SLOAD
00000b14: PUSH1 0x01
00000b16: PUSH1 0x01
00000b18: PUSH1 0xa0
00000b1a: SHL
00000b1b: SUB
00000b1c: NOT
00000b1d: AND
00000b1e: PUSH1 0x01
00000b20: PUSH1 0x01
00000b22: PUSH1 0xa0
00000b24: SHL
00000b25: SUB
00000b26: SWAP3
00000b27: SWAP1
00000b28: SWAP3
00000b29: AND
00000b2a: SWAP2
00000b2b: SWAP1
00000b2c: SWAP2
00000b2d: OR
00000b2e: SWAP1
00000b2f: SSTORE
00000b30: JUMP
00000b31: JUMPDEST
00000b32: PUSH1 0x01
00000b34: DUP1
00000b35: SLOAD
00000b36: PUSH2 0x05ae
00000b39: SWAP1
00000b3a: PUSH2 0x1afa
00000b3d: JUMP
00000b3e: JUMPDEST
00000b3f: PUSH0
00000b40: PUSH2 0x0b49
00000b43: CALLER
00000b44: DUP5
00000b45: PUSH2 0x10bd
00000b48: JUMP
00000b49: JUMPDEST
00000b4a: PUSH2 0x08ea
00000b4d: DUP4
00000b4e: DUP4
00000b4f: PUSH2 0x1393
00000b52: JUMP
00000b53: JUMPDEST
00000b54: TIMESTAMP
00000b55: DUP5
00000b56: LT
00000b57: ISZERO
00000b58: PUSH2 0x0ba3
00000b5b: JUMPI
00000b5c: PUSH1 0x40
00000b5e: MLOAD
00000b5f: PUSH3 0x461bcd
00000b63: PUSH1 0xe5
00000b65: SHL
00000b66: DUP2
00000b67: MSTORE
00000b68: PUSH1 0x20
00000b6a: PUSH1 0x04
00000b6c: DUP3
00000b6d: ADD
00000b6e: MSTORE
00000b6f: PUSH1 0x17
00000b71: PUSH1 0x24
00000b73: DUP3
00000b74: ADD
00000b75: MSTORE
00000b76: PUSH32 0x5045524d49545f444541444c494e455f45585049524544000000000000000000
00000b97: PUSH1 0x44
00000b99: DUP3
00000b9a: ADD
00000b9b: MSTORE
00000b9c: PUSH1 0x64
00000b9e: ADD
00000b9f: PUSH2 0x06c9
00000ba2: JUMP
00000ba3: JUMPDEST
00000ba4: PUSH0
00000ba5: PUSH1 0x01
00000ba7: PUSH2 0x0bae
00000baa: PUSH2 0x08f1
00000bad: JUMP
00000bae: JUMPDEST
00000baf: PUSH1 0x01
00000bb1: PUSH1 0x01
00000bb3: PUSH1 0xa0
00000bb5: SHL
00000bb6: SUB
00000bb7: DUP11
00000bb8: DUP2
00000bb9: AND
00000bba: PUSH0
00000bbb: DUP2
00000bbc: DUP2
00000bbd: MSTORE
00000bbe: PUSH1 0x05
00000bc0: PUSH1 0x20
00000bc2: SWAP1
00000bc3: DUP2
00000bc4: MSTORE
00000bc5: PUSH1 0x40
00000bc7: SWAP2
00000bc8: DUP3
00000bc9: SWAP1
00000bca: KECCAK256
00000bcb: DUP1
00000bcc: SLOAD
00000bcd: PUSH1 0x01
00000bcf: DUP2
00000bd0: ADD
00000bd1: SWAP1
00000bd2: SWAP2
00000bd3: SSTORE
00000bd4: DUP3
00000bd5: MLOAD
00000bd6: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
00000bf7: DUP2
00000bf8: DUP5
00000bf9: ADD
00000bfa: MSTORE
00000bfb: DUP1
00000bfc: DUP5
00000bfd: ADD
00000bfe: SWAP5
00000bff: SWAP1
00000c00: SWAP5
00000c01: MSTORE
00000c02: SWAP4
00000c03: DUP14
00000c04: AND
00000c05: PUSH1 0x60
00000c07: DUP5
00000c08: ADD
00000c09: MSTORE
00000c0a: PUSH1 0x80
00000c0c: DUP4
00000c0d: ADD
00000c0e: DUP13
00000c0f: SWAP1
00000c10: MSTORE
00000c11: PUSH1 0xa0
00000c13: DUP4
00000c14: ADD
00000c15: SWAP4
00000c16: SWAP1
00000c17: SWAP4
00000c18: MSTORE
00000c19: PUSH1 0xc0
00000c1b: DUP1
00000c1c: DUP4
00000c1d: ADD
00000c1e: DUP12
00000c1f: SWAP1
00000c20: MSTORE
00000c21: DUP2
00000c22: MLOAD
00000c23: DUP1
00000c24: DUP5
00000c25: SUB
00000c26: SWAP1
00000c27: SWAP2
00000c28: ADD
00000c29: DUP2
00000c2a: MSTORE
00000c2b: PUSH1 0xe0
00000c2d: DUP4
00000c2e: ADD
00000c2f: SWAP1
00000c30: SWAP2
00000c31: MSTORE
00000c32: DUP1
00000c33: MLOAD
00000c34: SWAP3
00000c35: ADD
00000c36: SWAP2
00000c37: SWAP1
00000c38: SWAP2
00000c39: KECCAK256
00000c3a: PUSH2 0x1901
00000c3d: PUSH1 0xf0
00000c3f: SHL
00000c40: PUSH2 0x0100
00000c43: DUP4
00000c44: ADD
00000c45: MSTORE
00000c46: PUSH2 0x0102
00000c49: DUP3
00000c4a: ADD
00000c4b: SWAP3
00000c4c: SWAP1
00000c4d: SWAP3
00000c4e: MSTORE
00000c4f: PUSH2 0x0122
00000c52: DUP2
00000c53: ADD
00000c54: SWAP2
00000c55: SWAP1
00000c56: SWAP2
00000c57: MSTORE
00000c58: PUSH2 0x0142
00000c5b: ADD
00000c5c: PUSH1 0x40
00000c5e: DUP1
00000c5f: MLOAD
00000c60: PUSH1 0x1f
00000c62: NOT
00000c63: DUP2
00000c64: DUP5
00000c65: SUB
00000c66: ADD
00000c67: DUP2
00000c68: MSTORE
00000c69: DUP3
00000c6a: DUP3
00000c6b: MSTORE
00000c6c: DUP1
00000c6d: MLOAD
00000c6e: PUSH1 0x20
00000c70: SWAP2
00000c71: DUP3
00000c72: ADD
00000c73: KECCAK256
00000c74: PUSH0
00000c75: DUP5
00000c76: MSTORE
00000c77: SWAP1
00000c78: DUP4
00000c79: ADD
00000c7a: DUP1
00000c7b: DUP4
00000c7c: MSTORE
00000c7d: MSTORE
00000c7e: PUSH1 0xff
00000c80: DUP8
00000c81: AND
00000c82: SWAP1
00000c83: DUP3
00000c84: ADD
00000c85: MSTORE
00000c86: PUSH1 0x60
00000c88: DUP2
00000c89: ADD
00000c8a: DUP6
00000c8b: SWAP1
00000c8c: MSTORE
00000c8d: PUSH1 0x80
00000c8f: DUP2
00000c90: ADD
00000c91: DUP5
00000c92: SWAP1
00000c93: MSTORE
00000c94: PUSH1 0xa0
00000c96: ADD
00000c97: PUSH1 0x20
00000c99: PUSH1 0x40
00000c9b: MLOAD
00000c9c: PUSH1 0x20
00000c9e: DUP2
00000c9f: SUB
00000ca0: SWAP1
00000ca1: DUP1
00000ca2: DUP5
00000ca3: SUB
00000ca4: SWAP1
00000ca5: DUP6
00000ca6: GAS
00000ca7: STATICCALL
00000ca8: ISZERO
00000ca9: DUP1
00000caa: ISZERO
00000cab: PUSH2 0x0cb6
00000cae: JUMPI
00000caf: RETURNDATASIZE
00000cb0: PUSH0
00000cb1: DUP1
00000cb2: RETURNDATACOPY
00000cb3: RETURNDATASIZE
00000cb4: PUSH0
00000cb5: REVERT
00000cb6: JUMPDEST
00000cb7: POP
00000cb8: POP
00000cb9: PUSH1 0x40
00000cbb: MLOAD
00000cbc: PUSH1 0x1f
00000cbe: NOT
00000cbf: ADD
00000cc0: MLOAD
00000cc1: SWAP2
00000cc2: POP
00000cc3: POP
00000cc4: PUSH1 0x01
00000cc6: PUSH1 0x01
00000cc8: PUSH1 0xa0
00000cca: SHL
00000ccb: SUB
00000ccc: DUP2
00000ccd: AND
00000cce: ISZERO
00000ccf: DUP1
00000cd0: ISZERO
00000cd1: SWAP1
00000cd2: PUSH2 0x0cec
00000cd5: JUMPI
00000cd6: POP
00000cd7: DUP8
00000cd8: PUSH1 0x01
00000cda: PUSH1 0x01
00000cdc: PUSH1 0xa0
00000cde: SHL
00000cdf: SUB
00000ce0: AND
00000ce1: DUP2
00000ce2: PUSH1 0x01
00000ce4: PUSH1 0x01
00000ce6: PUSH1 0xa0
00000ce8: SHL
00000ce9: SUB
00000cea: AND
00000ceb: EQ
00000cec: JUMPDEST
00000ced: PUSH2 0x0d29
00000cf0: JUMPI
00000cf1: PUSH1 0x40
00000cf3: MLOAD
00000cf4: PUSH3 0x461bcd
00000cf8: PUSH1 0xe5
00000cfa: SHL
00000cfb: DUP2
00000cfc: MSTORE
00000cfd: PUSH1 0x20
00000cff: PUSH1 0x04
00000d01: DUP3
00000d02: ADD
00000d03: MSTORE
00000d04: PUSH1 0x0e
00000d06: PUSH1 0x24
00000d08: DUP3
00000d09: ADD
00000d0a: MSTORE
00000d0b: PUSH14 0x24a72b20a624a22fa9a4a3a722a9
00000d1a: PUSH1 0x91
00000d1c: SHL
00000d1d: PUSH1 0x44
00000d1f: DUP3
00000d20: ADD
00000d21: MSTORE
00000d22: PUSH1 0x64
00000d24: ADD
00000d25: PUSH2 0x06c9
00000d28: JUMP
00000d29: JUMPDEST
00000d2a: PUSH1 0x01
00000d2c: PUSH1 0x01
00000d2e: PUSH1 0xa0
00000d30: SHL
00000d31: SUB
00000d32: SWAP1
00000d33: DUP2
00000d34: AND
00000d35: PUSH0
00000d36: SWAP1
00000d37: DUP2
00000d38: MSTORE
00000d39: PUSH1 0x04
00000d3b: PUSH1 0x20
00000d3d: SWAP1
00000d3e: DUP2
00000d3f: MSTORE
00000d40: PUSH1 0x40
00000d42: DUP1
00000d43: DUP4
00000d44: KECCAK256
00000d45: DUP11
00000d46: DUP6
00000d47: AND
00000d48: DUP1
00000d49: DUP6
00000d4a: MSTORE
00000d4b: SWAP1
00000d4c: DUP4
00000d4d: MSTORE
00000d4e: SWAP3
00000d4f: DUP2
00000d50: SWAP1
00000d51: KECCAK256
00000d52: DUP10
00000d53: SWAP1
00000d54: SSTORE
00000d55: MLOAD
00000d56: DUP9
00000d57: DUP2
00000d58: MSTORE
00000d59: SWAP2
00000d5a: SWAP3
00000d5b: DUP11
00000d5c: AND
00000d5d: SWAP2
00000d5e: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00000d7f: SWAP2
00000d80: ADD
00000d81: PUSH1 0x40
00000d83: MLOAD
00000d84: DUP1
00000d85: SWAP2
00000d86: SUB
00000d87: SWAP1
00000d88: LOG3
00000d89: POP
00000d8a: POP
00000d8b: POP
00000d8c: POP
00000d8d: POP
00000d8e: POP
00000d8f: POP
00000d90: JUMP
00000d91: JUMPDEST
00000d92: PUSH2 0x0da6
00000d95: CALLER
00000d96: PUSH0
00000d97: CALLDATALOAD
00000d98: PUSH1 0x01
00000d9a: PUSH1 0x01
00000d9c: PUSH1 0xe0
00000d9e: SHL
00000d9f: SUB
00000da0: NOT
00000da1: AND
00000da2: PUSH2 0x0e93
00000da5: JUMP
00000da6: JUMPDEST
00000da7: PUSH2 0x0dc2
00000daa: JUMPI
00000dab: PUSH1 0x40
00000dad: MLOAD
00000dae: PUSH3 0x461bcd
00000db2: PUSH1 0xe5
00000db4: SHL
00000db5: DUP2
00000db6: MSTORE
00000db7: PUSH1 0x04
00000db9: ADD
00000dba: PUSH2 0x06c9
00000dbd: SWAP1
00000dbe: PUSH2 0x1b32
00000dc1: JUMP
00000dc2: JUMPDEST
00000dc3: PUSH1 0x06
00000dc5: DUP1
00000dc6: SLOAD
00000dc7: PUSH1 0x01
00000dc9: PUSH1 0x01
00000dcb: PUSH1 0xa0
00000dcd: SHL
00000dce: SUB
00000dcf: NOT
00000dd0: AND
00000dd1: PUSH1 0x01
00000dd3: PUSH1 0x01
00000dd5: PUSH1 0xa0
00000dd7: SHL
00000dd8: SUB
00000dd9: DUP4
00000dda: AND
00000ddb: SWAP1
00000ddc: DUP2
00000ddd: OR
00000dde: SWAP1
00000ddf: SWAP2
00000de0: SSTORE
00000de1: PUSH1 0x40
00000de3: MLOAD
00000de4: CALLER
00000de5: SWAP1
00000de6: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00000e07: SWAP1
00000e08: PUSH0
00000e09: SWAP1
00000e0a: LOG3
00000e0b: POP
00000e0c: JUMP
00000e0d: JUMPDEST
00000e0e: PUSH1 0x60
00000e10: PUSH2 0x0e24
00000e13: CALLER
00000e14: PUSH0
00000e15: CALLDATALOAD
00000e16: PUSH1 0x01
00000e18: PUSH1 0x01
00000e1a: PUSH1 0xe0
00000e1c: SHL
00000e1d: SUB
00000e1e: NOT
00000e1f: AND
00000e20: PUSH2 0x0e93
00000e23: JUMP
00000e24: JUMPDEST
00000e25: PUSH2 0x0e40
00000e28: JUMPI
00000e29: PUSH1 0x40
00000e2b: MLOAD
00000e2c: PUSH3 0x461bcd
00000e30: PUSH1 0xe5
00000e32: SHL
00000e33: DUP2
00000e34: MSTORE
00000e35: PUSH1 0x04
00000e37: ADD
00000e38: PUSH2 0x06c9
00000e3b: SWAP1
00000e3c: PUSH2 0x1b32
00000e3f: JUMP
00000e40: JUMPDEST
00000e41: PUSH2 0x0e8a
00000e44: DUP5
00000e45: DUP5
00000e46: DUP1
00000e47: DUP1
00000e48: PUSH1 0x1f
00000e4a: ADD
00000e4b: PUSH1 0x20
00000e4d: DUP1
00000e4e: SWAP2
00000e4f: DIV
00000e50: MUL
00000e51: PUSH1 0x20
00000e53: ADD
00000e54: PUSH1 0x40
00000e56: MLOAD
00000e57: SWAP1
00000e58: DUP2
00000e59: ADD
00000e5a: PUSH1 0x40
00000e5c: MSTORE
00000e5d: DUP1
00000e5e: SWAP4
00000e5f: SWAP3
00000e60: SWAP2
00000e61: SWAP1
00000e62: DUP2
00000e63: DUP2
00000e64: MSTORE
00000e65: PUSH1 0x20
00000e67: ADD
00000e68: DUP4
00000e69: DUP4
00000e6a: DUP1
00000e6b: DUP3
00000e6c: DUP5
00000e6d: CALLDATACOPY
00000e6e: PUSH0
00000e6f: SWAP3
00000e70: ADD
00000e71: SWAP2
00000e72: SWAP1
00000e73: SWAP2
00000e74: MSTORE
00000e75: POP
00000e76: POP
00000e77: POP
00000e78: PUSH1 0x01
00000e7a: PUSH1 0x01
00000e7c: PUSH1 0xa0
00000e7e: SHL
00000e7f: SUB
00000e80: DUP9
00000e81: AND
00000e82: SWAP2
00000e83: SWAP1
00000e84: POP
00000e85: DUP5
00000e86: PUSH2 0x1024
00000e89: JUMP
00000e8a: JUMPDEST
00000e8b: SWAP6
00000e8c: SWAP5
00000e8d: POP
00000e8e: POP
00000e8f: POP
00000e90: POP
00000e91: POP
00000e92: JUMP
00000e93: JUMPDEST
00000e94: PUSH1 0x07
00000e96: SLOAD
00000e97: PUSH0
00000e98: SWAP1
00000e99: PUSH1 0x01
00000e9b: PUSH1 0x01
00000e9d: PUSH1 0xa0
00000e9f: SHL
00000ea0: SUB
00000ea1: AND
00000ea2: DUP1
00000ea3: ISZERO
00000ea4: DUP1
00000ea5: ISZERO
00000ea6: SWAP1
00000ea7: PUSH2 0x0f1a
00000eaa: JUMPI
00000eab: POP
00000eac: PUSH1 0x40
00000eae: MLOAD
00000eaf: PUSH4 0xb7009613
00000eb4: PUSH1 0xe0
00000eb6: SHL
00000eb7: DUP2
00000eb8: MSTORE
00000eb9: PUSH1 0x01
00000ebb: PUSH1 0x01
00000ebd: PUSH1 0xa0
00000ebf: SHL
00000ec0: SUB
00000ec1: DUP3
00000ec2: AND
00000ec3: SWAP1
00000ec4: PUSH4 0xb7009613
00000ec9: SWAP1
00000eca: PUSH2 0x0edb
00000ecd: SWAP1
00000ece: DUP8
00000ecf: SWAP1
00000ed0: ADDRESS
00000ed1: SWAP1
00000ed2: DUP9
00000ed3: SWAP1
00000ed4: PUSH1 0x04
00000ed6: ADD
00000ed7: PUSH2 0x1bdb
00000eda: JUMP
00000edb: JUMPDEST
00000edc: PUSH1 0x20
00000ede: PUSH1 0x40
00000ee0: MLOAD
00000ee1: DUP1
00000ee2: DUP4
00000ee3: SUB
00000ee4: DUP2
00000ee5: DUP7
00000ee6: GAS
00000ee7: STATICCALL
00000ee8: ISZERO
00000ee9: DUP1
00000eea: ISZERO
00000eeb: PUSH2 0x0ef6
00000eee: JUMPI
00000eef: RETURNDATASIZE
00000ef0: PUSH0
00000ef1: DUP1
00000ef2: RETURNDATACOPY
00000ef3: RETURNDATASIZE
00000ef4: PUSH0
00000ef5: REVERT
00000ef6: JUMPDEST
00000ef7: POP
00000ef8: POP
00000ef9: POP
00000efa: POP
00000efb: PUSH1 0x40
00000efd: MLOAD
00000efe: RETURNDATASIZE
00000eff: PUSH1 0x1f
00000f01: NOT
00000f02: PUSH1 0x1f
00000f04: DUP3
00000f05: ADD
00000f06: AND
00000f07: DUP3
00000f08: ADD
00000f09: DUP1
00000f0a: PUSH1 0x40
00000f0c: MSTORE
00000f0d: POP
00000f0e: DUP2
00000f0f: ADD
00000f10: SWAP1
00000f11: PUSH2 0x0f1a
00000f14: SWAP2
00000f15: SWAP1
00000f16: PUSH2 0x1c08
00000f19: JUMP
00000f1a: JUMPDEST
00000f1b: DUP1
00000f1c: PUSH2 0x0f32
00000f1f: JUMPI
00000f20: POP
00000f21: PUSH1 0x06
00000f23: SLOAD
00000f24: PUSH1 0x01
00000f26: PUSH1 0x01
00000f28: PUSH1 0xa0
00000f2a: SHL
00000f2b: SUB
00000f2c: DUP6
00000f2d: DUP2
00000f2e: AND
00000f2f: SWAP2
00000f30: AND
00000f31: EQ
00000f32: JUMPDEST
00000f33: SWAP5
00000f34: SWAP4
00000f35: POP
00000f36: POP
00000f37: POP
00000f38: POP
00000f39: JUMP
00000f3a: JUMPDEST
00000f3b: PUSH1 0x01
00000f3d: PUSH1 0x01
00000f3f: PUSH1 0xa0
00000f41: SHL
00000f42: SUB
00000f43: DUP3
00000f44: AND
00000f45: PUSH0
00000f46: SWAP1
00000f47: DUP2
00000f48: MSTORE
00000f49: PUSH1 0x03
00000f4b: PUSH1 0x20
00000f4d: MSTORE
00000f4e: PUSH1 0x40
00000f50: DUP2
00000f51: KECCAK256
00000f52: DUP1
00000f53: SLOAD
00000f54: DUP4
00000f55: SWAP3
00000f56: SWAP1
00000f57: PUSH2 0x0f61
00000f5a: SWAP1
00000f5b: DUP5
00000f5c: SWAP1
00000f5d: PUSH2 0x1c27
00000f60: JUMP
00000f61: JUMPDEST
00000f62: SWAP1
00000f63: SWAP2
00000f64: SSTORE
00000f65: POP
00000f66: POP
00000f67: PUSH1 0x02
00000f69: DUP1
00000f6a: SLOAD
00000f6b: DUP3
00000f6c: SWAP1
00000f6d: SUB
00000f6e: SWAP1
00000f6f: SSTORE
00000f70: PUSH1 0x40
00000f72: MLOAD
00000f73: DUP2
00000f74: DUP2
00000f75: MSTORE
00000f76: PUSH0
00000f77: SWAP1
00000f78: PUSH1 0x01
00000f7a: PUSH1 0x01
00000f7c: PUSH1 0xa0
00000f7e: SHL
00000f7f: SUB
00000f80: DUP5
00000f81: AND
00000f82: SWAP1
00000f83: PUSH0
00000f84: DUP1
00000f85: MLOAD
00000f86: PUSH1 0x20
00000f88: PUSH2 0x1d05
00000f8b: DUP4
00000f8c: CODECOPY
00000f8d: DUP2
00000f8e: MLOAD
00000f8f: SWAP2
00000f90: MSTORE
00000f91: SWAP1
00000f92: PUSH1 0x20
00000f94: ADD
00000f95: JUMPDEST
00000f96: PUSH1 0x40
00000f98: MLOAD
00000f99: DUP1
00000f9a: SWAP2
00000f9b: SUB
00000f9c: SWAP1
00000f9d: LOG3
00000f9e: POP
00000f9f: POP
00000fa0: JUMP
00000fa1: JUMPDEST
00000fa2: PUSH0
00000fa3: PUSH1 0x40
00000fa5: MLOAD
00000fa6: PUSH4 0xa9059cbb
00000fab: PUSH1 0xe0
00000fad: SHL
00000fae: DUP2
00000faf: MSTORE
00000fb0: PUSH1 0x01
00000fb2: PUSH1 0x01
00000fb4: PUSH1 0xa0
00000fb6: SHL
00000fb7: SUB
00000fb8: DUP5
00000fb9: AND
00000fba: PUSH1 0x04
00000fbc: DUP3
00000fbd: ADD
00000fbe: MSTORE
00000fbf: DUP3
00000fc0: PUSH1 0x24
00000fc2: DUP3
00000fc3: ADD
00000fc4: MSTORE
00000fc5: PUSH1 0x20
00000fc7: PUSH0
00000fc8: PUSH1 0x44
00000fca: DUP4
00000fcb: PUSH0
00000fcc: DUP10
00000fcd: GAS
00000fce: CALL
00000fcf: RETURNDATASIZE
00000fd0: ISZERO
00000fd1: PUSH1 0x1f
00000fd3: RETURNDATASIZE
00000fd4: GT
00000fd5: PUSH1 0x01
00000fd7: PUSH0
00000fd8: MLOAD
00000fd9: EQ
00000fda: AND
00000fdb: OR
00000fdc: AND
00000fdd: SWAP2
00000fde: POP
00000fdf: POP
00000fe0: DUP1
00000fe1: PUSH2 0x101e
00000fe4: JUMPI
00000fe5: PUSH1 0x40
00000fe7: MLOAD
00000fe8: PUSH3 0x461bcd
00000fec: PUSH1 0xe5
00000fee: SHL
00000fef: DUP2
00000ff0: MSTORE
00000ff1: PUSH1 0x20
00000ff3: PUSH1 0x04
00000ff5: DUP3
00000ff6: ADD
00000ff7: MSTORE
00000ff8: PUSH1 0x0f
00000ffa: PUSH1 0x24
00000ffc: DUP3
00000ffd: ADD
00000ffe: MSTORE
00000fff: PUSH15 0x1514905394d1915497d19052531151
0000100f: PUSH1 0x8a
00001011: SHL
00001012: PUSH1 0x44
00001014: DUP3
00001015: ADD
00001016: MSTORE
00001017: PUSH1 0x64
00001019: ADD
0000101a: PUSH2 0x06c9
0000101d: JUMP
0000101e: JUMPDEST
0000101f: POP
00001020: POP
00001021: POP
00001022: POP
00001023: JUMP
00001024: JUMPDEST
00001025: PUSH1 0x60
00001027: DUP2
00001028: SELFBALANCE
00001029: LT
0000102a: ISZERO
0000102b: PUSH2 0x1049
0000102e: JUMPI
0000102f: PUSH1 0x40
00001031: MLOAD
00001032: PUSH4 0xcd786059
00001037: PUSH1 0xe0
00001039: SHL
0000103a: DUP2
0000103b: MSTORE
0000103c: ADDRESS
0000103d: PUSH1 0x04
0000103f: DUP3
00001040: ADD
00001041: MSTORE
00001042: PUSH1 0x24
00001044: ADD
00001045: PUSH2 0x06c9
00001048: JUMP
00001049: JUMPDEST
0000104a: PUSH0
0000104b: DUP1
0000104c: DUP6
0000104d: PUSH1 0x01
0000104f: PUSH1 0x01
00001051: PUSH1 0xa0
00001053: SHL
00001054: SUB
00001055: AND
00001056: DUP5
00001057: DUP7
00001058: PUSH1 0x40
0000105a: MLOAD
0000105b: PUSH2 0x1064
0000105e: SWAP2
0000105f: SWAP1
00001060: PUSH2 0x1c3a
00001063: JUMP
00001064: JUMPDEST
00001065: PUSH0
00001066: PUSH1 0x40
00001068: MLOAD
00001069: DUP1
0000106a: DUP4
0000106b: SUB
0000106c: DUP2
0000106d: DUP6
0000106e: DUP8
0000106f: GAS
00001070: CALL
00001071: SWAP3
00001072: POP
00001073: POP
00001074: POP
00001075: RETURNDATASIZE
00001076: DUP1
00001077: PUSH0
00001078: DUP2
00001079: EQ
0000107a: PUSH2 0x109e
0000107d: JUMPI
0000107e: PUSH1 0x40
00001080: MLOAD
00001081: SWAP2
00001082: POP
00001083: PUSH1 0x1f
00001085: NOT
00001086: PUSH1 0x3f
00001088: RETURNDATASIZE
00001089: ADD
0000108a: AND
0000108b: DUP3
0000108c: ADD
0000108d: PUSH1 0x40
0000108f: MSTORE
00001090: RETURNDATASIZE
00001091: DUP3
00001092: MSTORE
00001093: RETURNDATASIZE
00001094: PUSH0
00001095: PUSH1 0x20
00001097: DUP5
00001098: ADD
00001099: RETURNDATACOPY
0000109a: PUSH2 0x10a3
0000109d: JUMP
0000109e: JUMPDEST
0000109f: PUSH1 0x60
000010a1: SWAP2
000010a2: POP
000010a3: JUMPDEST
000010a4: POP
000010a5: SWAP2
000010a6: POP
000010a7: SWAP2
000010a8: POP
000010a9: PUSH2 0x10b3
000010ac: DUP7
000010ad: DUP4
000010ae: DUP4
000010af: PUSH2 0x13f6
000010b2: JUMP
000010b3: JUMPDEST
000010b4: SWAP7
000010b5: SWAP6
000010b6: POP
000010b7: POP
000010b8: POP
000010b9: POP
000010ba: POP
000010bb: POP
000010bc: JUMP
000010bd: JUMPDEST
000010be: PUSH1 0x08
000010c0: SLOAD
000010c1: PUSH1 0x01
000010c3: PUSH1 0x01
000010c5: PUSH1 0xa0
000010c7: SHL
000010c8: SUB
000010c9: AND
000010ca: ISZERO
000010cb: PUSH2 0x1136
000010ce: JUMPI
000010cf: PUSH1 0x08
000010d1: SLOAD
000010d2: PUSH1 0x40
000010d4: MLOAD
000010d5: PUSH4 0x0abd626b
000010da: PUSH1 0xe4
000010dc: SHL
000010dd: DUP2
000010de: MSTORE
000010df: PUSH1 0x01
000010e1: PUSH1 0x01
000010e3: PUSH1 0xa0
000010e5: SHL
000010e6: SUB
000010e7: DUP5
000010e8: DUP2
000010e9: AND
000010ea: PUSH1 0x04
000010ec: DUP4
000010ed: ADD
000010ee: MSTORE
000010ef: DUP4
000010f0: DUP2
000010f1: AND
000010f2: PUSH1 0x24
000010f4: DUP4
000010f5: ADD
000010f6: MSTORE
000010f7: CALLER
000010f8: PUSH1 0x44
000010fa: DUP4
000010fb: ADD
000010fc: MSTORE
000010fd: SWAP1
000010fe: SWAP2
000010ff: AND
00001100: SWAP1
00001101: PUSH4 0xabd626b0
00001106: SWAP1
00001107: PUSH1 0x64
00001109: ADD
0000110a: PUSH0
0000110b: PUSH1 0x40
0000110d: MLOAD
0000110e: DUP1
0000110f: DUP4
00001110: SUB
00001111: DUP2
00001112: DUP7
00001113: DUP1
00001114: EXTCODESIZE
00001115: ISZERO
00001116: DUP1
00001117: ISZERO
00001118: PUSH2 0x111f
0000111b: JUMPI
0000111c: PUSH0
0000111d: DUP1
0000111e: REVERT
0000111f: JUMPDEST
00001120: POP
00001121: GAS
00001122: STATICCALL
00001123: ISZERO
00001124: DUP1
00001125: ISZERO
00001126: PUSH2 0x1131
00001129: JUMPI
0000112a: RETURNDATASIZE
0000112b: PUSH0
0000112c: DUP1
0000112d: RETURNDATACOPY
0000112e: RETURNDATASIZE
0000112f: PUSH0
00001130: REVERT
00001131: JUMPDEST
00001132: POP
00001133: POP
00001134: POP
00001135: POP
00001136: JUMPDEST
00001137: POP
00001138: POP
00001139: JUMP
0000113a: JUMPDEST
0000113b: PUSH1 0x01
0000113d: PUSH1 0x01
0000113f: PUSH1 0xa0
00001141: SHL
00001142: SUB
00001143: DUP4
00001144: AND
00001145: PUSH0
00001146: SWAP1
00001147: DUP2
00001148: MSTORE
00001149: PUSH1 0x04
0000114b: PUSH1 0x20
0000114d: SWAP1
0000114e: DUP2
0000114f: MSTORE
00001150: PUSH1 0x40
00001152: DUP1
00001153: DUP4
00001154: KECCAK256
00001155: CALLER
00001156: DUP5
00001157: MSTORE
00001158: SWAP1
00001159: SWAP2
0000115a: MSTORE
0000115b: DUP2
0000115c: KECCAK256
0000115d: SLOAD
0000115e: PUSH0
0000115f: NOT
00001160: DUP2
00001161: EQ
00001162: PUSH2 0x1193
00001165: JUMPI
00001166: PUSH2 0x116f
00001169: DUP4
0000116a: DUP3
0000116b: PUSH2 0x1c27
0000116e: JUMP
0000116f: JUMPDEST
00001170: PUSH1 0x01
00001172: PUSH1 0x01
00001174: PUSH1 0xa0
00001176: SHL
00001177: SUB
00001178: DUP7
00001179: AND
0000117a: PUSH0
0000117b: SWAP1
0000117c: DUP2
0000117d: MSTORE
0000117e: PUSH1 0x04
00001180: PUSH1 0x20
00001182: SWAP1
00001183: DUP2
00001184: MSTORE
00001185: PUSH1 0x40
00001187: DUP1
00001188: DUP4
00001189: KECCAK256
0000118a: CALLER
0000118b: DUP5
0000118c: MSTORE
0000118d: SWAP1
0000118e: SWAP2
0000118f: MSTORE
00001190: SWAP1
00001191: KECCAK256
00001192: SSTORE
00001193: JUMPDEST
00001194: PUSH1 0x01
00001196: PUSH1 0x01
00001198: PUSH1 0xa0
0000119a: SHL
0000119b: SUB
0000119c: DUP6
0000119d: AND
0000119e: PUSH0
0000119f: SWAP1
000011a0: DUP2
000011a1: MSTORE
000011a2: PUSH1 0x03
000011a4: PUSH1 0x20
000011a6: MSTORE
000011a7: PUSH1 0x40
000011a9: DUP2
000011aa: KECCAK256
000011ab: DUP1
000011ac: SLOAD
000011ad: DUP6
000011ae: SWAP3
000011af: SWAP1
000011b0: PUSH2 0x11ba
000011b3: SWAP1
000011b4: DUP5
000011b5: SWAP1
000011b6: PUSH2 0x1c27
000011b9: JUMP
000011ba: JUMPDEST
000011bb: SWAP1
000011bc: SWAP2
000011bd: SSTORE
000011be: POP
000011bf: POP
000011c0: PUSH1 0x01
000011c2: PUSH1 0x01
000011c4: PUSH1 0xa0
000011c6: SHL
000011c7: SUB
000011c8: DUP1
000011c9: DUP6
000011ca: AND
000011cb: PUSH0
000011cc: DUP2
000011cd: DUP2
000011ce: MSTORE
000011cf: PUSH1 0x03
000011d1: PUSH1 0x20
000011d3: MSTORE
000011d4: PUSH1 0x40
000011d6: SWAP1
000011d7: DUP2
000011d8: SWAP1
000011d9: KECCAK256
000011da: DUP1
000011db: SLOAD
000011dc: DUP8
000011dd: ADD
000011de: SWAP1
000011df: SSTORE
000011e0: MLOAD
000011e1: SWAP1
000011e2: SWAP2
000011e3: DUP8
000011e4: AND
000011e5: SWAP1
000011e6: PUSH0
000011e7: DUP1
000011e8: MLOAD
000011e9: PUSH1 0x20
000011eb: PUSH2 0x1d05
000011ee: DUP4
000011ef: CODECOPY
000011f0: DUP2
000011f1: MLOAD
000011f2: SWAP2
000011f3: MSTORE
000011f4: SWAP1
000011f5: PUSH2 0x1201
000011f8: SWAP1
000011f9: DUP8
000011fa: DUP2
000011fb: MSTORE
000011fc: PUSH1 0x20
000011fe: ADD
000011ff: SWAP1
00001200: JUMP
00001201: JUMPDEST
00001202: PUSH1 0x40
00001204: MLOAD
00001205: DUP1
00001206: SWAP2
00001207: SUB
00001208: SWAP1
00001209: LOG3
0000120a: POP
0000120b: PUSH1 0x01
0000120d: SWAP5
0000120e: SWAP4
0000120f: POP
00001210: POP
00001211: POP
00001212: POP
00001213: JUMP
00001214: JUMPDEST
00001215: PUSH0
00001216: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00001237: PUSH0
00001238: PUSH1 0x40
0000123a: MLOAD
0000123b: PUSH2 0x1244
0000123e: SWAP2
0000123f: SWAP1
00001240: PUSH2 0x1c55
00001243: JUMP
00001244: JUMPDEST
00001245: PUSH1 0x40
00001247: DUP1
00001248: MLOAD
00001249: SWAP2
0000124a: DUP3
0000124b: SWAP1
0000124c: SUB
0000124d: DUP3
0000124e: KECCAK256
0000124f: PUSH1 0x20
00001251: DUP4
00001252: ADD
00001253: SWAP4
00001254: SWAP1
00001255: SWAP4
00001256: MSTORE
00001257: DUP2
00001258: ADD
00001259: SWAP2
0000125a: SWAP1
0000125b: SWAP2
0000125c: MSTORE
0000125d: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6
0000127e: PUSH1 0x60
00001280: DUP3
00001281: ADD
00001282: MSTORE
00001283: CHAINID
00001284: PUSH1 0x80
00001286: DUP3
00001287: ADD
00001288: MSTORE
00001289: ADDRESS
0000128a: PUSH1 0xa0
0000128c: DUP3
0000128d: ADD
0000128e: MSTORE
0000128f: PUSH1 0xc0
00001291: ADD
00001292: PUSH1 0x40
00001294: MLOAD
00001295: PUSH1 0x20
00001297: DUP2
00001298: DUP4
00001299: SUB
0000129a: SUB
0000129b: DUP2
0000129c: MSTORE
0000129d: SWAP1
0000129e: PUSH1 0x40
000012a0: MSTORE
000012a1: DUP1
000012a2: MLOAD
000012a3: SWAP1
000012a4: PUSH1 0x20
000012a6: ADD
000012a7: KECCAK256
000012a8: SWAP1
000012a9: POP
000012aa: SWAP1
000012ab: JUMP
000012ac: JUMPDEST
000012ad: PUSH0
000012ae: PUSH1 0x40
000012b0: MLOAD
000012b1: PUSH4 0x23b872dd
000012b6: PUSH1 0xe0
000012b8: SHL
000012b9: DUP2
000012ba: MSTORE
000012bb: PUSH1 0x01
000012bd: PUSH1 0x01
000012bf: PUSH1 0xa0
000012c1: SHL
000012c2: SUB
000012c3: DUP6
000012c4: AND
000012c5: PUSH1 0x04
000012c7: DUP3
000012c8: ADD
000012c9: MSTORE
000012ca: PUSH1 0x01
000012cc: PUSH1 0x01
000012ce: PUSH1 0xa0
000012d0: SHL
000012d1: SUB
000012d2: DUP5
000012d3: AND
000012d4: PUSH1 0x24
000012d6: DUP3
000012d7: ADD
000012d8: MSTORE
000012d9: DUP3
000012da: PUSH1 0x44
000012dc: DUP3
000012dd: ADD
000012de: MSTORE
000012df: PUSH1 0x20
000012e1: PUSH0
000012e2: PUSH1 0x64
000012e4: DUP4
000012e5: PUSH0
000012e6: DUP11
000012e7: GAS
000012e8: CALL
000012e9: RETURNDATASIZE
000012ea: ISZERO
000012eb: PUSH1 0x1f
000012ed: RETURNDATASIZE
000012ee: GT
000012ef: PUSH1 0x01
000012f1: PUSH0
000012f2: MLOAD
000012f3: EQ
000012f4: AND
000012f5: OR
000012f6: AND
000012f7: SWAP2
000012f8: POP
000012f9: POP
000012fa: DUP1
000012fb: PUSH2 0x133d
000012fe: JUMPI
000012ff: PUSH1 0x40
00001301: MLOAD
00001302: PUSH3 0x461bcd
00001306: PUSH1 0xe5
00001308: SHL
00001309: DUP2
0000130a: MSTORE
0000130b: PUSH1 0x20
0000130d: PUSH1 0x04
0000130f: DUP3
00001310: ADD
00001311: MSTORE
00001312: PUSH1 0x14
00001314: PUSH1 0x24
00001316: DUP3
00001317: ADD
00001318: MSTORE
00001319: PUSH20 0x1514905394d1915497d19493d357d19052531151
0000132e: PUSH1 0x62
00001330: SHL
00001331: PUSH1 0x44
00001333: DUP3
00001334: ADD
00001335: MSTORE
00001336: PUSH1 0x64
00001338: ADD
00001339: PUSH2 0x06c9
0000133c: JUMP
0000133d: JUMPDEST
0000133e: POP
0000133f: POP
00001340: POP
00001341: POP
00001342: POP
00001343: JUMP
00001344: JUMPDEST
00001345: DUP1
00001346: PUSH1 0x02
00001348: PUSH0
00001349: DUP3
0000134a: DUP3
0000134b: SLOAD
0000134c: PUSH2 0x1355
0000134f: SWAP2
00001350: SWAP1
00001351: PUSH2 0x1cf1
00001354: JUMP
00001355: JUMPDEST
00001356: SWAP1
00001357: SWAP2
00001358: SSTORE
00001359: POP
0000135a: POP
0000135b: PUSH1 0x01
0000135d: PUSH1 0x01
0000135f: PUSH1 0xa0
00001361: SHL
00001362: SUB
00001363: DUP3
00001364: AND
00001365: PUSH0
00001366: DUP2
00001367: DUP2
00001368: MSTORE
00001369: PUSH1 0x03
0000136b: PUSH1 0x20
0000136d: SWAP1
0000136e: DUP2
0000136f: MSTORE
00001370: PUSH1 0x40
00001372: DUP1
00001373: DUP4
00001374: KECCAK256
00001375: DUP1
00001376: SLOAD
00001377: DUP7
00001378: ADD
00001379: SWAP1
0000137a: SSTORE
0000137b: MLOAD
0000137c: DUP5
0000137d: DUP2
0000137e: MSTORE
0000137f: PUSH0
00001380: DUP1
00001381: MLOAD
00001382: PUSH1 0x20
00001384: PUSH2 0x1d05
00001387: DUP4
00001388: CODECOPY
00001389: DUP2
0000138a: MLOAD
0000138b: SWAP2
0000138c: MSTORE
0000138d: SWAP2
0000138e: ADD
0000138f: PUSH2 0x0f95
00001392: JUMP
00001393: JUMPDEST
00001394: CALLER
00001395: PUSH0
00001396: SWAP1
00001397: DUP2
00001398: MSTORE
00001399: PUSH1 0x03
0000139b: PUSH1 0x20
0000139d: MSTORE
0000139e: PUSH1 0x40
000013a0: DUP2
000013a1: KECCAK256
000013a2: DUP1
000013a3: SLOAD
000013a4: DUP4
000013a5: SWAP2
000013a6: SWAP1
000013a7: DUP4
000013a8: SWAP1
000013a9: PUSH2 0x13b3
000013ac: SWAP1
000013ad: DUP5
000013ae: SWAP1
000013af: PUSH2 0x1c27
000013b2: JUMP
000013b3: JUMPDEST
000013b4: SWAP1
000013b5: SWAP2
000013b6: SSTORE
000013b7: POP
000013b8: POP
000013b9: PUSH1 0x01
000013bb: PUSH1 0x01
000013bd: PUSH1 0xa0
000013bf: SHL
000013c0: SUB
000013c1: DUP4
000013c2: AND
000013c3: PUSH0
000013c4: DUP2
000013c5: DUP2
000013c6: MSTORE
000013c7: PUSH1 0x03
000013c9: PUSH1 0x20
000013cb: MSTORE
000013cc: PUSH1 0x40
000013ce: SWAP1
000013cf: DUP2
000013d0: SWAP1
000013d1: KECCAK256
000013d2: DUP1
000013d3: SLOAD
000013d4: DUP6
000013d5: ADD
000013d6: SWAP1
000013d7: SSTORE
000013d8: MLOAD
000013d9: CALLER
000013da: SWAP1
000013db: PUSH0
000013dc: DUP1
000013dd: MLOAD
000013de: PUSH1 0x20
000013e0: PUSH2 0x1d05
000013e3: DUP4
000013e4: CODECOPY
000013e5: DUP2
000013e6: MLOAD
000013e7: SWAP2
000013e8: MSTORE
000013e9: SWAP1
000013ea: PUSH2 0x0687
000013ed: SWAP1
000013ee: DUP7
000013ef: DUP2
000013f0: MSTORE
000013f1: PUSH1 0x20
000013f3: ADD
000013f4: SWAP1
000013f5: JUMP
000013f6: JUMPDEST
000013f7: PUSH1 0x60
000013f9: DUP3
000013fa: PUSH2 0x140b
000013fd: JUMPI
000013fe: PUSH2 0x1406
00001401: DUP3
00001402: PUSH2 0x1452
00001405: JUMP
00001406: JUMPDEST
00001407: PUSH2 0x08ea
0000140a: JUMP
0000140b: JUMPDEST
0000140c: DUP2
0000140d: MLOAD
0000140e: ISZERO
0000140f: DUP1
00001410: ISZERO
00001411: PUSH2 0x1422
00001414: JUMPI
00001415: POP
00001416: PUSH1 0x01
00001418: PUSH1 0x01
0000141a: PUSH1 0xa0
0000141c: SHL
0000141d: SUB
0000141e: DUP5
0000141f: AND
00001420: EXTCODESIZE
00001421: ISZERO
00001422: JUMPDEST
00001423: ISZERO
00001424: PUSH2 0x144b
00001427: JUMPI
00001428: PUSH1 0x40
0000142a: MLOAD
0000142b: PUSH4 0x9996b315
00001430: PUSH1 0xe0
00001432: SHL
00001433: DUP2
00001434: MSTORE
00001435: PUSH1 0x01
00001437: PUSH1 0x01
00001439: PUSH1 0xa0
0000143b: SHL
0000143c: SUB
0000143d: DUP6
0000143e: AND
0000143f: PUSH1 0x04
00001441: DUP3
00001442: ADD
00001443: MSTORE
00001444: PUSH1 0x24
00001446: ADD
00001447: PUSH2 0x06c9
0000144a: JUMP
0000144b: JUMPDEST
0000144c: POP
0000144d: DUP1
0000144e: PUSH2 0x08ea
00001451: JUMP
00001452: JUMPDEST
00001453: DUP1
00001454: MLOAD
00001455: ISZERO
00001456: PUSH2 0x1462
00001459: JUMPI
0000145a: DUP1
0000145b: MLOAD
0000145c: DUP1
0000145d: DUP3
0000145e: PUSH1 0x20
00001460: ADD
00001461: REVERT
00001462: JUMPDEST
00001463: PUSH1 0x40
00001465: MLOAD
00001466: PUSH4 0x0a12f521
0000146b: PUSH1 0xe1
0000146d: SHL
0000146e: DUP2
0000146f: MSTORE
00001470: PUSH1 0x04
00001472: ADD
00001473: PUSH1 0x40
00001475: MLOAD
00001476: DUP1
00001477: SWAP2
00001478: SUB
00001479: SWAP1
0000147a: REVERT
0000147b: JUMPDEST
0000147c: POP
0000147d: JUMP
0000147e: JUMPDEST
0000147f: PUSH0
00001480: PUSH1 0x20
00001482: DUP3
00001483: DUP5
00001484: SUB
00001485: SLT
00001486: ISZERO
00001487: PUSH2 0x148e
0000148a: JUMPI
0000148b: PUSH0
0000148c: DUP1
0000148d: REVERT
0000148e: JUMPDEST
0000148f: DUP2
00001490: CALLDATALOAD
00001491: PUSH1 0x01
00001493: PUSH1 0x01
00001495: PUSH1 0xe0
00001497: SHL
00001498: SUB
00001499: NOT
0000149a: DUP2
0000149b: AND
0000149c: DUP2
0000149d: EQ
0000149e: PUSH2 0x08ea
000014a1: JUMPI
000014a2: PUSH0
000014a3: DUP1
000014a4: REVERT
000014a5: JUMPDEST
000014a6: PUSH0
000014a7: JUMPDEST
000014a8: DUP4
000014a9: DUP2
000014aa: LT
000014ab: ISZERO
000014ac: PUSH2 0x14bf
000014af: JUMPI
000014b0: DUP2
000014b1: DUP2
000014b2: ADD
000014b3: MLOAD
000014b4: DUP4
000014b5: DUP3
000014b6: ADD
000014b7: MSTORE
000014b8: PUSH1 0x20
000014ba: ADD
000014bb: PUSH2 0x14a7
000014be: JUMP
000014bf: JUMPDEST
000014c0: POP
000014c1: POP
000014c2: PUSH0
000014c3: SWAP2
000014c4: ADD
000014c5: MSTORE
000014c6: JUMP
000014c7: JUMPDEST
000014c8: PUSH0
000014c9: DUP2
000014ca: MLOAD
000014cb: DUP1
000014cc: DUP5
000014cd: MSTORE
000014ce: PUSH2 0x14de
000014d1: DUP2
000014d2: PUSH1 0x20
000014d4: DUP7
000014d5: ADD
000014d6: PUSH1 0x20
000014d8: DUP7
000014d9: ADD
000014da: PUSH2 0x14a5
000014dd: JUMP
000014de: JUMPDEST
000014df: PUSH1 0x1f
000014e1: ADD
000014e2: PUSH1 0x1f
000014e4: NOT
000014e5: AND
000014e6: SWAP3
000014e7: SWAP1
000014e8: SWAP3
000014e9: ADD
000014ea: PUSH1 0x20
000014ec: ADD
000014ed: SWAP3
000014ee: SWAP2
000014ef: POP
000014f0: POP
000014f1: JUMP
000014f2: JUMPDEST
000014f3: PUSH1 0x20
000014f5: DUP2
000014f6: MSTORE
000014f7: PUSH0
000014f8: PUSH2 0x08ea
000014fb: PUSH1 0x20
000014fd: DUP4
000014fe: ADD
000014ff: DUP5
00001500: PUSH2 0x14c7
00001503: JUMP
00001504: JUMPDEST
00001505: PUSH1 0x01
00001507: PUSH1 0x01
00001509: PUSH1 0xa0
0000150b: SHL
0000150c: SUB
0000150d: DUP2
0000150e: AND
0000150f: DUP2
00001510: EQ
00001511: PUSH2 0x147b
00001514: JUMPI
00001515: PUSH0
00001516: DUP1
00001517: REVERT
00001518: JUMPDEST
00001519: PUSH0
0000151a: DUP1
0000151b: PUSH1 0x40
0000151d: DUP4
0000151e: DUP6
0000151f: SUB
00001520: SLT
00001521: ISZERO
00001522: PUSH2 0x1529
00001525: JUMPI
00001526: PUSH0
00001527: DUP1
00001528: REVERT
00001529: JUMPDEST
0000152a: DUP3
0000152b: CALLDATALOAD
0000152c: PUSH2 0x1534
0000152f: DUP2
00001530: PUSH2 0x1504
00001533: JUMP
00001534: JUMPDEST
00001535: SWAP5
00001536: PUSH1 0x20
00001538: SWAP4
00001539: SWAP1
0000153a: SWAP4
0000153b: ADD
0000153c: CALLDATALOAD
0000153d: SWAP4
0000153e: POP
0000153f: POP
00001540: POP
00001541: JUMP
00001542: JUMPDEST
00001543: PUSH4 0x4e487b71
00001548: PUSH1 0xe0
0000154a: SHL
0000154b: PUSH0
0000154c: MSTORE
0000154d: PUSH1 0x41
0000154f: PUSH1 0x04
00001551: MSTORE
00001552: PUSH1 0x24
00001554: PUSH0
00001555: REVERT
00001556: JUMPDEST
00001557: PUSH1 0x40
00001559: MLOAD
0000155a: PUSH1 0x1f
0000155c: DUP3
0000155d: ADD
0000155e: PUSH1 0x1f
00001560: NOT
00001561: AND
00001562: DUP2
00001563: ADD
00001564: PUSH8 0xffffffffffffffff
0000156d: DUP2
0000156e: GT
0000156f: DUP3
00001570: DUP3
00001571: LT
00001572: OR
00001573: ISZERO
00001574: PUSH2 0x157f
00001577: JUMPI
00001578: PUSH2 0x157f
0000157b: PUSH2 0x1542
0000157e: JUMP
0000157f: JUMPDEST
00001580: PUSH1 0x40
00001582: MSTORE
00001583: SWAP2
00001584: SWAP1
00001585: POP
00001586: JUMP
00001587: JUMPDEST
00001588: PUSH0
00001589: DUP3
0000158a: PUSH1 0x1f
0000158c: DUP4
0000158d: ADD
0000158e: SLT
0000158f: PUSH2 0x1596
00001592: JUMPI
00001593: PUSH0
00001594: DUP1
00001595: REVERT
00001596: JUMPDEST
00001597: DUP2
00001598: CALLDATALOAD
00001599: PUSH8 0xffffffffffffffff
000015a2: DUP2
000015a3: GT
000015a4: ISZERO
000015a5: PUSH2 0x15b0
000015a8: JUMPI
000015a9: PUSH2 0x15b0
000015ac: PUSH2 0x1542
000015af: JUMP
000015b0: JUMPDEST
000015b1: PUSH2 0x15c3
000015b4: PUSH1 0x1f
000015b6: DUP3
000015b7: ADD
000015b8: PUSH1 0x1f
000015ba: NOT
000015bb: AND
000015bc: PUSH1 0x20
000015be: ADD
000015bf: PUSH2 0x1556
000015c2: JUMP
000015c3: JUMPDEST
000015c4: DUP2
000015c5: DUP2
000015c6: MSTORE
000015c7: DUP5
000015c8: PUSH1 0x20
000015ca: DUP4
000015cb: DUP7
000015cc: ADD
000015cd: ADD
000015ce: GT
000015cf: ISZERO
000015d0: PUSH2 0x15d7
000015d3: JUMPI
000015d4: PUSH0
000015d5: DUP1
000015d6: REVERT
000015d7: JUMPDEST
000015d8: DUP2
000015d9: PUSH1 0x20
000015db: DUP6
000015dc: ADD
000015dd: PUSH1 0x20
000015df: DUP4
000015e0: ADD
000015e1: CALLDATACOPY
000015e2: PUSH0
000015e3: SWAP2
000015e4: DUP2
000015e5: ADD
000015e6: PUSH1 0x20
000015e8: ADD
000015e9: SWAP2
000015ea: SWAP1
000015eb: SWAP2
000015ec: MSTORE
000015ed: SWAP4
000015ee: SWAP3
000015ef: POP
000015f0: POP
000015f1: POP
000015f2: JUMP
000015f3: JUMPDEST
000015f4: PUSH0
000015f5: DUP1
000015f6: PUSH0
000015f7: DUP1
000015f8: PUSH1 0x80
000015fa: DUP6
000015fb: DUP8
000015fc: SUB
000015fd: SLT
000015fe: ISZERO
000015ff: PUSH2 0x1606
00001602: JUMPI
00001603: PUSH0
00001604: DUP1
00001605: REVERT
00001606: JUMPDEST
00001607: DUP5
00001608: CALLDATALOAD
00001609: PUSH2 0x1611
0000160c: DUP2
0000160d: PUSH2 0x1504
00001610: JUMP
00001611: JUMPDEST
00001612: SWAP4
00001613: POP
00001614: PUSH1 0x20
00001616: DUP6
00001617: ADD
00001618: CALLDATALOAD
00001619: PUSH2 0x1621
0000161c: DUP2
0000161d: PUSH2 0x1504
00001620: JUMP
00001621: JUMPDEST
00001622: SWAP3
00001623: POP
00001624: PUSH1 0x40
00001626: DUP6
00001627: ADD
00001628: CALLDATALOAD
00001629: SWAP2
0000162a: POP
0000162b: PUSH1 0x60
0000162d: DUP6
0000162e: ADD
0000162f: CALLDATALOAD
00001630: PUSH8 0xffffffffffffffff
00001639: DUP2
0000163a: GT
0000163b: ISZERO
0000163c: PUSH2 0x1643
0000163f: JUMPI
00001640: PUSH0
00001641: DUP1
00001642: REVERT
00001643: JUMPDEST
00001644: PUSH2 0x164f
00001647: DUP8
00001648: DUP3
00001649: DUP9
0000164a: ADD
0000164b: PUSH2 0x1587
0000164e: JUMP
0000164f: JUMPDEST
00001650: SWAP2
00001651: POP
00001652: POP
00001653: SWAP3
00001654: SWAP6
00001655: SWAP2
00001656: SWAP5
00001657: POP
00001658: SWAP3
00001659: POP
0000165a: JUMP
0000165b: JUMPDEST
0000165c: PUSH0
0000165d: DUP1
0000165e: PUSH0
0000165f: DUP1
00001660: PUSH0
00001661: PUSH1 0xa0
00001663: DUP7
00001664: DUP9
00001665: SUB
00001666: SLT
00001667: ISZERO
00001668: PUSH2 0x166f
0000166b: JUMPI
0000166c: PUSH0
0000166d: DUP1
0000166e: REVERT
0000166f: JUMPDEST
00001670: DUP6
00001671: CALLDATALOAD
00001672: PUSH2 0x167a
00001675: DUP2
00001676: PUSH2 0x1504
00001679: JUMP
0000167a: JUMPDEST
0000167b: SWAP5
0000167c: POP
0000167d: PUSH1 0x20
0000167f: DUP7
00001680: ADD
00001681: CALLDATALOAD
00001682: PUSH2 0x168a
00001685: DUP2
00001686: PUSH2 0x1504
00001689: JUMP
0000168a: JUMPDEST
0000168b: SWAP4
0000168c: POP
0000168d: PUSH1 0x40
0000168f: DUP7
00001690: ADD
00001691: CALLDATALOAD
00001692: SWAP3
00001693: POP
00001694: PUSH1 0x60
00001696: DUP7
00001697: ADD
00001698: CALLDATALOAD
00001699: PUSH2 0x16a1
0000169c: DUP2
0000169d: PUSH2 0x1504
000016a0: JUMP
000016a1: JUMPDEST
000016a2: SWAP5
000016a3: SWAP8
000016a4: SWAP4
000016a5: SWAP7
000016a6: POP
000016a7: SWAP2
000016a8: SWAP5
000016a9: PUSH1 0x80
000016ab: ADD
000016ac: CALLDATALOAD
000016ad: SWAP3
000016ae: SWAP2
000016af: POP
000016b0: POP
000016b1: JUMP
000016b2: JUMPDEST
000016b3: PUSH0
000016b4: DUP1
000016b5: DUP4
000016b6: PUSH1 0x1f
000016b8: DUP5
000016b9: ADD
000016ba: SLT
000016bb: PUSH2 0x16c2
000016be: JUMPI
000016bf: PUSH0
000016c0: DUP1
000016c1: REVERT
000016c2: JUMPDEST
000016c3: POP
000016c4: DUP2
000016c5: CALLDATALOAD
000016c6: PUSH8 0xffffffffffffffff
000016cf: DUP2
000016d0: GT
000016d1: ISZERO
000016d2: PUSH2 0x16d9
000016d5: JUMPI
000016d6: PUSH0
000016d7: DUP1
000016d8: REVERT
000016d9: JUMPDEST
000016da: PUSH1 0x20
000016dc: DUP4
000016dd: ADD
000016de: SWAP2
000016df: POP
000016e0: DUP4
000016e1: PUSH1 0x20
000016e3: DUP3
000016e4: PUSH1 0x05
000016e6: SHL
000016e7: DUP6
000016e8: ADD
000016e9: ADD
000016ea: GT
000016eb: ISZERO
000016ec: PUSH2 0x16f3
000016ef: JUMPI
000016f0: PUSH0
000016f1: DUP1
000016f2: REVERT
000016f3: JUMPDEST
000016f4: SWAP3
000016f5: POP
000016f6: SWAP3
000016f7: SWAP1
000016f8: POP
000016f9: JUMP
000016fa: JUMPDEST
000016fb: PUSH0
000016fc: DUP1
000016fd: PUSH0
000016fe: DUP1
000016ff: PUSH0
00001700: DUP1
00001701: PUSH1 0x60
00001703: DUP8
00001704: DUP10
00001705: SUB
00001706: SLT
00001707: ISZERO
00001708: PUSH2 0x170f
0000170b: JUMPI
0000170c: PUSH0
0000170d: DUP1
0000170e: REVERT
0000170f: JUMPDEST
00001710: DUP7
00001711: CALLDATALOAD
00001712: PUSH8 0xffffffffffffffff
0000171b: DUP1
0000171c: DUP3
0000171d: GT
0000171e: ISZERO
0000171f: PUSH2 0x1726
00001722: JUMPI
00001723: PUSH0
00001724: DUP1
00001725: REVERT
00001726: JUMPDEST
00001727: PUSH2 0x1732
0000172a: DUP11
0000172b: DUP4
0000172c: DUP12
0000172d: ADD
0000172e: PUSH2 0x16b2
00001731: JUMP
00001732: JUMPDEST
00001733: SWAP1
00001734: SWAP9
00001735: POP
00001736: SWAP7
00001737: POP
00001738: PUSH1 0x20
0000173a: DUP10
0000173b: ADD
0000173c: CALLDATALOAD
0000173d: SWAP2
0000173e: POP
0000173f: DUP1
00001740: DUP3
00001741: GT
00001742: ISZERO
00001743: PUSH2 0x174a
00001746: JUMPI
00001747: PUSH0
00001748: DUP1
00001749: REVERT
0000174a: JUMPDEST
0000174b: PUSH2 0x1756
0000174e: DUP11
0000174f: DUP4
00001750: DUP12
00001751: ADD
00001752: PUSH2 0x16b2
00001755: JUMP
00001756: JUMPDEST
00001757: SWAP1
00001758: SWAP7
00001759: POP
0000175a: SWAP5
0000175b: POP
0000175c: PUSH1 0x40
0000175e: DUP10
0000175f: ADD
00001760: CALLDATALOAD
00001761: SWAP2
00001762: POP
00001763: DUP1
00001764: DUP3
00001765: GT
00001766: ISZERO
00001767: PUSH2 0x176e
0000176a: JUMPI
0000176b: PUSH0
0000176c: DUP1
0000176d: REVERT
0000176e: JUMPDEST
0000176f: POP
00001770: PUSH2 0x177b
00001773: DUP10
00001774: DUP3
00001775: DUP11
00001776: ADD
00001777: PUSH2 0x16b2
0000177a: JUMP
0000177b: JUMPDEST
0000177c: SWAP8
0000177d: SWAP11
0000177e: SWAP7
0000177f: SWAP10
00001780: POP
00001781: SWAP5
00001782: SWAP8
00001783: POP
00001784: SWAP3
00001785: SWAP6
00001786: SWAP4
00001787: SWAP5
00001788: SWAP3
00001789: POP
0000178a: POP
0000178b: POP
0000178c: JUMP
0000178d: JUMPDEST
0000178e: PUSH0
0000178f: PUSH1 0x20
00001791: DUP1
00001792: DUP4
00001793: ADD
00001794: DUP2
00001795: DUP5
00001796: MSTORE
00001797: DUP1
00001798: DUP6
00001799: MLOAD
0000179a: DUP1
0000179b: DUP4
0000179c: MSTORE
0000179d: PUSH1 0x40
0000179f: DUP7
000017a0: ADD
000017a1: SWAP2
000017a2: POP
000017a3: PUSH1 0x40
000017a5: DUP2
000017a6: PUSH1 0x05
000017a8: SHL
000017a9: DUP8
000017aa: ADD
000017ab: ADD
000017ac: SWAP3
000017ad: POP
000017ae: DUP4
000017af: DUP8
000017b0: ADD
000017b1: PUSH0
000017b2: JUMPDEST
000017b3: DUP3
000017b4: DUP2
000017b5: LT
000017b6: ISZERO
000017b7: PUSH2 0x17e0
000017ba: JUMPI
000017bb: PUSH1 0x3f
000017bd: NOT
000017be: DUP9
000017bf: DUP7
000017c0: SUB
000017c1: ADD
000017c2: DUP5
000017c3: MSTORE
000017c4: PUSH2 0x17ce
000017c7: DUP6
000017c8: DUP4
000017c9: MLOAD
000017ca: PUSH2 0x14c7
000017cd: JUMP
000017ce: JUMPDEST
000017cf: SWAP5
000017d0: POP
000017d1: SWAP3
000017d2: DUP6
000017d3: ADD
000017d4: SWAP3
000017d5: SWAP1
000017d6: DUP6
000017d7: ADD
000017d8: SWAP1
000017d9: PUSH1 0x01
000017db: ADD
000017dc: PUSH2 0x17b2
000017df: JUMP
000017e0: JUMPDEST
000017e1: POP
000017e2: SWAP3
000017e3: SWAP8
000017e4: SWAP7
000017e5: POP
000017e6: POP
000017e7: POP
000017e8: POP
000017e9: POP
000017ea: POP
000017eb: POP
000017ec: JUMP
000017ed: JUMPDEST
000017ee: PUSH0
000017ef: DUP1
000017f0: PUSH0
000017f1: PUSH1 0x60
000017f3: DUP5
000017f4: DUP7
000017f5: SUB
000017f6: SLT
000017f7: ISZERO
000017f8: PUSH2 0x17ff
000017fb: JUMPI
000017fc: PUSH0
000017fd: DUP1
000017fe: REVERT
000017ff: JUMPDEST
00001800: DUP4
00001801: CALLDATALOAD
00001802: PUSH2 0x180a
00001805: DUP2
00001806: PUSH2 0x1504
00001809: JUMP
0000180a: JUMPDEST
0000180b: SWAP3
0000180c: POP
0000180d: PUSH1 0x20
0000180f: DUP5
00001810: ADD
00001811: CALLDATALOAD
00001812: PUSH2 0x181a
00001815: DUP2
00001816: PUSH2 0x1504
00001819: JUMP
0000181a: JUMPDEST
0000181b: SWAP3
0000181c: SWAP6
0000181d: SWAP3
0000181e: SWAP5
0000181f: POP
00001820: POP
00001821: POP
00001822: PUSH1 0x40
00001824: SWAP2
00001825: SWAP1
00001826: SWAP2
00001827: ADD
00001828: CALLDATALOAD
00001829: SWAP1
0000182a: JUMP
0000182b: JUMPDEST
0000182c: PUSH0
0000182d: PUSH1 0x20
0000182f: DUP3
00001830: DUP5
00001831: SUB
00001832: SLT
00001833: ISZERO
00001834: PUSH2 0x183b
00001837: JUMPI
00001838: PUSH0
00001839: DUP1
0000183a: REVERT
0000183b: JUMPDEST
0000183c: DUP2
0000183d: CALLDATALOAD
0000183e: PUSH2 0x08ea
00001841: DUP2
00001842: PUSH2 0x1504
00001845: JUMP
00001846: JUMPDEST
00001847: PUSH0
00001848: DUP3
00001849: PUSH1 0x1f
0000184b: DUP4
0000184c: ADD
0000184d: SLT
0000184e: PUSH2 0x1855
00001851: JUMPI
00001852: PUSH0
00001853: DUP1
00001854: REVERT
00001855: JUMPDEST
00001856: DUP2
00001857: CALLDATALOAD
00001858: PUSH1 0x20
0000185a: PUSH8 0xffffffffffffffff
00001863: DUP3
00001864: GT
00001865: ISZERO
00001866: PUSH2 0x1871
00001869: JUMPI
0000186a: PUSH2 0x1871
0000186d: PUSH2 0x1542
00001870: JUMP
00001871: JUMPDEST
00001872: DUP2
00001873: PUSH1 0x05
00001875: SHL
00001876: PUSH2 0x1880
00001879: DUP3
0000187a: DUP3
0000187b: ADD
0000187c: PUSH2 0x1556
0000187f: JUMP
00001880: JUMPDEST
00001881: SWAP3
00001882: DUP4
00001883: MSTORE
00001884: DUP5
00001885: DUP2
00001886: ADD
00001887: DUP3
00001888: ADD
00001889: SWAP3
0000188a: DUP3
0000188b: DUP2
0000188c: ADD
0000188d: SWAP1
0000188e: DUP8
0000188f: DUP6
00001890: GT
00001891: ISZERO
00001892: PUSH2 0x1899
00001895: JUMPI
00001896: PUSH0
00001897: DUP1
00001898: REVERT
00001899: JUMPDEST
0000189a: DUP4
0000189b: DUP8
0000189c: ADD
0000189d: SWAP3
0000189e: POP
0000189f: JUMPDEST
000018a0: DUP5
000018a1: DUP4
000018a2: LT
000018a3: ISZERO
000018a4: PUSH2 0x18b8
000018a7: JUMPI
000018a8: DUP3
000018a9: CALLDATALOAD
000018aa: DUP3
000018ab: MSTORE
000018ac: SWAP2
000018ad: DUP4
000018ae: ADD
000018af: SWAP2
000018b0: SWAP1
000018b1: DUP4
000018b2: ADD
000018b3: SWAP1
000018b4: PUSH2 0x189f
000018b7: JUMP
000018b8: JUMPDEST
000018b9: SWAP8
000018ba: SWAP7
000018bb: POP
000018bc: POP
000018bd: POP
000018be: POP
000018bf: POP
000018c0: POP
000018c1: POP
000018c2: JUMP
000018c3: JUMPDEST
000018c4: PUSH0
000018c5: DUP1
000018c6: PUSH0
000018c7: DUP1
000018c8: PUSH0
000018c9: PUSH1 0xa0
000018cb: DUP7
000018cc: DUP9
000018cd: SUB
000018ce: SLT
000018cf: ISZERO
000018d0: PUSH2 0x18d7
000018d3: JUMPI
000018d4: PUSH0
000018d5: DUP1
000018d6: REVERT
000018d7: JUMPDEST
000018d8: DUP6
000018d9: CALLDATALOAD
000018da: PUSH2 0x18e2
000018dd: DUP2
000018de: PUSH2 0x1504
000018e1: JUMP
000018e2: JUMPDEST
000018e3: SWAP5
000018e4: POP
000018e5: PUSH1 0x20
000018e7: DUP7
000018e8: ADD
000018e9: CALLDATALOAD
000018ea: PUSH2 0x18f2
000018ed: DUP2
000018ee: PUSH2 0x1504
000018f1: JUMP
000018f2: JUMPDEST
000018f3: SWAP4
000018f4: POP
000018f5: PUSH1 0x40
000018f7: DUP7
000018f8: ADD
000018f9: CALLDATALOAD
000018fa: PUSH8 0xffffffffffffffff
00001903: DUP1
00001904: DUP3
00001905: GT
00001906: ISZERO
00001907: PUSH2 0x190e
0000190a: JUMPI
0000190b: PUSH0
0000190c: DUP1
0000190d: REVERT
0000190e: JUMPDEST
0000190f: PUSH2 0x191a
00001912: DUP10
00001913: DUP4
00001914: DUP11
00001915: ADD
00001916: PUSH2 0x1846
00001919: JUMP
0000191a: JUMPDEST
0000191b: SWAP5
0000191c: POP
0000191d: PUSH1 0x60
0000191f: DUP9
00001920: ADD
00001921: CALLDATALOAD
00001922: SWAP2
00001923: POP
00001924: DUP1
00001925: DUP3
00001926: GT
00001927: ISZERO
00001928: PUSH2 0x192f
0000192b: JUMPI
0000192c: PUSH0
0000192d: DUP1
0000192e: REVERT
0000192f: JUMPDEST
00001930: PUSH2 0x193b
00001933: DUP10
00001934: DUP4
00001935: DUP11
00001936: ADD
00001937: PUSH2 0x1846
0000193a: JUMP
0000193b: JUMPDEST
0000193c: SWAP4
0000193d: POP
0000193e: PUSH1 0x80
00001940: DUP9
00001941: ADD
00001942: CALLDATALOAD
00001943: SWAP2
00001944: POP
00001945: DUP1
00001946: DUP3
00001947: GT
00001948: ISZERO
00001949: PUSH2 0x1950
0000194c: JUMPI
0000194d: PUSH0
0000194e: DUP1
0000194f: REVERT
00001950: JUMPDEST
00001951: POP
00001952: PUSH2 0x195d
00001955: DUP9
00001956: DUP3
00001957: DUP10
00001958: ADD
00001959: PUSH2 0x1587
0000195c: JUMP
0000195d: JUMPDEST
0000195e: SWAP2
0000195f: POP
00001960: POP
00001961: SWAP3
00001962: SWAP6
00001963: POP
00001964: SWAP3
00001965: SWAP6
00001966: SWAP1
00001967: SWAP4
00001968: POP
00001969: JUMP
0000196a: JUMPDEST
0000196b: PUSH0
0000196c: DUP1
0000196d: PUSH0
0000196e: DUP1
0000196f: PUSH0
00001970: DUP1
00001971: PUSH0
00001972: PUSH1 0xe0
00001974: DUP9
00001975: DUP11
00001976: SUB
00001977: SLT
00001978: ISZERO
00001979: PUSH2 0x1980
0000197c: JUMPI
0000197d: PUSH0
0000197e: DUP1
0000197f: REVERT
00001980: JUMPDEST
00001981: DUP8
00001982: CALLDATALOAD
00001983: PUSH2 0x198b
00001986: DUP2
00001987: PUSH2 0x1504
0000198a: JUMP
0000198b: JUMPDEST
0000198c: SWAP7
0000198d: POP
0000198e: PUSH1 0x20
00001990: DUP9
00001991: ADD
00001992: CALLDATALOAD
00001993: PUSH2 0x199b
00001996: DUP2
00001997: PUSH2 0x1504
0000199a: JUMP
0000199b: JUMPDEST
0000199c: SWAP6
0000199d: POP
0000199e: PUSH1 0x40
000019a0: DUP9
000019a1: ADD
000019a2: CALLDATALOAD
000019a3: SWAP5
000019a4: POP
000019a5: PUSH1 0x60
000019a7: DUP9
000019a8: ADD
000019a9: CALLDATALOAD
000019aa: SWAP4
000019ab: POP
000019ac: PUSH1 0x80
000019ae: DUP9
000019af: ADD
000019b0: CALLDATALOAD
000019b1: PUSH1 0xff
000019b3: DUP2
000019b4: AND
000019b5: DUP2
000019b6: EQ
000019b7: PUSH2 0x19be
000019ba: JUMPI
000019bb: PUSH0
000019bc: DUP1
000019bd: REVERT
000019be: JUMPDEST
000019bf: SWAP7
000019c0: SWAP10
000019c1: SWAP6
000019c2: SWAP9
000019c3: POP
000019c4: SWAP4
000019c5: SWAP7
000019c6: SWAP3
000019c7: SWAP6
000019c8: SWAP5
000019c9: PUSH1 0xa0
000019cb: DUP5
000019cc: ADD
000019cd: CALLDATALOAD
000019ce: SWAP5
000019cf: POP
000019d0: PUSH1 0xc0
000019d2: SWAP1
000019d3: SWAP4
000019d4: ADD
000019d5: CALLDATALOAD
000019d6: SWAP3
000019d7: SWAP2
000019d8: POP
000019d9: POP
000019da: JUMP
000019db: JUMPDEST
000019dc: PUSH0
000019dd: DUP1
000019de: PUSH1 0x40
000019e0: DUP4
000019e1: DUP6
000019e2: SUB
000019e3: SLT
000019e4: ISZERO
000019e5: PUSH2 0x19ec
000019e8: JUMPI
000019e9: PUSH0
000019ea: DUP1
000019eb: REVERT
000019ec: JUMPDEST
000019ed: DUP3
000019ee: CALLDATALOAD
000019ef: PUSH2 0x19f7
000019f2: DUP2
000019f3: PUSH2 0x1504
000019f6: JUMP
000019f7: JUMPDEST
000019f8: SWAP2
000019f9: POP
000019fa: PUSH1 0x20
000019fc: DUP4
000019fd: ADD
000019fe: CALLDATALOAD
000019ff: PUSH2 0x1a07
00001a02: DUP2
00001a03: PUSH2 0x1504
00001a06: JUMP
00001a07: JUMPDEST
00001a08: DUP1
00001a09: SWAP2
00001a0a: POP
00001a0b: POP
00001a0c: SWAP3
00001a0d: POP
00001a0e: SWAP3
00001a0f: SWAP1
00001a10: POP
00001a11: JUMP
00001a12: JUMPDEST
00001a13: PUSH0
00001a14: DUP1
00001a15: PUSH0
00001a16: DUP1
00001a17: PUSH0
00001a18: PUSH1 0xa0
00001a1a: DUP7
00001a1b: DUP9
00001a1c: SUB
00001a1d: SLT
00001a1e: ISZERO
00001a1f: PUSH2 0x1a26
00001a22: JUMPI
00001a23: PUSH0
00001a24: DUP1
00001a25: REVERT
00001a26: JUMPDEST
00001a27: DUP6
00001a28: CALLDATALOAD
00001a29: PUSH2 0x1a31
00001a2c: DUP2
00001a2d: PUSH2 0x1504
00001a30: JUMP
00001a31: JUMPDEST
00001a32: SWAP5
00001a33: POP
00001a34: PUSH1 0x20
00001a36: DUP7
00001a37: ADD
00001a38: CALLDATALOAD
00001a39: PUSH2 0x1a41
00001a3c: DUP2
00001a3d: PUSH2 0x1504
00001a40: JUMP
00001a41: JUMPDEST
00001a42: SWAP4
00001a43: POP
00001a44: PUSH1 0x40
00001a46: DUP7
00001a47: ADD
00001a48: CALLDATALOAD
00001a49: SWAP3
00001a4a: POP
00001a4b: PUSH1 0x60
00001a4d: DUP7
00001a4e: ADD
00001a4f: CALLDATALOAD
00001a50: SWAP2
00001a51: POP
00001a52: PUSH1 0x80
00001a54: DUP7
00001a55: ADD
00001a56: CALLDATALOAD
00001a57: PUSH8 0xffffffffffffffff
00001a60: DUP2
00001a61: GT
00001a62: ISZERO
00001a63: PUSH2 0x1a6a
00001a66: JUMPI
00001a67: PUSH0
00001a68: DUP1
00001a69: REVERT
00001a6a: JUMPDEST
00001a6b: PUSH2 0x195d
00001a6e: DUP9
00001a6f: DUP3
00001a70: DUP10
00001a71: ADD
00001a72: PUSH2 0x1587
00001a75: JUMP
00001a76: JUMPDEST
00001a77: PUSH0
00001a78: DUP1
00001a79: PUSH0
00001a7a: DUP1
00001a7b: PUSH1 0x60
00001a7d: DUP6
00001a7e: DUP8
00001a7f: SUB
00001a80: SLT
00001a81: ISZERO
00001a82: PUSH2 0x1a89
00001a85: JUMPI
00001a86: PUSH0
00001a87: DUP1
00001a88: REVERT
00001a89: JUMPDEST
00001a8a: DUP5
00001a8b: CALLDATALOAD
00001a8c: PUSH2 0x1a94
00001a8f: DUP2
00001a90: PUSH2 0x1504
00001a93: JUMP
00001a94: JUMPDEST
00001a95: SWAP4
00001a96: POP
00001a97: PUSH1 0x20
00001a99: DUP6
00001a9a: ADD
00001a9b: CALLDATALOAD
00001a9c: PUSH8 0xffffffffffffffff
00001aa5: DUP1
00001aa6: DUP3
00001aa7: GT
00001aa8: ISZERO
00001aa9: PUSH2 0x1ab0
00001aac: JUMPI
00001aad: PUSH0
00001aae: DUP1
00001aaf: REVERT
00001ab0: JUMPDEST
00001ab1: DUP2
00001ab2: DUP8
00001ab3: ADD
00001ab4: SWAP2
00001ab5: POP
00001ab6: DUP8
00001ab7: PUSH1 0x1f
00001ab9: DUP4
00001aba: ADD
00001abb: SLT
00001abc: PUSH2 0x1ac3
00001abf: JUMPI
00001ac0: PUSH0
00001ac1: DUP1
00001ac2: REVERT
00001ac3: JUMPDEST
00001ac4: DUP2
00001ac5: CALLDATALOAD
00001ac6: DUP2
00001ac7: DUP2
00001ac8: GT
00001ac9: ISZERO
00001aca: PUSH2 0x1ad1
00001acd: JUMPI
00001ace: PUSH0
00001acf: DUP1
00001ad0: REVERT
00001ad1: JUMPDEST
00001ad2: DUP9
00001ad3: PUSH1 0x20
00001ad5: DUP3
00001ad6: DUP6
00001ad7: ADD
00001ad8: ADD
00001ad9: GT
00001ada: ISZERO
00001adb: PUSH2 0x1ae2
00001ade: JUMPI
00001adf: PUSH0
00001ae0: DUP1
00001ae1: REVERT
00001ae2: JUMPDEST
00001ae3: SWAP6
00001ae4: SWAP9
00001ae5: PUSH1 0x20
00001ae7: SWAP3
00001ae8: SWAP1
00001ae9: SWAP3
00001aea: ADD
00001aeb: SWAP8
00001aec: POP
00001aed: SWAP5
00001aee: SWAP6
00001aef: PUSH1 0x40
00001af1: ADD
00001af2: CALLDATALOAD
00001af3: SWAP5
00001af4: POP
00001af5: SWAP3
00001af6: POP
00001af7: POP
00001af8: POP
00001af9: JUMP
00001afa: JUMPDEST
00001afb: PUSH1 0x01
00001afd: DUP2
00001afe: DUP2
00001aff: SHR
00001b00: SWAP1
00001b01: DUP3
00001b02: AND
00001b03: DUP1
00001b04: PUSH2 0x1b0e
00001b07: JUMPI
00001b08: PUSH1 0x7f
00001b0a: DUP3
00001b0b: AND
00001b0c: SWAP2
00001b0d: POP
00001b0e: JUMPDEST
00001b0f: PUSH1 0x20
00001b11: DUP3
00001b12: LT
00001b13: DUP2
00001b14: SUB
00001b15: PUSH2 0x1b2c
00001b18: JUMPI
00001b19: PUSH4 0x4e487b71
00001b1e: PUSH1 0xe0
00001b20: SHL
00001b21: PUSH0
00001b22: MSTORE
00001b23: PUSH1 0x22
00001b25: PUSH1 0x04
00001b27: MSTORE
00001b28: PUSH1 0x24
00001b2a: PUSH0
00001b2b: REVERT
00001b2c: JUMPDEST
00001b2d: POP
00001b2e: SWAP2
00001b2f: SWAP1
00001b30: POP
00001b31: JUMP
00001b32: JUMPDEST
00001b33: PUSH1 0x20
00001b35: DUP1
00001b36: DUP3
00001b37: MSTORE
00001b38: PUSH1 0x0c
00001b3a: SWAP1
00001b3b: DUP3
00001b3c: ADD
00001b3d: MSTORE
00001b3e: PUSH12 0x15539055551213d492569151
00001b4b: PUSH1 0xa2
00001b4d: SHL
00001b4e: PUSH1 0x40
00001b50: DUP3
00001b51: ADD
00001b52: MSTORE
00001b53: PUSH1 0x60
00001b55: ADD
00001b56: SWAP1
00001b57: JUMP
00001b58: JUMPDEST
00001b59: PUSH4 0x4e487b71
00001b5e: PUSH1 0xe0
00001b60: SHL
00001b61: PUSH0
00001b62: MSTORE
00001b63: PUSH1 0x32
00001b65: PUSH1 0x04
00001b67: MSTORE
00001b68: PUSH1 0x24
00001b6a: PUSH0
00001b6b: REVERT
00001b6c: JUMPDEST
00001b6d: PUSH0
00001b6e: DUP1
00001b6f: DUP4
00001b70: CALLDATALOAD
00001b71: PUSH1 0x1e
00001b73: NOT
00001b74: DUP5
00001b75: CALLDATASIZE
00001b76: SUB
00001b77: ADD
00001b78: DUP2
00001b79: SLT
00001b7a: PUSH2 0x1b81
00001b7d: JUMPI
00001b7e: PUSH0
00001b7f: DUP1
00001b80: REVERT
00001b81: JUMPDEST
00001b82: DUP4
00001b83: ADD
00001b84: DUP1
00001b85: CALLDATALOAD
00001b86: SWAP2
00001b87: POP
00001b88: PUSH8 0xffffffffffffffff
00001b91: DUP3
00001b92: GT
00001b93: ISZERO
00001b94: PUSH2 0x1b9b
00001b97: JUMPI
00001b98: PUSH0
00001b99: DUP1
00001b9a: REVERT
00001b9b: JUMPDEST
00001b9c: PUSH1 0x20
00001b9e: ADD
00001b9f: SWAP2
00001ba0: POP
00001ba1: CALLDATASIZE
00001ba2: DUP2
00001ba3: SWAP1
00001ba4: SUB
00001ba5: DUP3
00001ba6: SGT
00001ba7: ISZERO
00001ba8: PUSH2 0x16f3
00001bab: JUMPI
00001bac: PUSH0
00001bad: DUP1
00001bae: REVERT
00001baf: JUMPDEST
00001bb0: PUSH4 0x4e487b71
00001bb5: PUSH1 0xe0
00001bb7: SHL
00001bb8: PUSH0
00001bb9: MSTORE
00001bba: PUSH1 0x11
00001bbc: PUSH1 0x04
00001bbe: MSTORE
00001bbf: PUSH1 0x24
00001bc1: PUSH0
00001bc2: REVERT
00001bc3: JUMPDEST
00001bc4: PUSH0
00001bc5: PUSH1 0x01
00001bc7: DUP3
00001bc8: ADD
00001bc9: PUSH2 0x1bd4
00001bcc: JUMPI
00001bcd: PUSH2 0x1bd4
00001bd0: PUSH2 0x1baf
00001bd3: JUMP
00001bd4: JUMPDEST
00001bd5: POP
00001bd6: PUSH1 0x01
00001bd8: ADD
00001bd9: SWAP1
00001bda: JUMP
00001bdb: JUMPDEST
00001bdc: PUSH1 0x01
00001bde: PUSH1 0x01
00001be0: PUSH1 0xa0
00001be2: SHL
00001be3: SUB
00001be4: SWAP4
00001be5: DUP5
00001be6: AND
00001be7: DUP2
00001be8: MSTORE
00001be9: SWAP2
00001bea: SWAP1
00001beb: SWAP3
00001bec: AND
00001bed: PUSH1 0x20
00001bef: DUP3
00001bf0: ADD
00001bf1: MSTORE
00001bf2: PUSH1 0x01
00001bf4: PUSH1 0x01
00001bf6: PUSH1 0xe0
00001bf8: SHL
00001bf9: SUB
00001bfa: NOT
00001bfb: SWAP1
00001bfc: SWAP2
00001bfd: AND
00001bfe: PUSH1 0x40
00001c00: DUP3
00001c01: ADD
00001c02: MSTORE
00001c03: PUSH1 0x60
00001c05: ADD
00001c06: SWAP1
00001c07: JUMP
00001c08: JUMPDEST
00001c09: PUSH0
00001c0a: PUSH1 0x20
00001c0c: DUP3
00001c0d: DUP5
00001c0e: SUB
00001c0f: SLT
00001c10: ISZERO
00001c11: PUSH2 0x1c18
00001c14: JUMPI
00001c15: PUSH0
00001c16: DUP1
00001c17: REVERT
00001c18: JUMPDEST
00001c19: DUP2
00001c1a: MLOAD
00001c1b: DUP1
00001c1c: ISZERO
00001c1d: ISZERO
00001c1e: DUP2
00001c1f: EQ
00001c20: PUSH2 0x08ea
00001c23: JUMPI
00001c24: PUSH0
00001c25: DUP1
00001c26: REVERT
00001c27: JUMPDEST
00001c28: DUP2
00001c29: DUP2
00001c2a: SUB
00001c2b: DUP2
00001c2c: DUP2
00001c2d: GT
00001c2e: ISZERO
00001c2f: PUSH2 0x059c
00001c32: JUMPI
00001c33: PUSH2 0x059c
00001c36: PUSH2 0x1baf
00001c39: JUMP
00001c3a: JUMPDEST
00001c3b: PUSH0
00001c3c: DUP3
00001c3d: MLOAD
00001c3e: PUSH2 0x1c4b
00001c41: DUP2
00001c42: DUP5
00001c43: PUSH1 0x20
00001c45: DUP8
00001c46: ADD
00001c47: PUSH2 0x14a5
00001c4a: JUMP
00001c4b: JUMPDEST
00001c4c: SWAP2
00001c4d: SWAP1
00001c4e: SWAP2
00001c4f: ADD
00001c50: SWAP3
00001c51: SWAP2
00001c52: POP
00001c53: POP
00001c54: JUMP
00001c55: JUMPDEST
00001c56: PUSH0
00001c57: DUP1
00001c58: DUP4
00001c59: SLOAD
00001c5a: DUP2
00001c5b: PUSH1 0x01
00001c5d: DUP3
00001c5e: DUP2
00001c5f: SHR
00001c60: SWAP2
00001c61: POP
00001c62: DUP1
00001c63: DUP4
00001c64: AND
00001c65: DUP1
00001c66: PUSH2 0x1c70
00001c69: JUMPI
00001c6a: PUSH1 0x7f
00001c6c: DUP4
00001c6d: AND
00001c6e: SWAP3
00001c6f: POP
00001c70: JUMPDEST
00001c71: PUSH1 0x20
00001c73: DUP1
00001c74: DUP5
00001c75: LT
00001c76: DUP3
00001c77: SUB
00001c78: PUSH2 0x1c8f
00001c7b: JUMPI
00001c7c: PUSH4 0x4e487b71
00001c81: PUSH1 0xe0
00001c83: SHL
00001c84: DUP7
00001c85: MSTORE
00001c86: PUSH1 0x22
00001c88: PUSH1 0x04
00001c8a: MSTORE
00001c8b: PUSH1 0x24
00001c8d: DUP7
00001c8e: REVERT
00001c8f: JUMPDEST
00001c90: DUP2
00001c91: DUP1
00001c92: ISZERO
00001c93: PUSH2 0x1ca3
00001c96: JUMPI
00001c97: PUSH1 0x01
00001c99: DUP2
00001c9a: EQ
00001c9b: PUSH2 0x1cb8
00001c9e: JUMPI
00001c9f: PUSH2 0x1ce3
00001ca2: JUMP
00001ca3: JUMPDEST
00001ca4: PUSH1 0xff
00001ca6: NOT
00001ca7: DUP7
00001ca8: AND
00001ca9: DUP10
00001caa: MSTORE
00001cab: DUP5
00001cac: ISZERO
00001cad: ISZERO
00001cae: DUP6
00001caf: MUL
00001cb0: DUP10
00001cb1: ADD
00001cb2: SWAP7
00001cb3: POP
00001cb4: PUSH2 0x1ce3
00001cb7: JUMP
00001cb8: JUMPDEST
00001cb9: PUSH0
00001cba: DUP11
00001cbb: DUP2
00001cbc: MSTORE
00001cbd: PUSH1 0x20
00001cbf: SWAP1
00001cc0: KECCAK256
00001cc1: PUSH0
00001cc2: JUMPDEST
00001cc3: DUP7
00001cc4: DUP2
00001cc5: LT
00001cc6: ISZERO
00001cc7: PUSH2 0x1cdb
00001cca: JUMPI
00001ccb: DUP2
00001ccc: SLOAD
00001ccd: DUP12
00001cce: DUP3
00001ccf: ADD
00001cd0: MSTORE
00001cd1: SWAP1
00001cd2: DUP6
00001cd3: ADD
00001cd4: SWAP1
00001cd5: DUP4
00001cd6: ADD
00001cd7: PUSH2 0x1cc2
00001cda: JUMP
00001cdb: JUMPDEST
00001cdc: POP
00001cdd: POP
00001cde: DUP5
00001cdf: DUP10
00001ce0: ADD
00001ce1: SWAP7
00001ce2: POP
00001ce3: JUMPDEST
00001ce4: POP
00001ce5: SWAP5
00001ce6: SWAP9
00001ce7: SWAP8
00001ce8: POP
00001ce9: POP
00001cea: POP
00001ceb: POP
00001cec: POP
00001ced: POP
00001cee: POP
00001cef: POP
00001cf0: JUMP
00001cf1: JUMPDEST
00001cf2: DUP1
00001cf3: DUP3
00001cf4: ADD
00001cf5: DUP1
00001cf6: DUP3
00001cf7: GT
00001cf8: ISZERO
00001cf9: PUSH2 0x059c
00001cfc: JUMPI
00001cfd: PUSH2 0x059c
00001d00: PUSH2 0x1baf
00001d03: JUMP
00001d04: INVALID
00001d05: UNKNOWN(0xDD)
00001d06: CALLCODE
00001d07: MSTORE
00001d08: UNKNOWN(0xAD)
00001d09: SHL
00001d0a: UNKNOWN(0xE2)
00001d0b: UNKNOWN(0xC8)
00001d0c: SWAP12
00001d0d: PUSH10 0xc2b068fc378daa952ba7
00001d18: CALL
00001d19: PUSH4 0xc4a11628
00001d1e: CREATE2
00001d1f: GAS
00001d20: UNKNOWN(0x4D)
00001d21: CREATE2
00001d22: UNKNOWN(0x23)
00001d23: UNKNOWN(0xB3)
00001d24: UNKNOWN(0xEF)
00001d25: LOG2
00001d26: PUSH5 0x6970667358
00001d2c: UNKNOWN(0x22)
00001d2d: SLT
00001d2e: KECCAK256
00001d2f: ADD
00001d30: PUSH5 0xad0ede4373
00001d36: UNKNOWN(0xE4)
00001d37: EXTCODEHASH
00001d38: CALLDATASIZE
00001d39: ADDRESS
00001d3a: SWAP7
00001d3b: UNKNOWN(0xEE)
00001d3c: CALLDATACOPY
00001d3d: SWAP15
00001d3e: SWAP5
00001d3f: UNKNOWN(0xAD)
00001d40: SLOAD
00001d41: REVERT
00001d42: DUP9
00001d43: UNKNOWN(0xD4)
00001d44: EXTCODESIZE
00001d45: UNKNOWN(0xE2)
00001d46: UNKNOWN(0x2A)
00001d47: UNKNOWN(0xDF)
00001d48: UNKNOWN(0x4E)
00001d49: PUSH8 0x161eb777e964736f
00001d52: PUSH13

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x8243cfce8b7c14c31a27028931fbd6a7313a10b49fbc0d6ffe72c0c6605268cd
call_targets: 0x83599937c2c9bea0e0e8ac096c6f32e86486b410
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x8243cfce8b7c14c31a27028931fbd6a7313a10b49fbc0d6ffe72c0c6605268cd",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x83599937c2c9bea0e0e8ac096c6f32e86486b410"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf23a6e61",
            "selector": "0xf23a6e61",
            "calldata_variants": [
                "0xf23a6e61",
                "0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6e715d0",
            "selector": "0xf6e715d0",
            "calldata_variants": [
                "0xf6e715d0",
                "0xf6e715d00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbc197c81",
            "selector": "0xbc197c81",
            "calldata_variants": [
                "0xbc197c81",
                "0xbc197c810000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbf7e214f",
            "selector": "0xbf7e214f",
            "calldata_variants": [
                "0xbf7e214f",
                "0xbf7e214f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7ecebe00",
            "selector": "0x7ecebe00",
            "calldata_variants": [
                "0x7ecebe00",
                "0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4046,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4208,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4840,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 5,
    "guards_detected": [],
    "untrusted_call_count": 5
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x8243cfce8b7c14c31a27028931fbd6a7313a10b49fbc0d6ffe72c0c6605268cd
call_targets: 0x83599937c2c9bea0e0e8ac096c6f32e86486b410
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x8243cfce8b7c14c31a27028931fbd6a7313a10b49fbc0d6ffe72c0c6605268cd",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x83599937c2c9bea0e0e8ac096c6f32e86486b410"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf23a6e61",
            "selector": "0xf23a6e61",
            "calldata_variants": [
                "0xf23a6e61",
                "0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6e715d0",
            "selector": "0xf6e715d0",
            "calldata_variants": [
                "0xf6e715d0",
                "0xf6e715d00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbc197c81",
            "selector": "0xbc197c81",
            "calldata_variants": [
                "0xbc197c81",
                "0xbc197c810000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbf7e214f",
            "selector": "0xbf7e214f",
            "calldata_variants": [
                "0xbf7e214f",
                "0xbf7e214f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7ecebe00",
            "selector": "0x7ecebe00",
            "calldata_variants": [
                "0x7ecebe00",
                "0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4046,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4208,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4840,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 5,
    "guards_detected": []
}
high other slither BoringVault.enter(address,ERC20,uint256,address,uint256) (src/base/BoringVault.sol#74-85) uses arbitrary from in transferFrom: asset.safeTransferFrom(from,address(this),assetAmo... 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "arbitrary-send-erc20",
    "elements": [
        {
            "name": "enter",
            "type": "function",
            "source_mapping": {
                "lines": [
                    74,
                    75,
                    76,
                    77,
                    78,
                    79,
                    80,
                    81,
                    82,
                    83,
                    84,
                    85
                ],
                "start": 2871,
                "length": 392,
                "ending_column": 6,
                "is_dependency": false,
                "filename_short": "src/base/BoringVault.sol",
                "starting_column": 5,
                "filename_absolute": "/tmp/slither-mjpjqk_1/src/base/BoringVault.sol",
                "filename_relative": "src/base/BoringVault.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "BoringVault",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            13,
                            14,
                            15,
                            16,
                            17,
                            18,
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40,
                            41,
                            42,
                            43,
                            44,
                            45,
                            46,
                            47,
                            48,
                            49,
                            50,
                            51,
                            52,
                            53,
                            54,
                            55,
                            56,
                            57,
                            58,
                            59,
                            60,
                            61,
                            62,
                            63,
                            64,
                            65,
                            66,
                            67,
                            68,
                            69,
                            70,
                            71,
                            72,
                            73,
                            74,
                            75,
                            76,
                            77,
                            78,
                            79,
                            80,
                            81,
                            82,
                            83,
                            84,
                            85,
                            86,
                            87,
                            88,
                            89,
                            90,
                            91,
                            92,
                            93,
                            94,
                            95,
                            96,
                            97,
                            98,
                            99,
                            100,
                            101,
                            102,
                            103,
                            104,
                            105,
                            106,
                            107,
                            108,
                            109,
                            110,
                            111,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125,
                            126,
                            127,
                            128,
                            129,
                            130,
                            131,
                            132,
                            133,
                            134,
                            135,
                            136,
                            137
                        ],
                        "start": 634,
                        "length": 4408,
                        "ending_column": 2,
                        "is_dependency": false,
                        "filename_short": "src/base/BoringVault.sol",
                        "starting_column": 1,
                        "filename_absolute": "/tmp/slither-mjpjqk_1/src/base/BoringVault.sol",
                        "filename_relative": "src/base/BoringVault.sol"
                    }
                },
                "signature": "enter(address,ERC20,uint256,address,uint256)"
            }
        },
        {
            "name": "asset.safeTransferFrom(from,address(this),assetAmount)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    79
                ],
                "start": 3070,
                "length": 56,
                "ending_column": 86,
                "is_dependency": false,
                "filename_short": "src/base/BoringVault.sol",
                "starting_column": 30,
                "filename_absolute": "/tmp/slither-mjpjqk_1/src/base/BoringVault.sol",
                "filename_relative": "src/base/BoringVault.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "enter",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            74,
                            75,
                            76,
                            77,
                            78,
                            79,
                            80,
                            81,
                            82,
                            83,
                            84,
                            85
                        ],
                        "start": 2871,
                        "length": 392,
                        "ending_column": 6,
                        "is_dependency": false,
                        "filename_short": "src/base/BoringVault.sol",
                        "starting_column": 5,
                        "filename_absolute": "/tmp/slither-mjpjqk_1/src/base/BoringVault.sol",
                        "filename_relative": "src/base/BoringVault.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "BoringVault",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    13,
                                    14,
                                    15,
                                    16,
                                    17,
                                    18,
                                    19,
                                    20,
                                    21,
                                    22,
                                    23,
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131,
                                    132,
                                    133,
                                    134,
                                    135,
                                    136,
                                    137
                                ],
                                "start": 634,
                                "length": 4408,
                                "ending_column": 2,
                                "is_dependency": false,
                                "filename_short": "src/base/BoringVault.sol",
                                "starting_column": 1,
                                "filename_absolute": "/tmp/slither-mjpjqk_1/src/base/BoringVault.sol",
                                "filename_relative": "src/base/BoringVault.sol"
                            }
                        },
                        "signature": "enter(address,ERC20,uint256,address,uint256)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "src/base/BoringVault.sol",
            "name": "enter",
            "type": "function",
            "lines": [
                74,
                75,
                76,
                77,
                78,
                79,
                80,
                81,
                82,
                83,
                84,
                85
            ]
        },
        {
            "file": "src/base/BoringVault.sol",
            "name": "asset.safeTransferFrom(from,address(this),assetAmount)",
            "type": "node",
            "lines": [
                79
            ]
        }
    ],
    "description": "BoringVault.enter(address,ERC20,uint256,address,uint256) (src/base/BoringVault.sol#74-85) uses arbitrary from in transferFrom: asset.safeTransferFrom(from,address(this),assetAmount) (src/base/BoringVault.sol#79)"
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x7fd522358ac898d81752e98836acc0b8c62cc6871f9594ce89cb2b566ebc4517
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x7fd522358ac898d81752e98836acc0b8c62cc6871f9594ce89cb2b566ebc4517",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf23a6e61",
            "selector": "0xf23a6e61",
            "calldata_variants": [
                "0xf23a6e61",
                "0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6e715d0",
            "selector": "0xf6e715d0",
            "calldata_variants": [
                "0xf6e715d0",
                "0xf6e715d00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbc197c81",
            "selector": "0xbc197c81",
            "calldata_variants": [
                "0xbc197c81",
                "0xbc197c810000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbf7e214f",
            "selector": "0xbf7e214f",
            "calldata_variants": [
                "0xbf7e214f",
                "0xbf7e214f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7ecebe00",
            "selector": "0x7ecebe00",
            "calldata_variants": [
                "0x7ecebe00",
                "0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 2
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 0,
    "create2_count": 2
}