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

Analysis Run

019c0eab-c14a-7068-a5b7-e9885803d0b8

failed
Chain ID
1
Address
Block Number
Created
Fri, Jan 30, 2026 11:31 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 DELEGATECALL target 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
42441 artifact.fetch complete 1 / 3 2 months ago
42442 proxy.resolve complete 1 / 3 2 months ago
42443 tool.cast_disasm complete 1 / 3 2 months ago
42444 analysis.bundle complete 1 / 3 2 months ago
42445 capability.graph complete 1 / 3 2 months ago
42446 detector.run complete 1 / 3 2 months ago
42447 validation.fork complete 1 / 3 2 months ago
42505 report.consolidate complete 1 / 6 2 months ago
42506 tool.slither failed 2 / 2 2 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
failed slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-l8qdmsx2) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-l8qdmsx2) 'forge' returned non-zero exit code 1 2026-01-30T17:04:38.427935Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol": No such file or directory (os error 2) stdout: 2026-01-30T17:04:38.428058Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/proxy/ProxyAdmin.sol": No such file or directory (os error 2) stdout: 2026-01-30T17:04:38.428105Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol": No such file or directory (os error 2) stdout: 2026-01-30T17:04:38.428139Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/math/SafeMath.sol": No such file or directory (os error 2) stdout: 2026-01-30T17:04:38.428171Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/math/SafeMath.sol": No such file or directory (os error 2) stdout: 2026-01-30T17:04:38.428199Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/math/SafeMath.sol": No such file or directory (os error 2) stdout: 2026-01-30T17:04:38.428225Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol": No such file or directory (os error 2) stdout: 2026-01-30T17:04:38.428234Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol": No such file or directory (os error 2) stdout: Unable to resolve imports: stdout: "@openzeppelin/contracts/math/SafeMath.sol" in "/tmp/slither-l8qdmsx2/contracts/libs/LibGas.sol" stdout: "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol" in "/tmp/slither-l8qdmsx2/contracts/testing/TokenB.sol" stdout: "@openzeppelin/contracts/math/SafeMath.sol" in "/tmp/slither-l8qdmsx2/contracts/swapper/uniswap/Uniswapper.sol" stdout: "@openzeppelin/contracts/token/ERC20/SafeERC20.sol" in "/tmp/slither-l8qdmsx2/contracts/libs/LibGas.sol" stdout: "@openzeppelin/contracts/math/SafeMath.sol" in "/tmp/slither-l8qdmsx2/contracts/swapper/uniswapRouting/RoutedSwap.sol" stdout: "@openzeppelin/contracts/token/ERC20/SafeERC20.sol" in "/tmp/slither-l8qdmsx2/contracts/SwapSettlement.sol" stdout: "@openzeppelin/contracts/proxy/ProxyAdmin.sol" in "/tmp/slither-l8qdmsx2/contracts/deployment/DeploymentAdmin.sol" stdout: "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol" in "/tmp/slither-l8qdmsx2/contracts/testing/TokenA.sol" stdout: with remappings: stdout: openzeppelin-contracts/=/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/ stdout: @openzeppelin/contracts/=/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/ stdout: Compiling 20 files with Solc 0.6.8 stdout: Solc 0.6.8 finished in 20.86ms Error: Compiler run failed: stderr: Error: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found. stderr: contracts/SwapSettlement.sol:7:1: ParserError: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found. stderr: import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol"; stderr: ^---------------------------------------------------------^ stderr: Error: Source "lib/openzeppelin-contracts/contracts/proxy/ProxyAdmin.sol" not found: File not found. stderr: contracts/deployment/DeploymentAdmin.sol:4:1: ParserError: Source "lib/openzeppelin-contracts/contracts/proxy/ProxyAdmin.sol" not found: File not found. stderr: import "@openzeppelin/contracts/proxy/ProxyAdmin.sol"; stderr: ^----------------------------------------------------^ stderr: Error: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found. stderr: contracts/libs/LibGas.sol:5:1: ParserError: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found. stderr: import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol"; stderr: ^---------------------------------------------------------^ stderr: Error: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found. stderr: contracts/libs/LibGas.sol:6:1: ParserError: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found. stderr: import "@openzeppelin/contracts/math/SafeMath.sol"; stderr: ^-------------------------------------------------^ stderr: Error: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found. stderr: contracts/swapper/uniswap/Uniswapper.sol:6:1: ParserError: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found. stderr: import "@openzeppelin/contracts/math/SafeMath.sol"; stderr: ^-------------------------------------------------^ stderr: Error: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found. stderr: contracts/swapper/uniswapRouting/RoutedSwap.sol:6:1: ParserError: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found. stderr: import "@openzeppelin/contracts/math/SafeMath.sol"; stderr: ^-------------------------------------------------^ stderr: Error: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found. stderr: contracts/testing/TokenA.sol:4:1: ParserError: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found. stderr: import "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol"; stderr: ^-------------------------------------------------------------------^ stderr: Error: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found. stderr: contracts/testing/TokenB.sol:4:1: ParserError: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found. stderr: import "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol"; stderr: ^-------------------------------------------------------------------^ Traceback (most recent call last): File "/var/www/tripwire/.venv/bin/slither", line 10, in <module> sys.exit(main()) ~~~~^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main main_impl(all_detector_classes=detectors, all_printer_classes=printers) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl ) = process_all(filename, args, detector_classes, printer_classes) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all compilations = compile_all(target, **vars(args)) File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all compilations.append(CryticCompile(target, **kwargs)) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__ self._compile(**kwargs) ~~~~~~~~~~~~~^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile self._platform.compile(self, **kwargs) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile hardhat_like_parsing( ~~~~~~~~~~~~~~~~~~~~^ crytic_compile, str(self._target), build_directory, str(self._project_root) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing raise InvalidCompilation(txt) crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command? /tmp/slither-l8qdmsx2/out/build-info is not a directory.
Attempts
2 / 2
Findings
0
Solc
View stderr
Traceback (most recent call last):
  File "/var/www/tripwire/worker/worker.py", line 198, in main
    payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
  File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
    return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 1084, in run
    stdout_text, stderr_text, result_json = _run_slither(
                                            ~~~~~~~~~~~~^
        workspace,
        ^^^^^^^^^^
    ...<4 lines>...
        target_path=target_path,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 958, in _run_slither
    raise RuntimeError(f"slither failed (exit {result.returncode}): {stderr_text or stdout_text}")
RuntimeError: slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-l8qdmsx2)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-l8qdmsx2)
'forge' returned non-zero exit code 1
2026-01-30T17:04:38.427935Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol": No such file or directory (os error 2)
stdout: 2026-01-30T17:04:38.428058Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/proxy/ProxyAdmin.sol": No such file or directory (os error 2)
stdout: 2026-01-30T17:04:38.428105Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol": No such file or directory (os error 2)
stdout: 2026-01-30T17:04:38.428139Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/math/SafeMath.sol": No such file or directory (os error 2)
stdout: 2026-01-30T17:04:38.428171Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/math/SafeMath.sol": No such file or directory (os error 2)
stdout: 2026-01-30T17:04:38.428199Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/math/SafeMath.sol": No such file or directory (os error 2)
stdout: 2026-01-30T17:04:38.428225Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol": No such file or directory (os error 2)
stdout: 2026-01-30T17:04:38.428234Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol": No such file or directory (os error 2)
stdout: Unable to resolve imports:
stdout:       "@openzeppelin/contracts/math/SafeMath.sol" in "/tmp/slither-l8qdmsx2/contracts/libs/LibGas.sol"
stdout:       "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol" in "/tmp/slither-l8qdmsx2/contracts/testing/TokenB.sol"
stdout:       "@openzeppelin/contracts/math/SafeMath.sol" in "/tmp/slither-l8qdmsx2/contracts/swapper/uniswap/Uniswapper.sol"
stdout:       "@openzeppelin/contracts/token/ERC20/SafeERC20.sol" in "/tmp/slither-l8qdmsx2/contracts/libs/LibGas.sol"
stdout:       "@openzeppelin/contracts/math/SafeMath.sol" in "/tmp/slither-l8qdmsx2/contracts/swapper/uniswapRouting/RoutedSwap.sol"
stdout:       "@openzeppelin/contracts/token/ERC20/SafeERC20.sol" in "/tmp/slither-l8qdmsx2/contracts/SwapSettlement.sol"
stdout:       "@openzeppelin/contracts/proxy/ProxyAdmin.sol" in "/tmp/slither-l8qdmsx2/contracts/deployment/DeploymentAdmin.sol"
stdout:       "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol" in "/tmp/slither-l8qdmsx2/contracts/testing/TokenA.sol"
stdout: with remappings:
stdout:       openzeppelin-contracts/=/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/
stdout:       @openzeppelin/contracts/=/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/
stdout: Compiling 20 files with Solc 0.6.8
stdout: Solc 0.6.8 finished in 20.86ms
Error: Compiler run failed:
stderr: Error: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found.
stderr: contracts/SwapSettlement.sol:7:1: ParserError: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
stderr: ^---------------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/proxy/ProxyAdmin.sol" not found: File not found.
stderr: contracts/deployment/DeploymentAdmin.sol:4:1: ParserError: Source "lib/openzeppelin-contracts/contracts/proxy/ProxyAdmin.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/proxy/ProxyAdmin.sol";
stderr: ^----------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found.
stderr: contracts/libs/LibGas.sol:5:1: ParserError: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
stderr: ^---------------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: contracts/libs/LibGas.sol:6:1: ParserError: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/math/SafeMath.sol";
stderr: ^-------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: contracts/swapper/uniswap/Uniswapper.sol:6:1: ParserError: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/math/SafeMath.sol";
stderr: ^-------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: contracts/swapper/uniswapRouting/RoutedSwap.sol:6:1: ParserError: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/math/SafeMath.sol";
stderr: ^-------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found.
stderr: contracts/testing/TokenA.sol:4:1: ParserError: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol";
stderr: ^-------------------------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found.
stderr: contracts/testing/TokenB.sol:4:1: ParserError: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol";
stderr: ^-------------------------------------------------------------------^
Traceback (most recent call last):
  File "/var/www/tripwire/.venv/bin/slither", line 10, in <module>
    sys.exit(main())
             ~~~~^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main
    main_impl(all_detector_classes=detectors, all_printer_classes=printers)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
        ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all
    compilations = compile_all(target, **vars(args))
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all
    compilations.append(CryticCompile(target, **kwargs))
                        ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__
    self._compile(**kwargs)
    ~~~~~~~~~~~~~^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile
    self._platform.compile(self, **kwargs)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile
    hardhat_like_parsing(
    ~~~~~~~~~~~~~~~~~~~~^
        crytic_compile, str(self._target), build_directory, str(self._project_root)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing
    raise InvalidCompilation(txt)
crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command?
/tmp/slither-l8qdmsx2/out/build-info is not a directory.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
3
No findings?
no
Summary
Missing on-chain order authorization allows relays to execute arbitrary swaps, public initializers can be seized if not initialized atomically, and several ERC20 interactions ignore return values.
View stdout
{"no_findings":false,"summary":"Missing on-chain order authorization allows relays to execute arbitrary swaps, public initializers can be seized if not initialized atomically, and several ERC20 interactions ignore return values.","findings":[{"severity":"medium","category":"auth","title":"Orders lack trader authorization; relays can execute arbitrary swaps","exploit_scenario":"Any address with RELAY_ROLE can call fill with a crafted order for any trader who has granted allowance and deposited gas. Because no signature/nonce is verified, a malicious or compromised relay can swap the trader’s tokens into unwanted assets or at unfavorable rates while charging gas/fees.","recommendation":"Require an EIP-712 signature from the trader (including nonce and deadline) and verify it in fill before executing. Alternatively require order.trader == msg.sender for direct execution and add explicit order approval logic.","evidence":"fill accepts an order from the relayer and only checks balances/allowances; Types.Order contains no signature/nonce fields.","locations":["contracts/SwapSettlement.sol:95","contracts/SwapSettlement.sol:103","contracts/Types.sol:33"]},{"severity":"medium","category":"upgradeability","title":"Public initializers can be seized if deployment is not atomic","exploit_scenario":"If any of these contracts/proxies are deployed without calling initialize in the same transaction, an attacker can call initialize first, gaining admin/relay roles and configuring malicious scripts or parameters.","recommendation":"Call initialize atomically during deployment, and/or add a constructor to disable initializers on implementations. Consider restricting initialize with a deployer/admin check when not using a proxy.","evidence":"initialize functions are public and only guarded by the initializer flag.","locations":["contracts/SwapSettlement.sol:61","contracts/swapper/uniswap/Uniswapper.sol:25","contracts/swapper/uniswapRouting/RoutedSwap.sol:27"]},{"severity":"low","category":"other","title":"ERC20 transfer/approve return values are not checked in swap scripts","exploit_scenario":"For non-standard ERC20s that return false instead of reverting, these calls may silently fail, leading to swaps executing under incorrect assumptions or refunds failing, potentially leaving funds stuck until manual recovery.","recommendation":"Use SafeERC20’s safeTransfer/safeTransferFrom/safeApprove (or check return values explicitly). For approve, consider resetting to 0 before setting a new allowance.","evidence":"Uniswapper uses raw transfer without checking return values; RoutedSwap uses approve without checking return values.","locations":["contracts/swapper/uniswap/Uniswapper.sol:92","contracts/swapper/uniswap/Uniswapper.sol:152","contracts/swapper/uniswap/Uniswapper.sol:183","contracts/swapper/uniswapRouting/RoutedSwap.sol:34","contracts/swapper/uniswapRouting/RoutedSwap.sol:84"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-u0lv_h_5
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0fcf-783c-7cd1-ade8-0700212ade7d
--------
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
exec
/bin/bash -lc 'cat /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt' in /tmp/codex-u0lv_h_5 succeeded in 7ms:
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: @nomiclabs/buidler/console.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity >= 0.4.22 <0.8.0;

library console {
	address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);

	function _sendLogPayload(bytes memory payload) private view {
		uint256 payloadLength = payload.length;
		address consoleAddress = CONSOLE_ADDRESS;
		assembly {
			let payloadStart := add(payload, 32)
			let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)
		}
	}
exec
/bin/bash -lc 'wc -l /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt' in /tmp/codex-u0lv_h_5 succeeded in 7ms:
2878 /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt
exec
/bin/bash -lc 'rg "''^FILE:" -n /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt' in /tmp/codex-u0lv_h_5 succeeded in 19ms:
5:FILE: @nomiclabs/buidler/console.sol
1545:FILE: contracts/BaseAccess.sol
1638:FILE: contracts/BaseConfig.sol
1765:FILE: contracts/GasTank.sol
1820:FILE: contracts/SwapSettlement.sol
2076:FILE: contracts/Types.sol
2174:FILE: contracts/deployment/DeploymentAdmin.sol
2186:FILE: contracts/interfaces/ISwapAction.sol
2203:FILE: contracts/interfaces/uniswap/IPair.sol
2215:FILE: contracts/interfaces/uniswap/IPairFactory.sol
2227:FILE: contracts/interfaces/uniswap/IV2Router.sol
2268:FILE: contracts/libs/LibAccess.sol
2292:FILE: contracts/libs/LibConfig.sol
2419:FILE: contracts/libs/LibGas.sol
2523:FILE: contracts/libs/LibStorage.sol
2566:FILE: contracts/swapper/uniswap/Uniswapper.sol
2761:FILE: contracts/swapper/uniswapRouting/RoutedSwap.sol
2852:FILE: contracts/testing/TokenA.sol
2866:FILE: contracts/testing/TokenB.sol
exec
/bin/bash -lc "sed -n '1545,1637p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 6ms:
FILE: contracts/BaseAccess.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;


import "./libs/LibAccess.sol";
import "./libs/LibStorage.sol";
import "./Types.sol";
import "@nomiclabs/buidler/console.sol";

abstract contract BaseAccess {
    using LibAccess for Types.AccessControl;
    

    //bytes32 public constant ADMIN_ROLE = keccak256("ADMIN_ROLE");
    bytes32 public constant ADMIN_ROLE = 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775;
    //bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
    bytes32 public constant PAUSER_ROLE = 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a;
    //bytes32 public constant RELAY_ROLE = keccak256("RELAY_ROLE");
exec
/bin/bash -lc "sed -n '1638,1764p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 7ms:
FILE: contracts/BaseConfig.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
pragma experimental ABIEncoderV2;

import "./Types.sol";
import "./libs/LibStorage.sol";
import "./libs/LibConfig.sol";
import "./BaseAccess.sol";

abstract contract BaseConfig is BaseAccess {
    using LibConfig for Types.Config;
   
    function initConfig(Types.Config memory config) internal {
        LibStorage.getConfigStorage().store(config);
        BaseAccess.initAccess();
    }

    function getConfig() external view returns (Types.Config memory) {
exec
/bin/bash -lc "sed -n '1765,1820p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 7ms:
FILE: contracts/GasTank.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
pragma experimental ABIEncoderV2;

import "./BaseConfig.sol";
import "./libs/LibGas.sol";

abstract contract GasTank is BaseConfig {
    using LibGas for Types.GasBalances;

    //========== VIEWS =============/
    function availableGasForWithdraw(address owner) external view returns (uint256) {
        return LibStorage.getGasStorage().availableForWithdraw(owner);
    }

    function totalGasDeposited(address owner) external view returns (uint256) {
        return LibStorage.getGasStorage().total(owner);
    }
exec
/bin/bash -lc "sed -n '1820,2075p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 6ms:
FILE: contracts/SwapSettlement.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
pragma experimental ABIEncoderV2;

import "./GasTank.sol";
import "./Types.sol";
import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
import "./interfaces/ISwapAction.sol";

contract SwapSettlement is GasTank {
    
    using SafeMath for uint256;
    using SafeMath for uint112;
    using SafeMath for uint128;
    using SafeMath for uint;
    using SafeERC20 for IERC20;

    //============= EVENT DEFS =================/
exec
/bin/bash -lc "sed -n '2076,2173p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 7ms:
FILE: contracts/Types.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
pragma experimental ABIEncoderV2;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

library Types {

    struct TokenAmount {
        IERC20 token;
        uint112 amount;
    }

    struct GasAllowance {
        uint112 maxGas;
        uint8 percentGasPaid;
    }

exec
/bin/bash -lc "sed -n '2174,2267p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 7ms:
FILE: contracts/deployment/DeploymentAdmin.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;

import "@openzeppelin/contracts/proxy/ProxyAdmin.sol";

contract DeploymentAdmin is ProxyAdmin {
    
}

================================================================================
FILE: contracts/interfaces/ISwapAction.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
pragma experimental ABIEncoderV2;

import "../Types.sol";

exec
/bin/bash -lc "sed -n '2268,2418p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 7ms:
FILE: contracts/libs/LibAccess.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;

import "../Types.sol";


library LibAccess {
    
    function hasRole(Types.AccessControl storage ac, bytes32 role, address actor) external view returns (bool) {
        return ac.roles[role][actor];
    }

    function _addRole(Types.AccessControl storage ac, bytes32 role, address actor) internal  {
        ac.roles[role][actor] = true;
    }

    function _revokeRole(Types.AccessControl storage ac, bytes32 role, address actor) internal  {
        delete ac.roles[role][actor];
exec
/bin/bash -lc "nl -ba /tmp/codex-u0lv_h_5/contracts/SwapSettlement.sol | sed -n '1,220p'" in /tmp/codex-u0lv_h_5 succeeded in 9ms:
     1	//SPDX-License-Identifier: Unlicense
     2	pragma solidity ^0.6.8;
     3	pragma experimental ABIEncoderV2;
     4	
     5	import "./GasTank.sol";
     6	import "./Types.sol";
     7	import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
     8	import "./interfaces/ISwapAction.sol";
     9	
    10	contract SwapSettlement is GasTank {
    11	    
    12	    using SafeMath for uint256;
    13	    using SafeMath for uint112;
    14	    using SafeMath for uint128;
    15	    using SafeMath for uint;
    16	    using SafeERC20 for IERC20;
    17	
    18	    //============= EVENT DEFS =================/
    19	    event TraderPenalized(address indexed trader, uint256 penalty, uint256 gasPaid, string reason);
    20	    event SwapFailed(address indexed trader, uint gasPaid, string reason);

thinking
**Extending coverage to trySwap and _penalize**
exec
/bin/bash -lc "nl -ba /tmp/codex-u0lv_h_5/contracts/SwapSettlement.sol | sed -n '220,340p'" in /tmp/codex-u0lv_h_5 succeeded in 10ms:
   220	
   221	    function trySwap(Types.Order calldata order, ISwapAction script, bytes calldata data) external {
   222	        require(msg.sender == address(this), "Can only be called by settlement contract");
   223	        order.input.token.safeTransferFrom(order.trader, address(script), order.input.amount);
   224	        
   225	        (bool success, string memory failReason) = script.swap(order, data);
   226	        if(!success) {
   227	            revert(failReason);
   228	        }
   229	    }
   230	    
   231	    // @dev penalize the user due to missing funds or allowances
   232	    function _penalize(Types.Order memory order, uint256 startGas, string memory reason) internal {
   233	        uint128 fee = LibStorage.getConfigStorage().penaltyFee;
   234	
   235	        
   236	
   237	        //add additional gas for transfers and emit
   238	        uint256 totalGasUsed = startGas.sub(gasleft()).add(GAS_OVERHEAD);
   239	        uint256 gasFee = totalGasUsed.mul(tx.gasprice);

thinking
**Listing line numbers**
exec
/bin/bash -lc 'nl -ba /tmp/codex-u0lv_h_5/contracts/swapper/uniswap/Uniswapper.sol' in /tmp/codex-u0lv_h_5 succeeded in 6ms:
     1	//SPDX-License-Identifier: Unlicense
     2	pragma solidity ^0.6.8;
     3	pragma experimental ABIEncoderV2;
     4	
     5	
     6	import "@openzeppelin/contracts/math/SafeMath.sol";
     7	import "../../Types.sol";
     8	import "../../interfaces/ISwapAction.sol";
     9	import "../../BaseAccess.sol";
    10	
    11	import "../../interfaces/uniswap/IPair.sol";
    12	import "../../interfaces/uniswap/IPairFactory.sol";
    13	import "../../interfaces/uniswap/IV2Router.sol";
    14	
    15	import "@nomiclabs/buidler/console.sol";
    16	
    17	contract Uniswapper is BaseAccess, ISwapAction {
    18	    using SafeMath for uint256;
    19	    using SafeMath for uint112;
    20	    using SafeMath for uint;

thinking
**Noting line numbers for RoutedSwap**
exec
/bin/bash -lc 'nl -ba /tmp/codex-u0lv_h_5/contracts/swapper/uniswapRouting/RoutedSwap.sol' in /tmp/codex-u0lv_h_5 succeeded in 5ms:
     1	//SPDX-License-Identifier: Unlicense
     2	pragma solidity ^0.6.8;
     3	pragma experimental ABIEncoderV2;
     4	
     5	
     6	import "@openzeppelin/contracts/math/SafeMath.sol";
     7	import "../../Types.sol";
     8	import "../../interfaces/ISwapAction.sol";
     9	import "../../BaseAccess.sol";
    10	
    11	import "../../interfaces/uniswap/IPair.sol";
    12	import "../../interfaces/uniswap/IPairFactory.sol";
    13	import "../../interfaces/uniswap/IV2Router.sol";
    14	
    15	import "@nomiclabs/buidler/console.sol";
    16	
    17	contract RoutedSwap is BaseAccess, ISwapAction{
    18	    using SafeMath for uint256;
    19	    using SafeMath for uint112;
    20	    using SafeMath for uint;


thinking
**Noting upgradeability risks and missing authorization**

Identified unprotected initializers in key contracts pose a risk if deployed uninitialized, allowing anyone to take admin roles via reinitialization. Also found missing order signature validation, risking unauthorized trades via relays; recommending off-chain signature checks and nonce enforcement.
thinking
**Classifying findings with severity and crafting detailed exploit scenarios**

I'm setting medium severity for missing order authorization due to relay risks, medium for initializer exposure as conditional upgradeability risk, and low for unchecked ERC20 returns. I'll include evidence with file paths and precise line numbers, elaborate exploit scenarios, and targeted recommendations for each finding.
exec
/bin/bash -lc "nl -ba /tmp/codex-u0lv_h_5/contracts/Types.sol | sed -n '20,80p'" in /tmp/codex-u0lv_h_5 succeeded in 6ms:
    20	        EXACT_IN,
    21	        EXACT_OUT
    22	    }
    23	
    24	    //status of order. Only tracked on action from user/miners
    25	    enum OrderStatus {
    26	        UNDEFINED,
    27	        PENDING,
    28	        FILLED,
    29	        CANCELLED,
    30	        PENALIZED
    31	    }
    32	
    33	    struct Order {
    34	        //trader that owns the order
    35	        address trader;
    36	
    37	        //fee offered (120+128 = 248)
    38	        uint128 fee;
    39	


thinking
**Summarizing audit findings and preparing JSON**

I'm consolidating key audit issues like initializer risks and unchecked ERC20 returns, assigning severity levels cautiously, and ensuring all sections of the audit bundle are fully covered before producing a valid JSON summary.
thinking
**Structuring detailed findings for JSON output**

I'm framing each audit finding with clear titles, exploit scenarios, recommendations, severities, and precise code locations, preparing concise evidence strings to create a clean, comment-free JSON summary matching the defined schema.
codex
{"no_findings":false,"summary":"Missing on-chain order authorization allows relays to execute arbitrary swaps, public initializers can be seized if not initialized atomically, and several ERC20 interactions ignore return values.","findings":[{"severity":"medium","category":"auth","title":"Orders lack trader authorization; relays can execute arbitrary swaps","exploit_scenario":"Any address with RELAY_ROLE can call fill with a crafted order for any trader who has granted allowance and deposited gas. Because no signature/nonce is verified, a malicious or compromised relay can swap the trader’s tokens into unwanted assets or at unfavorable rates while charging gas/fees.","recommendation":"Require an EIP-712 signature from the trader (including nonce and deadline) and verify it in fill before executing. Alternatively require order.trader == msg.sender for direct execution and add explicit order approval logic.","evidence":"fill accepts an order from the relayer and only checks balances/allowances; Types.Order contains no signature/nonce fields.","locations":["contracts/SwapSettlement.sol:95","contracts/SwapSettlement.sol:103","contracts/Types.sol:33"]},{"severity":"medium","category":"upgradeability","title":"Public initializers can be seized if deployment is not atomic","exploit_scenario":"If any of these contracts/proxies are deployed without calling initialize in the same transaction, an attacker can call initialize first, gaining admin/relay roles and configuring malicious scripts or parameters.","recommendation":"Call initialize atomically during deployment, and/or add a constructor to disable initializers on implementations. Consider restricting initialize with a deployer/admin check when not using a proxy.","evidence":"initialize functions are public and only guarded by the initializer flag.","locations":["contracts/SwapSettlement.sol:61","contracts/swapper/uniswap/Uniswapper.sol:25","contracts/swapper/uniswapRouting/RoutedSwap.sol:27"]},{"severity":"low","category":"other","title":"ERC20 transfer/approve return values are not checked in swap scripts","exploit_scenario":"For non-standard ERC20s that return false instead of reverting, these calls may silently fail, leading to swaps executing under incorrect assumptions or refunds failing, potentially leaving funds stuck until manual recovery.","recommendation":"Use SafeERC20’s safeTransfer/safeTransferFrom/safeApprove (or check return values explicitly). For approve, consider resetting to 0 before setting a new allowance.","evidence":"Uniswapper uses raw transfer without checking return values; RoutedSwap uses approve without checking return values.","locations":["contracts/swapper/uniswap/Uniswapper.sol:92","contracts/swapper/uniswap/Uniswapper.sol:152","contracts/swapper/uniswap/Uniswapper.sol:183","contracts/swapper/uniswapRouting/RoutedSwap.sol:34","contracts/swapper/uniswapRouting/RoutedSwap.sol:84"]}]}
tokens used
68,446
Metadata
{
    "codex": {
        "ran_at": "2026-01-30T16:57:25.316087+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 36,
        "import_count": 40,
        "first_party_contracts_count": 19
    },
    "summary": "Missing on-chain order authorization allows relays to execute arbitrary swaps, public initializers can be seized if not initialized atomically, and several ERC20 interactions ignore return values.",
    "raw_final": {
        "summary": "Missing on-chain order authorization allows relays to execute arbitrary swaps, public initializers can be seized if not initialized atomically, and several ERC20 interactions ignore return values.",
        "findings": [
            {
                "title": "Orders lack trader authorization; relays can execute arbitrary swaps",
                "category": "auth",
                "evidence": "fill accepts an order from the relayer and only checks balances/allowances; Types.Order contains no signature/nonce fields.",
                "severity": "medium",
                "locations": [
                    "contracts/SwapSettlement.sol:95",
                    "contracts/SwapSettlement.sol:103",
                    "contracts/Types.sol:33"
                ],
                "recommendation": "Require an EIP-712 signature from the trader (including nonce and deadline) and verify it in fill before executing. Alternatively require order.trader == msg.sender for direct execution and add explicit order approval logic.",
                "exploit_scenario": "Any address with RELAY_ROLE can call fill with a crafted order for any trader who has granted allowance and deposited gas. Because no signature/nonce is verified, a malicious or compromised relay can swap the trader\u2019s tokens into unwanted assets or at unfavorable rates while charging gas/fees."
            },
            {
                "title": "Public initializers can be seized if deployment is not atomic",
                "category": "upgradeability",
                "evidence": "initialize functions are public and only guarded by the initializer flag.",
                "severity": "medium",
                "locations": [
                    "contracts/SwapSettlement.sol:61",
                    "contracts/swapper/uniswap/Uniswapper.sol:25",
                    "contracts/swapper/uniswapRouting/RoutedSwap.sol:27"
                ],
                "recommendation": "Call initialize atomically during deployment, and/or add a constructor to disable initializers on implementations. Consider restricting initialize with a deployer/admin check when not using a proxy.",
                "exploit_scenario": "If any of these contracts/proxies are deployed without calling initialize in the same transaction, an attacker can call initialize first, gaining admin/relay roles and configuring malicious scripts or parameters."
            },
            {
                "title": "ERC20 transfer/approve return values are not checked in swap scripts",
                "category": "other",
                "evidence": "Uniswapper uses raw transfer without checking return values; RoutedSwap uses approve without checking return values.",
                "severity": "low",
                "locations": [
                    "contracts/swapper/uniswap/Uniswapper.sol:92",
                    "contracts/swapper/uniswap/Uniswapper.sol:152",
                    "contracts/swapper/uniswap/Uniswapper.sol:183",
                    "contracts/swapper/uniswapRouting/RoutedSwap.sol:34",
                    "contracts/swapper/uniswapRouting/RoutedSwap.sol:84"
                ],
                "recommendation": "Use SafeERC20\u2019s safeTransfer/safeTransferFrom/safeApprove (or check return values explicitly). For approve, consider resetting to 0 before setting a new allowance.",
                "exploit_scenario": "For non-standard ERC20s that return false instead of reverting, these calls may silently fail, leading to swaps executing under incorrect assumptions or refunds failing, potentially leaving funds stuck until manual recovery."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
6
Selfdestruct
0
CREATE2
1
CALL-family (heavy)
16
EXT*/BALANCE
15
Total opcodes
7506
Flags
delegatecall_present create_opcodes_present heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x012a
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x75e9aac8
00000019: GT
0000001a: PUSH2 0x00ab
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xc3f909d4
00000024: GT
00000025: PUSH2 0x006f
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xc3f909d4
0000002f: EQ
00000030: PUSH2 0x02fb
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xd547741f
0000003a: EQ
0000003b: PUSH2 0x031d
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xe63ab1e9
00000045: EQ
00000046: PUSH2 0x033d
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xe959b38a
00000050: EQ
00000051: PUSH2 0x0352
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xea9c727b
0000005b: EQ
0000005c: PUSH2 0x0372
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xfc8926d3
00000066: EQ
00000067: PUSH2 0x0392
0000006a: JUMPI
0000006b: PUSH2 0x012a
0000006e: JUMP
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0x75e9aac8
00000076: EQ
00000077: PUSH2 0x0266
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0x8d0b303d
00000081: EQ
00000082: PUSH2 0x0293
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0x91d14854
0000008c: EQ
0000008d: PUSH2 0x02b3
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xa6e1700c
00000097: EQ
00000098: PUSH2 0x02d3
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0xae9bb692
000000a2: EQ
000000a3: PUSH2 0x02f3
000000a6: JUMPI
000000a7: PUSH2 0x012a
000000aa: JUMP
000000ab: JUMPDEST
000000ac: DUP1
000000ad: PUSH4 0x334c3c65
000000b2: GT
000000b3: PUSH2 0x00f2
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0x334c3c65
000000bd: EQ
000000be: PUSH2 0x01d1
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0x3f51e182
000000c8: EQ
000000c9: PUSH2 0x01f1
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0x4ed6d948
000000d3: EQ
000000d4: PUSH2 0x0211
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0x6947d38f
000000de: EQ
000000df: PUSH2 0x0231
000000e2: JUMPI
000000e3: DUP1
000000e4: PUSH4 0x75b238fc
000000e9: EQ
000000ea: PUSH2 0x0251
000000ed: JUMPI
000000ee: PUSH2 0x012a
000000f1: JUMP
000000f2: JUMPDEST
000000f3: DUP1
000000f4: PUSH4 0x04421823
000000f9: EQ
000000fa: PUSH2 0x012f
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0x12d20441
00000104: EQ
00000105: PUSH2 0x015a
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0x27054df6
0000010f: EQ
00000110: PUSH2 0x017a
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0x2f0dee6e
0000011a: EQ
0000011b: PUSH2 0x018f
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x30f205d0
00000125: EQ
00000126: PUSH2 0x01b1
00000129: JUMPI
0000012a: JUMPDEST
0000012b: PUSH1 0x00
0000012d: DUP1
0000012e: REVERT
0000012f: JUMPDEST
00000130: CALLVALUE
00000131: DUP1
00000132: ISZERO
00000133: PUSH2 0x013b
00000136: JUMPI
00000137: PUSH1 0x00
00000139: DUP1
0000013a: REVERT
0000013b: JUMPDEST
0000013c: POP
0000013d: PUSH2 0x0144
00000140: PUSH2 0x03b2
00000143: JUMP
00000144: JUMPDEST
00000145: PUSH1 0x40
00000147: MLOAD
00000148: PUSH2 0x0151
0000014b: SWAP2
0000014c: SWAP1
0000014d: PUSH2 0x2643
00000150: JUMP
00000151: JUMPDEST
00000152: PUSH1 0x40
00000154: MLOAD
00000155: DUP1
00000156: SWAP2
00000157: SUB
00000158: SWAP1
00000159: RETURN
0000015a: JUMPDEST
0000015b: CALLVALUE
0000015c: DUP1
0000015d: ISZERO
0000015e: PUSH2 0x0166
00000161: JUMPI
00000162: PUSH1 0x00
00000164: DUP1
00000165: REVERT
00000166: JUMPDEST
00000167: POP
00000168: PUSH2 0x0144
0000016b: PUSH2 0x0175
0000016e: CALLDATASIZE
0000016f: PUSH1 0x04
00000171: PUSH2 0x2161
00000174: JUMP
00000175: JUMPDEST
00000176: PUSH2 0x03d6
00000179: JUMP
0000017a: JUMPDEST
0000017b: CALLVALUE
0000017c: DUP1
0000017d: ISZERO
0000017e: PUSH2 0x0186
00000181: JUMPI
00000182: PUSH1 0x00
00000184: DUP1
00000185: REVERT
00000186: JUMPDEST
00000187: POP
00000188: PUSH2 0x0144
0000018b: PUSH2 0x046e
0000018e: JUMP
0000018f: JUMPDEST
00000190: CALLVALUE
00000191: DUP1
00000192: ISZERO
00000193: PUSH2 0x019b
00000196: JUMPI
00000197: PUSH1 0x00
00000199: DUP1
0000019a: REVERT
0000019b: JUMPDEST
0000019c: POP
0000019d: PUSH2 0x01af
000001a0: PUSH2 0x01aa
000001a3: CALLDATASIZE
000001a4: PUSH1 0x04
000001a6: PUSH2 0x2348
000001a9: JUMP
000001aa: JUMPDEST
000001ab: PUSH2 0x0492
000001ae: JUMP
000001af: JUMPDEST
000001b0: STOP
000001b1: JUMPDEST
000001b2: CALLVALUE
000001b3: DUP1
000001b4: ISZERO
000001b5: PUSH2 0x01bd
000001b8: JUMPI
000001b9: PUSH1 0x00
000001bb: DUP1
000001bc: REVERT
000001bd: JUMPDEST
000001be: POP
000001bf: PUSH2 0x01af
000001c2: PUSH2 0x01cc
000001c5: CALLDATASIZE
000001c6: PUSH1 0x04
000001c8: PUSH2 0x24ab
000001cb: JUMP
000001cc: JUMPDEST
000001cd: PUSH2 0x05c0
000001d0: JUMP
000001d1: JUMPDEST
000001d2: CALLVALUE
000001d3: DUP1
000001d4: ISZERO
000001d5: PUSH2 0x01dd
000001d8: JUMPI
000001d9: PUSH1 0x00
000001db: DUP1
000001dc: REVERT
000001dd: JUMPDEST
000001de: POP
000001df: PUSH2 0x01af
000001e2: PUSH2 0x01ec
000001e5: CALLDATASIZE
000001e6: PUSH1 0x04
000001e8: PUSH2 0x2284
000001eb: JUMP
000001ec: JUMPDEST
000001ed: PUSH2 0x060d
000001f0: JUMP
000001f1: JUMPDEST
000001f2: CALLVALUE
000001f3: DUP1
000001f4: ISZERO
000001f5: PUSH2 0x01fd
000001f8: JUMPI
000001f9: PUSH1 0x00
000001fb: DUP1
000001fc: REVERT
000001fd: JUMPDEST
000001fe: POP
000001ff: PUSH2 0x01af
00000202: PUSH2 0x020c
00000205: CALLDATASIZE
00000206: PUSH1 0x04
00000208: PUSH2 0x2284
0000020b: JUMP
0000020c: JUMPDEST
0000020d: PUSH2 0x06b6
00000210: JUMP
00000211: JUMPDEST
00000212: CALLVALUE
00000213: DUP1
00000214: ISZERO
00000215: PUSH2 0x021d
00000218: JUMPI
00000219: PUSH1 0x00
0000021b: DUP1
0000021c: REVERT
0000021d: JUMPDEST
0000021e: POP
0000021f: PUSH2 0x0144
00000222: PUSH2 0x022c
00000225: CALLDATASIZE
00000226: PUSH1 0x04
00000228: PUSH2 0x2161
0000022b: JUMP
0000022c: JUMPDEST
0000022d: PUSH2 0x073c
00000230: JUMP
00000231: JUMPDEST
00000232: CALLVALUE
00000233: DUP1
00000234: ISZERO
00000235: PUSH2 0x023d
00000238: JUMPI
00000239: PUSH1 0x00
0000023b: DUP1
0000023c: REVERT
0000023d: JUMPDEST
0000023e: POP
0000023f: PUSH2 0x0144
00000242: PUSH2 0x024c
00000245: CALLDATASIZE
00000246: PUSH1 0x04
00000248: PUSH2 0x217d
0000024b: JUMP
0000024c: JUMPDEST
0000024d: PUSH2 0x0756
00000250: JUMP
00000251: JUMPDEST
00000252: CALLVALUE
00000253: DUP1
00000254: ISZERO
00000255: PUSH2 0x025d
00000258: JUMPI
00000259: PUSH1 0x00
0000025b: DUP1
0000025c: REVERT
0000025d: JUMPDEST
0000025e: POP
0000025f: PUSH2 0x0144
00000262: PUSH2 0x07bd
00000265: JUMP
00000266: JUMPDEST
00000267: CALLVALUE
00000268: DUP1
00000269: ISZERO
0000026a: PUSH2 0x0272
0000026d: JUMPI
0000026e: PUSH1 0x00
00000270: DUP1
00000271: REVERT
00000272: JUMPDEST
00000273: POP
00000274: PUSH2 0x0286
00000277: PUSH2 0x0281
0000027a: CALLDATASIZE
0000027b: PUSH1 0x04
0000027d: PUSH2 0x217d
00000280: JUMP
00000281: JUMPDEST
00000282: PUSH2 0x07cf
00000285: JUMP
00000286: JUMPDEST
00000287: PUSH1 0x40
00000289: MLOAD
0000028a: PUSH2 0x0151
0000028d: SWAP2
0000028e: SWAP1
0000028f: PUSH2 0x2638
00000292: JUMP
00000293: JUMPDEST
00000294: CALLVALUE
00000295: DUP1
00000296: ISZERO
00000297: PUSH2 0x029f
0000029a: JUMPI
0000029b: PUSH1 0x00
0000029d: DUP1
0000029e: REVERT
0000029f: JUMPDEST
000002a0: POP
000002a1: PUSH2 0x01af
000002a4: PUSH2 0x02ae
000002a7: CALLDATASIZE
000002a8: PUSH1 0x04
000002aa: PUSH2 0x23df
000002ad: JUMP
000002ae: JUMPDEST
000002af: PUSH2 0x07e7
000002b2: JUMP
000002b3: JUMPDEST
000002b4: CALLVALUE
000002b5: DUP1
000002b6: ISZERO
000002b7: PUSH2 0x02bf
000002ba: JUMPI
000002bb: PUSH1 0x00
000002bd: DUP1
000002be: REVERT
000002bf: JUMPDEST
000002c0: POP
000002c1: PUSH2 0x0286
000002c4: PUSH2 0x02ce
000002c7: CALLDATASIZE
000002c8: PUSH1 0x04
000002ca: PUSH2 0x2255
000002cd: JUMP
000002ce: JUMPDEST
000002cf: PUSH2 0x097f
000002d2: JUMP
000002d3: JUMPDEST
000002d4: CALLVALUE
000002d5: DUP1
000002d6: ISZERO
000002d7: PUSH2 0x02df
000002da: JUMPI
000002db: PUSH1 0x00
000002dd: DUP1
000002de: REVERT
000002df: JUMPDEST
000002e0: POP
000002e1: PUSH2 0x0144
000002e4: PUSH2 0x02ee
000002e7: CALLDATASIZE
000002e8: PUSH1 0x04
000002ea: PUSH2 0x2161
000002ed: JUMP
000002ee: JUMPDEST
000002ef: PUSH2 0x0a1a
000002f2: JUMP
000002f3: JUMPDEST
000002f4: PUSH2 0x01af
000002f7: PUSH2 0x0a34
000002fa: JUMP
000002fb: JUMPDEST
000002fc: CALLVALUE
000002fd: DUP1
000002fe: ISZERO
000002ff: PUSH2 0x0307
00000302: JUMPI
00000303: PUSH1 0x00
00000305: DUP1
00000306: REVERT
00000307: JUMPDEST
00000308: POP
00000309: PUSH2 0x0310
0000030c: PUSH2 0x0a77
0000030f: JUMP
00000310: JUMPDEST
00000311: PUSH1 0x40
00000313: MLOAD
00000314: PUSH2 0x0151
00000317: SWAP2
00000318: SWAP1
00000319: PUSH2 0x2b29
0000031c: JUMP
0000031d: JUMPDEST
0000031e: CALLVALUE
0000031f: DUP1
00000320: ISZERO
00000321: PUSH2 0x0329
00000324: JUMPI
00000325: PUSH1 0x00
00000327: DUP1
00000328: REVERT
00000329: JUMPDEST
0000032a: POP
0000032b: PUSH2 0x01af
0000032e: PUSH2 0x0338
00000331: CALLDATASIZE
00000332: PUSH1 0x04
00000334: PUSH2 0x2255
00000337: JUMP
00000338: JUMPDEST
00000339: PUSH2 0x0b13
0000033c: JUMP
0000033d: JUMPDEST
0000033e: CALLVALUE
0000033f: DUP1
00000340: ISZERO
00000341: PUSH2 0x0349
00000344: JUMPI
00000345: PUSH1 0x00
00000347: DUP1
00000348: REVERT
00000349: JUMPDEST
0000034a: POP
0000034b: PUSH2 0x0144
0000034e: PUSH2 0x0b67
00000351: JUMP
00000352: JUMPDEST
00000353: CALLVALUE
00000354: DUP1
00000355: ISZERO
00000356: PUSH2 0x035e
00000359: JUMPI
0000035a: PUSH1 0x00
0000035c: DUP1
0000035d: REVERT
0000035e: JUMPDEST
0000035f: POP
00000360: PUSH2 0x01af
00000363: PUSH2 0x036d
00000366: CALLDATASIZE
00000367: PUSH1 0x04
00000369: PUSH2 0x2255
0000036c: JUMP
0000036d: JUMPDEST
0000036e: PUSH2 0x0b8b
00000371: JUMP
00000372: JUMPDEST
00000373: CALLVALUE
00000374: DUP1
00000375: ISZERO
00000376: PUSH2 0x037e
00000379: JUMPI
0000037a: PUSH1 0x00
0000037c: DUP1
0000037d: REVERT
0000037e: JUMPDEST
0000037f: POP
00000380: PUSH2 0x0286
00000383: PUSH2 0x038d
00000386: CALLDATASIZE
00000387: PUSH1 0x04
00000389: PUSH2 0x247f
0000038c: JUMP
0000038d: JUMPDEST
0000038e: PUSH2 0x0bdb
00000391: JUMP
00000392: JUMPDEST
00000393: CALLVALUE
00000394: DUP1
00000395: ISZERO
00000396: PUSH2 0x039e
00000399: JUMPI
0000039a: PUSH1 0x00
0000039c: DUP1
0000039d: REVERT
0000039e: JUMPDEST
0000039f: POP
000003a0: PUSH2 0x01af
000003a3: PUSH2 0x03ad
000003a6: CALLDATASIZE
000003a7: PUSH1 0x04
000003a9: PUSH2 0x24ab
000003ac: JUMP
000003ad: JUMPDEST
000003ae: PUSH2 0x0c07
000003b1: JUMP
000003b2: JUMPDEST
000003b3: PUSH32 0x077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7
000003d4: DUP2
000003d5: JUMP
000003d6: JUMPDEST
000003d7: PUSH1 0x00
000003d9: PUSH2 0x03e0
000003dc: PUSH2 0x0cf6
000003df: JUMP
000003e0: JUMPDEST
000003e1: PUSH1 0x40
000003e3: MLOAD
000003e4: PUSH4 0x46661413
000003e9: PUSH1 0xe1
000003eb: SHL
000003ec: DUP2
000003ed: MSTORE
000003ee: PUSH20 0x8b63fe889718cf3cec5d6bd67b17baabb3da2412
00000403: SWAP2
00000404: PUSH4 0x8ccc2826
00000409: SWAP2
0000040a: PUSH2 0x0418
0000040d: SWAP2
0000040e: SWAP1
0000040f: DUP7
00000410: SWAP1
00000411: PUSH1 0x04
00000413: ADD
00000414: PUSH2 0x2b4b
00000417: JUMP
00000418: JUMPDEST
00000419: PUSH1 0x20
0000041b: PUSH1 0x40
0000041d: MLOAD
0000041e: DUP1
0000041f: DUP4
00000420: SUB
00000421: DUP2
00000422: DUP7
00000423: DUP1
00000424: EXTCODESIZE
00000425: ISZERO
00000426: DUP1
00000427: ISZERO
00000428: PUSH2 0x0430
0000042b: JUMPI
0000042c: PUSH1 0x00
0000042e: DUP1
0000042f: REVERT
00000430: JUMPDEST
00000431: POP
00000432: GAS
00000433: DELEGATECALL
00000434: ISZERO
00000435: DUP1
00000436: ISZERO
00000437: PUSH2 0x0444
0000043a: JUMPI
0000043b: RETURNDATASIZE
0000043c: PUSH1 0x00
0000043e: DUP1
0000043f: RETURNDATACOPY
00000440: RETURNDATASIZE
00000441: PUSH1 0x00
00000443: REVERT
00000444: JUMPDEST
00000445: POP
00000446: POP
00000447: POP
00000448: POP
00000449: PUSH1 0x40
0000044b: MLOAD
0000044c: RETURNDATASIZE
0000044d: PUSH1 0x1f
0000044f: NOT
00000450: PUSH1 0x1f
00000452: DUP3
00000453: ADD
00000454: AND
00000455: DUP3
00000456: ADD
00000457: DUP1
00000458: PUSH1 0x40
0000045a: MSTORE
0000045b: POP
0000045c: DUP2
0000045d: ADD
0000045e: SWAP1
0000045f: PUSH2 0x0468
00000462: SWAP2
00000463: SWAP1
00000464: PUSH2 0x24c6
00000467: JUMP
00000468: JUMPDEST
00000469: SWAP3
0000046a: SWAP2
0000046b: POP
0000046c: POP
0000046d: JUMP
0000046e: JUMPDEST
0000046f: PUSH32 0xd95061bdf0c43d77b6cbe1c15072292976244ec8d5012de75baa36e42da4625e
00000490: DUP2
00000491: JUMP
00000492: JUMPDEST
00000493: CALLER
00000494: ADDRESS
00000495: EQ
00000496: PUSH2 0x04ba
00000499: JUMPI
0000049a: PUSH1 0x40
0000049c: MLOAD
0000049d: PUSH3 0x461bcd
000004a1: PUSH1 0xe5
000004a3: SHL
000004a4: DUP2
000004a5: MSTORE
000004a6: PUSH1 0x04
000004a8: ADD
000004a9: PUSH2 0x04b1
000004ac: SWAP1
000004ad: PUSH2 0x2949
000004b0: JUMP
000004b1: JUMPDEST
000004b2: PUSH1 0x40
000004b4: MLOAD
000004b5: DUP1
000004b6: SWAP2
000004b7: SUB
000004b8: SWAP1
000004b9: REVERT
000004ba: JUMPDEST
000004bb: PUSH2 0x050b
000004be: PUSH2 0x04ca
000004c1: PUSH1 0x20
000004c3: DUP7
000004c4: ADD
000004c5: DUP7
000004c6: PUSH2 0x2161
000004c9: JUMP
000004ca: JUMPDEST
000004cb: DUP5
000004cc: PUSH2 0x04db
000004cf: PUSH1 0xe0
000004d1: DUP9
000004d2: ADD
000004d3: PUSH1 0xc0
000004d5: DUP10
000004d6: ADD
000004d7: PUSH2 0x24ab
000004da: JUMP
000004db: JUMPDEST
000004dc: PUSH1 0x01
000004de: PUSH1 0x01
000004e0: PUSH1 0x70
000004e2: SHL
000004e3: SUB
000004e4: AND
000004e5: PUSH2 0x04f4
000004e8: PUSH1 0xc0
000004ea: DUP10
000004eb: ADD
000004ec: PUSH1 0xa0
000004ee: DUP11
000004ef: ADD
000004f0: PUSH2 0x2161
000004f3: JUMP
000004f4: JUMPDEST
000004f5: PUSH1 0x01
000004f7: PUSH1 0x01
000004f9: PUSH1 0xa0
000004fb: SHL
000004fc: SUB
000004fd: AND
000004fe: SWAP3
000004ff: SWAP2
00000500: SWAP1
00000501: PUSH4 0xffffffff
00000506: PUSH2 0x0d1a
00000509: AND
0000050a: JUMP
0000050b: JUMPDEST
0000050c: PUSH1 0x00
0000050e: PUSH1 0x60
00000510: DUP5
00000511: PUSH1 0x01
00000513: PUSH1 0x01
00000515: PUSH1 0xa0
00000517: SHL
00000518: SUB
00000519: AND
0000051a: PUSH4 0x48b9e38f
0000051f: DUP8
00000520: DUP7
00000521: DUP7
00000522: PUSH1 0x40
00000524: MLOAD
00000525: DUP5
00000526: PUSH4 0xffffffff
0000052b: AND
0000052c: PUSH1 0xe0
0000052e: SHL
0000052f: DUP2
00000530: MSTORE
00000531: PUSH1 0x04
00000533: ADD
00000534: PUSH2 0x053f
00000537: SWAP4
00000538: SWAP3
00000539: SWAP2
0000053a: SWAP1
0000053b: PUSH2 0x2b62
0000053e: JUMP
0000053f: JUMPDEST
00000540: PUSH1 0x00
00000542: PUSH1 0x40
00000544: MLOAD
00000545: DUP1
00000546: DUP4
00000547: SUB
00000548: DUP2
00000549: PUSH1 0x00
0000054b: DUP8
0000054c: DUP1
0000054d: EXTCODESIZE
0000054e: ISZERO
0000054f: DUP1
00000550: ISZERO
00000551: PUSH2 0x0559
00000554: JUMPI
00000555: PUSH1 0x00
00000557: DUP1
00000558: REVERT
00000559: JUMPDEST
0000055a: POP
0000055b: GAS
0000055c: CALL
0000055d: ISZERO
0000055e: DUP1
0000055f: ISZERO
00000560: PUSH2 0x056d
00000563: JUMPI
00000564: RETURNDATASIZE
00000565: PUSH1 0x00
00000567: DUP1
00000568: RETURNDATACOPY
00000569: RETURNDATASIZE
0000056a: PUSH1 0x00
0000056c: REVERT
0000056d: JUMPDEST
0000056e: POP
0000056f: POP
00000570: POP
00000571: POP
00000572: PUSH1 0x40
00000574: MLOAD
00000575: RETURNDATASIZE
00000576: PUSH1 0x00
00000578: DUP3
00000579: RETURNDATACOPY
0000057a: PUSH1 0x1f
0000057c: RETURNDATASIZE
0000057d: SWAP1
0000057e: DUP2
0000057f: ADD
00000580: PUSH1 0x1f
00000582: NOT
00000583: AND
00000584: DUP3
00000585: ADD
00000586: PUSH1 0x40
00000588: MSTORE
00000589: PUSH2 0x0595
0000058c: SWAP2
0000058d: SWAP1
0000058e: DUP2
0000058f: ADD
00000590: SWAP1
00000591: PUSH2 0x21c4
00000594: JUMP
00000595: JUMPDEST
00000596: SWAP2
00000597: POP
00000598: SWAP2
00000599: POP
0000059a: DUP2
0000059b: PUSH2 0x05b8
0000059e: JUMPI
0000059f: DUP1
000005a0: PUSH1 0x40
000005a2: MLOAD
000005a3: PUSH3 0x461bcd
000005a7: PUSH1 0xe5
000005a9: SHL
000005aa: DUP2
000005ab: MSTORE
000005ac: PUSH1 0x04
000005ae: ADD
000005af: PUSH2 0x04b1
000005b2: SWAP2
000005b3: SWAP1
000005b4: PUSH2 0x264c
000005b7: JUMP
000005b8: JUMPDEST
000005b9: POP
000005ba: POP
000005bb: POP
000005bc: POP
000005bd: POP
000005be: POP
000005bf: JUMP
000005c0: JUMPDEST
000005c1: PUSH1 0x00
000005c3: DUP2
000005c4: PUSH1 0x01
000005c6: PUSH1 0x01
000005c8: PUSH1 0x70
000005ca: SHL
000005cb: SUB
000005cc: AND
000005cd: GT
000005ce: PUSH2 0x05e9
000005d1: JUMPI
000005d2: PUSH1 0x40
000005d4: MLOAD
000005d5: PUSH3 0x461bcd
000005d9: PUSH1 0xe5
000005db: SHL
000005dc: DUP2
000005dd: MSTORE
000005de: PUSH1 0x04
000005e0: ADD
000005e1: PUSH2 0x04b1
000005e4: SWAP1
000005e5: PUSH2 0x2a19
000005e8: JUMP
000005e9: JUMPDEST
000005ea: PUSH2 0x060a
000005ed: PUSH2 0x05f4
000005f0: PUSH2 0x0d78
000005f3: JUMP
000005f4: JUMPDEST
000005f5: DUP3
000005f6: PUSH2 0x05fd
000005f9: PUSH2 0x0cf6
000005fc: JUMP
000005fd: JUMPDEST
000005fe: SWAP2
000005ff: SWAP1
00000600: PUSH4 0xffffffff
00000605: PUSH2 0x0d7c
00000608: AND
00000609: JUMP
0000060a: JUMPDEST
0000060b: POP
0000060c: JUMP
0000060d: JUMPDEST
0000060e: PUSH2 0x0627
00000611: PUSH1 0x00
00000613: DUP1
00000614: MLOAD
00000615: PUSH1 0x20
00000617: PUSH2 0x2f1f
0000061a: DUP4
0000061b: CODECOPY
0000061c: DUP2
0000061d: MLOAD
0000061e: SWAP2
0000061f: MSTORE
00000620: PUSH2 0x02ce
00000623: PUSH2 0x0d78
00000626: JUMP
00000627: JUMPDEST
00000628: PUSH2 0x0643
0000062b: JUMPI
0000062c: PUSH1 0x40
0000062e: MLOAD
0000062f: PUSH3 0x461bcd
00000633: PUSH1 0xe5
00000635: SHL
00000636: DUP2
00000637: MSTORE
00000638: PUSH1 0x04
0000063a: ADD
0000063b: PUSH2 0x04b1
0000063e: SWAP1
0000063f: PUSH2 0x2ae7
00000642: JUMP
00000643: JUMPDEST
00000644: PUSH2 0x064b
00000647: PUSH2 0x0e34
0000064a: JUMP
0000064b: JUMPDEST
0000064c: PUSH1 0x40
0000064e: MLOAD
0000064f: PUSH4 0x21cab0c7
00000654: PUSH1 0xe0
00000656: SHL
00000657: DUP2
00000658: MSTORE
00000659: PUSH20 0x6ee56fb19b8ef9b2d336c55cc9e1b8fb79472ecf
0000066e: SWAP2
0000066f: PUSH4 0x21cab0c7
00000674: SWAP2
00000675: PUSH2 0x0683
00000678: SWAP2
00000679: SWAP1
0000067a: DUP6
0000067b: SWAP1
0000067c: PUSH1 0x04
0000067e: ADD
0000067f: PUSH2 0x2b37
00000682: JUMP
00000683: JUMPDEST
00000684: PUSH1 0x00
00000686: PUSH1 0x40
00000688: MLOAD
00000689: DUP1
0000068a: DUP4
0000068b: SUB
0000068c: DUP2
0000068d: DUP7
0000068e: DUP1
0000068f: EXTCODESIZE
00000690: ISZERO
00000691: DUP1
00000692: ISZERO
00000693: PUSH2 0x069b
00000696: JUMPI
00000697: PUSH1 0x00
00000699: DUP1
0000069a: REVERT
0000069b: JUMPDEST
0000069c: POP
0000069d: GAS
0000069e: DELEGATECALL
0000069f: ISZERO
000006a0: DUP1
000006a1: ISZERO
000006a2: PUSH2 0x06af
000006a5: JUMPI
000006a6: RETURNDATASIZE
000006a7: PUSH1 0x00
000006a9: DUP1
000006aa: RETURNDATACOPY
000006ab: RETURNDATASIZE
000006ac: PUSH1 0x00
000006ae: REVERT
000006af: JUMPDEST
000006b0: POP
000006b1: POP
000006b2: POP
000006b3: POP
000006b4: POP
000006b5: JUMP
000006b6: JUMPDEST
000006b7: PUSH1 0x00
000006b9: PUSH2 0x06c0
000006bc: PUSH2 0x0e58
000006bf: JUMP
000006c0: JUMPDEST
000006c1: DUP1
000006c2: SLOAD
000006c3: SWAP1
000006c4: SWAP2
000006c5: POP
000006c6: PUSH2 0x0100
000006c9: SWAP1
000006ca: DIV
000006cb: PUSH1 0xff
000006cd: AND
000006ce: DUP1
000006cf: PUSH2 0x06da
000006d2: JUMPI
000006d3: POP
000006d4: DUP1
000006d5: SLOAD
000006d6: PUSH1 0xff
000006d8: AND
000006d9: ISZERO
000006da: JUMPDEST
000006db: PUSH2 0x06f6
000006de: JUMPI
000006df: PUSH1 0x40
000006e1: MLOAD
000006e2: PUSH3 0x461bcd
000006e6: PUSH1 0xe5
000006e8: SHL
000006e9: DUP2
000006ea: MSTORE
000006eb: PUSH1 0x04
000006ed: ADD
000006ee: PUSH2 0x04b1
000006f1: SWAP1
000006f2: PUSH2 0x29ec
000006f5: JUMP
000006f6: JUMPDEST
000006f7: DUP1
000006f8: SLOAD
000006f9: PUSH2 0x0100
000006fc: SWAP1
000006fd: DIV
000006fe: PUSH1 0xff
00000700: AND
00000701: ISZERO
00000702: DUP1
00000703: ISZERO
00000704: PUSH2 0x071e
00000707: JUMPI
00000708: DUP2
00000709: SLOAD
0000070a: PUSH1 0xff
0000070c: NOT
0000070d: PUSH2 0xff00
00000710: NOT
00000711: SWAP1
00000712: SWAP2
00000713: AND
00000714: PUSH2 0x0100
00000717: OR
00000718: AND
00000719: PUSH1 0x01
0000071b: OR
0000071c: DUP3
0000071d: SSTORE
0000071e: JUMPDEST
0000071f: PUSH2 0x0727
00000722: DUP4
00000723: PUSH2 0x0e7c
00000726: JUMP
00000727: JUMPDEST
00000728: DUP1
00000729: ISZERO
0000072a: PUSH2 0x0737
0000072d: JUMPI
0000072e: DUP2
0000072f: SLOAD
00000730: PUSH2 0xff00
00000733: NOT
00000734: AND
00000735: DUP3
00000736: SSTORE
00000737: JUMPDEST
00000738: POP
00000739: POP
0000073a: POP
0000073b: JUMP
0000073c: JUMPDEST
0000073d: PUSH1 0x00
0000073f: PUSH2 0x0468
00000742: DUP3
00000743: PUSH2 0x074a
00000746: PUSH2 0x0cf6
00000749: JUMP
0000074a: JUMPDEST
0000074b: SWAP1
0000074c: PUSH4 0xffffffff
00000751: PUSH2 0x0ef4
00000754: AND
00000755: JUMP
00000756: JUMPDEST
00000757: PUSH1 0x00
00000759: DUP1
0000075a: PUSH2 0x0761
0000075d: PUSH2 0x0cf6
00000760: JUMP
00000761: JUMPDEST
00000762: PUSH1 0x01
00000764: PUSH1 0x01
00000766: PUSH1 0xa0
00000768: SHL
00000769: SUB
0000076a: DUP6
0000076b: AND
0000076c: PUSH1 0x00
0000076e: SWAP1
0000076f: DUP2
00000770: MSTORE
00000771: PUSH1 0x20
00000773: SWAP2
00000774: SWAP1
00000775: SWAP2
00000776: MSTORE
00000777: PUSH1 0x40
00000779: DUP2
0000077a: KECCAK256
0000077b: SLOAD
0000077c: PUSH1 0x01
0000077e: PUSH1 0x01
00000780: PUSH1 0x70
00000782: SHL
00000783: SUB
00000784: AND
00000785: SWAP2
00000786: POP
00000787: PUSH2 0x0799
0000078a: DUP5
0000078b: PUSH3 0x06ddd0
0000078f: PUSH4 0xffffffff
00000794: PUSH2 0x0f65
00000797: AND
00000798: JUMP
00000799: JUMPDEST
0000079a: SWAP1
0000079b: POP
0000079c: PUSH2 0x07b4
0000079f: PUSH1 0x01
000007a1: PUSH1 0x01
000007a3: PUSH1 0x70
000007a5: SHL
000007a6: SUB
000007a7: DUP4
000007a8: AND
000007a9: DUP3
000007aa: PUSH4 0xffffffff
000007af: PUSH2 0x0f9f
000007b2: AND
000007b3: JUMP
000007b4: JUMPDEST
000007b5: SWAP6
000007b6: SWAP5
000007b7: POP
000007b8: POP
000007b9: POP
000007ba: POP
000007bb: POP
000007bc: JUMP
000007bd: JUMPDEST
000007be: PUSH1 0x00
000007c0: DUP1
000007c1: MLOAD
000007c2: PUSH1 0x20
000007c4: PUSH2 0x2f1f
000007c7: DUP4
000007c8: CODECOPY
000007c9: DUP2
000007ca: MLOAD
000007cb: SWAP2
000007cc: MSTORE
000007cd: DUP2
000007ce: JUMP
000007cf: JUMPDEST
000007d0: PUSH1 0x00
000007d2: DUP2
000007d3: PUSH2 0x07de
000007d6: DUP5
000007d7: PUSH2 0x074a
000007da: PUSH2 0x0cf6
000007dd: JUMP
000007de: JUMPDEST
000007df: LT
000007e0: ISZERO
000007e1: SWAP4
000007e2: SWAP3
000007e3: POP
000007e4: POP
000007e5: POP
000007e6: JUMP
000007e7: JUMPDEST
000007e8: PUSH2 0x0813
000007eb: PUSH32 0x077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7
0000080c: PUSH2 0x02ce
0000080f: PUSH2 0x0d78
00000812: JUMP
00000813: JUMPDEST
00000814: PUSH2 0x082f
00000817: JUMPI
00000818: PUSH1 0x40
0000081a: MLOAD
0000081b: PUSH3 0x461bcd
0000081f: PUSH1 0xe5
00000821: SHL
00000822: DUP2
00000823: MSTORE
00000824: PUSH1 0x04
00000826: ADD
00000827: PUSH2 0x04b1
0000082a: SWAP1
0000082b: PUSH2 0x2992
0000082e: JUMP
0000082f: JUMPDEST
00000830: PUSH2 0x0837
00000833: PUSH2 0x0fe1
00000836: JUMP
00000837: JUMPDEST
00000838: SLOAD
00000839: PUSH1 0xff
0000083b: AND
0000083c: ISZERO
0000083d: PUSH2 0x0858
00000840: JUMPI
00000841: PUSH1 0x40
00000843: MLOAD
00000844: PUSH3 0x461bcd
00000848: PUSH1 0xe5
0000084a: SHL
0000084b: DUP2
0000084c: MSTORE
0000084d: PUSH1 0x04
0000084f: ADD
00000850: PUSH2 0x04b1
00000853: SWAP1
00000854: PUSH2 0x2696
00000857: JUMP
00000858: JUMPDEST
00000859: PUSH1 0x01
0000085b: PUSH2 0x0862
0000085e: PUSH2 0x0fe1
00000861: JUMP
00000862: JUMPDEST
00000863: DUP1
00000864: SLOAD
00000865: PUSH1 0xff
00000867: NOT
00000868: AND
00000869: SWAP2
0000086a: ISZERO
0000086b: ISZERO
0000086c: SWAP2
0000086d: SWAP1
0000086e: SWAP2
0000086f: OR
00000870: SWAP1
00000871: SSTORE
00000872: PUSH1 0x00
00000874: GAS
00000875: SWAP1
00000876: POP
00000877: PUSH2 0x0880
0000087a: DUP5
0000087b: GASPRICE
0000087c: PUSH2 0x1005
0000087f: JUMP
00000880: JUMPDEST
00000881: PUSH2 0x089c
00000884: JUMPI
00000885: PUSH1 0x40
00000887: MLOAD
00000888: PUSH3 0x461bcd
0000088c: PUSH1 0xe5
0000088e: SHL
0000088f: DUP2
00000890: MSTORE
00000891: PUSH1 0x04
00000893: ADD
00000894: PUSH2 0x04b1
00000897: SWAP1
00000898: PUSH2 0x2886
0000089b: JUMP
0000089c: JUMPDEST
0000089d: PUSH2 0x08c6
000008a0: PUSH32 0xd95061bdf0c43d77b6cbe1c15072292976244ec8d5012de75baa36e42da4625e
000008c1: DUP5
000008c2: PUSH2 0x097f
000008c5: JUMP
000008c6: JUMPDEST
000008c7: PUSH2 0x08f3
000008ca: JUMPI
000008cb: PUSH2 0x08ed
000008ce: DUP5
000008cf: DUP3
000008d0: PUSH1 0x40
000008d2: MLOAD
000008d3: DUP1
000008d4: PUSH1 0x60
000008d6: ADD
000008d7: PUSH1 0x40
000008d9: MSTORE
000008da: DUP1
000008db: PUSH1 0x2b
000008dd: DUP2
000008de: MSTORE
000008df: PUSH1 0x20
000008e1: ADD
000008e2: PUSH2 0x2ed0
000008e5: PUSH1 0x2b
000008e7: SWAP2
000008e8: CODECOPY
000008e9: PUSH2 0x10ea
000008ec: JUMP
000008ed: JUMPDEST
000008ee: POP
000008ef: PUSH2 0x0961
000008f2: JUMP
000008f3: JUMPDEST
000008f4: PUSH2 0x08fc
000008f7: DUP5
000008f8: PUSH2 0x1242
000008fb: JUMP
000008fc: JUMPDEST
000008fd: PUSH2 0x0923
00000900: JUMPI
00000901: PUSH2 0x08ed
00000904: DUP5
00000905: DUP3
00000906: PUSH1 0x40
00000908: MLOAD
00000909: DUP1
0000090a: PUSH1 0x60
0000090c: ADD
0000090d: PUSH1 0x40
0000090f: MSTORE
00000910: DUP1
00000911: PUSH1 0x24
00000913: DUP2
00000914: MSTORE
00000915: PUSH1 0x20
00000917: ADD
00000918: PUSH2 0x2efb
0000091b: PUSH1 0x24
0000091d: SWAP2
0000091e: CODECOPY
0000091f: PUSH2 0x10ea
00000922: JUMP
00000923: JUMPDEST
00000924: PUSH2 0x092c
00000927: DUP5
00000928: PUSH2 0x12dc
0000092b: JUMP
0000092c: JUMPDEST
0000092d: PUSH2 0x0953
00000930: JUMPI
00000931: PUSH2 0x08ed
00000934: DUP5
00000935: DUP3
00000936: PUSH1 0x40
00000938: MLOAD
00000939: DUP1
0000093a: PUSH1 0x60
0000093c: ADD
0000093d: PUSH1 0x40
0000093f: MSTORE
00000940: DUP1
00000941: PUSH1 0x26
00000943: DUP2
00000944: MSTORE
00000945: PUSH1 0x20
00000947: ADD
00000948: PUSH2 0x2f3f
0000094b: PUSH1 0x26
0000094d: SWAP2
0000094e: CODECOPY
0000094f: PUSH2 0x10ea
00000952: JUMP
00000953: JUMPDEST
00000954: PUSH2 0x095f
00000957: DUP5
00000958: DUP5
00000959: DUP5
0000095a: DUP5
0000095b: PUSH2 0x1328
0000095e: JUMP
0000095f: JUMPDEST
00000960: POP
00000961: JUMPDEST
00000962: PUSH1 0x00
00000964: PUSH2 0x096b
00000967: PUSH2 0x0fe1
0000096a: JUMP
0000096b: JUMPDEST
0000096c: DUP1
0000096d: SLOAD
0000096e: PUSH1 0xff
00000970: NOT
00000971: AND
00000972: SWAP2
00000973: ISZERO
00000974: ISZERO
00000975: SWAP2
00000976: SWAP1
00000977: SWAP2
00000978: OR
00000979: SWAP1
0000097a: SSTORE
0000097b: POP
0000097c: POP
0000097d: POP
0000097e: JUMP
0000097f: JUMPDEST
00000980: PUSH1 0x00
00000982: PUSH2 0x0989
00000985: PUSH2 0x0fe1
00000988: JUMP
00000989: JUMPDEST
0000098a: PUSH1 0x40
0000098c: MLOAD
0000098d: PUSH4 0x0f40931b
00000992: PUSH1 0xe4
00000994: SHL
00000995: DUP2
00000996: MSTORE
00000997: PUSH20 0x855d82ddd7ad46ea4fb8ae2f611f376f8a9a22b7
000009ac: SWAP2
000009ad: PUSH4 0xf40931b0
000009b2: SWAP2
000009b3: PUSH2 0x09c3
000009b6: SWAP2
000009b7: SWAP1
000009b8: DUP8
000009b9: SWAP1
000009ba: DUP8
000009bb: SWAP1
000009bc: PUSH1 0x04
000009be: ADD
000009bf: PUSH2 0x2b0a
000009c2: JUMP
000009c3: JUMPDEST
000009c4: PUSH1 0x20
000009c6: PUSH1 0x40
000009c8: MLOAD
000009c9: DUP1
000009ca: DUP4
000009cb: SUB
000009cc: DUP2
000009cd: DUP7
000009ce: DUP1
000009cf: EXTCODESIZE
000009d0: ISZERO
000009d1: DUP1
000009d2: ISZERO
000009d3: PUSH2 0x09db
000009d6: JUMPI
000009d7: PUSH1 0x00
000009d9: DUP1
000009da: REVERT
000009db: JUMPDEST
000009dc: POP
000009dd: GAS
000009de: DELEGATECALL
000009df: ISZERO
000009e0: DUP1
000009e1: ISZERO
000009e2: PUSH2 0x09ef
000009e5: JUMPI
000009e6: RETURNDATASIZE
000009e7: PUSH1 0x00
000009e9: DUP1
000009ea: RETURNDATACOPY
000009eb: RETURNDATASIZE
000009ec: PUSH1 0x00
000009ee: REVERT
000009ef: JUMPDEST
000009f0: POP
000009f1: POP
000009f2: POP
000009f3: POP
000009f4: PUSH1 0x40
000009f6: MLOAD
000009f7: RETURNDATASIZE
000009f8: PUSH1 0x1f
000009fa: NOT
000009fb: PUSH1 0x1f
000009fd: DUP3
000009fe: ADD
000009ff: AND
00000a00: DUP3
00000a01: ADD
00000a02: DUP1
00000a03: PUSH1 0x40
00000a05: MSTORE
00000a06: POP
00000a07: DUP2
00000a08: ADD
00000a09: SWAP1
00000a0a: PUSH2 0x0a13
00000a0d: SWAP2
00000a0e: SWAP1
00000a0f: PUSH2 0x21a8
00000a12: JUMP
00000a13: JUMPDEST
00000a14: SWAP4
00000a15: SWAP3
00000a16: POP
00000a17: POP
00000a18: POP
00000a19: JUMP
00000a1a: JUMPDEST
00000a1b: PUSH1 0x00
00000a1d: PUSH2 0x0468
00000a20: DUP3
00000a21: PUSH2 0x0a28
00000a24: PUSH2 0x0cf6
00000a27: JUMP
00000a28: JUMPDEST
00000a29: SWAP1
00000a2a: PUSH4 0xffffffff
00000a2f: PUSH2 0x1993
00000a32: AND
00000a33: JUMP
00000a34: JUMPDEST
00000a35: PUSH1 0x00
00000a37: CALLVALUE
00000a38: GT
00000a39: PUSH2 0x0a54
00000a3c: JUMPI
00000a3d: PUSH1 0x40
00000a3f: MLOAD
00000a40: PUSH3 0x461bcd
00000a44: PUSH1 0xe5
00000a46: SHL
00000a47: DUP2
00000a48: MSTORE
00000a49: PUSH1 0x04
00000a4b: ADD
00000a4c: PUSH2 0x04b1
00000a4f: SWAP1
00000a50: PUSH2 0x2908
00000a53: JUMP
00000a54: JUMPDEST
00000a55: PUSH2 0x0a75
00000a58: PUSH2 0x0a5f
00000a5b: PUSH2 0x0d78
00000a5e: JUMP
00000a5f: JUMPDEST
00000a60: CALLVALUE
00000a61: PUSH2 0x0a68
00000a64: PUSH2 0x0cf6
00000a67: JUMP
00000a68: JUMPDEST
00000a69: SWAP2
00000a6a: SWAP1
00000a6b: PUSH4 0xffffffff
00000a70: PUSH2 0x19e8
00000a73: AND
00000a74: JUMP
00000a75: JUMPDEST
00000a76: JUMP
00000a77: JUMPDEST
00000a78: PUSH2 0x0a7f
00000a7b: PUSH2 0x1fe0
00000a7e: JUMP
00000a7f: JUMPDEST
00000a80: PUSH2 0x0a87
00000a83: PUSH2 0x0e34
00000a86: JUMP
00000a87: JUMPDEST
00000a88: PUSH1 0x40
00000a8a: MLOAD
00000a8b: PUSH4 0x6d73f0db
00000a90: PUSH1 0xe0
00000a92: SHL
00000a93: DUP2
00000a94: MSTORE
00000a95: PUSH20 0x6ee56fb19b8ef9b2d336c55cc9e1b8fb79472ecf
00000aaa: SWAP2
00000aab: PUSH4 0x6d73f0db
00000ab0: SWAP2
00000ab1: PUSH2 0x0abd
00000ab4: SWAP2
00000ab5: SWAP1
00000ab6: PUSH1 0x04
00000ab8: ADD
00000ab9: PUSH2 0x2643
00000abc: JUMP
00000abd: JUMPDEST
00000abe: PUSH1 0x80
00000ac0: PUSH1 0x40
00000ac2: MLOAD
00000ac3: DUP1
00000ac4: DUP4
00000ac5: SUB
00000ac6: DUP2
00000ac7: DUP7
00000ac8: DUP1
00000ac9: EXTCODESIZE
00000aca: ISZERO
00000acb: DUP1
00000acc: ISZERO
00000acd: PUSH2 0x0ad5
00000ad0: JUMPI
00000ad1: PUSH1 0x00
00000ad3: DUP1
00000ad4: REVERT
00000ad5: JUMPDEST
00000ad6: POP
00000ad7: GAS
00000ad8: DELEGATECALL
00000ad9: ISZERO
00000ada: DUP1
00000adb: ISZERO
00000adc: PUSH2 0x0ae9
00000adf: JUMPI
00000ae0: RETURNDATASIZE
00000ae1: PUSH1 0x00
00000ae3: DUP1
00000ae4: RETURNDATACOPY
00000ae5: RETURNDATASIZE
00000ae6: PUSH1 0x00
00000ae8: REVERT
00000ae9: JUMPDEST
00000aea: POP
00000aeb: POP
00000aec: POP
00000aed: POP
00000aee: PUSH1 0x40
00000af0: MLOAD
00000af1: RETURNDATASIZE
00000af2: PUSH1 0x1f
00000af4: NOT
00000af5: PUSH1 0x1f
00000af7: DUP3
00000af8: ADD
00000af9: AND
00000afa: DUP3
00000afb: ADD
00000afc: DUP1
00000afd: PUSH1 0x40
00000aff: MSTORE
00000b00: POP
00000b01: DUP2
00000b02: ADD
00000b03: SWAP1
00000b04: PUSH2 0x0b0d
00000b07: SWAP2
00000b08: SWAP1
00000b09: PUSH2 0x22ec
00000b0c: JUMP
00000b0d: JUMPDEST
00000b0e: SWAP1
00000b0f: POP
00000b10: JUMPDEST
00000b11: SWAP1
00000b12: JUMP
00000b13: JUMPDEST
00000b14: PUSH2 0x0b2d
00000b17: PUSH1 0x00
00000b19: DUP1
00000b1a: MLOAD
00000b1b: PUSH1 0x20
00000b1d: PUSH2 0x2f1f
00000b20: DUP4
00000b21: CODECOPY
00000b22: DUP2
00000b23: MLOAD
00000b24: SWAP2
00000b25: MSTORE
00000b26: PUSH2 0x02ce
00000b29: PUSH2 0x0d78
00000b2c: JUMP
00000b2d: JUMPDEST
00000b2e: PUSH2 0x0b49
00000b31: JUMPI
00000b32: PUSH1 0x40
00000b34: MLOAD
00000b35: PUSH3 0x461bcd
00000b39: PUSH1 0xe5
00000b3b: SHL
00000b3c: DUP2
00000b3d: MSTORE
00000b3e: PUSH1 0x04
00000b40: ADD
00000b41: PUSH2 0x04b1
00000b44: SWAP1
00000b45: PUSH2 0x2ae7
00000b48: JUMP
00000b49: JUMPDEST
00000b4a: PUSH2 0x0b63
00000b4d: DUP3
00000b4e: DUP3
00000b4f: PUSH2 0x0b56
00000b52: PUSH2 0x0fe1
00000b55: JUMP
00000b56: JUMPDEST
00000b57: SWAP2
00000b58: SWAP1
00000b59: PUSH4 0xffffffff
00000b5e: PUSH2 0x1a3f
00000b61: AND
00000b62: JUMP
00000b63: JUMPDEST
00000b64: POP
00000b65: POP
00000b66: JUMP
00000b67: JUMPDEST
00000b68: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
00000b89: DUP2
00000b8a: JUMP
00000b8b: JUMPDEST
00000b8c: PUSH2 0x0ba5
00000b8f: PUSH1 0x00
00000b91: DUP1
00000b92: MLOAD
00000b93: PUSH1 0x20
00000b95: PUSH2 0x2f1f
00000b98: DUP4
00000b99: CODECOPY
00000b9a: DUP2
00000b9b: MLOAD
00000b9c: SWAP2
00000b9d: MSTORE
00000b9e: PUSH2 0x02ce
00000ba1: PUSH2 0x0d78
00000ba4: JUMP
00000ba5: JUMPDEST
00000ba6: PUSH2 0x0bc1
00000ba9: JUMPI
00000baa: PUSH1 0x40
00000bac: MLOAD
00000bad: PUSH3 0x461bcd
00000bb1: PUSH1 0xe5
00000bb3: SHL
00000bb4: DUP2
00000bb5: MSTORE
00000bb6: PUSH1 0x04
00000bb8: ADD
00000bb9: PUSH2 0x04b1
00000bbc: SWAP1
00000bbd: PUSH2 0x2ae7
00000bc0: JUMP
00000bc1: JUMPDEST
00000bc2: PUSH2 0x0b63
00000bc5: DUP3
00000bc6: DUP3
00000bc7: PUSH2 0x0bce
00000bca: PUSH2 0x0fe1
00000bcd: JUMP
00000bce: JUMPDEST
00000bcf: SWAP2
00000bd0: SWAP1
00000bd1: PUSH4 0xffffffff
00000bd6: PUSH2 0x1a6e
00000bd9: AND
00000bda: JUMP
00000bdb: JUMPDEST
00000bdc: PUSH1 0x00
00000bde: PUSH2 0x0be7
00000be1: DUP4
00000be2: DUP4
00000be3: PUSH2 0x1005
00000be6: JUMP
00000be7: JUMPDEST
00000be8: DUP1
00000be9: ISZERO
00000bea: PUSH2 0x0bf7
00000bed: JUMPI
00000bee: POP
00000bef: PUSH2 0x0bf7
00000bf2: DUP4
00000bf3: PUSH2 0x1242
00000bf6: JUMP
00000bf7: JUMPDEST
00000bf8: DUP1
00000bf9: ISZERO
00000bfa: PUSH2 0x0a13
00000bfd: JUMPI
00000bfe: POP
00000bff: PUSH2 0x0a13
00000c02: DUP4
00000c03: PUSH2 0x12dc
00000c06: JUMP
00000c07: JUMPDEST
00000c08: PUSH2 0x0c0f
00000c0b: PUSH2 0x0fe1
00000c0e: JUMP
00000c0f: JUMPDEST
00000c10: SLOAD
00000c11: PUSH1 0xff
00000c13: AND
00000c14: ISZERO
00000c15: PUSH2 0x0c30
00000c18: JUMPI
00000c19: PUSH1 0x40
00000c1b: MLOAD
00000c1c: PUSH3 0x461bcd
00000c20: PUSH1 0xe5
00000c22: SHL
00000c23: DUP2
00000c24: MSTORE
00000c25: PUSH1 0x04
00000c27: ADD
00000c28: PUSH2 0x04b1
00000c2b: SWAP1
00000c2c: PUSH2 0x2696
00000c2f: JUMP
00000c30: JUMPDEST
00000c31: PUSH1 0x01
00000c33: PUSH2 0x0c3a
00000c36: PUSH2 0x0fe1
00000c39: JUMP
00000c3a: JUMPDEST
00000c3b: DUP1
00000c3c: SLOAD
00000c3d: PUSH1 0xff
00000c3f: NOT
00000c40: AND
00000c41: SWAP2
00000c42: ISZERO
00000c43: ISZERO
00000c44: SWAP2
00000c45: SWAP1
00000c46: SWAP2
00000c47: OR
00000c48: SWAP1
00000c49: SSTORE
00000c4a: PUSH1 0x01
00000c4c: PUSH1 0x01
00000c4e: PUSH1 0x70
00000c50: SHL
00000c51: SUB
00000c52: DUP2
00000c53: AND
00000c54: PUSH2 0x0c6f
00000c57: JUMPI
00000c58: PUSH1 0x40
00000c5a: MLOAD
00000c5b: PUSH3 0x461bcd
00000c5f: PUSH1 0xe5
00000c61: SHL
00000c62: DUP2
00000c63: MSTORE
00000c64: PUSH1 0x04
00000c66: ADD
00000c67: PUSH2 0x04b1
00000c6a: SWAP1
00000c6b: PUSH2 0x2a19
00000c6e: JUMP
00000c6f: JUMPDEST
00000c70: PUSH2 0x0c90
00000c73: PUSH2 0x0c7a
00000c76: PUSH2 0x0d78
00000c79: JUMP
00000c7a: JUMPDEST
00000c7b: DUP3
00000c7c: PUSH2 0x0c83
00000c7f: PUSH2 0x0cf6
00000c82: JUMP
00000c83: JUMPDEST
00000c84: SWAP2
00000c85: SWAP1
00000c86: PUSH4 0xffffffff
00000c8b: PUSH2 0x1aa1
00000c8e: AND
00000c8f: JUMP
00000c90: JUMPDEST
00000c91: PUSH2 0x0c98
00000c94: PUSH2 0x0d78
00000c97: JUMP
00000c98: JUMPDEST
00000c99: PUSH1 0x01
00000c9b: PUSH1 0x01
00000c9d: PUSH1 0xa0
00000c9f: SHL
00000ca0: SUB
00000ca1: AND
00000ca2: PUSH2 0x08fc
00000ca5: DUP3
00000ca6: PUSH1 0x01
00000ca8: PUSH1 0x01
00000caa: PUSH1 0x70
00000cac: SHL
00000cad: SUB
00000cae: AND
00000caf: SWAP1
00000cb0: DUP2
00000cb1: ISZERO
00000cb2: MUL
00000cb3: SWAP1
00000cb4: PUSH1 0x40
00000cb6: MLOAD
00000cb7: PUSH1 0x00
00000cb9: PUSH1 0x40
00000cbb: MLOAD
00000cbc: DUP1
00000cbd: DUP4
00000cbe: SUB
00000cbf: DUP2
00000cc0: DUP6
00000cc1: DUP9
00000cc2: DUP9
00000cc3: CALL
00000cc4: SWAP4
00000cc5: POP
00000cc6: POP
00000cc7: POP
00000cc8: POP
00000cc9: ISZERO
00000cca: DUP1
00000ccb: ISZERO
00000ccc: PUSH2 0x0cd9
00000ccf: JUMPI
00000cd0: RETURNDATASIZE
00000cd1: PUSH1 0x00
00000cd3: DUP1
00000cd4: RETURNDATACOPY
00000cd5: RETURNDATASIZE
00000cd6: PUSH1 0x00
00000cd8: REVERT
00000cd9: JUMPDEST
00000cda: POP
00000cdb: PUSH1 0x00
00000cdd: PUSH2 0x0ce4
00000ce0: PUSH2 0x0fe1
00000ce3: JUMP
00000ce4: JUMPDEST
00000ce5: DUP1
00000ce6: SLOAD
00000ce7: PUSH1 0xff
00000ce9: NOT
00000cea: AND
00000ceb: SWAP2
00000cec: ISZERO
00000ced: ISZERO
00000cee: SWAP2
00000cef: SWAP1
00000cf0: SWAP2
00000cf1: OR
00000cf2: SWAP1
00000cf3: SSTORE
00000cf4: POP
00000cf5: JUMP
00000cf6: JUMPDEST
00000cf7: PUSH32 0x8c89fc81d9ea4103ca01a6b8674fdaec22ec47acad49dcba52ad9c3d556ea075
00000d18: SWAP1
00000d19: JUMP
00000d1a: JUMPDEST
00000d1b: PUSH2 0x0d72
00000d1e: DUP5
00000d1f: PUSH4 0x23b872dd
00000d24: PUSH1 0xe0
00000d26: SHL
00000d27: DUP6
00000d28: DUP6
00000d29: DUP6
00000d2a: PUSH1 0x40
00000d2c: MLOAD
00000d2d: PUSH1 0x24
00000d2f: ADD
00000d30: PUSH2 0x0d3b
00000d33: SWAP4
00000d34: SWAP3
00000d35: SWAP2
00000d36: SWAP1
00000d37: PUSH2 0x25fb
00000d3a: JUMP
00000d3b: JUMPDEST
00000d3c: PUSH1 0x40
00000d3e: DUP1
00000d3f: MLOAD
00000d40: PUSH1 0x1f
00000d42: NOT
00000d43: DUP2
00000d44: DUP5
00000d45: SUB
00000d46: ADD
00000d47: DUP2
00000d48: MSTORE
00000d49: SWAP2
00000d4a: SWAP1
00000d4b: MSTORE
00000d4c: PUSH1 0x20
00000d4e: DUP2
00000d4f: ADD
00000d50: DUP1
00000d51: MLOAD
00000d52: PUSH1 0x01
00000d54: PUSH1 0x01
00000d56: PUSH1 0xe0
00000d58: SHL
00000d59: SUB
00000d5a: AND
00000d5b: PUSH1 0x01
00000d5d: PUSH1 0x01
00000d5f: PUSH1 0xe0
00000d61: SHL
00000d62: SUB
00000d63: NOT
00000d64: SWAP1
00000d65: SWAP4
00000d66: AND
00000d67: SWAP3
00000d68: SWAP1
00000d69: SWAP3
00000d6a: OR
00000d6b: SWAP1
00000d6c: SWAP2
00000d6d: MSTORE
00000d6e: PUSH2 0x1b4e
00000d71: JUMP
00000d72: JUMPDEST
00000d73: POP
00000d74: POP
00000d75: POP
00000d76: POP
00000d77: JUMP
00000d78: JUMPDEST
00000d79: CALLER
00000d7a: SWAP1
00000d7b: JUMP
00000d7c: JUMPDEST
00000d7d: PUSH1 0x01
00000d7f: PUSH1 0x01
00000d81: PUSH1 0xa0
00000d83: SHL
00000d84: SUB
00000d85: DUP3
00000d86: AND
00000d87: PUSH1 0x00
00000d89: SWAP1
00000d8a: DUP2
00000d8b: MSTORE
00000d8c: PUSH1 0x20
00000d8e: DUP5
00000d8f: SWAP1
00000d90: MSTORE
00000d91: PUSH1 0x40
00000d93: SWAP1
00000d94: KECCAK256
00000d95: DUP1
00000d96: SLOAD
00000d97: PUSH2 0x0db3
00000d9a: SWAP1
00000d9b: PUSH1 0x01
00000d9d: PUSH1 0x01
00000d9f: PUSH1 0x70
00000da1: SHL
00000da2: SUB
00000da3: SWAP1
00000da4: DUP2
00000da5: AND
00000da6: SWAP1
00000da7: DUP5
00000da8: AND
00000da9: PUSH4 0xffffffff
00000dae: PUSH2 0x1bdd
00000db1: AND
00000db2: JUMP
00000db3: JUMPDEST
00000db4: DUP2
00000db5: SLOAD
00000db6: PUSH1 0x01
00000db8: PUSH1 0x01
00000dba: PUSH1 0x70
00000dbc: SHL
00000dbd: SUB
00000dbe: NOT
00000dbf: AND
00000dc0: PUSH1 0x01
00000dc2: PUSH1 0x01
00000dc4: PUSH1 0x70
00000dc6: SHL
00000dc7: SUB
00000dc8: SWAP2
00000dc9: DUP3
00000dca: AND
00000dcb: OR
00000dcc: DUP1
00000dcd: DUP4
00000dce: SSTORE
00000dcf: PUSH2 0x0de4
00000dd2: SWAP2
00000dd3: PUSH1 0x01
00000dd5: PUSH1 0x70
00000dd7: SHL
00000dd8: SWAP1
00000dd9: SWAP2
00000dda: DIV
00000ddb: DUP2
00000ddc: AND
00000ddd: SWAP1
00000dde: DUP5
00000ddf: AND
00000de0: PUSH2 0x1c1f
00000de3: JUMP
00000de4: JUMPDEST
00000de5: DUP2
00000de6: SLOAD
00000de7: PUSH1 0x01
00000de9: PUSH1 0x01
00000deb: PUSH1 0x70
00000ded: SHL
00000dee: SUB
00000def: SWAP2
00000df0: SWAP1
00000df1: SWAP2
00000df2: AND
00000df3: PUSH1 0x01
00000df5: PUSH1 0x70
00000df7: SHL
00000df8: MUL
00000df9: PUSH1 0x01
00000dfb: PUSH1 0x70
00000dfd: SHL
00000dfe: PUSH1 0x01
00000e00: PUSH1 0xe0
00000e02: SHL
00000e03: SUB
00000e04: NOT
00000e05: SWAP1
00000e06: SWAP2
00000e07: AND
00000e08: OR
00000e09: DUP2
00000e0a: SSTORE
00000e0b: PUSH2 0x0e29
00000e0e: PUSH2 0x0e15
00000e11: PUSH2 0x0e34
00000e14: JUMP
00000e15: JUMPDEST
00000e16: PUSH1 0x02
00000e18: ADD
00000e19: SLOAD
00000e1a: NUMBER
00000e1b: SWAP1
00000e1c: PUSH1 0xff
00000e1e: AND
00000e1f: PUSH4 0xffffffff
00000e24: PUSH2 0x1c1f
00000e27: AND
00000e28: JUMP
00000e29: JUMPDEST
00000e2a: PUSH1 0x01
00000e2c: SWAP1
00000e2d: SWAP2
00000e2e: ADD
00000e2f: SSTORE
00000e30: POP
00000e31: POP
00000e32: POP
00000e33: JUMP
00000e34: JUMPDEST
00000e35: PUSH32 0xf5b4be0a744c821d14f78bf26d55a308f420d78cebbfac103f2618fba32917b9
00000e56: SWAP1
00000e57: JUMP
00000e58: JUMPDEST
00000e59: PUSH32 0xd59dd79cfd4373c6c6547848d91fc2ea67c8aec9053f7028828216c5af1d4741
00000e7a: SWAP1
00000e7b: JUMP
00000e7c: JUMPDEST
00000e7d: PUSH2 0x0e84
00000e80: PUSH2 0x0e34
00000e83: JUMP
00000e84: JUMPDEST
00000e85: PUSH1 0x40
00000e87: MLOAD
00000e88: PUSH4 0x21cab0c7
00000e8d: PUSH1 0xe0
00000e8f: SHL
00000e90: DUP2
00000e91: MSTORE
00000e92: PUSH20 0x6ee56fb19b8ef9b2d336c55cc9e1b8fb79472ecf
00000ea7: SWAP2
00000ea8: PUSH4 0x21cab0c7
00000ead: SWAP2
00000eae: PUSH2 0x0ebc
00000eb1: SWAP2
00000eb2: SWAP1
00000eb3: DUP6
00000eb4: SWAP1
00000eb5: PUSH1 0x04
00000eb7: ADD
00000eb8: PUSH2 0x2b37
00000ebb: JUMP
00000ebc: JUMPDEST
00000ebd: PUSH1 0x00
00000ebf: PUSH1 0x40
00000ec1: MLOAD
00000ec2: DUP1
00000ec3: DUP4
00000ec4: SUB
00000ec5: DUP2
00000ec6: DUP7
00000ec7: DUP1
00000ec8: EXTCODESIZE
00000ec9: ISZERO
00000eca: DUP1
00000ecb: ISZERO
00000ecc: PUSH2 0x0ed4
00000ecf: JUMPI
00000ed0: PUSH1 0x00
00000ed2: DUP1
00000ed3: REVERT
00000ed4: JUMPDEST
00000ed5: POP
00000ed6: GAS
00000ed7: DELEGATECALL
00000ed8: ISZERO
00000ed9: DUP1
00000eda: ISZERO
00000edb: PUSH2 0x0ee8
00000ede: JUMPI
00000edf: RETURNDATASIZE
00000ee0: PUSH1 0x00
00000ee2: DUP1
00000ee3: RETURNDATACOPY
00000ee4: RETURNDATASIZE
00000ee5: PUSH1 0x00
00000ee7: REVERT
00000ee8: JUMPDEST
00000ee9: POP
00000eea: POP
00000eeb: POP
00000eec: POP
00000eed: PUSH2 0x060a
00000ef0: PUSH2 0x1c44
00000ef3: JUMP
00000ef4: JUMPDEST
00000ef5: PUSH1 0x01
00000ef7: PUSH1 0x01
00000ef9: PUSH1 0xa0
00000efb: SHL
00000efc: SUB
00000efd: DUP2
00000efe: AND
00000eff: PUSH1 0x00
00000f01: SWAP1
00000f02: DUP2
00000f03: MSTORE
00000f04: PUSH1 0x20
00000f06: DUP4
00000f07: SWAP1
00000f08: MSTORE
00000f09: PUSH1 0x40
00000f0b: DUP2
00000f0c: KECCAK256
00000f0d: PUSH1 0x01
00000f0f: DUP2
00000f10: ADD
00000f11: SLOAD
00000f12: ISZERO
00000f13: DUP1
00000f14: ISZERO
00000f15: SWAP1
00000f16: PUSH2 0x0f22
00000f19: JUMPI
00000f1a: POP
00000f1b: NUMBER
00000f1c: DUP2
00000f1d: PUSH1 0x01
00000f1f: ADD
00000f20: SLOAD
00000f21: LT
00000f22: JUMPDEST
00000f23: ISZERO
00000f24: PUSH2 0x0f54
00000f27: JUMPI
00000f28: DUP1
00000f29: SLOAD
00000f2a: PUSH2 0x0f4c
00000f2d: SWAP1
00000f2e: PUSH1 0x01
00000f30: PUSH1 0x01
00000f32: PUSH1 0x70
00000f34: SHL
00000f35: SUB
00000f36: DUP1
00000f37: DUP3
00000f38: AND
00000f39: SWAP2
00000f3a: PUSH1 0x01
00000f3c: PUSH1 0x70
00000f3e: SHL
00000f3f: SWAP1
00000f40: DIV
00000f41: AND
00000f42: PUSH4 0xffffffff
00000f47: PUSH2 0x1c1f
00000f4a: AND
00000f4b: JUMP
00000f4c: JUMPDEST
00000f4d: SWAP2
00000f4e: POP
00000f4f: POP
00000f50: PUSH2 0x0468
00000f53: JUMP
00000f54: JUMPDEST
00000f55: SLOAD
00000f56: PUSH1 0x01
00000f58: PUSH1 0x01
00000f5a: PUSH1 0x70
00000f5c: SHL
00000f5d: SUB
00000f5e: AND
00000f5f: SWAP4
00000f60: SWAP3
00000f61: POP
00000f62: POP
00000f63: POP
00000f64: JUMP
00000f65: JUMPDEST
00000f66: PUSH1 0x00
00000f68: DUP3
00000f69: PUSH2 0x0f74
00000f6c: JUMPI
00000f6d: POP
00000f6e: PUSH1 0x00
00000f70: PUSH2 0x0468
00000f73: JUMP
00000f74: JUMPDEST
00000f75: DUP3
00000f76: DUP3
00000f77: MUL
00000f78: DUP3
00000f79: DUP5
00000f7a: DUP3
00000f7b: DUP2
00000f7c: PUSH2 0x0f81
00000f7f: JUMPI
00000f80: INVALID
00000f81: JUMPDEST
00000f82: DIV
00000f83: EQ
00000f84: PUSH2 0x0a13
00000f87: JUMPI
00000f88: PUSH1 0x40
00000f8a: MLOAD
00000f8b: PUSH3 0x461bcd
00000f8f: PUSH1 0xe5
00000f91: SHL
00000f92: DUP2
00000f93: MSTORE
00000f94: PUSH1 0x04
00000f96: ADD
00000f97: PUSH2 0x04b1
00000f9a: SWAP1
00000f9b: PUSH2 0x28c7
00000f9e: JUMP
00000f9f: JUMPDEST
00000fa0: PUSH1 0x00
00000fa2: PUSH2 0x0a13
00000fa5: DUP4
00000fa6: DUP4
00000fa7: PUSH1 0x40
00000fa9: MLOAD
00000faa: DUP1
00000fab: PUSH1 0x40
00000fad: ADD
00000fae: PUSH1 0x40
00000fb0: MSTORE
00000fb1: DUP1
00000fb2: PUSH1 0x1a
00000fb4: DUP2
00000fb5: MSTORE
00000fb6: PUSH1 0x20
00000fb8: ADD
00000fb9: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000
00000fda: DUP2
00000fdb: MSTORE
00000fdc: POP
00000fdd: PUSH2 0x1d37
00000fe0: JUMP
00000fe1: JUMPDEST
00000fe2: PUSH32 0x3a83b1278d351a40f18bb9e8e77896e8c1dc812ffaed5ea63e0e837a6dae57e9
00001003: SWAP1
00001004: JUMP
00001005: JUMPDEST
00001006: PUSH1 0x00
00001008: DUP1
00001009: PUSH2 0x101b
0000100c: PUSH3 0x06ddd0
00001010: DUP5
00001011: PUSH4 0xffffffff
00001016: PUSH2 0x0f65
00001019: AND
0000101a: JUMP
0000101b: JUMPDEST
0000101c: SWAP1
0000101d: POP
0000101e: PUSH1 0x00
00001020: PUSH2 0x1064
00001023: PUSH2 0x102a
00001026: PUSH2 0x0e34
00001029: JUMP
0000102a: JUMPDEST
0000102b: PUSH1 0x01
0000102d: ADD
0000102e: SLOAD
0000102f: PUSH1 0x20
00001031: DUP8
00001032: ADD
00001033: MLOAD
00001034: PUSH1 0x01
00001036: PUSH1 0x01
00001038: PUSH1 0x80
0000103a: SHL
0000103b: SUB
0000103c: PUSH1 0x01
0000103e: PUSH1 0x80
00001040: SHL
00001041: SWAP1
00001042: SWAP3
00001043: DIV
00001044: DUP3
00001045: AND
00001046: SWAP2
00001047: PUSH2 0x1058
0000104a: SWAP2
0000104b: DUP7
0000104c: SWAP2
0000104d: AND
0000104e: PUSH4 0xffffffff
00001053: PUSH2 0x1c1f
00001056: AND
00001057: JUMP
00001058: JUMPDEST
00001059: SWAP1
0000105a: PUSH4 0xffffffff
0000105f: PUSH2 0x1c1f
00001062: AND
00001063: JUMP
00001064: JUMPDEST
00001065: DUP6
00001066: MLOAD
00001067: PUSH1 0x40
00001069: MLOAD
0000106a: PUSH4 0x0ebd3559
0000106f: PUSH1 0xe3
00001071: SHL
00001072: DUP2
00001073: MSTORE
00001074: SWAP2
00001075: SWAP3
00001076: POP
00001077: PUSH1 0x00
00001079: SWAP2
0000107a: ADDRESS
0000107b: SWAP2
0000107c: PUSH4 0x75e9aac8
00001081: SWAP2
00001082: PUSH2 0x1090
00001085: SWAP2
00001086: SWAP1
00001087: DUP7
00001088: SWAP1
00001089: PUSH1 0x04
0000108b: ADD
0000108c: PUSH2 0x261f
0000108f: JUMP
00001090: JUMPDEST
00001091: PUSH1 0x20
00001093: PUSH1 0x40
00001095: MLOAD
00001096: DUP1
00001097: DUP4
00001098: SUB
00001099: DUP2
0000109a: DUP7
0000109b: DUP1
0000109c: EXTCODESIZE
0000109d: ISZERO
0000109e: DUP1
0000109f: ISZERO
000010a0: PUSH2 0x10a8
000010a3: JUMPI
000010a4: PUSH1 0x00
000010a6: DUP1
000010a7: REVERT
000010a8: JUMPDEST
000010a9: POP
000010aa: GAS
000010ab: STATICCALL
000010ac: ISZERO
000010ad: DUP1
000010ae: ISZERO
000010af: PUSH2 0x10bc
000010b2: JUMPI
000010b3: RETURNDATASIZE
000010b4: PUSH1 0x00
000010b6: DUP1
000010b7: RETURNDATACOPY
000010b8: RETURNDATASIZE
000010b9: PUSH1 0x00
000010bb: REVERT
000010bc: JUMPDEST
000010bd: POP
000010be: POP
000010bf: POP
000010c0: POP
000010c1: PUSH1 0x40
000010c3: MLOAD
000010c4: RETURNDATASIZE
000010c5: PUSH1 0x1f
000010c7: NOT
000010c8: PUSH1 0x1f
000010ca: DUP3
000010cb: ADD
000010cc: AND
000010cd: DUP3
000010ce: ADD
000010cf: DUP1
000010d0: PUSH1 0x40
000010d2: MSTORE
000010d3: POP
000010d4: DUP2
000010d5: ADD
000010d6: SWAP1
000010d7: PUSH2 0x10e0
000010da: SWAP2
000010db: SWAP1
000010dc: PUSH2 0x21a8
000010df: JUMP
000010e0: JUMPDEST
000010e1: SWAP7
000010e2: SWAP6
000010e3: POP
000010e4: POP
000010e5: POP
000010e6: POP
000010e7: POP
000010e8: POP
000010e9: JUMP
000010ea: JUMPDEST
000010eb: PUSH1 0x00
000010ed: PUSH2 0x10f4
000010f0: PUSH2 0x0e34
000010f3: JUMP
000010f4: JUMPDEST
000010f5: PUSH1 0x01
000010f7: ADD
000010f8: SLOAD
000010f9: PUSH1 0x01
000010fb: PUSH1 0x80
000010fd: SHL
000010fe: SWAP1
000010ff: DIV
00001100: PUSH1 0x01
00001102: PUSH1 0x01
00001104: PUSH1 0x80
00001106: SHL
00001107: SUB
00001108: AND
00001109: SWAP1
0000110a: POP
0000110b: PUSH1 0x00
0000110d: PUSH2 0x1123
00001110: PUSH2 0xea60
00001113: PUSH2 0x1058
00001116: GAS
00001117: DUP8
00001118: SWAP1
00001119: PUSH4 0xffffffff
0000111e: PUSH2 0x1bdd
00001121: AND
00001122: JUMP
00001123: JUMPDEST
00001124: SWAP1
00001125: POP
00001126: PUSH1 0x00
00001128: PUSH2 0x1137
0000112b: DUP3
0000112c: GASPRICE
0000112d: PUSH4 0xffffffff
00001132: PUSH2 0x0f65
00001135: AND
00001136: JUMP
00001137: JUMPDEST
00001138: DUP7
00001139: MLOAD
0000113a: SWAP1
0000113b: SWAP2
0000113c: POP
0000113d: PUSH2 0x115e
00001140: SWAP1
00001141: PUSH2 0x1159
00001144: PUSH1 0x01
00001146: PUSH1 0x01
00001148: PUSH1 0x80
0000114a: SHL
0000114b: SUB
0000114c: DUP7
0000114d: AND
0000114e: DUP5
0000114f: PUSH4 0xffffffff
00001154: PUSH2 0x1c1f
00001157: AND
00001158: JUMP
00001159: JUMPDEST
0000115a: PUSH2 0x1d6e
0000115d: JUMP
0000115e: JUMPDEST
0000115f: DUP6
00001160: PUSH1 0x00
00001162: ADD
00001163: MLOAD
00001164: PUSH1 0x01
00001166: PUSH1 0x01
00001168: PUSH1 0xa0
0000116a: SHL
0000116b: SUB
0000116c: AND
0000116d: PUSH32 0x7f90208f4b1dbe35087f2dd428fb2ba1ad82c57f759d55c1967dab7ea0a9a771
0000118e: DUP5
0000118f: PUSH1 0x01
00001191: PUSH1 0x01
00001193: PUSH1 0x80
00001195: SHL
00001196: SUB
00001197: AND
00001198: DUP4
00001199: DUP8
0000119a: PUSH1 0x40
0000119c: MLOAD
0000119d: PUSH2 0x11a8
000011a0: SWAP4
000011a1: SWAP3
000011a2: SWAP2
000011a3: SWAP1
000011a4: PUSH2 0x2cf0
000011a7: JUMP
000011a8: JUMPDEST
000011a9: PUSH1 0x40
000011ab: MLOAD
000011ac: DUP1
000011ad: SWAP2
000011ae: SUB
000011af: SWAP1
000011b0: LOG2
000011b1: PUSH2 0x11b8
000011b4: PUSH2 0x0e34
000011b7: JUMP
000011b8: JUMPDEST
000011b9: SLOAD
000011ba: PUSH1 0x40
000011bc: MLOAD
000011bd: PUSH1 0x01
000011bf: PUSH1 0x01
000011c1: PUSH1 0xa0
000011c3: SHL
000011c4: SUB
000011c5: SWAP1
000011c6: SWAP2
000011c7: AND
000011c8: SWAP1
000011c9: PUSH1 0x01
000011cb: PUSH1 0x01
000011cd: PUSH1 0x80
000011cf: SHL
000011d0: SUB
000011d1: DUP6
000011d2: AND
000011d3: DUP1
000011d4: ISZERO
000011d5: PUSH2 0x08fc
000011d8: MUL
000011d9: SWAP2
000011da: PUSH1 0x00
000011dc: DUP2
000011dd: DUP2
000011de: DUP2
000011df: DUP6
000011e0: DUP9
000011e1: DUP9
000011e2: CALL
000011e3: SWAP4
000011e4: POP
000011e5: POP
000011e6: POP
000011e7: POP
000011e8: ISZERO
000011e9: DUP1
000011ea: ISZERO
000011eb: PUSH2 0x11f8
000011ee: JUMPI
000011ef: RETURNDATASIZE
000011f0: PUSH1 0x00
000011f2: DUP1
000011f3: RETURNDATACOPY
000011f4: RETURNDATASIZE
000011f5: PUSH1 0x00
000011f7: REVERT
000011f8: JUMPDEST
000011f9: POP
000011fa: PUSH2 0x1201
000011fd: PUSH2 0x0d78
00001200: JUMP
00001201: JUMPDEST
00001202: PUSH1 0x01
00001204: PUSH1 0x01
00001206: PUSH1 0xa0
00001208: SHL
00001209: SUB
0000120a: AND
0000120b: PUSH2 0x08fc
0000120e: DUP3
0000120f: SWAP1
00001210: DUP2
00001211: ISZERO
00001212: MUL
00001213: SWAP1
00001214: PUSH1 0x40
00001216: MLOAD
00001217: PUSH1 0x00
00001219: PUSH1 0x40
0000121b: MLOAD
0000121c: DUP1
0000121d: DUP4
0000121e: SUB
0000121f: DUP2
00001220: DUP6
00001221: DUP9
00001222: DUP9
00001223: CALL
00001224: SWAP4
00001225: POP
00001226: POP
00001227: POP
00001228: POP
00001229: ISZERO
0000122a: DUP1
0000122b: ISZERO
0000122c: PUSH2 0x1239
0000122f: JUMPI
00001230: RETURNDATASIZE
00001231: PUSH1 0x00
00001233: DUP1
00001234: RETURNDATACOPY
00001235: RETURNDATASIZE
00001236: PUSH1 0x00
00001238: REVERT
00001239: JUMPDEST
0000123a: POP
0000123b: POP
0000123c: POP
0000123d: POP
0000123e: POP
0000123f: POP
00001240: POP
00001241: JUMP
00001242: JUMPDEST
00001243: PUSH1 0x80
00001245: DUP2
00001246: ADD
00001247: MLOAD
00001248: PUSH1 0x20
0000124a: DUP2
0000124b: ADD
0000124c: MLOAD
0000124d: SWAP1
0000124e: MLOAD
0000124f: DUP3
00001250: MLOAD
00001251: PUSH1 0x40
00001253: MLOAD
00001254: PUSH4 0x70a08231
00001259: PUSH1 0xe0
0000125b: SHL
0000125c: DUP2
0000125d: MSTORE
0000125e: PUSH1 0x00
00001260: SWAP4
00001261: DUP5
00001262: SWAP4
00001263: PUSH1 0x01
00001265: PUSH1 0x01
00001267: PUSH1 0x70
00001269: SHL
0000126a: SUB
0000126b: SWAP1
0000126c: SWAP2
0000126d: AND
0000126e: SWAP3
0000126f: PUSH1 0x01
00001271: PUSH1 0x01
00001273: PUSH1 0xa0
00001275: SHL
00001276: SUB
00001277: SWAP1
00001278: SWAP2
00001279: AND
0000127a: SWAP2
0000127b: PUSH4 0x70a08231
00001280: SWAP2
00001281: PUSH2 0x128c
00001284: SWAP2
00001285: PUSH1 0x04
00001287: ADD
00001288: PUSH2 0x25cd
0000128b: JUMP
0000128c: JUMPDEST
0000128d: PUSH1 0x20
0000128f: PUSH1 0x40
00001291: MLOAD
00001292: DUP1
00001293: DUP4
00001294: SUB
00001295: DUP2
00001296: DUP7
00001297: DUP1
00001298: EXTCODESIZE
00001299: ISZERO
0000129a: DUP1
0000129b: ISZERO
0000129c: PUSH2 0x12a4
0000129f: JUMPI
000012a0: PUSH1 0x00
000012a2: DUP1
000012a3: REVERT
000012a4: JUMPDEST
000012a5: POP
000012a6: GAS
000012a7: STATICCALL
000012a8: ISZERO
000012a9: DUP1
000012aa: ISZERO
000012ab: PUSH2 0x12b8
000012ae: JUMPI
000012af: RETURNDATASIZE
000012b0: PUSH1 0x00
000012b2: DUP1
000012b3: RETURNDATACOPY
000012b4: RETURNDATASIZE
000012b5: PUSH1 0x00
000012b7: REVERT
000012b8: JUMPDEST
000012b9: POP
000012ba: POP
000012bb: POP
000012bc: POP
000012bd: PUSH1 0x40
000012bf: MLOAD
000012c0: RETURNDATASIZE
000012c1: PUSH1 0x1f
000012c3: NOT
000012c4: PUSH1 0x1f
000012c6: DUP3
000012c7: ADD
000012c8: AND
000012c9: DUP3
000012ca: ADD
000012cb: DUP1
000012cc: PUSH1 0x40
000012ce: MSTORE
000012cf: POP
000012d0: DUP2
000012d1: ADD
000012d2: SWAP1
000012d3: PUSH2 0x07de
000012d6: SWAP2
000012d7: SWAP1
000012d8: PUSH2 0x24c6
000012db: JUMP
000012dc: JUMPDEST
000012dd: PUSH1 0x80
000012df: DUP2
000012e0: ADD
000012e1: MLOAD
000012e2: PUSH1 0x20
000012e4: DUP2
000012e5: ADD
000012e6: MLOAD
000012e7: SWAP1
000012e8: MLOAD
000012e9: DUP3
000012ea: MLOAD
000012eb: PUSH1 0x40
000012ed: MLOAD
000012ee: PUSH4 0x6eb1769f
000012f3: PUSH1 0xe1
000012f5: SHL
000012f6: DUP2
000012f7: MSTORE
000012f8: PUSH1 0x00
000012fa: SWAP4
000012fb: DUP5
000012fc: SWAP4
000012fd: PUSH1 0x01
000012ff: PUSH1 0x01
00001301: PUSH1 0x70
00001303: SHL
00001304: SUB
00001305: SWAP1
00001306: SWAP2
00001307: AND
00001308: SWAP3
00001309: PUSH1 0x01
0000130b: PUSH1 0x01
0000130d: PUSH1 0xa0
0000130f: SHL
00001310: SUB
00001311: SWAP1
00001312: SWAP2
00001313: AND
00001314: SWAP2
00001315: PUSH4 0xdd62ed3e
0000131a: SWAP2
0000131b: PUSH2 0x128c
0000131e: SWAP2
0000131f: ADDRESS
00001320: SWAP1
00001321: PUSH1 0x04
00001323: ADD
00001324: PUSH2 0x25e1
00001327: JUMP
00001328: JUMPDEST
00001329: PUSH2 0x1330
0000132c: PUSH2 0x2007
0000132f: JUMP
00001330: JUMPDEST
00001331: PUSH1 0x40
00001333: DUP1
00001334: MLOAD
00001335: PUSH1 0x80
00001337: DUP1
00001338: DUP3
00001339: ADD
0000133a: SWAP3
0000133b: DUP4
0000133c: SWAP1
0000133d: MSTORE
0000133e: DUP8
0000133f: ADD
00001340: MLOAD
00001341: MLOAD
00001342: DUP8
00001343: MLOAD
00001344: PUSH4 0x70a08231
00001349: PUSH1 0xe0
0000134b: SHL
0000134c: SWAP1
0000134d: SWAP4
0000134e: MSTORE
0000134f: SWAP1
00001350: SWAP2
00001351: DUP3
00001352: SWAP2
00001353: PUSH1 0x01
00001355: PUSH1 0x01
00001357: PUSH1 0xa0
00001359: SHL
0000135a: SUB
0000135b: AND
0000135c: SWAP1
0000135d: PUSH4 0x70a08231
00001362: SWAP1
00001363: PUSH2 0x136f
00001366: SWAP1
00001367: PUSH1 0x84
00001369: DUP6
0000136a: ADD
0000136b: PUSH2 0x25cd
0000136e: JUMP
0000136f: JUMPDEST
00001370: PUSH1 0x20
00001372: PUSH1 0x40
00001374: MLOAD
00001375: DUP1
00001376: DUP4
00001377: SUB
00001378: DUP2
00001379: DUP7
0000137a: DUP1
0000137b: EXTCODESIZE
0000137c: ISZERO
0000137d: DUP1
0000137e: ISZERO
0000137f: PUSH2 0x1387
00001382: JUMPI
00001383: PUSH1 0x00
00001385: DUP1
00001386: REVERT
00001387: JUMPDEST
00001388: POP
00001389: GAS
0000138a: STATICCALL
0000138b: ISZERO
0000138c: DUP1
0000138d: ISZERO
0000138e: PUSH2 0x139b
00001391: JUMPI
00001392: RETURNDATASIZE
00001393: PUSH1 0x00
00001395: DUP1
00001396: RETURNDATACOPY
00001397: RETURNDATASIZE
00001398: PUSH1 0x00
0000139a: REVERT
0000139b: JUMPDEST
0000139c: POP
0000139d: POP
0000139e: POP
0000139f: POP
000013a0: PUSH1 0x40
000013a2: MLOAD
000013a3: RETURNDATASIZE
000013a4: PUSH1 0x1f
000013a6: NOT
000013a7: PUSH1 0x1f
000013a9: DUP3
000013aa: ADD
000013ab: AND
000013ac: DUP3
000013ad: ADD
000013ae: DUP1
000013af: PUSH1 0x40
000013b1: MSTORE
000013b2: POP
000013b3: DUP2
000013b4: ADD
000013b5: SWAP1
000013b6: PUSH2 0x13bf
000013b9: SWAP2
000013ba: SWAP1
000013bb: PUSH2 0x24c6
000013be: JUMP
000013bf: JUMPDEST
000013c0: DUP2
000013c1: MSTORE
000013c2: PUSH1 0xa0
000013c4: DUP8
000013c5: ADD
000013c6: MLOAD
000013c7: MLOAD
000013c8: DUP8
000013c9: MLOAD
000013ca: PUSH1 0x40
000013cc: MLOAD
000013cd: PUSH4 0x70a08231
000013d2: PUSH1 0xe0
000013d4: SHL
000013d5: DUP2
000013d6: MSTORE
000013d7: PUSH1 0x20
000013d9: SWAP1
000013da: SWAP4
000013db: ADD
000013dc: SWAP3
000013dd: PUSH1 0x01
000013df: PUSH1 0x01
000013e1: PUSH1 0xa0
000013e3: SHL
000013e4: SUB
000013e5: SWAP1
000013e6: SWAP3
000013e7: AND
000013e8: SWAP2
000013e9: PUSH4 0x70a08231
000013ee: SWAP2
000013ef: PUSH2 0x13fa
000013f2: SWAP2
000013f3: PUSH1 0x04
000013f5: ADD
000013f6: PUSH2 0x25cd
000013f9: JUMP
000013fa: JUMPDEST
000013fb: PUSH1 0x20
000013fd: PUSH1 0x40
000013ff: MLOAD
00001400: DUP1
00001401: DUP4
00001402: SUB
00001403: DUP2
00001404: DUP7
00001405: DUP1
00001406: EXTCODESIZE
00001407: ISZERO
00001408: DUP1
00001409: ISZERO
0000140a: PUSH2 0x1412
0000140d: JUMPI
0000140e: PUSH1 0x00
00001410: DUP1
00001411: REVERT
00001412: JUMPDEST
00001413: POP
00001414: GAS
00001415: STATICCALL
00001416: ISZERO
00001417: DUP1
00001418: ISZERO
00001419: PUSH2 0x1426
0000141c: JUMPI
0000141d: RETURNDATASIZE
0000141e: PUSH1 0x00
00001420: DUP1
00001421: RETURNDATACOPY
00001422: RETURNDATASIZE
00001423: PUSH1 0x00
00001425: REVERT
00001426: JUMPDEST
00001427: POP
00001428: POP
00001429: POP
0000142a: POP
0000142b: PUSH1 0x40
0000142d: MLOAD
0000142e: RETURNDATASIZE
0000142f: PUSH1 0x1f
00001431: NOT
00001432: PUSH1 0x1f
00001434: DUP3
00001435: ADD
00001436: AND
00001437: DUP3
00001438: ADD
00001439: DUP1
0000143a: PUSH1 0x40
0000143c: MSTORE
0000143d: POP
0000143e: DUP2
0000143f: ADD
00001440: SWAP1
00001441: PUSH2 0x144a
00001444: SWAP2
00001445: SWAP1
00001446: PUSH2 0x24c6
00001449: JUMP
0000144a: JUMPDEST
0000144b: DUP2
0000144c: MSTORE
0000144d: PUSH1 0x20
0000144f: ADD
00001450: PUSH1 0x00
00001452: DUP2
00001453: MSTORE
00001454: PUSH1 0x20
00001456: ADD
00001457: PUSH1 0x00
00001459: DUP2
0000145a: MSTORE
0000145b: POP
0000145c: SWAP1
0000145d: POP
0000145e: PUSH1 0x00
00001460: PUSH1 0x60
00001462: ADDRESS
00001463: PUSH1 0x01
00001465: PUSH1 0x01
00001467: PUSH1 0xa0
00001469: SHL
0000146a: SUB
0000146b: AND
0000146c: PUSH4 0x2f0dee6e
00001471: PUSH2 0x1484
00001474: PUSH3 0x013880
00001478: GAS
00001479: SWAP1
0000147a: PUSH4 0xffffffff
0000147f: PUSH2 0x1bdd
00001482: AND
00001483: JUMP
00001484: JUMPDEST
00001485: DUP10
00001486: DUP10
00001487: DUP10
00001488: PUSH1 0x40
0000148a: MLOAD
0000148b: DUP6
0000148c: PUSH4 0xffffffff
00001491: AND
00001492: PUSH1 0xe0
00001494: SHL
00001495: DUP2
00001496: MSTORE
00001497: PUSH1 0x04
00001499: ADD
0000149a: PUSH2 0x14a5
0000149d: SWAP4
0000149e: SWAP3
0000149f: SWAP2
000014a0: SWAP1
000014a1: PUSH2 0x2c3a
000014a4: JUMP
000014a5: JUMPDEST
000014a6: PUSH1 0x00
000014a8: PUSH1 0x40
000014aa: MLOAD
000014ab: DUP1
000014ac: DUP4
000014ad: SUB
000014ae: DUP2
000014af: PUSH1 0x00
000014b1: DUP9
000014b2: DUP1
000014b3: EXTCODESIZE
000014b4: ISZERO
000014b5: DUP1
000014b6: ISZERO
000014b7: PUSH2 0x14bf
000014ba: JUMPI
000014bb: PUSH1 0x00
000014bd: DUP1
000014be: REVERT
000014bf: JUMPDEST
000014c0: POP
000014c1: DUP8
000014c2: CALL
000014c3: SWAP4
000014c4: POP
000014c5: POP
000014c6: POP
000014c7: POP
000014c8: DUP1
000014c9: ISZERO
000014ca: PUSH2 0x14d1
000014cd: JUMPI
000014ce: POP
000014cf: PUSH1 0x01
000014d1: JUMPDEST
000014d2: PUSH2 0x1528
000014d5: JUMPI
000014d6: PUSH2 0x14dd
000014d9: PUSH2 0x2dcb
000014dc: JUMP
000014dd: JUMPDEST
000014de: DUP1
000014df: PUSH2 0x14e8
000014e2: JUMPI
000014e3: POP
000014e4: PUSH2 0x14f3
000014e7: JUMP
000014e8: JUMPDEST
000014e9: PUSH1 0x00
000014eb: SWAP3
000014ec: POP
000014ed: SWAP1
000014ee: POP
000014ef: PUSH2 0x1523
000014f2: JUMP
000014f3: JUMPDEST
000014f4: POP
000014f5: POP
000014f6: PUSH1 0x40
000014f8: DUP1
000014f9: MLOAD
000014fa: DUP1
000014fb: DUP3
000014fc: ADD
000014fd: SWAP1
000014fe: SWAP2
000014ff: MSTORE
00001500: PUSH1 0x13
00001502: DUP2
00001503: MSTORE
00001504: PUSH19 0x2ab735b737bbb7103330b4b6103932b0b9b7b7
00001518: PUSH1 0x69
0000151a: SHL
0000151b: PUSH1 0x20
0000151d: DUP3
0000151e: ADD
0000151f: MSTORE
00001520: PUSH1 0x00
00001522: SWAP1
00001523: JUMPDEST
00001524: PUSH2 0x152d
00001527: JUMP
00001528: JUMPDEST
00001529: PUSH1 0x01
0000152b: SWAP2
0000152c: POP
0000152d: JUMPDEST
0000152e: PUSH1 0x80
00001530: DUP8
00001531: ADD
00001532: MLOAD
00001533: MLOAD
00001534: DUP8
00001535: MLOAD
00001536: PUSH1 0x40
00001538: MLOAD
00001539: PUSH4 0x70a08231
0000153e: PUSH1 0xe0
00001540: SHL
00001541: DUP2
00001542: MSTORE
00001543: PUSH1 0x01
00001545: PUSH1 0x01
00001547: PUSH1 0xa0
00001549: SHL
0000154a: SUB
0000154b: SWAP1
0000154c: SWAP3
0000154d: AND
0000154e: SWAP2
0000154f: PUSH4 0x70a08231
00001554: SWAP2
00001555: PUSH2 0x1560
00001558: SWAP2
00001559: PUSH1 0x04
0000155b: ADD
0000155c: PUSH2 0x25cd
0000155f: JUMP
00001560: JUMPDEST
00001561: PUSH1 0x20
00001563: PUSH1 0x40
00001565: MLOAD
00001566: DUP1
00001567: DUP4
00001568: SUB
00001569: DUP2
0000156a: DUP7
0000156b: DUP1
0000156c: EXTCODESIZE
0000156d: ISZERO
0000156e: DUP1
0000156f: ISZERO
00001570: PUSH2 0x1578
00001573: JUMPI
00001574: PUSH1 0x00
00001576: DUP1
00001577: REVERT
00001578: JUMPDEST
00001579: POP
0000157a: GAS
0000157b: STATICCALL
0000157c: ISZERO
0000157d: DUP1
0000157e: ISZERO
0000157f: PUSH2 0x158c
00001582: JUMPI
00001583: RETURNDATASIZE
00001584: PUSH1 0x00
00001586: DUP1
00001587: RETURNDATACOPY
00001588: RETURNDATASIZE
00001589: PUSH1 0x00
0000158b: REVERT
0000158c: JUMPDEST
0000158d: POP
0000158e: POP
0000158f: POP
00001590: POP
00001591: PUSH1 0x40
00001593: MLOAD
00001594: RETURNDATASIZE
00001595: PUSH1 0x1f
00001597: NOT
00001598: PUSH1 0x1f
0000159a: DUP3
0000159b: ADD
0000159c: AND
0000159d: DUP3
0000159e: ADD
0000159f: DUP1
000015a0: PUSH1 0x40
000015a2: MSTORE
000015a3: POP
000015a4: DUP2
000015a5: ADD
000015a6: SWAP1
000015a7: PUSH2 0x15b0
000015aa: SWAP2
000015ab: SWAP1
000015ac: PUSH2 0x24c6
000015af: JUMP
000015b0: JUMPDEST
000015b1: PUSH1 0x40
000015b3: DUP5
000015b4: ADD
000015b5: MSTORE
000015b6: DUP2
000015b7: PUSH2 0x16ad
000015ba: JUMPI
000015bb: DUP3
000015bc: MLOAD
000015bd: PUSH1 0x40
000015bf: DUP5
000015c0: ADD
000015c1: MLOAD
000015c2: EQ
000015c3: PUSH2 0x15de
000015c6: JUMPI
000015c7: PUSH1 0x40
000015c9: MLOAD
000015ca: PUSH3 0x461bcd
000015ce: PUSH1 0xe5
000015d0: SHL
000015d1: DUP2
000015d2: MSTORE
000015d3: PUSH1 0x04
000015d5: ADD
000015d6: PUSH2 0x04b1
000015d9: SWAP1
000015da: PUSH2 0x2a9a
000015dd: JUMP
000015de: JUMPDEST
000015df: PUSH1 0x00
000015e1: PUSH2 0x15f7
000015e4: PUSH2 0xea60
000015e7: PUSH2 0x1058
000015ea: GAS
000015eb: DUP9
000015ec: SWAP1
000015ed: PUSH4 0xffffffff
000015f2: PUSH2 0x1bdd
000015f5: AND
000015f6: JUMP
000015f7: JUMPDEST
000015f8: SWAP1
000015f9: POP
000015fa: PUSH1 0x00
000015fc: PUSH2 0x160b
000015ff: DUP3
00001600: GASPRICE
00001601: PUSH4 0xffffffff
00001606: PUSH2 0x0f65
00001609: AND
0000160a: JUMP
0000160b: JUMPDEST
0000160c: SWAP1
0000160d: POP
0000160e: PUSH2 0x161b
00001611: DUP10
00001612: PUSH1 0x00
00001614: ADD
00001615: MLOAD
00001616: DUP3
00001617: PUSH2 0x1d6e
0000161a: JUMP
0000161b: JUMPDEST
0000161c: DUP9
0000161d: PUSH1 0x00
0000161f: ADD
00001620: MLOAD
00001621: PUSH1 0x01
00001623: PUSH1 0x01
00001625: PUSH1 0xa0
00001627: SHL
00001628: SUB
00001629: AND
0000162a: PUSH32 0x25e268b6e417ca50f83f2b95db36dfd7e9d897f9b0b714668524e848e8635347
0000164b: DUP3
0000164c: DUP6
0000164d: PUSH1 0x40
0000164f: MLOAD
00001650: PUSH2 0x165a
00001653: SWAP3
00001654: SWAP2
00001655: SWAP1
00001656: PUSH2 0x2cd7
00001659: JUMP
0000165a: JUMPDEST
0000165b: PUSH1 0x40
0000165d: MLOAD
0000165e: DUP1
0000165f: SWAP2
00001660: SUB
00001661: SWAP1
00001662: LOG2
00001663: PUSH2 0x166a
00001666: PUSH2 0x0d78
00001669: JUMP
0000166a: JUMPDEST
0000166b: PUSH1 0x01
0000166d: PUSH1 0x01
0000166f: PUSH1 0xa0
00001671: SHL
00001672: SUB
00001673: AND
00001674: PUSH2 0x08fc
00001677: DUP3
00001678: SWAP1
00001679: DUP2
0000167a: ISZERO
0000167b: MUL
0000167c: SWAP1
0000167d: PUSH1 0x40
0000167f: MLOAD
00001680: PUSH1 0x00
00001682: PUSH1 0x40
00001684: MLOAD
00001685: DUP1
00001686: DUP4
00001687: SUB
00001688: DUP2
00001689: DUP6
0000168a: DUP9
0000168b: DUP9
0000168c: CALL
0000168d: SWAP4
0000168e: POP
0000168f: POP
00001690: POP
00001691: POP
00001692: ISZERO
00001693: DUP1
00001694: ISZERO
00001695: PUSH2 0x16a2
00001698: JUMPI
00001699: RETURNDATASIZE
0000169a: PUSH1 0x00
0000169c: DUP1
0000169d: RETURNDATACOPY
0000169e: RETURNDATASIZE
0000169f: PUSH1 0x00
000016a1: REVERT
000016a2: JUMPDEST
000016a3: POP
000016a4: POP
000016a5: POP
000016a6: POP
000016a7: POP
000016a8: POP
000016a9: PUSH2 0x0d72
000016ac: JUMP
000016ad: JUMPDEST
000016ae: PUSH1 0xa0
000016b0: DUP8
000016b1: ADD
000016b2: MLOAD
000016b3: MLOAD
000016b4: DUP8
000016b5: MLOAD
000016b6: PUSH1 0x40
000016b8: MLOAD
000016b9: PUSH4 0x70a08231
000016be: PUSH1 0xe0
000016c0: SHL
000016c1: DUP2
000016c2: MSTORE
000016c3: PUSH1 0x01
000016c5: PUSH1 0x01
000016c7: PUSH1 0xa0
000016c9: SHL
000016ca: SUB
000016cb: SWAP1
000016cc: SWAP3
000016cd: AND
000016ce: SWAP2
000016cf: PUSH4 0x70a08231
000016d4: SWAP2
000016d5: PUSH2 0x16e0
000016d8: SWAP2
000016d9: PUSH1 0x04
000016db: ADD
000016dc: PUSH2 0x25cd
000016df: JUMP
000016e0: JUMPDEST
000016e1: PUSH1 0x20
000016e3: PUSH1 0x40
000016e5: MLOAD
000016e6: DUP1
000016e7: DUP4
000016e8: SUB
000016e9: DUP2
000016ea: DUP7
000016eb: DUP1
000016ec: EXTCODESIZE
000016ed: ISZERO
000016ee: DUP1
000016ef: ISZERO
000016f0: PUSH2 0x16f8
000016f3: JUMPI
000016f4: PUSH1 0x00
000016f6: DUP1
000016f7: REVERT
000016f8: JUMPDEST
000016f9: POP
000016fa: GAS
000016fb: STATICCALL
000016fc: ISZERO
000016fd: DUP1
000016fe: ISZERO
000016ff: PUSH2 0x170c
00001702: JUMPI
00001703: RETURNDATASIZE
00001704: PUSH1 0x00
00001706: DUP1
00001707: RETURNDATACOPY
00001708: RETURNDATASIZE
00001709: PUSH1 0x00
0000170b: REVERT
0000170c: JUMPDEST
0000170d: POP
0000170e: POP
0000170f: POP
00001710: POP
00001711: PUSH1 0x40
00001713: MLOAD
00001714: RETURNDATASIZE
00001715: PUSH1 0x1f
00001717: NOT
00001718: PUSH1 0x1f
0000171a: DUP3
0000171b: ADD
0000171c: AND
0000171d: DUP3
0000171e: ADD
0000171f: DUP1
00001720: PUSH1 0x40
00001722: MSTORE
00001723: POP
00001724: DUP2
00001725: ADD
00001726: SWAP1
00001727: PUSH2 0x1730
0000172a: SWAP2
0000172b: SWAP1
0000172c: PUSH2 0x24c6
0000172f: JUMP
00001730: JUMPDEST
00001731: PUSH1 0x60
00001733: DUP5
00001734: ADD
00001735: DUP2
00001736: SWAP1
00001737: MSTORE
00001738: PUSH1 0x20
0000173a: DUP5
0000173b: ADD
0000173c: MLOAD
0000173d: LT
0000173e: PUSH2 0x1759
00001741: JUMPI
00001742: PUSH1 0x40
00001744: MLOAD
00001745: PUSH3 0x461bcd
00001749: PUSH1 0xe5
0000174b: SHL
0000174c: DUP2
0000174d: MSTORE
0000174e: PUSH1 0x04
00001750: ADD
00001751: PUSH2 0x04b1
00001754: SWAP1
00001755: PUSH2 0x265f
00001758: JUMP
00001759: JUMPDEST
0000175a: DUP7
0000175b: PUSH1 0xa0
0000175d: ADD
0000175e: MLOAD
0000175f: PUSH1 0x20
00001761: ADD
00001762: MLOAD
00001763: PUSH1 0x01
00001765: PUSH1 0x01
00001767: PUSH1 0x70
00001769: SHL
0000176a: SUB
0000176b: AND
0000176c: PUSH2 0x1786
0000176f: DUP5
00001770: PUSH1 0x20
00001772: ADD
00001773: MLOAD
00001774: DUP6
00001775: PUSH1 0x60
00001777: ADD
00001778: MLOAD
00001779: PUSH2 0x1bdd
0000177c: SWAP1
0000177d: SWAP2
0000177e: SWAP1
0000177f: PUSH4 0xffffffff
00001784: AND
00001785: JUMP
00001786: JUMPDEST
00001787: LT
00001788: ISZERO
00001789: PUSH2 0x17a4
0000178c: JUMPI
0000178d: PUSH1 0x40
0000178f: MLOAD
00001790: PUSH3 0x461bcd
00001794: PUSH1 0xe5
00001796: SHL
00001797: DUP2
00001798: MSTORE
00001799: PUSH1 0x04
0000179b: ADD
0000179c: PUSH2 0x04b1
0000179f: SWAP1
000017a0: PUSH2 0x27fb
000017a3: JUMP
000017a4: JUMPDEST
000017a5: DUP3
000017a6: MLOAD
000017a7: PUSH1 0x40
000017a9: DUP5
000017aa: ADD
000017ab: MLOAD
000017ac: LT
000017ad: PUSH2 0x17c8
000017b0: JUMPI
000017b1: PUSH1 0x40
000017b3: MLOAD
000017b4: PUSH3 0x461bcd
000017b8: PUSH1 0xe5
000017ba: SHL
000017bb: DUP2
000017bc: MSTORE
000017bd: PUSH1 0x04
000017bf: ADD
000017c0: PUSH2 0x04b1
000017c3: SWAP1
000017c4: PUSH2 0x2786
000017c7: JUMP
000017c8: JUMPDEST
000017c9: PUSH1 0x80
000017cb: DUP8
000017cc: ADD
000017cd: MLOAD
000017ce: PUSH1 0x20
000017d0: ADD
000017d1: MLOAD
000017d2: PUSH1 0x40
000017d4: DUP5
000017d5: ADD
000017d6: MLOAD
000017d7: DUP5
000017d8: MLOAD
000017d9: PUSH1 0x01
000017db: PUSH1 0x01
000017dd: PUSH1 0x70
000017df: SHL
000017e0: SUB
000017e1: SWAP1
000017e2: SWAP3
000017e3: AND
000017e4: SWAP2
000017e5: PUSH2 0x17f3
000017e8: SWAP2
000017e9: PUSH4 0xffffffff
000017ee: PUSH2 0x1bdd
000017f1: AND
000017f2: JUMP
000017f3: JUMPDEST
000017f4: GT
000017f5: ISZERO
000017f6: PUSH2 0x1811
000017f9: JUMPI
000017fa: PUSH1 0x40
000017fc: MLOAD
000017fd: PUSH3 0x461bcd
00001801: PUSH1 0xe5
00001803: SHL
00001804: DUP2
00001805: MSTORE
00001806: PUSH1 0x04
00001808: ADD
00001809: PUSH2 0x04b1
0000180c: SWAP1
0000180d: PUSH2 0x284f
00001810: JUMP
00001811: JUMPDEST
00001812: PUSH1 0x00
00001814: PUSH2 0x182a
00001817: PUSH2 0xea60
0000181a: PUSH2 0x1058
0000181d: GAS
0000181e: DUP9
0000181f: SWAP1
00001820: PUSH4 0xffffffff
00001825: PUSH2 0x1bdd
00001828: AND
00001829: JUMP
0000182a: JUMPDEST
0000182b: SWAP1
0000182c: POP
0000182d: PUSH1 0x00
0000182f: PUSH2 0x183e
00001832: DUP3
00001833: GASPRICE
00001834: PUSH4 0xffffffff
00001839: PUSH2 0x0f65
0000183c: AND
0000183d: JUMP
0000183e: JUMPDEST
0000183f: DUP10
00001840: MLOAD
00001841: PUSH1 0x20
00001843: DUP12
00001844: ADD
00001845: MLOAD
00001846: SWAP2
00001847: SWAP3
00001848: POP
00001849: PUSH2 0x1866
0000184c: SWAP2
0000184d: PUSH2 0x1159
00001850: SWAP1
00001851: DUP5
00001852: SWAP1
00001853: PUSH1 0x01
00001855: PUSH1 0x01
00001857: PUSH1 0x80
00001859: SHL
0000185a: SUB
0000185b: AND
0000185c: PUSH4 0xffffffff
00001861: PUSH2 0x1c1f
00001864: AND
00001865: JUMP
00001866: JUMPDEST
00001867: PUSH2 0x186e
0000186a: PUSH2 0x0d78
0000186d: JUMP
0000186e: JUMPDEST
0000186f: PUSH1 0x01
00001871: PUSH1 0x01
00001873: PUSH1 0xa0
00001875: SHL
00001876: SUB
00001877: AND
00001878: PUSH2 0x08fc
0000187b: DUP3
0000187c: SWAP1
0000187d: DUP2
0000187e: ISZERO
0000187f: MUL
00001880: SWAP1
00001881: PUSH1 0x40
00001883: MLOAD
00001884: PUSH1 0x00
00001886: PUSH1 0x40
00001888: MLOAD
00001889: DUP1
0000188a: DUP4
0000188b: SUB
0000188c: DUP2
0000188d: DUP6
0000188e: DUP9
0000188f: DUP9
00001890: CALL
00001891: SWAP4
00001892: POP
00001893: POP
00001894: POP
00001895: POP
00001896: ISZERO
00001897: DUP1
00001898: ISZERO
00001899: PUSH2 0x18a6
0000189c: JUMPI
0000189d: RETURNDATASIZE
0000189e: PUSH1 0x00
000018a0: DUP1
000018a1: RETURNDATACOPY
000018a2: RETURNDATASIZE
000018a3: PUSH1 0x00
000018a5: REVERT
000018a6: JUMPDEST
000018a7: POP
000018a8: PUSH2 0x18af
000018ab: PUSH2 0x0e34
000018ae: JUMP
000018af: JUMPDEST
000018b0: SLOAD
000018b1: PUSH1 0x20
000018b3: DUP11
000018b4: ADD
000018b5: MLOAD
000018b6: PUSH1 0x40
000018b8: MLOAD
000018b9: PUSH1 0x01
000018bb: PUSH1 0x01
000018bd: PUSH1 0xa0
000018bf: SHL
000018c0: SUB
000018c1: SWAP1
000018c2: SWAP3
000018c3: AND
000018c4: SWAP2
000018c5: PUSH1 0x01
000018c7: PUSH1 0x01
000018c9: PUSH1 0x80
000018cb: SHL
000018cc: SUB
000018cd: SWAP1
000018ce: SWAP2
000018cf: AND
000018d0: DUP1
000018d1: ISZERO
000018d2: PUSH2 0x08fc
000018d5: MUL
000018d6: SWAP2
000018d7: PUSH1 0x00
000018d9: DUP2
000018da: DUP2
000018db: DUP2
000018dc: DUP6
000018dd: DUP9
000018de: DUP9
000018df: CALL
000018e0: SWAP4
000018e1: POP
000018e2: POP
000018e3: POP
000018e4: POP
000018e5: ISZERO
000018e6: DUP1
000018e7: ISZERO
000018e8: PUSH2 0x18f5
000018eb: JUMPI
000018ec: RETURNDATASIZE
000018ed: PUSH1 0x00
000018ef: DUP1
000018f0: RETURNDATACOPY
000018f1: RETURNDATASIZE
000018f2: PUSH1 0x00
000018f4: REVERT
000018f5: JUMPDEST
000018f6: POP
000018f7: PUSH2 0x18fe
000018fa: PUSH2 0x0d78
000018fd: JUMP
000018fe: JUMPDEST
000018ff: PUSH1 0x01
00001901: PUSH1 0x01
00001903: PUSH1 0xa0
00001905: SHL
00001906: SUB
00001907: AND
00001908: DUP10
00001909: PUSH1 0x00
0000190b: ADD
0000190c: MLOAD
0000190d: PUSH1 0x01
0000190f: PUSH1 0x01
00001911: PUSH1 0xa0
00001913: SHL
00001914: SUB
00001915: AND
00001916: PUSH32 0x5ac72b858888990bb2049431a88689d4792e4f81276a67205492ba0e430812ae
00001937: PUSH2 0x1951
0000193a: DUP9
0000193b: PUSH1 0x40
0000193d: ADD
0000193e: MLOAD
0000193f: DUP10
00001940: PUSH1 0x00
00001942: ADD
00001943: MLOAD
00001944: PUSH2 0x1bdd
00001947: SWAP1
00001948: SWAP2
00001949: SWAP1
0000194a: PUSH4 0xffffffff
0000194f: AND
00001950: JUMP
00001951: JUMPDEST
00001952: PUSH1 0x20
00001954: DUP10
00001955: ADD
00001956: MLOAD
00001957: PUSH1 0x60
00001959: DUP11
0000195a: ADD
0000195b: MLOAD
0000195c: PUSH2 0x196a
0000195f: SWAP2
00001960: PUSH4 0xffffffff
00001965: PUSH2 0x1bdd
00001968: AND
00001969: JUMP
0000196a: JUMPDEST
0000196b: DUP14
0000196c: PUSH1 0x20
0000196e: ADD
0000196f: MLOAD
00001970: DUP7
00001971: PUSH1 0x40
00001973: MLOAD
00001974: PUSH2 0x1980
00001977: SWAP5
00001978: SWAP4
00001979: SWAP3
0000197a: SWAP2
0000197b: SWAP1
0000197c: PUSH2 0x2d0f
0000197f: JUMP
00001980: JUMPDEST
00001981: PUSH1 0x40
00001983: MLOAD
00001984: DUP1
00001985: SWAP2
00001986: SUB
00001987: SWAP1
00001988: LOG3
00001989: POP
0000198a: POP
0000198b: POP
0000198c: POP
0000198d: POP
0000198e: POP
0000198f: POP
00001990: POP
00001991: POP
00001992: JUMP
00001993: JUMPDEST
00001994: PUSH1 0x01
00001996: PUSH1 0x01
00001998: PUSH1 0xa0
0000199a: SHL
0000199b: SUB
0000199c: DUP2
0000199d: AND
0000199e: PUSH1 0x00
000019a0: SWAP1
000019a1: DUP2
000019a2: MSTORE
000019a3: PUSH1 0x20
000019a5: DUP4
000019a6: SWAP1
000019a7: MSTORE
000019a8: PUSH1 0x40
000019aa: DUP2
000019ab: KECCAK256
000019ac: PUSH1 0x01
000019ae: DUP2
000019af: ADD
000019b0: SLOAD
000019b1: ISZERO
000019b2: DUP1
000019b3: ISZERO
000019b4: SWAP1
000019b5: PUSH2 0x19c1
000019b8: JUMPI
000019b9: POP
000019ba: NUMBER
000019bb: DUP2
000019bc: PUSH1 0x01
000019be: ADD
000019bf: SLOAD
000019c0: GT
000019c1: JUMPDEST
000019c2: ISZERO
000019c3: PUSH2 0x19de
000019c6: JUMPI
000019c7: SLOAD
000019c8: PUSH1 0x01
000019ca: PUSH1 0x70
000019cc: SHL
000019cd: SWAP1
000019ce: DIV
000019cf: PUSH1 0x01
000019d1: PUSH1 0x01
000019d3: PUSH1 0x70
000019d5: SHL
000019d6: SUB
000019d7: AND
000019d8: SWAP1
000019d9: POP
000019da: PUSH2 0x0468
000019dd: JUMP
000019de: JUMPDEST
000019df: POP
000019e0: PUSH1 0x00
000019e2: SWAP4
000019e3: SWAP3
000019e4: POP
000019e5: POP
000019e6: POP
000019e7: JUMP
000019e8: JUMPDEST
000019e9: PUSH1 0x01
000019eb: PUSH1 0x01
000019ed: PUSH1 0xa0
000019ef: SHL
000019f0: SUB
000019f1: DUP3
000019f2: AND
000019f3: PUSH1 0x00
000019f5: SWAP1
000019f6: DUP2
000019f7: MSTORE
000019f8: PUSH1 0x20
000019fa: DUP5
000019fb: SWAP1
000019fc: MSTORE
000019fd: PUSH1 0x40
000019ff: SWAP1
00001a00: KECCAK256
00001a01: DUP1
00001a02: SLOAD
00001a03: PUSH2 0x1a1f
00001a06: SWAP1
00001a07: PUSH1 0x01
00001a09: PUSH1 0x01
00001a0b: PUSH1 0x70
00001a0d: SHL
00001a0e: SUB
00001a0f: SWAP1
00001a10: DUP2
00001a11: AND
00001a12: SWAP1
00001a13: DUP5
00001a14: AND
00001a15: PUSH4 0xffffffff
00001a1a: PUSH2 0x1c1f
00001a1d: AND
00001a1e: JUMP
00001a1f: JUMPDEST
00001a20: DUP2
00001a21: SLOAD
00001a22: PUSH1 0x01
00001a24: PUSH1 0x01
00001a26: PUSH1 0x70
00001a28: SHL
00001a29: SUB
00001a2a: NOT
00001a2b: AND
00001a2c: PUSH1 0x01
00001a2e: PUSH1 0x01
00001a30: PUSH1 0x70
00001a32: SHL
00001a33: SUB
00001a34: SWAP2
00001a35: SWAP1
00001a36: SWAP2
00001a37: AND
00001a38: OR
00001a39: SWAP1
00001a3a: SSTORE
00001a3b: POP
00001a3c: POP
00001a3d: POP
00001a3e: JUMP
00001a3f: JUMPDEST
00001a40: PUSH1 0x00
00001a42: SWAP2
00001a43: DUP3
00001a44: MSTORE
00001a45: PUSH1 0x01
00001a47: SWAP1
00001a48: SWAP3
00001a49: ADD
00001a4a: PUSH1 0x20
00001a4c: SWAP1
00001a4d: DUP2
00001a4e: MSTORE
00001a4f: PUSH1 0x40
00001a51: DUP1
00001a52: DUP4
00001a53: KECCAK256
00001a54: PUSH1 0x01
00001a56: PUSH1 0x01
00001a58: PUSH1 0xa0
00001a5a: SHL
00001a5b: SUB
00001a5c: SWAP1
00001a5d: SWAP5
00001a5e: AND
00001a5f: DUP4
00001a60: MSTORE
00001a61: SWAP3
00001a62: SWAP1
00001a63: MSTORE
00001a64: KECCAK256
00001a65: DUP1
00001a66: SLOAD
00001a67: PUSH1 0xff
00001a69: NOT
00001a6a: AND
00001a6b: SWAP1
00001a6c: SSTORE
00001a6d: JUMP
00001a6e: JUMPDEST
00001a6f: PUSH1 0x00
00001a71: SWAP2
00001a72: DUP3
00001a73: MSTORE
00001a74: PUSH1 0x01
00001a76: SWAP3
00001a77: DUP4
00001a78: ADD
00001a79: PUSH1 0x20
00001a7b: SWAP1
00001a7c: DUP2
00001a7d: MSTORE
00001a7e: PUSH1 0x40
00001a80: DUP1
00001a81: DUP5
00001a82: KECCAK256
00001a83: PUSH1 0x01
00001a85: PUSH1 0x01
00001a87: PUSH1 0xa0
00001a89: SHL
00001a8a: SUB
00001a8b: SWAP1
00001a8c: SWAP4
00001a8d: AND
00001a8e: DUP5
00001a8f: MSTORE
00001a90: SWAP2
00001a91: SWAP1
00001a92: MSTORE
00001a93: SWAP1
00001a94: KECCAK256
00001a95: DUP1
00001a96: SLOAD
00001a97: PUSH1 0xff
00001a99: NOT
00001a9a: AND
00001a9b: SWAP1
00001a9c: SWAP2
00001a9d: OR
00001a9e: SWAP1
00001a9f: SSTORE
00001aa0: JUMP
00001aa1: JUMPDEST
00001aa2: PUSH1 0x01
00001aa4: PUSH1 0x01
00001aa6: PUSH1 0xa0
00001aa8: SHL
00001aa9: SUB
00001aaa: DUP3
00001aab: AND
00001aac: PUSH1 0x00
00001aae: SWAP1
00001aaf: DUP2
00001ab0: MSTORE
00001ab1: PUSH1 0x20
00001ab3: DUP5
00001ab4: SWAP1
00001ab5: MSTORE
00001ab6: PUSH1 0x40
00001ab8: SWAP1
00001ab9: KECCAK256
00001aba: PUSH1 0x01
00001abc: DUP2
00001abd: ADD
00001abe: SLOAD
00001abf: PUSH2 0x1ada
00001ac2: JUMPI
00001ac3: PUSH1 0x40
00001ac5: MLOAD
00001ac6: PUSH3 0x461bcd
00001aca: PUSH1 0xe5
00001acc: SHL
00001acd: DUP2
00001ace: MSTORE
00001acf: PUSH1 0x04
00001ad1: ADD
00001ad2: PUSH2 0x04b1
00001ad5: SWAP1
00001ad6: PUSH2 0x26e1
00001ad9: JUMP
00001ada: JUMPDEST
00001adb: NUMBER
00001adc: DUP2
00001add: PUSH1 0x01
00001adf: ADD
00001ae0: SLOAD
00001ae1: LT
00001ae2: PUSH2 0x1afd
00001ae5: JUMPI
00001ae6: PUSH1 0x40
00001ae8: MLOAD
00001ae9: PUSH3 0x461bcd
00001aed: PUSH1 0xe5
00001aef: SHL
00001af0: DUP2
00001af1: MSTORE
00001af2: PUSH1 0x04
00001af4: ADD
00001af5: PUSH2 0x04b1
00001af8: SWAP1
00001af9: PUSH2 0x27b6
00001afc: JUMP
00001afd: JUMPDEST
00001afe: DUP1
00001aff: SLOAD
00001b00: PUSH2 0x1b23
00001b03: SWAP1
00001b04: PUSH1 0x01
00001b06: PUSH1 0x70
00001b08: SHL
00001b09: SWAP1
00001b0a: DIV
00001b0b: PUSH1 0x01
00001b0d: PUSH1 0x01
00001b0f: PUSH1 0x70
00001b11: SHL
00001b12: SUB
00001b13: SWAP1
00001b14: DUP2
00001b15: AND
00001b16: SWAP1
00001b17: DUP5
00001b18: AND
00001b19: PUSH4 0xffffffff
00001b1e: PUSH2 0x1bdd
00001b21: AND
00001b22: JUMP
00001b23: JUMPDEST
00001b24: DUP2
00001b25: SLOAD
00001b26: PUSH1 0x01
00001b28: PUSH1 0x01
00001b2a: PUSH1 0x70
00001b2c: SHL
00001b2d: SUB
00001b2e: SWAP2
00001b2f: SWAP1
00001b30: SWAP2
00001b31: AND
00001b32: PUSH1 0x01
00001b34: PUSH1 0x70
00001b36: SHL
00001b37: MUL
00001b38: PUSH1 0x01
00001b3a: PUSH1 0x70
00001b3c: SHL
00001b3d: PUSH1 0x01
00001b3f: PUSH1 0xe0
00001b41: SHL
00001b42: SUB
00001b43: NOT
00001b44: SWAP1
00001b45: SWAP2
00001b46: AND
00001b47: OR
00001b48: SWAP1
00001b49: SSTORE
00001b4a: POP
00001b4b: POP
00001b4c: POP
00001b4d: JUMP
00001b4e: JUMPDEST
00001b4f: PUSH1 0x60
00001b51: PUSH2 0x1ba3
00001b54: DUP3
00001b55: PUSH1 0x40
00001b57: MLOAD
00001b58: DUP1
00001b59: PUSH1 0x40
00001b5b: ADD
00001b5c: PUSH1 0x40
00001b5e: MSTORE
00001b5f: DUP1
00001b60: PUSH1 0x20
00001b62: DUP2
00001b63: MSTORE
00001b64: PUSH1 0x20
00001b66: ADD
00001b67: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00001b88: DUP2
00001b89: MSTORE
00001b8a: POP
00001b8b: DUP6
00001b8c: PUSH1 0x01
00001b8e: PUSH1 0x01
00001b90: PUSH1 0xa0
00001b92: SHL
00001b93: SUB
00001b94: AND
00001b95: PUSH2 0x1d88
00001b98: SWAP1
00001b99: SWAP3
00001b9a: SWAP2
00001b9b: SWAP1
00001b9c: PUSH4 0xffffffff
00001ba1: AND
00001ba2: JUMP
00001ba3: JUMPDEST
00001ba4: DUP1
00001ba5: MLOAD
00001ba6: SWAP1
00001ba7: SWAP2
00001ba8: POP
00001ba9: ISZERO
00001baa: PUSH2 0x0737
00001bad: JUMPI
00001bae: DUP1
00001baf: DUP1
00001bb0: PUSH1 0x20
00001bb2: ADD
00001bb3: SWAP1
00001bb4: MLOAD
00001bb5: DUP2
00001bb6: ADD
00001bb7: SWAP1
00001bb8: PUSH2 0x1bc1
00001bbb: SWAP2
00001bbc: SWAP1
00001bbd: PUSH2 0x21a8
00001bc0: JUMP
00001bc1: JUMPDEST
00001bc2: PUSH2 0x0737
00001bc5: JUMPI
00001bc6: PUSH1 0x40
00001bc8: MLOAD
00001bc9: PUSH3 0x461bcd
00001bcd: PUSH1 0xe5
00001bcf: SHL
00001bd0: DUP2
00001bd1: MSTORE
00001bd2: PUSH1 0x04
00001bd4: ADD
00001bd5: PUSH2 0x04b1
00001bd8: SWAP1
00001bd9: PUSH2 0x2a50
00001bdc: JUMP
00001bdd: JUMPDEST
00001bde: PUSH1 0x00
00001be0: PUSH2 0x0a13
00001be3: DUP4
00001be4: DUP4
00001be5: PUSH1 0x40
00001be7: MLOAD
00001be8: DUP1
00001be9: PUSH1 0x40
00001beb: ADD
00001bec: PUSH1 0x40
00001bee: MSTORE
00001bef: DUP1
00001bf0: PUSH1 0x1e
00001bf2: DUP2
00001bf3: MSTORE
00001bf4: PUSH1 0x20
00001bf6: ADD
00001bf7: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
00001c18: DUP2
00001c19: MSTORE
00001c1a: POP
00001c1b: PUSH2 0x1d9f
00001c1e: JUMP
00001c1f: JUMPDEST
00001c20: PUSH1 0x00
00001c22: DUP3
00001c23: DUP3
00001c24: ADD
00001c25: DUP4
00001c26: DUP2
00001c27: LT
00001c28: ISZERO
00001c29: PUSH2 0x0a13
00001c2c: JUMPI
00001c2d: PUSH1 0x40
00001c2f: MLOAD
00001c30: PUSH3 0x461bcd
00001c34: PUSH1 0xe5
00001c36: SHL
00001c37: DUP2
00001c38: MSTORE
00001c39: PUSH1 0x04
00001c3b: ADD
00001c3c: PUSH2 0x04b1
00001c3f: SWAP1
00001c40: PUSH2 0x2718
00001c43: JUMP
00001c44: JUMPDEST
00001c45: PUSH1 0x00
00001c47: PUSH2 0x1c4e
00001c4a: PUSH2 0x0e58
00001c4d: JUMP
00001c4e: JUMPDEST
00001c4f: DUP1
00001c50: SLOAD
00001c51: SWAP1
00001c52: SWAP2
00001c53: POP
00001c54: PUSH2 0x0100
00001c57: SWAP1
00001c58: DIV
00001c59: PUSH1 0xff
00001c5b: AND
00001c5c: DUP1
00001c5d: PUSH2 0x1c68
00001c60: JUMPI
00001c61: POP
00001c62: DUP1
00001c63: SLOAD
00001c64: PUSH1 0xff
00001c66: AND
00001c67: ISZERO
00001c68: JUMPDEST
00001c69: PUSH2 0x1c84
00001c6c: JUMPI
00001c6d: PUSH1 0x40
00001c6f: MLOAD
00001c70: PUSH3 0x461bcd
00001c74: PUSH1 0xe5
00001c76: SHL
00001c77: DUP2
00001c78: MSTORE
00001c79: PUSH1 0x04
00001c7b: ADD
00001c7c: PUSH2 0x04b1
00001c7f: SWAP1
00001c80: PUSH2 0x29ec
00001c83: JUMP
00001c84: JUMPDEST
00001c85: DUP1
00001c86: SLOAD
00001c87: PUSH2 0x0100
00001c8a: SWAP1
00001c8b: DIV
00001c8c: PUSH1 0xff
00001c8e: AND
00001c8f: ISZERO
00001c90: DUP1
00001c91: ISZERO
00001c92: PUSH2 0x1cac
00001c95: JUMPI
00001c96: DUP2
00001c97: SLOAD
00001c98: PUSH1 0xff
00001c9a: NOT
00001c9b: PUSH2 0xff00
00001c9e: NOT
00001c9f: SWAP1
00001ca0: SWAP2
00001ca1: AND
00001ca2: PUSH2 0x0100
00001ca5: OR
00001ca6: AND
00001ca7: PUSH1 0x01
00001ca9: OR
00001caa: DUP3
00001cab: SSTORE
00001cac: JUMPDEST
00001cad: PUSH1 0x00
00001caf: PUSH2 0x1cb6
00001cb2: PUSH2 0x0d78
00001cb5: JUMP
00001cb6: JUMPDEST
00001cb7: SWAP1
00001cb8: POP
00001cb9: PUSH2 0x1cd0
00001cbc: PUSH1 0x00
00001cbe: DUP1
00001cbf: MLOAD
00001cc0: PUSH1 0x20
00001cc2: PUSH2 0x2f1f
00001cc5: DUP4
00001cc6: CODECOPY
00001cc7: DUP2
00001cc8: MLOAD
00001cc9: SWAP2
00001cca: MSTORE
00001ccb: DUP3
00001ccc: PUSH2 0x0bc1
00001ccf: JUMP
00001cd0: JUMPDEST
00001cd1: PUSH2 0x1cfa
00001cd4: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
00001cf5: DUP3
00001cf6: PUSH2 0x0bc1
00001cf9: JUMP
00001cfa: JUMPDEST
00001cfb: PUSH2 0x1d24
00001cfe: PUSH32 0x077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7
00001d1f: DUP3
00001d20: PUSH2 0x0bc1
00001d23: JUMP
00001d24: JUMPDEST
00001d25: POP
00001d26: DUP1
00001d27: ISZERO
00001d28: PUSH2 0x0b63
00001d2b: JUMPI
00001d2c: POP
00001d2d: DUP1
00001d2e: SLOAD
00001d2f: PUSH2 0xff00
00001d32: NOT
00001d33: AND
00001d34: SWAP1
00001d35: SSTORE
00001d36: JUMP
00001d37: JUMPDEST
00001d38: PUSH1 0x00
00001d3a: DUP2
00001d3b: DUP4
00001d3c: PUSH2 0x1d58
00001d3f: JUMPI
00001d40: PUSH1 0x40
00001d42: MLOAD
00001d43: PUSH3 0x461bcd
00001d47: PUSH1 0xe5
00001d49: SHL
00001d4a: DUP2
00001d4b: MSTORE
00001d4c: PUSH1 0x04
00001d4e: ADD
00001d4f: PUSH2 0x04b1
00001d52: SWAP2
00001d53: SWAP1
00001d54: PUSH2 0x264c
00001d57: JUMP
00001d58: JUMPDEST
00001d59: POP
00001d5a: PUSH1 0x00
00001d5c: DUP4
00001d5d: DUP6
00001d5e: DUP2
00001d5f: PUSH2 0x1d64
00001d62: JUMPI
00001d63: INVALID
00001d64: JUMPDEST
00001d65: DIV
00001d66: SWAP6
00001d67: SWAP5
00001d68: POP
00001d69: POP
00001d6a: POP
00001d6b: POP
00001d6c: POP
00001d6d: JUMP
00001d6e: JUMPDEST
00001d6f: PUSH2 0x0b63
00001d72: DUP3
00001d73: DUP3
00001d74: PUSH2 0x1d7b
00001d77: PUSH2 0x0cf6
00001d7a: JUMP
00001d7b: JUMPDEST
00001d7c: SWAP2
00001d7d: SWAP1
00001d7e: PUSH4 0xffffffff
00001d83: PUSH2 0x1dcb
00001d86: AND
00001d87: JUMP
00001d88: JUMPDEST
00001d89: PUSH1 0x60
00001d8b: PUSH2 0x1d97
00001d8e: DUP5
00001d8f: DUP5
00001d90: PUSH1 0x00
00001d92: DUP6
00001d93: PUSH2 0x1f16
00001d96: JUMP
00001d97: JUMPDEST
00001d98: SWAP5
00001d99: SWAP4
00001d9a: POP
00001d9b: POP
00001d9c: POP
00001d9d: POP
00001d9e: JUMP
00001d9f: JUMPDEST
00001da0: PUSH1 0x00
00001da2: DUP2
00001da3: DUP5
00001da4: DUP5
00001da5: GT
00001da6: ISZERO
00001da7: PUSH2 0x1dc3
00001daa: JUMPI
00001dab: PUSH1 0x40
00001dad: MLOAD
00001dae: PUSH3 0x461bcd
00001db2: PUSH1 0xe5
00001db4: SHL
00001db5: DUP2
00001db6: MSTORE
00001db7: PUSH1 0x04
00001db9: ADD
00001dba: PUSH2 0x04b1
00001dbd: SWAP2
00001dbe: SWAP1
00001dbf: PUSH2 0x264c
00001dc2: JUMP
00001dc3: JUMPDEST
00001dc4: POP
00001dc5: POP
00001dc6: POP
00001dc7: SWAP1
00001dc8: SUB
00001dc9: SWAP1
00001dca: JUMP
00001dcb: JUMPDEST
00001dcc: PUSH1 0x01
00001dce: PUSH1 0x01
00001dd0: PUSH1 0xa0
00001dd2: SHL
00001dd3: SUB
00001dd4: DUP3
00001dd5: AND
00001dd6: PUSH1 0x00
00001dd8: SWAP1
00001dd9: DUP2
00001dda: MSTORE
00001ddb: PUSH1 0x20
00001ddd: DUP5
00001dde: SWAP1
00001ddf: MSTORE
00001de0: PUSH1 0x40
00001de2: SWAP1
00001de3: KECCAK256
00001de4: PUSH1 0x01
00001de6: PUSH1 0x01
00001de8: PUSH1 0x70
00001dea: SHL
00001deb: SUB
00001dec: DUP3
00001ded: AND
00001dee: PUSH2 0x1df7
00001df1: JUMPI
00001df2: POP
00001df3: PUSH2 0x0737
00001df6: JUMP
00001df7: JUMPDEST
00001df8: DUP1
00001df9: SLOAD
00001dfa: PUSH1 0x00
00001dfc: SWAP1
00001dfd: PUSH2 0x1e1f
00001e00: SWAP1
00001e01: PUSH1 0x01
00001e03: PUSH1 0x01
00001e05: PUSH1 0x70
00001e07: SHL
00001e08: SUB
00001e09: DUP1
00001e0a: DUP3
00001e0b: AND
00001e0c: SWAP2
00001e0d: PUSH1 0x01
00001e0f: PUSH1 0x70
00001e11: SHL
00001e12: SWAP1
00001e13: DIV
00001e14: AND
00001e15: PUSH4 0xffffffff
00001e1a: PUSH2 0x1c1f
00001e1d: AND
00001e1e: JUMP
00001e1f: JUMPDEST
00001e20: SWAP1
00001e21: POP
00001e22: DUP3
00001e23: PUSH1 0x01
00001e25: PUSH1 0x01
00001e27: PUSH1 0x70
00001e29: SHL
00001e2a: SUB
00001e2b: AND
00001e2c: DUP2
00001e2d: PUSH1 0x01
00001e2f: PUSH1 0x01
00001e31: PUSH1 0x70
00001e33: SHL
00001e34: SUB
00001e35: AND
00001e36: GT
00001e37: PUSH2 0x1e52
00001e3a: JUMPI
00001e3b: PUSH1 0x40
00001e3d: MLOAD
00001e3e: PUSH3 0x461bcd
00001e42: PUSH1 0xe5
00001e44: SHL
00001e45: DUP2
00001e46: MSTORE
00001e47: PUSH1 0x04
00001e49: ADD
00001e4a: PUSH2 0x04b1
00001e4d: SWAP1
00001e4e: PUSH2 0x274f
00001e51: JUMP
00001e52: JUMPDEST
00001e53: DUP2
00001e54: SLOAD
00001e55: PUSH1 0x01
00001e57: PUSH1 0x01
00001e59: PUSH1 0x70
00001e5b: SHL
00001e5c: SUB
00001e5d: DUP1
00001e5e: DUP6
00001e5f: AND
00001e60: SWAP2
00001e61: AND
00001e62: LT
00001e63: PUSH2 0x1ea5
00001e66: JUMPI
00001e67: DUP2
00001e68: SLOAD
00001e69: PUSH2 0x1e85
00001e6c: SWAP1
00001e6d: PUSH1 0x01
00001e6f: PUSH1 0x01
00001e71: PUSH1 0x70
00001e73: SHL
00001e74: SUB
00001e75: SWAP1
00001e76: DUP2
00001e77: AND
00001e78: SWAP1
00001e79: DUP6
00001e7a: AND
00001e7b: PUSH4 0xffffffff
00001e80: PUSH2 0x1bdd
00001e83: AND
00001e84: JUMP
00001e85: JUMPDEST
00001e86: DUP3
00001e87: SLOAD
00001e88: PUSH1 0x01
00001e8a: PUSH1 0x01
00001e8c: PUSH1 0x70
00001e8e: SHL
00001e8f: SUB
00001e90: NOT
00001e91: AND
00001e92: PUSH1 0x01
00001e94: PUSH1 0x01
00001e96: PUSH1 0x70
00001e98: SHL
00001e99: SUB
00001e9a: SWAP2
00001e9b: SWAP1
00001e9c: SWAP2
00001e9d: AND
00001e9e: OR
00001e9f: DUP3
00001ea0: SSTORE
00001ea1: PUSH2 0x06af
00001ea4: JUMP
00001ea5: JUMPDEST
00001ea6: DUP2
00001ea7: SLOAD
00001ea8: PUSH2 0x1edf
00001eab: SWAP1
00001eac: PUSH2 0x1ec7
00001eaf: SWAP1
00001eb0: PUSH1 0x01
00001eb2: PUSH1 0x01
00001eb4: PUSH1 0x70
00001eb6: SHL
00001eb7: SUB
00001eb8: DUP7
00001eb9: DUP2
00001eba: AND
00001ebb: SWAP2
00001ebc: AND
00001ebd: PUSH4 0xffffffff
00001ec2: PUSH2 0x1bdd
00001ec5: AND
00001ec6: JUMP
00001ec7: JUMPDEST
00001ec8: DUP4
00001ec9: SLOAD
00001eca: PUSH1 0x01
00001ecc: PUSH1 0x70
00001ece: SHL
00001ecf: SWAP1
00001ed0: DIV
00001ed1: PUSH1 0x01
00001ed3: PUSH1 0x01
00001ed5: PUSH1 0x70
00001ed7: SHL
00001ed8: SUB
00001ed9: AND
00001eda: SWAP1
00001edb: PUSH2 0x1bdd
00001ede: JUMP
00001edf: JUMPDEST
00001ee0: DUP3
00001ee1: SLOAD
00001ee2: PUSH1 0x01
00001ee4: PUSH1 0x01
00001ee6: PUSH1 0x70
00001ee8: SHL
00001ee9: SUB
00001eea: NOT
00001eeb: PUSH1 0x01
00001eed: PUSH1 0x01
00001eef: PUSH1 0x70
00001ef1: SHL
00001ef2: SUB
00001ef3: SWAP3
00001ef4: SWAP1
00001ef5: SWAP3
00001ef6: AND
00001ef7: PUSH1 0x01
00001ef9: PUSH1 0x70
00001efb: SHL
00001efc: MUL
00001efd: PUSH1 0x01
00001eff: PUSH1 0x70
00001f01: SHL
00001f02: PUSH1 0x01
00001f04: PUSH1 0xe0
00001f06: SHL
00001f07: SUB
00001f08: NOT
00001f09: SWAP1
00001f0a: SWAP2
00001f0b: AND
00001f0c: OR
00001f0d: AND
00001f0e: DUP3
00001f0f: SSTORE
00001f10: POP
00001f11: POP
00001f12: POP
00001f13: POP
00001f14: POP
00001f15: JUMP
00001f16: JUMPDEST
00001f17: PUSH1 0x60
00001f19: PUSH2 0x1f21
00001f1c: DUP6
00001f1d: PUSH2 0x1fda
00001f20: JUMP
00001f21: JUMPDEST
00001f22: PUSH2 0x1f3d
00001f25: JUMPI
00001f26: PUSH1 0x40
00001f28: MLOAD
00001f29: PUSH3 0x461bcd
00001f2d: PUSH1 0xe5
00001f2f: SHL
00001f30: DUP2
00001f31: MSTORE
00001f32: PUSH1 0x04
00001f34: ADD
00001f35: PUSH2 0x04b1
00001f38: SWAP1
00001f39: PUSH2 0x29b5
00001f3c: JUMP
00001f3d: JUMPDEST
00001f3e: PUSH1 0x00
00001f40: PUSH1 0x60
00001f42: DUP7
00001f43: PUSH1 0x01
00001f45: PUSH1 0x01
00001f47: PUSH1 0xa0
00001f49: SHL
00001f4a: SUB
00001f4b: AND
00001f4c: DUP6
00001f4d: DUP8
00001f4e: PUSH1 0x40
00001f50: MLOAD
00001f51: PUSH2 0x1f5a
00001f54: SWAP2
00001f55: SWAP1
00001f56: PUSH2 0x25b1
00001f59: JUMP
00001f5a: JUMPDEST
00001f5b: PUSH1 0x00
00001f5d: PUSH1 0x40
00001f5f: MLOAD
00001f60: DUP1
00001f61: DUP4
00001f62: SUB
00001f63: DUP2
00001f64: DUP6
00001f65: DUP8
00001f66: GAS
00001f67: CALL
00001f68: SWAP3
00001f69: POP
00001f6a: POP
00001f6b: POP
00001f6c: RETURNDATASIZE
00001f6d: DUP1
00001f6e: PUSH1 0x00
00001f70: DUP2
00001f71: EQ
00001f72: PUSH2 0x1f97
00001f75: JUMPI
00001f76: PUSH1 0x40
00001f78: MLOAD
00001f79: SWAP2
00001f7a: POP
00001f7b: PUSH1 0x1f
00001f7d: NOT
00001f7e: PUSH1 0x3f
00001f80: RETURNDATASIZE
00001f81: ADD
00001f82: AND
00001f83: DUP3
00001f84: ADD
00001f85: PUSH1 0x40
00001f87: MSTORE
00001f88: RETURNDATASIZE
00001f89: DUP3
00001f8a: MSTORE
00001f8b: RETURNDATASIZE
00001f8c: PUSH1 0x00
00001f8e: PUSH1 0x20
00001f90: DUP5
00001f91: ADD
00001f92: RETURNDATACOPY
00001f93: PUSH2 0x1f9c
00001f96: JUMP
00001f97: JUMPDEST
00001f98: PUSH1 0x60
00001f9a: SWAP2
00001f9b: POP
00001f9c: JUMPDEST
00001f9d: POP
00001f9e: SWAP2
00001f9f: POP
00001fa0: SWAP2
00001fa1: POP
00001fa2: DUP2
00001fa3: ISZERO
00001fa4: PUSH2 0x1fb0
00001fa7: JUMPI
00001fa8: SWAP2
00001fa9: POP
00001faa: PUSH2 0x1d97
00001fad: SWAP1
00001fae: POP
00001faf: JUMP
00001fb0: JUMPDEST
00001fb1: DUP1
00001fb2: MLOAD
00001fb3: ISZERO
00001fb4: PUSH2 0x1fc0
00001fb7: JUMPI
00001fb8: DUP1
00001fb9: MLOAD
00001fba: DUP1
00001fbb: DUP3
00001fbc: PUSH1 0x20
00001fbe: ADD
00001fbf: REVERT
00001fc0: JUMPDEST
00001fc1: DUP4
00001fc2: PUSH1 0x40
00001fc4: MLOAD
00001fc5: PUSH3 0x461bcd
00001fc9: PUSH1 0xe5
00001fcb: SHL
00001fcc: DUP2
00001fcd: MSTORE
00001fce: PUSH1 0x04
00001fd0: ADD
00001fd1: PUSH2 0x04b1
00001fd4: SWAP2
00001fd5: SWAP1
00001fd6: PUSH2 0x264c
00001fd9: JUMP
00001fda: JUMPDEST
00001fdb: EXTCODESIZE
00001fdc: ISZERO
00001fdd: ISZERO
00001fde: SWAP1
00001fdf: JUMP
00001fe0: JUMPDEST
00001fe1: PUSH1 0x40
00001fe3: DUP1
00001fe4: MLOAD
00001fe5: PUSH1 0x80
00001fe7: DUP2
00001fe8: ADD
00001fe9: DUP3
00001fea: MSTORE
00001feb: PUSH1 0x00
00001fed: DUP1
00001fee: DUP3
00001fef: MSTORE
00001ff0: PUSH1 0x20
00001ff2: DUP3
00001ff3: ADD
00001ff4: DUP2
00001ff5: SWAP1
00001ff6: MSTORE
00001ff7: SWAP2
00001ff8: DUP2
00001ff9: ADD
00001ffa: DUP3
00001ffb: SWAP1
00001ffc: MSTORE
00001ffd: PUSH1 0x60
00001fff: DUP2
00002000: ADD
00002001: SWAP2
00002002: SWAP1
00002003: SWAP2
00002004: MSTORE
00002005: SWAP1
00002006: JUMP
00002007: JUMPDEST
00002008: PUSH1 0x40
0000200a: MLOAD
0000200b: DUP1
0000200c: PUSH1 0x80
0000200e: ADD
0000200f: PUSH1 0x40
00002011: MSTORE
00002012: DUP1
00002013: PUSH1 0x00
00002015: DUP2
00002016: MSTORE
00002017: PUSH1 0x20
00002019: ADD
0000201a: PUSH1 0x00
0000201c: DUP2
0000201d: MSTORE
0000201e: PUSH1 0x20
00002020: ADD
00002021: PUSH1 0x00
00002023: DUP2
00002024: MSTORE
00002025: PUSH1 0x20
00002027: ADD
00002028: PUSH1 0x00
0000202a: DUP2
0000202b: MSTORE
0000202c: POP
0000202d: SWAP1
0000202e: JUMP
0000202f: JUMPDEST
00002030: DUP1
00002031: CALLDATALOAD
00002032: PUSH1 0x02
00002034: DUP2
00002035: LT
00002036: PUSH2 0x0468
00002039: JUMPI
0000203a: PUSH1 0x00
0000203c: DUP1
0000203d: REVERT
0000203e: JUMPDEST
0000203f: PUSH1 0x00
00002041: DUP2
00002042: DUP4
00002043: SUB
00002044: PUSH2 0x0120
00002047: DUP2
00002048: SLT
00002049: ISZERO
0000204a: PUSH2 0x2051
0000204d: JUMPI
0000204e: DUP2
0000204f: DUP3
00002050: REVERT
00002051: JUMPDEST
00002052: PUSH2 0x205b
00002055: PUSH1 0xc0
00002057: PUSH2 0x2d33
0000205a: JUMP
0000205b: JUMPDEST
0000205c: SWAP2
0000205d: POP
0000205e: DUP3
0000205f: CALLDATALOAD
00002060: PUSH2 0x2068
00002063: DUP2
00002064: PUSH2 0x2e73
00002067: JUMP
00002068: JUMPDEST
00002069: DUP3
0000206a: MSTORE
0000206b: PUSH1 0x20
0000206d: DUP4
0000206e: ADD
0000206f: CALLDATALOAD
00002070: PUSH2 0x2078
00002073: DUP2
00002074: PUSH2 0x2eab
00002077: JUMP
00002078: JUMPDEST
00002079: PUSH1 0x20
0000207b: DUP4
0000207c: ADD
0000207d: MSTORE
0000207e: PUSH1 0x40
00002080: PUSH1 0x3f
00002082: NOT
00002083: DUP3
00002084: ADD
00002085: SLT
00002086: ISZERO
00002087: PUSH2 0x208f
0000208a: JUMPI
0000208b: PUSH1 0x00
0000208d: DUP1
0000208e: REVERT
0000208f: JUMPDEST
00002090: POP
00002091: PUSH2 0x209a
00002094: PUSH1 0x40
00002096: PUSH2 0x2d33
00002099: JUMP
0000209a: JUMPDEST
0000209b: PUSH2 0x20a7
0000209e: DUP5
0000209f: PUSH1 0x40
000020a1: DUP6
000020a2: ADD
000020a3: PUSH2 0x213f
000020a6: JUMP
000020a7: JUMPDEST
000020a8: DUP2
000020a9: MSTORE
000020aa: PUSH2 0x20b6
000020ad: DUP5
000020ae: PUSH1 0x60
000020b0: DUP6
000020b1: ADD
000020b2: PUSH2 0x2156
000020b5: JUMP
000020b6: JUMPDEST
000020b7: PUSH1 0x20
000020b9: DUP3
000020ba: ADD
000020bb: MSTORE
000020bc: PUSH1 0x40
000020be: DUP3
000020bf: ADD
000020c0: MSTORE
000020c1: PUSH2 0x20cd
000020c4: DUP4
000020c5: PUSH1 0x80
000020c7: DUP5
000020c8: ADD
000020c9: PUSH2 0x202f
000020cc: JUMP
000020cd: JUMPDEST
000020ce: PUSH1 0x60
000020d0: DUP3
000020d1: ADD
000020d2: MSTORE
000020d3: PUSH2 0x20df
000020d6: DUP4
000020d7: PUSH1 0xa0
000020d9: DUP5
000020da: ADD
000020db: PUSH2 0x20fc
000020de: JUMP
000020df: JUMPDEST
000020e0: PUSH1 0x80
000020e2: DUP3
000020e3: ADD
000020e4: MSTORE
000020e5: PUSH2 0x20f1
000020e8: DUP4
000020e9: PUSH1 0xe0
000020eb: DUP5
000020ec: ADD
000020ed: PUSH2 0x20fc
000020f0: JUMP
000020f1: JUMPDEST
000020f2: PUSH1 0xa0
000020f4: DUP3
000020f5: ADD
000020f6: MSTORE
000020f7: SWAP3
000020f8: SWAP2
000020f9: POP
000020fa: POP
000020fb: JUMP
000020fc: JUMPDEST
000020fd: PUSH1 0x00
000020ff: PUSH1 0x40
00002101: DUP3
00002102: DUP5
00002103: SUB
00002104: SLT
00002105: ISZERO
00002106: PUSH2 0x210d
00002109: JUMPI
0000210a: DUP1
0000210b: DUP2
0000210c: REVERT
0000210d: JUMPDEST
0000210e: PUSH2 0x2117
00002111: PUSH1 0x40
00002113: PUSH2 0x2d33
00002116: JUMP
00002117: JUMPDEST
00002118: SWAP1
00002119: POP
0000211a: DUP2
0000211b: CALLDATALOAD
0000211c: PUSH2 0x2124
0000211f: DUP2
00002120: PUSH2 0x2e73
00002123: JUMP
00002124: JUMPDEST
00002125: DUP2
00002126: MSTORE
00002127: PUSH1 0x20
00002129: DUP3
0000212a: ADD
0000212b: CALLDATALOAD
0000212c: PUSH2 0x2134
0000212f: DUP2
00002130: PUSH2 0x2e96
00002133: JUMP
00002134: JUMPDEST
00002135: PUSH1 0x20
00002137: DUP3
00002138: ADD
00002139: MSTORE
0000213a: SWAP3
0000213b: SWAP2
0000213c: POP
0000213d: POP
0000213e: JUMP
0000213f: JUMPDEST
00002140: DUP1
00002141: CALLDATALOAD
00002142: PUSH1 0x01
00002144: PUSH1 0x01
00002146: PUSH1 0x70
00002148: SHL
00002149: SUB
0000214a: DUP2
0000214b: AND
0000214c: DUP2
0000214d: EQ
0000214e: PUSH2 0x0468
00002151: JUMPI
00002152: PUSH1 0x00
00002154: DUP1
00002155: REVERT
00002156: JUMPDEST
00002157: DUP1
00002158: CALLDATALOAD
00002159: PUSH2 0x0468
0000215c: DUP2
0000215d: PUSH2 0x2ec0
00002160: JUMP
00002161: JUMPDEST
00002162: PUSH1 0x00
00002164: PUSH1 0x20
00002166: DUP3
00002167: DUP5
00002168: SUB
00002169: SLT
0000216a: ISZERO
0000216b: PUSH2 0x2172
0000216e: JUMPI
0000216f: DUP1
00002170: DUP2
00002171: REVERT
00002172: JUMPDEST
00002173: DUP2
00002174: CALLDATALOAD
00002175: PUSH2 0x0a13
00002178: DUP2
00002179: PUSH2 0x2e73
0000217c: JUMP
0000217d: JUMPDEST
0000217e: PUSH1 0x00
00002180: DUP1
00002181: PUSH1 0x40
00002183: DUP4
00002184: DUP6
00002185: SUB
00002186: SLT
00002187: ISZERO
00002188: PUSH2 0x218f
0000218b: JUMPI
0000218c: DUP1
0000218d: DUP2
0000218e: REVERT
0000218f: JUMPDEST
00002190: DUP3
00002191: CALLDATALOAD
00002192: PUSH2 0x219a
00002195: DUP2
00002196: PUSH2 0x2e73
00002199: JUMP
0000219a: JUMPDEST
0000219b: SWAP5
0000219c: PUSH1 0x20
0000219e: SWAP4
0000219f: SWAP1
000021a0: SWAP4
000021a1: ADD
000021a2: CALLDATALOAD
000021a3: SWAP4
000021a4: POP
000021a5: POP
000021a6: POP
000021a7: JUMP
000021a8: JUMPDEST
000021a9: PUSH1 0x00
000021ab: PUSH1 0x20
000021ad: DUP3
000021ae: DUP5
000021af: SUB
000021b0: SLT
000021b1: ISZERO
000021b2: PUSH2 0x21b9
000021b5: JUMPI
000021b6: DUP1
000021b7: DUP2
000021b8: REVERT
000021b9: JUMPDEST
000021ba: DUP2
000021bb: MLOAD
000021bc: PUSH2 0x0a13
000021bf: DUP2
000021c0: PUSH2 0x2e88
000021c3: JUMP
000021c4: JUMPDEST
000021c5: PUSH1 0x00
000021c7: DUP1
000021c8: PUSH1 0x40
000021ca: DUP4
000021cb: DUP6
000021cc: SUB
000021cd: SLT
000021ce: ISZERO
000021cf: PUSH2 0x21d6
000021d2: JUMPI
000021d3: DUP1
000021d4: DUP2
000021d5: REVERT
000021d6: JUMPDEST
000021d7: DUP3
000021d8: MLOAD
000021d9: PUSH2 0x21e1
000021dc: DUP2
000021dd: PUSH2 0x2e88
000021e0: JUMP
000021e1: JUMPDEST
000021e2: PUSH1 0x20
000021e4: DUP5
000021e5: ADD
000021e6: MLOAD
000021e7: SWAP1
000021e8: SWAP3
000021e9: POP
000021ea: PUSH8 0xffffffffffffffff
000021f3: DUP2
000021f4: GT
000021f5: ISZERO
000021f6: PUSH2 0x21fd
000021f9: JUMPI
000021fa: DUP2
000021fb: DUP3
000021fc: REVERT
000021fd: JUMPDEST
000021fe: DUP1
000021ff: DUP5
00002200: ADD
00002201: DUP6
00002202: PUSH1 0x1f
00002204: DUP3
00002205: ADD
00002206: SLT
00002207: PUSH2 0x220e
0000220a: JUMPI
0000220b: DUP3
0000220c: DUP4
0000220d: REVERT
0000220e: JUMPDEST
0000220f: DUP1
00002210: MLOAD
00002211: SWAP2
00002212: POP
00002213: PUSH2 0x2223
00002216: PUSH2 0x221e
00002219: DUP4
0000221a: PUSH2 0x2d5a
0000221d: JUMP
0000221e: JUMPDEST
0000221f: PUSH2 0x2d33
00002222: JUMP
00002223: JUMPDEST
00002224: DUP3
00002225: DUP2
00002226: MSTORE
00002227: DUP7
00002228: PUSH1 0x20
0000222a: DUP5
0000222b: DUP5
0000222c: ADD
0000222d: ADD
0000222e: GT
0000222f: ISZERO
00002230: PUSH2 0x2237
00002233: JUMPI
00002234: DUP4
00002235: DUP5
00002236: REVERT
00002237: JUMPDEST
00002238: PUSH2 0x2248
0000223b: DUP4
0000223c: PUSH1 0x20
0000223e: DUP4
0000223f: ADD
00002240: PUSH1 0x20
00002242: DUP6
00002243: ADD
00002244: PUSH2 0x2d99
00002247: JUMP
00002248: JUMPDEST
00002249: DUP1
0000224a: SWAP4
0000224b: POP
0000224c: POP
0000224d: POP
0000224e: POP
0000224f: SWAP3
00002250: POP
00002251: SWAP3
00002252: SWAP1
00002253: POP
00002254: JUMP
00002255: JUMPDEST
00002256: PUSH1 0x00
00002258: DUP1
00002259: PUSH1 0x40
0000225b: DUP4
0000225c: DUP6
0000225d: SUB
0000225e: SLT
0000225f: ISZERO
00002260: PUSH2 0x2267
00002263: JUMPI
00002264: DUP2
00002265: DUP3
00002266: REVERT
00002267: JUMPDEST
00002268: DUP3
00002269: CALLDATALOAD
0000226a: SWAP2
0000226b: POP
0000226c: PUSH1 0x20
0000226e: DUP4
0000226f: ADD
00002270: CALLDATALOAD
00002271: PUSH2 0x2279
00002274: DUP2
00002275: PUSH2 0x2e73
00002278: JUMP
00002279: JUMPDEST
0000227a: DUP1
0000227b: SWAP2
0000227c: POP
0000227d: POP
0000227e: SWAP3
0000227f: POP
00002280: SWAP3
00002281: SWAP1
00002282: POP
00002283: JUMP
00002284: JUMPDEST
00002285: PUSH1 0x00
00002287: PUSH1 0x80
00002289: DUP3
0000228a: DUP5
0000228b: SUB
0000228c: SLT
0000228d: ISZERO
0000228e: PUSH2 0x2295
00002291: JUMPI
00002292: DUP1
00002293: DUP2
00002294: REVERT
00002295: JUMPDEST
00002296: PUSH2 0x229f
00002299: PUSH1 0x80
0000229b: PUSH2 0x2d33
0000229e: JUMP
0000229f: JUMPDEST
000022a0: DUP3
000022a1: CALLDATALOAD
000022a2: PUSH2 0x22aa
000022a5: DUP2
000022a6: PUSH2 0x2e73
000022a9: JUMP
000022aa: JUMPDEST
000022ab: DUP2
000022ac: MSTORE
000022ad: PUSH1 0x20
000022af: DUP4
000022b0: ADD
000022b1: CALLDATALOAD
000022b2: PUSH2 0x22ba
000022b5: DUP2
000022b6: PUSH2 0x2eab
000022b9: JUMP
000022ba: JUMPDEST
000022bb: PUSH1 0x20
000022bd: DUP3
000022be: ADD
000022bf: MSTORE
000022c0: PUSH1 0x40
000022c2: DUP4
000022c3: ADD
000022c4: CALLDATALOAD
000022c5: PUSH2 0x22cd
000022c8: DUP2
000022c9: PUSH2 0x2eab
000022cc: JUMP
000022cd: JUMPDEST
000022ce: PUSH1 0x40
000022d0: DUP3
000022d1: ADD
000022d2: MSTORE
000022d3: PUSH1 0x60
000022d5: DUP4
000022d6: ADD
000022d7: CALLDATALOAD
000022d8: PUSH2 0x22e0
000022db: DUP2
000022dc: PUSH2 0x2ec0
000022df: JUMP
000022e0: JUMPDEST
000022e1: PUSH1 0x60
000022e3: DUP3
000022e4: ADD
000022e5: MSTORE
000022e6: SWAP4
000022e7: SWAP3
000022e8: POP
000022e9: POP
000022ea: POP
000022eb: JUMP
000022ec: JUMPDEST
000022ed: PUSH1 0x00
000022ef: PUSH1 0x80
000022f1: DUP3
000022f2: DUP5
000022f3: SUB
000022f4: SLT
000022f5: ISZERO
000022f6: PUSH2 0x22fd
000022f9: JUMPI
000022fa: DUP1
000022fb: DUP2
000022fc: REVERT
000022fd: JUMPDEST
000022fe: PUSH2 0x2307
00002301: PUSH1 0x80
00002303: PUSH2 0x2d33
00002306: JUMP
00002307: JUMPDEST
00002308: DUP3
00002309: MLOAD
0000230a: PUSH2 0x2312
0000230d: DUP2
0000230e: PUSH2 0x2e73
00002311: JUMP
00002312: JUMPDEST
00002313: DUP2
00002314: MSTORE
00002315: PUSH1 0x20
00002317: DUP4
00002318: ADD
00002319: MLOAD
0000231a: PUSH2 0x2322
0000231d: DUP2
0000231e: PUSH2 0x2eab
00002321: JUMP
00002322: JUMPDEST
00002323: PUSH1 0x20
00002325: DUP3
00002326: ADD
00002327: MSTORE
00002328: PUSH1 0x40
0000232a: DUP4
0000232b: ADD
0000232c: MLOAD
0000232d: PUSH2 0x2335
00002330: DUP2
00002331: PUSH2 0x2eab
00002334: JUMP
00002335: JUMPDEST
00002336: PUSH1 0x40
00002338: DUP3
00002339: ADD
0000233a: MSTORE
0000233b: PUSH1 0x60
0000233d: DUP4
0000233e: ADD
0000233f: MLOAD
00002340: PUSH2 0x22e0
00002343: DUP2
00002344: PUSH2 0x2ec0
00002347: JUMP
00002348: JUMPDEST
00002349: PUSH1 0x00
0000234b: DUP1
0000234c: PUSH1 0x00
0000234e: DUP1
0000234f: DUP5
00002350: DUP7
00002351: SUB
00002352: PUSH2 0x0160
00002355: DUP2
00002356: SLT
00002357: ISZERO
00002358: PUSH2 0x235f
0000235b: JUMPI
0000235c: DUP3
0000235d: DUP4
0000235e: REVERT
0000235f: JUMPDEST
00002360: PUSH2 0x0120
00002363: DUP1
00002364: DUP3
00002365: SLT
00002366: ISZERO
00002367: PUSH2 0x236e
0000236a: JUMPI
0000236b: DUP4
0000236c: DUP5
0000236d: REVERT
0000236e: JUMPDEST
0000236f: DUP7
00002370: SWAP6
00002371: POP
00002372: DUP6
00002373: ADD
00002374: CALLDATALOAD
00002375: SWAP1
00002376: POP
00002377: PUSH2 0x237f
0000237a: DUP2
0000237b: PUSH2 0x2e73
0000237e: JUMP
0000237f: JUMPDEST
00002380: SWAP3
00002381: POP
00002382: PUSH2 0x0140
00002385: DUP6
00002386: ADD
00002387: CALLDATALOAD
00002388: PUSH8 0xffffffffffffffff
00002391: DUP1
00002392: DUP3
00002393: GT
00002394: ISZERO
00002395: PUSH2 0x239c
00002398: JUMPI
00002399: DUP4
0000239a: DUP5
0000239b: REVERT
0000239c: JUMPDEST
0000239d: DUP2
0000239e: DUP8
0000239f: ADD
000023a0: DUP9
000023a1: PUSH1 0x1f
000023a3: DUP3
000023a4: ADD
000023a5: SLT
000023a6: PUSH2 0x23ad
000023a9: JUMPI
000023aa: DUP5
000023ab: DUP6
000023ac: REVERT
000023ad: JUMPDEST
000023ae: DUP1
000023af: CALLDATALOAD
000023b0: SWAP3
000023b1: POP
000023b2: DUP2
000023b3: DUP4
000023b4: GT
000023b5: ISZERO
000023b6: PUSH2 0x23bd
000023b9: JUMPI
000023ba: DUP5
000023bb: DUP6
000023bc: REVERT
000023bd: JUMPDEST
000023be: DUP9
000023bf: PUSH1 0x20
000023c1: DUP5
000023c2: DUP4
000023c3: ADD
000023c4: ADD
000023c5: GT
000023c6: ISZERO
000023c7: PUSH2 0x23ce
000023ca: JUMPI
000023cb: DUP5
000023cc: DUP6
000023cd: REVERT
000023ce: JUMPDEST
000023cf: SWAP6
000023d0: SWAP9
000023d1: SWAP5
000023d2: SWAP8
000023d3: POP
000023d4: POP
000023d5: PUSH1 0x20
000023d7: SWAP1
000023d8: SWAP5
000023d9: ADD
000023da: SWAP5
000023db: POP
000023dc: POP
000023dd: POP
000023de: JUMP
000023df: JUMPDEST
000023e0: PUSH1 0x00
000023e2: DUP1
000023e3: PUSH1 0x00
000023e5: PUSH2 0x0160
000023e8: DUP5
000023e9: DUP7
000023ea: SUB
000023eb: SLT
000023ec: ISZERO
000023ed: PUSH2 0x23f4
000023f0: JUMPI
000023f1: DUP1
000023f2: DUP2
000023f3: REVERT
000023f4: JUMPDEST
000023f5: PUSH2 0x23fe
000023f8: DUP6
000023f9: DUP6
000023fa: PUSH2 0x203e
000023fd: JUMP
000023fe: JUMPDEST
000023ff: SWAP3
00002400: POP
00002401: PUSH2 0x0120
00002404: DUP5
00002405: ADD
00002406: CALLDATALOAD
00002407: PUSH2 0x240f
0000240a: DUP2
0000240b: PUSH2 0x2e73
0000240e: JUMP
0000240f: JUMPDEST
00002410: SWAP2
00002411: POP
00002412: PUSH2 0x0140
00002415: DUP5
00002416: ADD
00002417: CALLDATALOAD
00002418: PUSH8 0xffffffffffffffff
00002421: DUP2
00002422: GT
00002423: ISZERO
00002424: PUSH2 0x242b
00002427: JUMPI
00002428: DUP2
00002429: DUP3
0000242a: REVERT
0000242b: JUMPDEST
0000242c: DUP1
0000242d: DUP6
0000242e: ADD
0000242f: DUP7
00002430: PUSH1 0x1f
00002432: DUP3
00002433: ADD
00002434: SLT
00002435: PUSH2 0x243c
00002438: JUMPI
00002439: DUP3
0000243a: DUP4
0000243b: REVERT
0000243c: JUMPDEST
0000243d: DUP1
0000243e: CALLDATALOAD
0000243f: SWAP2
00002440: POP
00002441: PUSH2 0x244c
00002444: PUSH2 0x221e
00002447: DUP4
00002448: PUSH2 0x2d5a
0000244b: JUMP
0000244c: JUMPDEST
0000244d: DUP3
0000244e: DUP2
0000244f: MSTORE
00002450: DUP8
00002451: PUSH1 0x20
00002453: DUP5
00002454: DUP5
00002455: ADD
00002456: ADD
00002457: GT
00002458: ISZERO
00002459: PUSH2 0x2460
0000245c: JUMPI
0000245d: DUP4
0000245e: DUP5
0000245f: REVERT
00002460: JUMPDEST
00002461: DUP3
00002462: PUSH1 0x20
00002464: DUP4
00002465: ADD
00002466: PUSH1 0x20
00002468: DUP4
00002469: ADD
0000246a: CALLDATACOPY
0000246b: DUP4
0000246c: PUSH1 0x20
0000246e: DUP5
0000246f: DUP4
00002470: ADD
00002471: ADD
00002472: MSTORE
00002473: DUP1
00002474: SWAP4
00002475: POP
00002476: POP
00002477: POP
00002478: POP
00002479: SWAP3
0000247a: POP
0000247b: SWAP3
0000247c: POP
0000247d: SWAP3
0000247e: JUMP
0000247f: JUMPDEST
00002480: PUSH1 0x00
00002482: DUP1
00002483: PUSH2 0x0140
00002486: DUP4
00002487: DUP6
00002488: SUB
00002489: SLT
0000248a: ISZERO
0000248b: PUSH2 0x2492
0000248e: JUMPI
0000248f: DUP2
00002490: DUP3
00002491: REVERT
00002492: JUMPDEST
00002493: PUSH2 0x249c
00002496: DUP5
00002497: DUP5
00002498: PUSH2 0x203e
0000249b: JUMP
0000249c: JUMPDEST
0000249d: SWAP5
0000249e: PUSH2 0x0120
000024a1: SWAP4
000024a2: SWAP1
000024a3: SWAP4
000024a4: ADD
000024a5: CALLDATALOAD
000024a6: SWAP4
000024a7: POP
000024a8: POP
000024a9: POP
000024aa: JUMP
000024ab: JUMPDEST
000024ac: PUSH1 0x00
000024ae: PUSH1 0x20
000024b0: DUP3
000024b1: DUP5
000024b2: SUB
000024b3: SLT
000024b4: ISZERO
000024b5: PUSH2 0x24bc
000024b8: JUMPI
000024b9: DUP1
000024ba: DUP2
000024bb: REVERT
000024bc: JUMPDEST
000024bd: PUSH2 0x0a13
000024c0: DUP4
000024c1: DUP4
000024c2: PUSH2 0x213f
000024c5: JUMP
000024c6: JUMPDEST
000024c7: PUSH1 0x00
000024c9: PUSH1 0x20
000024cb: DUP3
000024cc: DUP5
000024cd: SUB
000024ce: SLT
000024cf: ISZERO
000024d0: PUSH2 0x24d7
000024d3: JUMPI
000024d4: DUP1
000024d5: DUP2
000024d6: REVERT
000024d7: JUMPDEST
000024d8: POP
000024d9: MLOAD
000024da: SWAP2
000024db: SWAP1
000024dc: POP
000024dd: JUMP
000024de: JUMPDEST
000024df: PUSH1 0x00
000024e1: DUP2
000024e2: MLOAD
000024e3: DUP1
000024e4: DUP5
000024e5: MSTORE
000024e6: PUSH2 0x24f6
000024e9: DUP2
000024ea: PUSH1 0x20
000024ec: DUP7
000024ed: ADD
000024ee: PUSH1 0x20
000024f0: DUP7
000024f1: ADD
000024f2: PUSH2 0x2d99
000024f5: JUMP
000024f6: JUMPDEST
000024f7: PUSH1 0x1f
000024f9: ADD
000024fa: PUSH1 0x1f
000024fc: NOT
000024fd: AND
000024fe: SWAP3
000024ff: SWAP1
00002500: SWAP3
00002501: ADD
00002502: PUSH1 0x20
00002504: ADD
00002505: SWAP3
00002506: SWAP2
00002507: POP
00002508: POP
00002509: JUMP
0000250a: JUMPDEST
0000250b: PUSH1 0x02
0000250d: DUP2
0000250e: LT
0000250f: PUSH2 0x2514
00002512: JUMPI
00002513: INVALID
00002514: JUMPDEST
00002515: SWAP1
00002516: MSTORE
00002517: JUMP
00002518: JUMPDEST
00002519: DUP1
0000251a: MLOAD
0000251b: PUSH1 0x01
0000251d: PUSH1 0x01
0000251f: PUSH1 0xa0
00002521: SHL
00002522: SUB
00002523: AND
00002524: DUP3
00002525: MSTORE
00002526: PUSH1 0x20
00002528: DUP1
00002529: DUP3
0000252a: ADD
0000252b: MLOAD
0000252c: PUSH1 0x01
0000252e: PUSH1 0x01
00002530: PUSH1 0x80
00002532: SHL
00002533: SUB
00002534: SWAP1
00002535: DUP2
00002536: AND
00002537: SWAP2
00002538: DUP5
00002539: ADD
0000253a: SWAP2
0000253b: SWAP1
0000253c: SWAP2
0000253d: MSTORE
0000253e: PUSH1 0x40
00002540: DUP1
00002541: DUP4
00002542: ADD
00002543: MLOAD
00002544: SWAP1
00002545: SWAP2
00002546: AND
00002547: SWAP1
00002548: DUP4
00002549: ADD
0000254a: MSTORE
0000254b: PUSH1 0x60
0000254d: SWAP1
0000254e: DUP2
0000254f: ADD
00002550: MLOAD
00002551: PUSH1 0xff
00002553: AND
00002554: SWAP2
00002555: ADD
00002556: MSTORE
00002557: JUMP
00002558: JUMPDEST
00002559: DUP1
0000255a: CALLDATALOAD
0000255b: PUSH2 0x2563
0000255e: DUP2
0000255f: PUSH2 0x2e73
00002562: JUMP
00002563: JUMPDEST
00002564: PUSH1 0x01
00002566: PUSH1 0x01
00002568: PUSH1 0xa0
0000256a: SHL
0000256b: SUB
0000256c: AND
0000256d: DUP3
0000256e: MSTORE
0000256f: PUSH1 0x20
00002571: DUP2
00002572: ADD
00002573: CALLDATALOAD
00002574: PUSH2 0x257c
00002577: DUP2
00002578: PUSH2 0x2e96
0000257b: JUMP
0000257c: JUMPDEST
0000257d: PUSH1 0x01
0000257f: PUSH1 0x01
00002581: PUSH1 0x70
00002583: SHL
00002584: SUB
00002585: DUP2
00002586: AND
00002587: PUSH1 0x20
00002589: DUP5
0000258a: ADD
0000258b: MSTORE
0000258c: POP
0000258d: POP
0000258e: POP
0000258f: JUMP
00002590: JUMPDEST
00002591: DUP1
00002592: MLOAD
00002593: PUSH1 0x01
00002595: PUSH1 0x01
00002597: PUSH1 0xa0
00002599: SHL
0000259a: SUB
0000259b: AND
0000259c: DUP3
0000259d: MSTORE
0000259e: PUSH1 0x20
000025a0: SWAP1
000025a1: DUP2
000025a2: ADD
000025a3: MLOAD
000025a4: PUSH1 0x01
000025a6: PUSH1 0x01
000025a8: PUSH1 0x70
000025aa: SHL
000025ab: SUB
000025ac: AND
000025ad: SWAP2
000025ae: ADD
000025af: MSTORE
000025b0: JUMP
000025b1: JUMPDEST
000025b2: PUSH1 0x00
000025b4: DUP3
000025b5: MLOAD
000025b6: PUSH2 0x25c3
000025b9: DUP2
000025ba: DUP5
000025bb: PUSH1 0x20
000025bd: DUP8
000025be: ADD
000025bf: PUSH2 0x2d99
000025c2: JUMP
000025c3: JUMPDEST
000025c4: SWAP2
000025c5: SWAP1
000025c6: SWAP2
000025c7: ADD
000025c8: SWAP3
000025c9: SWAP2
000025ca: POP
000025cb: POP
000025cc: JUMP
000025cd: JUMPDEST
000025ce: PUSH1 0x01
000025d0: PUSH1 0x01
000025d2: PUSH1 0xa0
000025d4: SHL
000025d5: SUB
000025d6: SWAP2
000025d7: SWAP1
000025d8: SWAP2
000025d9: AND
000025da: DUP2
000025db: MSTORE
000025dc: PUSH1 0x20
000025de: ADD
000025df: SWAP1
000025e0: JUMP
000025e1: JUMPDEST
000025e2: PUSH1 0x01
000025e4: PUSH1 0x01
000025e6: PUSH1 0xa0
000025e8: SHL
000025e9: SUB
000025ea: SWAP3
000025eb: DUP4
000025ec: AND
000025ed: DUP2
000025ee: MSTORE
000025ef: SWAP2
000025f0: AND
000025f1: PUSH1 0x20
000025f3: DUP3
000025f4: ADD
000025f5: MSTORE
000025f6: PUSH1 0x40
000025f8: ADD
000025f9: SWAP1
000025fa: JUMP
000025fb: JUMPDEST
000025fc: PUSH1 0x01
000025fe: PUSH1 0x01
00002600: PUSH1 0xa0
00002602: SHL
00002603: SUB
00002604: SWAP4
00002605: DUP5
00002606: AND
00002607: DUP2
00002608: MSTORE
00002609: SWAP2
0000260a: SWAP1
0000260b: SWAP3
0000260c: AND
0000260d: PUSH1 0x20
0000260f: DUP3
00002610: ADD
00002611: MSTORE
00002612: PUSH1 0x40
00002614: DUP2
00002615: ADD
00002616: SWAP2
00002617: SWAP1
00002618: SWAP2
00002619: MSTORE
0000261a: PUSH1 0x60
0000261c: ADD
0000261d: SWAP1
0000261e: JUMP
0000261f: JUMPDEST
00002620: PUSH1 0x01
00002622: PUSH1 0x01
00002624: PUSH1 0xa0
00002626: SHL
00002627: SUB
00002628: SWAP3
00002629: SWAP1
0000262a: SWAP3
0000262b: AND
0000262c: DUP3
0000262d: MSTORE
0000262e: PUSH1 0x20
00002630: DUP3
00002631: ADD
00002632: MSTORE
00002633: PUSH1 0x40
00002635: ADD
00002636: SWAP1
00002637: JUMP
00002638: JUMPDEST
00002639: SWAP1
0000263a: ISZERO
0000263b: ISZERO
0000263c: DUP2
0000263d: MSTORE
0000263e: PUSH1 0x20
00002640: ADD
00002641: SWAP1
00002642: JUMP
00002643: JUMPDEST
00002644: SWAP1
00002645: DUP2
00002646: MSTORE
00002647: PUSH1 0x20
00002649: ADD
0000264a: SWAP1
0000264b: JUMP
0000264c: JUMPDEST
0000264d: PUSH1 0x00
0000264f: PUSH1 0x20
00002651: DUP3
00002652: MSTORE
00002653: PUSH2 0x0a13
00002656: PUSH1 0x20
00002658: DUP4
00002659: ADD
0000265a: DUP5
0000265b: PUSH2 0x24de
0000265e: JUMP
0000265f: JUMPDEST
00002660: PUSH1 0x20
00002662: DUP1
00002663: DUP3
00002664: MSTORE
00002665: PUSH1 0x1c
00002667: SWAP1
00002668: DUP3
00002669: ADD
0000266a: MSTORE
0000266b: PUSH32 0x496e73756666696369656e74206f75747075742070726f647563656400000000
0000268c: PUSH1 0x40
0000268e: DUP3
0000268f: ADD
00002690: MSTORE
00002691: PUSH1 0x60
00002693: ADD
00002694: SWAP1
00002695: JUMP
00002696: JUMPDEST
00002697: PUSH1 0x20
00002699: DUP1
0000269a: DUP3
0000269b: MSTORE
0000269c: PUSH1 0x2b
0000269e: SWAP1
0000269f: DUP3
000026a0: ADD
000026a1: MSTORE
000026a2: PUSH32 0x417474656d7074696e6720746f2072652d656e7465722066756e6374696f6e20
000026c3: PUSH1 0x40
000026c5: DUP3
000026c6: ADD
000026c7: MSTORE
000026c8: PUSH11 0x7265637572736976656c79
000026d4: PUSH1 0xa8
000026d6: SHL
000026d7: PUSH1 0x60
000026d9: DUP3
000026da: ADD
000026db: MSTORE
000026dc: PUSH1 0x80
000026de: ADD
000026df: SWAP1
000026e0: JUMP
000026e1: JUMPDEST
000026e2: PUSH1 0x20
000026e4: DUP1
000026e5: DUP3
000026e6: MSTORE
000026e7: PUSH1 0x1d
000026e9: SWAP1
000026ea: DUP3
000026eb: ADD
000026ec: MSTORE
000026ed: PUSH32 0x4d75737420666972737420726571756573742061207769746864726177000000
0000270e: PUSH1 0x40
00002710: DUP3
00002711: ADD
00002712: MSTORE
00002713: PUSH1 0x60
00002715: ADD
00002716: SWAP1
00002717: JUMP
00002718: JUMPDEST
00002719: PUSH1 0x20
0000271b: DUP1
0000271c: DUP3
0000271d: MSTORE
0000271e: PUSH1 0x1b
00002720: SWAP1
00002721: DUP3
00002722: ADD
00002723: MSTORE
00002724: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
00002745: PUSH1 0x40
00002747: DUP3
00002748: ADD
00002749: MSTORE
0000274a: PUSH1 0x60
0000274c: ADD
0000274d: SWAP1
0000274e: JUMP
0000274f: JUMPDEST
00002750: PUSH1 0x20
00002752: DUP1
00002753: DUP3
00002754: MSTORE
00002755: PUSH1 0x1e
00002757: SWAP1
00002758: DUP3
00002759: ADD
0000275a: MSTORE
0000275b: PUSH32 0x496e73756666696369656e742067617320746f2070617920616d6f756e740000
0000277c: PUSH1 0x40
0000277e: DUP3
0000277f: ADD
00002780: MSTORE
00002781: PUSH1 0x60
00002783: ADD
00002784: SWAP1
00002785: JUMP
00002786: JUMPDEST
00002787: PUSH1 0x20
00002789: DUP1
0000278a: DUP3
0000278b: MSTORE
0000278c: PUSH1 0x16
0000278e: SWAP1
0000278f: DUP3
00002790: ADD
00002791: MSTORE
00002792: PUSH22 0x496e70757420746f6b656e73206e6f74207573656421
000027a9: PUSH1 0x50
000027ab: SHL
000027ac: PUSH1 0x40
000027ae: DUP3
000027af: ADD
000027b0: MSTORE
000027b1: PUSH1 0x60
000027b3: ADD
000027b4: SWAP1
000027b5: JUMP
000027b6: JUMPDEST
000027b7: PUSH1 0x20
000027b9: DUP1
000027ba: DUP3
000027bb: MSTORE
000027bc: PUSH1 0x25
000027be: SWAP1
000027bf: DUP3
000027c0: ADD
000027c1: MSTORE
000027c2: PUSH32 0x43616e6e6f7420776974686472617720696e73696465206c6f636b6f75742070
000027e3: PUSH1 0x40
000027e5: DUP3
000027e6: ADD
000027e7: MSTORE
000027e8: PUSH5 0x195c9a5bd9
000027ee: PUSH1 0xda
000027f0: SHL
000027f1: PUSH1 0x60
000027f3: DUP3
000027f4: ADD
000027f5: MSTORE
000027f6: PUSH1 0x80
000027f8: ADD
000027f9: SWAP1
000027fa: JUMP
000027fb: JUMPDEST
000027fc: PUSH1 0x20
000027fe: DUP1
000027ff: DUP3
00002800: MSTORE
00002801: PUSH1 0x34
00002803: SWAP1
00002804: DUP3
00002805: ADD
00002806: MSTORE
00002807: PUSH32 0x5377617020616374696f6e20646964206e6f74207472616e73666572206f7574
00002828: PUSH1 0x40
0000282a: DUP3
0000282b: ADD
0000282c: MSTORE
0000282d: PUSH20 0x383aba103a37b5b2b739903a37903a3930b232b9
00002842: PUSH1 0x61
00002844: SHL
00002845: PUSH1 0x60
00002847: DUP3
00002848: ADD
00002849: MSTORE
0000284a: PUSH1 0x80
0000284c: ADD
0000284d: SWAP1
0000284e: JUMP
0000284f: JUMPDEST
00002850: PUSH1 0x20
00002852: DUP1
00002853: DUP3
00002854: MSTORE
00002855: PUSH1 0x1a
00002857: SWAP1
00002858: DUP3
00002859: ADD
0000285a: MSTORE
0000285b: PUSH32 0x5573656420746f6f206d616e7920696e70757420746f6b656e73000000000000
0000287c: PUSH1 0x40
0000287e: DUP3
0000287f: ADD
00002880: MSTORE
00002881: PUSH1 0x60
00002883: ADD
00002884: SWAP1
00002885: JUMP
00002886: JUMPDEST
00002887: PUSH1 0x20
00002889: DUP1
0000288a: DUP3
0000288b: MSTORE
0000288c: PUSH1 0x21
0000288e: SWAP1
0000288f: DUP3
00002890: ADD
00002891: MSTORE
00002892: PUSH32 0x496e73756666696369656e742066756e647320746f2070617920666f72207478
000028b3: PUSH1 0x40
000028b5: DUP3
000028b6: ADD
000028b7: MSTORE
000028b8: PUSH1 0x37
000028ba: PUSH1 0xf9
000028bc: SHL
000028bd: PUSH1 0x60
000028bf: DUP3
000028c0: ADD
000028c1: MSTORE
000028c2: PUSH1 0x80
000028c4: ADD
000028c5: SWAP1
000028c6: JUMP
000028c7: JUMPDEST
000028c8: PUSH1 0x20
000028ca: DUP1
000028cb: DUP3
000028cc: MSTORE
000028cd: PUSH1 0x21
000028cf: SWAP1
000028d0: DUP3
000028d1: ADD
000028d2: MSTORE
000028d3: PUSH32 0x536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f
000028f4: PUSH1 0x40
000028f6: DUP3
000028f7: ADD
000028f8: MSTORE
000028f9: PUSH1 0x77
000028fb: PUSH1 0xf8
000028fd: SHL
000028fe: PUSH1 0x60
00002900: DUP3
00002901: ADD
00002902: MSTORE
00002903: PUSH1 0x80
00002905: ADD
00002906: SWAP1
00002907: JUMP
00002908: JUMPDEST
00002909: PUSH1 0x20
0000290b: DUP1
0000290c: DUP3
0000290d: MSTORE
0000290e: PUSH1 0x21
00002910: SWAP1
00002911: DUP3
00002912: ADD
00002913: MSTORE
00002914: PUSH32 0x4e6f2066756e64732070726f766964656420666f7220676173206465706f7369
00002935: PUSH1 0x40
00002937: DUP3
00002938: ADD
00002939: MSTORE
0000293a: PUSH1 0x1d
0000293c: PUSH1 0xfa
0000293e: SHL
0000293f: PUSH1 0x60
00002941: DUP3
00002942: ADD
00002943: MSTORE
00002944: PUSH1 0x80
00002946: ADD
00002947: SWAP1
00002948: JUMP
00002949: JUMPDEST
0000294a: PUSH1 0x20
0000294c: DUP1
0000294d: DUP3
0000294e: MSTORE
0000294f: PUSH1 0x29
00002951: SWAP1
00002952: DUP3
00002953: ADD
00002954: MSTORE
00002955: PUSH32 0x43616e206f6e6c792062652063616c6c656420627920736574746c656d656e74
00002976: PUSH1 0x40
00002978: DUP3
00002979: ADD
0000297a: MSTORE
0000297b: PUSH9 0x0818dbdb9d1c9858dd
00002985: PUSH1 0xba
00002987: SHL
00002988: PUSH1 0x60
0000298a: DUP3
0000298b: ADD
0000298c: MSTORE
0000298d: PUSH1 0x80
0000298f: ADD
00002990: SWAP1
00002991: JUMP
00002992: JUMPDEST
00002993: PUSH1 0x20
00002995: DUP1
00002996: DUP3
00002997: MSTORE
00002998: PUSH1 0x09
0000299a: SWAP1
0000299b: DUP3
0000299c: ADD
0000299d: MSTORE
0000299e: PUSH9 0x4e6f742072656c6179
000029a8: PUSH1 0xb8
000029aa: SHL
000029ab: PUSH1 0x40
000029ad: DUP3
000029ae: ADD
000029af: MSTORE
000029b0: PUSH1 0x60
000029b2: ADD
000029b3: SWAP1
000029b4: JUMP
000029b5: JUMPDEST
000029b6: PUSH1 0x20
000029b8: DUP1
000029b9: DUP3
000029ba: MSTORE
000029bb: PUSH1 0x1d
000029bd: SWAP1
000029be: DUP3
000029bf: ADD
000029c0: MSTORE
000029c1: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
000029e2: PUSH1 0x40
000029e4: DUP3
000029e5: ADD
000029e6: MSTORE
000029e7: PUSH1 0x60
000029e9: ADD
000029ea: SWAP1
000029eb: JUMP
000029ec: JUMPDEST
000029ed: PUSH1 0x20
000029ef: DUP1
000029f0: DUP3
000029f1: MSTORE
000029f2: PUSH1 0x13
000029f4: SWAP1
000029f5: DUP3
000029f6: ADD
000029f7: MSTORE
000029f8: PUSH19 0x105b1c9958591e481a5b9a5d1a585b1a5e9959
00002a0c: PUSH1 0x6a
00002a0e: SHL
00002a0f: PUSH1 0x40
00002a11: DUP3
00002a12: ADD
00002a13: MSTORE
00002a14: PUSH1 0x60
00002a16: ADD
00002a17: SWAP1
00002a18: JUMP
00002a19: JUMPDEST
00002a1a: PUSH1 0x20
00002a1c: DUP1
00002a1d: DUP3
00002a1e: MSTORE
00002a1f: PUSH1 0x18
00002a21: SWAP1
00002a22: DUP3
00002a23: ADD
00002a24: MSTORE
00002a25: PUSH32 0x43616e6e6f74207769746864726177203020616d6f756e740000000000000000
00002a46: PUSH1 0x40
00002a48: DUP3
00002a49: ADD
00002a4a: MSTORE
00002a4b: PUSH1 0x60
00002a4d: ADD
00002a4e: SWAP1
00002a4f: JUMP
00002a50: JUMPDEST
00002a51: PUSH1 0x20
00002a53: DUP1
00002a54: DUP3
00002a55: MSTORE
00002a56: PUSH1 0x2a
00002a58: SWAP1
00002a59: DUP3
00002a5a: ADD
00002a5b: MSTORE
00002a5c: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00002a7d: PUSH1 0x40
00002a7f: DUP3
00002a80: ADD
00002a81: MSTORE
00002a82: PUSH10 0x1bdd081cdd58d8d95959
00002a8d: PUSH1 0xb2
00002a8f: SHL
00002a90: PUSH1 0x60
00002a92: DUP3
00002a93: ADD
00002a94: MSTORE
00002a95: PUSH1 0x80
00002a97: ADD
00002a98: SWAP1
00002a99: JUMP
00002a9a: JUMPDEST
00002a9b: PUSH1 0x20
00002a9d: DUP1
00002a9e: DUP3
00002a9f: MSTORE
00002aa0: PUSH1 0x2d
00002aa2: SWAP1
00002aa3: DUP3
00002aa4: ADD
00002aa5: MSTORE
00002aa6: PUSH32 0x6661696c6564207377617020616374696f6e20646964206e6f7420726566756e
00002ac7: PUSH1 0x40
00002ac9: DUP3
00002aca: ADD
00002acb: MSTORE
00002acc: PUSH13 0x6420696e7075742066756e6473
00002ada: PUSH1 0x98
00002adc: SHL
00002add: PUSH1 0x60
00002adf: DUP3
00002ae0: ADD
00002ae1: MSTORE
00002ae2: PUSH1 0x80
00002ae4: ADD
00002ae5: SWAP1
00002ae6: JUMP
00002ae7: JUMPDEST
00002ae8: PUSH1 0x20
00002aea: DUP1
00002aeb: DUP3
00002aec: MSTORE
00002aed: PUSH1 0x09
00002aef: SWAP1
00002af0: DUP3
00002af1: ADD
00002af2: MSTORE
00002af3: PUSH9 0x2737ba1030b236b4b7
00002afd: PUSH1 0xb9
00002aff: SHL
00002b00: PUSH1 0x40
00002b02: DUP3
00002b03: ADD
00002b04: MSTORE
00002b05: PUSH1 0x60
00002b07: ADD
00002b08: SWAP1
00002b09: JUMP
00002b0a: JUMPDEST
00002b0b: SWAP3
00002b0c: DUP4
00002b0d: MSTORE
00002b0e: PUSH1 0x20
00002b10: DUP4
00002b11: ADD
00002b12: SWAP2
00002b13: SWAP1
00002b14: SWAP2
00002b15: MSTORE
00002b16: PUSH1 0x01
00002b18: PUSH1 0x01
00002b1a: PUSH1 0xa0
00002b1c: SHL
00002b1d: SUB
00002b1e: AND
00002b1f: PUSH1 0x40
00002b21: DUP3
00002b22: ADD
00002b23: MSTORE
00002b24: PUSH1 0x60
00002b26: ADD
00002b27: SWAP1
00002b28: JUMP
00002b29: JUMPDEST
00002b2a: PUSH1 0x80
00002b2c: DUP2
00002b2d: ADD
00002b2e: PUSH2 0x0468
00002b31: DUP3
00002b32: DUP5
00002b33: PUSH2 0x2518
00002b36: JUMP
00002b37: JUMPDEST
00002b38: DUP3
00002b39: DUP2
00002b3a: MSTORE
00002b3b: PUSH1 0xa0
00002b3d: DUP2
00002b3e: ADD
00002b3f: PUSH2 0x0a13
00002b42: PUSH1 0x20
00002b44: DUP4
00002b45: ADD
00002b46: DUP5
00002b47: PUSH2 0x2518
00002b4a: JUMP
00002b4b: JUMPDEST
00002b4c: SWAP2
00002b4d: DUP3
00002b4e: MSTORE
00002b4f: PUSH1 0x01
00002b51: PUSH1 0x01
00002b53: PUSH1 0xa0
00002b55: SHL
00002b56: SUB
00002b57: AND
00002b58: PUSH1 0x20
00002b5a: DUP3
00002b5b: ADD
00002b5c: MSTORE
00002b5d: PUSH1 0x40
00002b5f: ADD
00002b60: SWAP1
00002b61: JUMP
00002b62: JUMPDEST
00002b63: PUSH1 0x00
00002b65: PUSH2 0x0140
00002b68: DUP6
00002b69: CALLDATALOAD
00002b6a: PUSH2 0x2b72
00002b6d: DUP2
00002b6e: PUSH2 0x2e73
00002b71: JUMP
00002b72: JUMPDEST
00002b73: PUSH1 0x01
00002b75: PUSH1 0x01
00002b77: PUSH1 0xa0
00002b79: SHL
00002b7a: SUB
00002b7b: AND
00002b7c: DUP4
00002b7d: MSTORE
00002b7e: PUSH1 0x20
00002b80: DUP7
00002b81: ADD
00002b82: CALLDATALOAD
00002b83: PUSH2 0x2b8b
00002b86: DUP2
00002b87: PUSH2 0x2eab
00002b8a: JUMP
00002b8b: JUMPDEST
00002b8c: PUSH1 0x01
00002b8e: PUSH1 0x01
00002b90: PUSH1 0x80
00002b92: SHL
00002b93: SUB
00002b94: AND
00002b95: PUSH1 0x20
00002b97: DUP5
00002b98: ADD
00002b99: MSTORE
00002b9a: PUSH1 0x40
00002b9c: DUP7
00002b9d: ADD
00002b9e: CALLDATALOAD
00002b9f: PUSH2 0x2ba7
00002ba2: DUP2
00002ba3: PUSH2 0x2e96
00002ba6: JUMP
00002ba7: JUMPDEST
00002ba8: PUSH1 0x01
00002baa: PUSH1 0x01
00002bac: PUSH1 0x70
00002bae: SHL
00002baf: SUB
00002bb0: AND
00002bb1: PUSH1 0x40
00002bb3: DUP5
00002bb4: ADD
00002bb5: MSTORE
00002bb6: PUSH1 0x60
00002bb8: DUP7
00002bb9: ADD
00002bba: CALLDATALOAD
00002bbb: PUSH2 0x2bc3
00002bbe: DUP2
00002bbf: PUSH2 0x2ec0
00002bc2: JUMP
00002bc3: JUMPDEST
00002bc4: PUSH1 0xff
00002bc6: AND
00002bc7: PUSH1 0x60
00002bc9: DUP5
00002bca: ADD
00002bcb: MSTORE
00002bcc: PUSH2 0x2bd8
00002bcf: PUSH1 0x80
00002bd1: DUP8
00002bd2: ADD
00002bd3: DUP8
00002bd4: PUSH2 0x2d7e
00002bd7: JUMP
00002bd8: JUMPDEST
00002bd9: PUSH2 0x2be5
00002bdc: PUSH1 0x80
00002bde: DUP6
00002bdf: ADD
00002be0: DUP3
00002be1: PUSH2 0x250a
00002be4: JUMP
00002be5: JUMPDEST
00002be6: POP
00002be7: PUSH2 0x2bf6
00002bea: PUSH1 0xa0
00002bec: DUP5
00002bed: ADD
00002bee: PUSH1 0xa0
00002bf0: DUP9
00002bf1: ADD
00002bf2: PUSH2 0x2558
00002bf5: JUMP
00002bf6: JUMPDEST
00002bf7: PUSH2 0x2c06
00002bfa: PUSH1 0xe0
00002bfc: DUP5
00002bfd: ADD
00002bfe: PUSH1 0xe0
00002c00: DUP9
00002c01: ADD
00002c02: PUSH2 0x2558
00002c05: JUMP
00002c06: JUMPDEST
00002c07: DUP1
00002c08: PUSH2 0x0120
00002c0b: DUP5
00002c0c: ADD
00002c0d: MSTORE
00002c0e: PUSH2 0x2c19
00002c11: DUP5
00002c12: DUP3
00002c13: DUP6
00002c14: ADD
00002c15: PUSH2 0x2643
00002c18: JUMP
00002c19: JUMPDEST
00002c1a: PUSH2 0x2c24
00002c1d: DUP6
00002c1e: DUP3
00002c1f: DUP9
00002c20: PUSH2 0x2d8d
00002c23: JUMP
00002c24: JUMPDEST
00002c25: PUSH1 0x1f
00002c27: NOT
00002c28: PUSH1 0x1f
00002c2a: DUP7
00002c2b: ADD
00002c2c: AND
00002c2d: DUP2
00002c2e: ADD
00002c2f: SWAP3
00002c30: POP
00002c31: POP
00002c32: POP
00002c33: SWAP5
00002c34: SWAP4
00002c35: POP
00002c36: POP
00002c37: POP
00002c38: POP
00002c39: JUMP
00002c3a: JUMPDEST
00002c3b: PUSH1 0x00
00002c3d: PUSH2 0x0160
00002c40: PUSH1 0x01
00002c42: DUP1
00002c43: PUSH1 0xa0
00002c45: SHL
00002c46: SUB
00002c47: DUP1
00002c48: DUP8
00002c49: MLOAD
00002c4a: AND
00002c4b: DUP5
00002c4c: MSTORE
00002c4d: PUSH1 0x01
00002c4f: PUSH1 0x01
00002c51: PUSH1 0x80
00002c53: SHL
00002c54: SUB
00002c55: PUSH1 0x20
00002c57: DUP9
00002c58: ADD
00002c59: MLOAD
00002c5a: AND
00002c5b: PUSH1 0x20
00002c5d: DUP6
00002c5e: ADD
00002c5f: MSTORE
00002c60: PUSH1 0x40
00002c62: DUP8
00002c63: ADD
00002c64: MLOAD
00002c65: PUSH1 0x01
00002c67: PUSH1 0x01
00002c69: PUSH1 0x70
00002c6b: SHL
00002c6c: SUB
00002c6d: DUP2
00002c6e: MLOAD
00002c6f: AND
00002c70: PUSH1 0x40
00002c72: DUP7
00002c73: ADD
00002c74: MSTORE
00002c75: PUSH1 0xff
00002c77: PUSH1 0x20
00002c79: DUP3
00002c7a: ADD
00002c7b: MLOAD
00002c7c: AND
00002c7d: PUSH1 0x60
00002c7f: DUP7
00002c80: ADD
00002c81: MSTORE
00002c82: POP
00002c83: PUSH1 0x60
00002c85: DUP8
00002c86: ADD
00002c87: MLOAD
00002c88: PUSH2 0x2c94
00002c8b: PUSH1 0x80
00002c8d: DUP7
00002c8e: ADD
00002c8f: DUP3
00002c90: PUSH2 0x250a
00002c93: JUMP
00002c94: JUMPDEST
00002c95: POP
00002c96: PUSH1 0x80
00002c98: DUP8
00002c99: ADD
00002c9a: MLOAD
00002c9b: PUSH2 0x2ca7
00002c9e: PUSH1 0xa0
00002ca0: DUP7
00002ca1: ADD
00002ca2: DUP3
00002ca3: PUSH2 0x2590
00002ca6: JUMP
00002ca7: JUMPDEST
00002ca8: POP
00002ca9: PUSH1 0xa0
00002cab: DUP8
00002cac: ADD
00002cad: MLOAD
00002cae: PUSH2 0x2cba
00002cb1: PUSH1 0xe0
00002cb3: DUP7
00002cb4: ADD
00002cb5: DUP3
00002cb6: PUSH2 0x2590
00002cb9: JUMP
00002cba: JUMPDEST
00002cbb: POP
00002cbc: DUP6
00002cbd: AND
00002cbe: PUSH2 0x0120
00002cc1: DUP5
00002cc2: ADD
00002cc3: MSTORE
00002cc4: PUSH2 0x0140
00002cc7: DUP4
00002cc8: ADD
00002cc9: DUP2
00002cca: SWAP1
00002ccb: MSTORE
00002ccc: PUSH2 0x10e0
00002ccf: DUP2
00002cd0: DUP5
00002cd1: ADD
00002cd2: DUP6
00002cd3: PUSH2 0x24de
00002cd6: JUMP
00002cd7: JUMPDEST
00002cd8: PUSH1 0x00
00002cda: DUP4
00002cdb: DUP3
00002cdc: MSTORE
00002cdd: PUSH1 0x40
00002cdf: PUSH1 0x20
00002ce1: DUP4
00002ce2: ADD
00002ce3: MSTORE
00002ce4: PUSH2 0x1d97
00002ce7: PUSH1 0x40
00002ce9: DUP4
00002cea: ADD
00002ceb: DUP5
00002cec: PUSH2 0x24de
00002cef: JUMP
00002cf0: JUMPDEST
00002cf1: PUSH1 0x00
00002cf3: DUP5
00002cf4: DUP3
00002cf5: MSTORE
00002cf6: DUP4
00002cf7: PUSH1 0x20
00002cf9: DUP4
00002cfa: ADD
00002cfb: MSTORE
00002cfc: PUSH1 0x60
00002cfe: PUSH1 0x40
00002d00: DUP4
00002d01: ADD
00002d02: MSTORE
00002d03: PUSH2 0x07b4
00002d06: PUSH1 0x60
00002d08: DUP4
00002d09: ADD
00002d0a: DUP5
00002d0b: PUSH2 0x24de
00002d0e: JUMP
00002d0f: JUMPDEST
00002d10: SWAP4
00002d11: DUP5
00002d12: MSTORE
00002d13: PUSH1 0x20
00002d15: DUP5
00002d16: ADD
00002d17: SWAP3
00002d18: SWAP1
00002d19: SWAP3
00002d1a: MSTORE
00002d1b: PUSH1 0x01
00002d1d: PUSH1 0x01
00002d1f: PUSH1 0x80
00002d21: SHL
00002d22: SUB
00002d23: AND
00002d24: PUSH1 0x40
00002d26: DUP4
00002d27: ADD
00002d28: MSTORE
00002d29: PUSH1 0x60
00002d2b: DUP3
00002d2c: ADD
00002d2d: MSTORE
00002d2e: PUSH1 0x80
00002d30: ADD
00002d31: SWAP1
00002d32: JUMP
00002d33: JUMPDEST
00002d34: PUSH1 0x40
00002d36: MLOAD
00002d37: DUP2
00002d38: DUP2
00002d39: ADD
00002d3a: PUSH8 0xffffffffffffffff
00002d43: DUP2
00002d44: GT
00002d45: DUP3
00002d46: DUP3
00002d47: LT
00002d48: OR
00002d49: ISZERO
00002d4a: PUSH2 0x2d52
00002d4d: JUMPI
00002d4e: PUSH1 0x00
00002d50: DUP1
00002d51: REVERT
00002d52: JUMPDEST
00002d53: PUSH1 0x40
00002d55: MSTORE
00002d56: SWAP2
00002d57: SWAP1
00002d58: POP
00002d59: JUMP
00002d5a: JUMPDEST
00002d5b: PUSH1 0x00
00002d5d: PUSH8 0xffffffffffffffff
00002d66: DUP3
00002d67: GT
00002d68: ISZERO
00002d69: PUSH2 0x2d70
00002d6c: JUMPI
00002d6d: DUP1
00002d6e: DUP2
00002d6f: REVERT
00002d70: JUMPDEST
00002d71: POP
00002d72: PUSH1 0x1f
00002d74: ADD
00002d75: PUSH1 0x1f
00002d77: NOT
00002d78: AND
00002d79: PUSH1 0x20
00002d7b: ADD
00002d7c: SWAP1
00002d7d: JUMP
00002d7e: JUMPDEST
00002d7f: PUSH1 0x00
00002d81: PUSH2 0x0a13
00002d84: PUSH1 0x20
00002d86: DUP5
00002d87: ADD
00002d88: DUP5
00002d89: PUSH2 0x202f
00002d8c: JUMP
00002d8d: JUMPDEST
00002d8e: DUP3
00002d8f: DUP2
00002d90: DUP4
00002d91: CALLDATACOPY
00002d92: POP
00002d93: PUSH1 0x00
00002d95: SWAP2
00002d96: ADD
00002d97: MSTORE
00002d98: JUMP
00002d99: JUMPDEST
00002d9a: PUSH1 0x00
00002d9c: JUMPDEST
00002d9d: DUP4
00002d9e: DUP2
00002d9f: LT
00002da0: ISZERO
00002da1: PUSH2 0x2db4
00002da4: JUMPI
00002da5: DUP2
00002da6: DUP2
00002da7: ADD
00002da8: MLOAD
00002da9: DUP4
00002daa: DUP3
00002dab: ADD
00002dac: MSTORE
00002dad: PUSH1 0x20
00002daf: ADD
00002db0: PUSH2 0x2d9c
00002db3: JUMP
00002db4: JUMPDEST
00002db5: DUP4
00002db6: DUP2
00002db7: GT
00002db8: ISZERO
00002db9: PUSH2 0x0d72
00002dbc: JUMPI
00002dbd: POP
00002dbe: POP
00002dbf: PUSH1 0x00
00002dc1: SWAP2
00002dc2: ADD
00002dc3: MSTORE
00002dc4: JUMP
00002dc5: JUMPDEST
00002dc6: PUSH1 0xe0
00002dc8: SHR
00002dc9: SWAP1
00002dca: JUMP
00002dcb: JUMPDEST
00002dcc: PUSH1 0x00
00002dce: PUSH1 0x44
00002dd0: RETURNDATASIZE
00002dd1: LT
00002dd2: ISZERO
00002dd3: PUSH2 0x2ddb
00002dd6: JUMPI
00002dd7: PUSH2 0x0b10
00002dda: JUMP
00002ddb: JUMPDEST
00002ddc: PUSH1 0x04
00002dde: DUP2
00002ddf: DUP3
00002de0: RETURNDATACOPY
00002de1: PUSH4 0x08c379a0
00002de6: PUSH2 0x2def
00002de9: DUP3
00002dea: MLOAD
00002deb: PUSH2 0x2dc5
00002dee: JUMP
00002def: JUMPDEST
00002df0: EQ
00002df1: PUSH2 0x2df9
00002df4: JUMPI
00002df5: PUSH2 0x0b10
00002df8: JUMP
00002df9: JUMPDEST
00002dfa: PUSH1 0x40
00002dfc: MLOAD
00002dfd: RETURNDATASIZE
00002dfe: PUSH1 0x03
00002e00: NOT
00002e01: ADD
00002e02: PUSH1 0x04
00002e04: DUP3
00002e05: RETURNDATACOPY
00002e06: DUP1
00002e07: MLOAD
00002e08: RETURNDATASIZE
00002e09: PUSH8 0xffffffffffffffff
00002e12: DUP2
00002e13: PUSH1 0x24
00002e15: DUP5
00002e16: ADD
00002e17: GT
00002e18: DUP2
00002e19: DUP5
00002e1a: GT
00002e1b: OR
00002e1c: ISZERO
00002e1d: PUSH2 0x2e29
00002e20: JUMPI
00002e21: POP
00002e22: POP
00002e23: POP
00002e24: POP
00002e25: PUSH2 0x0b10
00002e28: JUMP
00002e29: JUMPDEST
00002e2a: DUP3
00002e2b: DUP5
00002e2c: ADD
00002e2d: SWAP2
00002e2e: POP
00002e2f: DUP2
00002e30: MLOAD
00002e31: SWAP3
00002e32: POP
00002e33: DUP1
00002e34: DUP4
00002e35: GT
00002e36: ISZERO
00002e37: PUSH2 0x2e43
00002e3a: JUMPI
00002e3b: POP
00002e3c: POP
00002e3d: POP
00002e3e: POP
00002e3f: PUSH2 0x0b10
00002e42: JUMP
00002e43: JUMPDEST
00002e44: POP
00002e45: RETURNDATASIZE
00002e46: DUP4
00002e47: ADD
00002e48: PUSH1 0x20
00002e4a: DUP4
00002e4b: DUP4
00002e4c: ADD
00002e4d: ADD
00002e4e: GT
00002e4f: ISZERO
00002e50: PUSH2 0x2e5b
00002e53: JUMPI
00002e54: POP
00002e55: POP
00002e56: POP
00002e57: PUSH2 0x0b10
00002e5a: JUMP
00002e5b: JUMPDEST
00002e5c: PUSH1 0x1f
00002e5e: SWAP2
00002e5f: SWAP1
00002e60: SWAP2
00002e61: ADD
00002e62: PUSH1 0x1f
00002e64: NOT
00002e65: AND
00002e66: DUP2
00002e67: ADD
00002e68: PUSH1 0x20
00002e6a: ADD
00002e6b: PUSH1 0x40
00002e6d: MSTORE
00002e6e: SWAP2
00002e6f: POP
00002e70: POP
00002e71: SWAP1
00002e72: JUMP
00002e73: JUMPDEST
00002e74: PUSH1 0x01
00002e76: PUSH1 0x01
00002e78: PUSH1 0xa0
00002e7a: SHL
00002e7b: SUB
00002e7c: DUP2
00002e7d: AND
00002e7e: DUP2
00002e7f: EQ
00002e80: PUSH2 0x060a
00002e83: JUMPI
00002e84: PUSH1 0x00
00002e86: DUP1
00002e87: REVERT
00002e88: JUMPDEST
00002e89: DUP1
00002e8a: ISZERO
00002e8b: ISZERO
00002e8c: DUP2
00002e8d: EQ
00002e8e: PUSH2 0x060a
00002e91: JUMPI
00002e92: PUSH1 0x00
00002e94: DUP1
00002e95: REVERT
00002e96: JUMPDEST
00002e97: PUSH1 0x01
00002e99: PUSH1 0x01
00002e9b: PUSH1 0x70
00002e9d: SHL
00002e9e: SUB
00002e9f: DUP2
00002ea0: AND
00002ea1: DUP2
00002ea2: EQ
00002ea3: PUSH2 0x060a
00002ea6: JUMPI
00002ea7: PUSH1 0x00
00002ea9: DUP1
00002eaa: REVERT
00002eab: JUMPDEST
00002eac: PUSH1 0x01
00002eae: PUSH1 0x01
00002eb0: PUSH1 0x80
00002eb2: SHL
00002eb3: SUB
00002eb4: DUP2
00002eb5: AND
00002eb6: DUP2
00002eb7: EQ
00002eb8: PUSH2 0x060a
00002ebb: JUMPI
00002ebc: PUSH1 0x00
00002ebe: DUP1
00002ebf: REVERT
00002ec0: JUMPDEST
00002ec1: PUSH1 0xff
00002ec3: DUP2
00002ec4: AND
00002ec5: DUP2
00002ec6: EQ
00002ec7: PUSH2 0x060a
00002eca: JUMPI
00002ecb: PUSH1 0x00
00002ecd: DUP1
00002ece: REVERT
00002ecf: INVALID
00002ed0: COINBASE
00002ed1: PUSH21 0x74656d7074696e6720746f2063616c6c20756e6170
00002ee7: PUSH17 0x726f76656420616374696f6e2073637269
00002ef9: PUSH17 0x74496e73756666696369656e7420746f6b
00002f0b: PUSH6 0x6e2062616c61
00002f12: PUSH15 0x636520666f72207472616465a49807
00002f22: KECCAK256
00002f23: TLOAD
00002f24: UNKNOWN(0xE4)
00002f25: UNKNOWN(0xD3)
00002f26: SSTORE
00002f27: MULMOD
00002f28: UNKNOWN(0x2E)
00002f29: CREATE2
00002f2a: UNKNOWN(0xA8)
00002f2b: LOG1
00002f2c: DUP16
00002f2d: JUMP
00002f2e: UNKNOWN(0xE8)
00002f2f: SWAP2
00002f30: EXTCODECOPY
00002f31: DELEGATECALL
00002f32: LOG2
00002f33: ADD
00002f34: UNKNOWN(0xFB)
00002f35: UNKNOWN(0xE2)
00002f36: DUP8
00002f37: DUP3
00002f38: JUMPDEST
00002f39: MULMOD
00002f3a: JUMP
00002f3b: SWAP4
00002f3c: UNKNOWN(0xC2)
00002f3d: OR
00002f3e: PUSH22 0x496e73756666696369656e74207370656e6420616c6c
00002f55: PUSH16 0x77616e636520666f72207472616465a2
00002f66: PUSH5 0x6970667358
00002f6c: UNKNOWN(0x22)
00002f6d: SLT
00002f6e: KECCAK256
00002f6f: UNKNOWN(0xCD)
00002f70: UNKNOWN(0x26)
00002f71: PUSH20 0x7037a4034b1884ec1d23b9838c5fb744950e9800
00002f86: SSTORE
00002f87: DUP2
00002f88: UNKNOWN(0xCF)
00002f89: CLZ
00002f8a: DIV
00002f8b: LOG2
00002f8c: CALLCODE
00002f8d: UNKNOWN(0xF9)
00002f8e: UNKNOWN(0x1F)
00002f8f: PUSH5 0x736f6c6343
00002f95: STOP
00002f96: MOD
00002f97: ADDMOD
00002f98: STOP
00002f99: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b
call_targets: 0x6ee56fb19b8ef9b2d336c55cc9e1b8fb79472ecf
target_varies: no
classification: constant_target
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x6ee56fb19b8ef9b2d336c55cc9e1b8fb79472ecf"
    ],
    "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": "0xc3f909d4",
            "selector": "0xc3f909d4",
            "calldata_variants": [
                "0xc3f909d4",
                "0xc3f909d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe959b38a",
            "selector": "0xe959b38a",
            "calldata_variants": [
                "0xe959b38a",
                "0xe959b38a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xea9c727b",
            "selector": "0xea9c727b",
            "calldata_variants": [
                "0xea9c727b",
                "0xea9c727b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc8926d3",
            "selector": "0xfc8926d3",
            "calldata_variants": [
                "0xfc8926d3",
                "0xfc8926d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x75e9aac8",
            "selector": "0x75e9aac8",
            "calldata_variants": [
                "0x75e9aac8",
                "0x75e9aac80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8d0b303d",
            "selector": "0x8d0b303d",
            "calldata_variants": [
                "0x8d0b303d",
                "0x8d0b303d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1075,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 1694,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 2526,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 6,
    "untrusted_delegatecall_count": 6
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b
call_targets: 0x4a1dc57d949db46a456d0104f437ed87ee24422f
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x4a1dc57d949db46a456d0104f437ed87ee24422f"
    ],
    "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": "0xc3f909d4",
            "selector": "0xc3f909d4",
            "calldata_variants": [
                "0xc3f909d4",
                "0xc3f909d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe959b38a",
            "selector": "0xe959b38a",
            "calldata_variants": [
                "0xe959b38a",
                "0xe959b38a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xea9c727b",
            "selector": "0xea9c727b",
            "calldata_variants": [
                "0xea9c727b",
                "0xea9c727b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc8926d3",
            "selector": "0xfc8926d3",
            "calldata_variants": [
                "0xfc8926d3",
                "0xfc8926d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x75e9aac8",
            "selector": "0x75e9aac8",
            "calldata_variants": [
                "0x75e9aac8",
                "0x75e9aac80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8d0b303d",
            "selector": "0x8d0b303d",
            "calldata_variants": [
                "0x8d0b303d",
                "0x8d0b303d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1372,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3267,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4578,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 10,
    "guards_detected": []
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b
call_targets: 0x4a1dc57d949db46a456d0104f437ed87ee24422f
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x4a1dc57d949db46a456d0104f437ed87ee24422f"
    ],
    "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": "0xc3f909d4",
            "selector": "0xc3f909d4",
            "calldata_variants": [
                "0xc3f909d4",
                "0xc3f909d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe959b38a",
            "selector": "0xe959b38a",
            "calldata_variants": [
                "0xe959b38a",
                "0xe959b38a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xea9c727b",
            "selector": "0xea9c727b",
            "calldata_variants": [
                "0xea9c727b",
                "0xea9c727b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc8926d3",
            "selector": "0xfc8926d3",
            "calldata_variants": [
                "0xfc8926d3",
                "0xfc8926d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x75e9aac8",
            "selector": "0x75e9aac8",
            "calldata_variants": [
                "0x75e9aac8",
                "0x75e9aac80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8d0b303d",
            "selector": "0x8d0b303d",
            "calldata_variants": [
                "0x8d0b303d",
                "0x8d0b303d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1372,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3267,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4578,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 10,
    "guards_detected": [],
    "untrusted_call_count": 10
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 6
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x8b6fb4c0b31562f5ca5e6bb8494af85b85278290f8939a74f38c726e0164e06e
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x8b6fb4c0b31562f5ca5e6bb8494af85b85278290f8939a74f38c726e0164e06e",
    "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": "0xc3f909d4",
            "selector": "0xc3f909d4",
            "calldata_variants": [
                "0xc3f909d4",
                "0xc3f909d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe959b38a",
            "selector": "0xe959b38a",
            "calldata_variants": [
                "0xe959b38a",
                "0xe959b38a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xea9c727b",
            "selector": "0xea9c727b",
            "calldata_variants": [
                "0xea9c727b",
                "0xea9c727b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc8926d3",
            "selector": "0xfc8926d3",
            "calldata_variants": [
                "0xfc8926d3",
                "0xfc8926d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x75e9aac8",
            "selector": "0x75e9aac8",
            "calldata_variants": [
                "0x75e9aac8",
                "0x75e9aac80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8d0b303d",
            "selector": "0x8d0b303d",
            "calldata_variants": [
                "0x8d0b303d",
                "0x8d0b303d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 1
}
medium auth codex Orders lack trader authorization; relays can execute arbitrary swaps 75 no
view
evidence_json
{
    "evidence": "fill accepts an order from the relayer and only checks balances/allowances; Types.Order contains no signature/nonce fields.",
    "locations": [
        "contracts/SwapSettlement.sol:95",
        "contracts/SwapSettlement.sol:103",
        "contracts/Types.sol:33"
    ],
    "recommendation": "Require an EIP-712 signature from the trader (including nonce and deadline) and verify it in fill before executing. Alternatively require order.trader == msg.sender for direct execution and add explicit order approval logic.",
    "exploit_scenario": "Any address with RELAY_ROLE can call fill with a crafted order for any trader who has granted allowance and deposited gas. Because no signature/nonce is verified, a malicious or compromised relay can swap the trader\u2019s tokens into unwanted assets or at unfavorable rates while charging gas/fees."
}
medium upgradeability codex Public initializers can be seized if deployment is not atomic 75 no
view
evidence_json
{
    "evidence": "initialize functions are public and only guarded by the initializer flag.",
    "locations": [
        "contracts/SwapSettlement.sol:61",
        "contracts/swapper/uniswap/Uniswapper.sol:25",
        "contracts/swapper/uniswapRouting/RoutedSwap.sol:27"
    ],
    "recommendation": "Call initialize atomically during deployment, and/or add a constructor to disable initializers on implementations. Consider restricting initialize with a deployer/admin check when not using a proxy.",
    "exploit_scenario": "If any of these contracts/proxies are deployed without calling initialize in the same transaction, an attacker can call initialize first, gaining admin/relay roles and configuring malicious scripts or parameters."
}
low other codex ERC20 transfer/approve return values are not checked in swap scripts 65 no
view
evidence_json
{
    "evidence": "Uniswapper uses raw transfer without checking return values; RoutedSwap uses approve without checking return values.",
    "locations": [
        "contracts/swapper/uniswap/Uniswapper.sol:92",
        "contracts/swapper/uniswap/Uniswapper.sol:152",
        "contracts/swapper/uniswap/Uniswapper.sol:183",
        "contracts/swapper/uniswapRouting/RoutedSwap.sol:34",
        "contracts/swapper/uniswapRouting/RoutedSwap.sol:84"
    ],
    "recommendation": "Use SafeERC20\u2019s safeTransfer/safeTransferFrom/safeApprove (or check return values explicitly). For approve, consider resetting to 0 before setting a new allowance.",
    "exploit_scenario": "For non-standard ERC20s that return false instead of reverting, these calls may silently fail, leading to swaps executing under incorrect assumptions or refunds failing, potentially leaving funds stuck until manual recovery."
}
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": 1
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 16
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 15
}