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

Analysis Run

019bb2d5-fd7c-72df-8b0e-fc3992167c10

failed
Chain ID
1
Address
Block Number
Created
Mon, Jan 12, 2026 3:32 PM
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
39622 artifact.fetch complete 1 / 3 3 months ago
39623 proxy.resolve complete 1 / 3 3 months ago
39624 tool.cast_disasm complete 1 / 3 3 months ago
39625 analysis.bundle complete 1 / 3 3 months ago
39626 capability.graph complete 1 / 3 3 months ago
39627 detector.run complete 1 / 3 3 months ago
39628 validation.fork complete 1 / 3 3 months ago
39739 report.consolidate complete 1 / 6 3 months ago
39740 tool.slither failed 2 / 2 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy",
    "etherscan_hint": {
        "source": "etherscan",
        "etherscan": {
            "proxy_flag": true,
            "implementation": "0x00000000000008882d72efa6cce4b6a40b24c860"
        }
    },
    "implementation": "0x00000000000008882d72efa6cce4b6a40b24c860",
    "self_reference": true
}

Slither

tool.slither
Status
failed slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-ztwj1git) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-ztwj1git) 'forge' returned non-zero exit code 1 Compiling 4 files with Solc 0.8.29 stdout: Solc 0.8.29 finished in 148.53ms Error: Compiler run failed: stderr: Error: Compiler error (/solidity/libsolidity/codegen/LValue.cpp:50): Stack too deep. Try compiling with `--via-ir` (cli) or the equivalent `viaIR: true` (standard JSON) while enabling the optimizer. Otherwise, try removing local variables. stderr: --> src/ZAMM.sol:383:45: stderr: | stderr: 383 | uint256 amount1Optimal = mulDiv(amount0Desired, reserve1, reserve0); 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-ztwj1git/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-ztwj1git)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-ztwj1git)
'forge' returned non-zero exit code 1
Compiling 4 files with Solc 0.8.29
stdout: Solc 0.8.29 finished in 148.53ms
Error: Compiler run failed:
stderr: Error: Compiler error (/solidity/libsolidity/codegen/LValue.cpp:50): Stack too deep. Try compiling with `--via-ir` (cli) or the equivalent `viaIR: true` (standard JSON) while enabling the optimizer. Otherwise, try removing local variables.
stderr:    --> src/ZAMM.sol:383:45:
stderr:     |
stderr: 383 |             uint256 amount1Optimal = mulDiv(amount0Desired, reserve1, reserve0);
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-ztwj1git/out/build-info is not a directory.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Found two issues: reserve accounting assumes full token transfers (fee-on-transfer tokens can drain pools) and ERC6909 transfer return values are unchecked, allowing malicious tokens to bypass payment.
View stdout
{"no_findings":false,"summary":"Found two issues: reserve accounting assumes full token transfers (fee-on-transfer tokens can drain pools) and ERC6909 transfer return values are unchecked, allowing malicious tokens to bypass payment.","findings":[{"severity":"medium","category":"other","title":"Fee-on-transfer/deflationary tokens break reserve accounting and allow pool draining","exploit_scenario":"An attacker creates or targets a pool containing a fee-on-transfer token. When swapping in or adding liquidity, the contract uses the requested `amountIn`/`amount` to price and update reserves, even if the token transfer delivers less. The pool overpays the other asset on swaps and/or records inflated reserves, enabling repeated swaps to drain the counter-asset.","recommendation":"Track actual received amounts by measuring balances before/after transfers (or use balance-based math like Uniswap V2) and update reserves using the real deltas. Alternatively, explicitly reject fee-on-transfer/deflationary tokens by verifying that received amount matches the expected input.","evidence":"`swapExactIn`/`swapExactOut` compute outputs from `amountIn` and update reserves with `reserve + amountIn` after `_safeTransferFrom` without checking actual received balances; `addLiquidity` similarly updates reserves with requested amounts rather than balance deltas.","locations":["src/ZAMM.sol:swapExactIn","src/ZAMM.sol:swapExactOut","src/ZAMM.sol:addLiquidity"]},{"severity":"medium","category":"other","title":"Unchecked ERC6909 transfer return values enable malicious tokens to bypass payment","exploit_scenario":"A malicious ERC6909-like token can return `false` (or otherwise not move balances) from `transfer`/`transferFrom` without reverting. Because the AMM ignores these return values, it will proceed as if tokens were moved. The attacker can then add liquidity or swap without actually paying in, draining the paired asset.","recommendation":"Require `transfer`/`transferFrom` to return true (or revert on failure) and revert otherwise. Consider wrapping ERC6909 calls in a safe helper that validates the return value.","evidence":"`_safeTransfer` calls `ZERC6909(token).transfer(...)` and ignores its boolean return; `_safeTransferFrom` calls `ZERC6909(token).transferFrom(...)` and ignores its boolean return.","locations":["src/ZAMM.sol:_safeTransfer","src/ZAMM.sol:_safeTransferFrom"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-fkym_o1s
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb2f5-aaa7-7011-ae8d-7c67f98e783e
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

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

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

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

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

================================================================================
FILE: src/ZAMM.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.29;

import "./ZERC6909.sol";
import "./utils/Math.sol";
import "./utils/TransferHelper.sol";

// maximally simple constant product AMM singleton
// minted by z0r0z as concentric liquidity backend
contract ZAMM is ZERC6909 {
    uint256 constant MINIMUM_LIQUIDITY = 1000;
    uint256 constant MAX_FEE = 10000; // 100%

    mapping(uint256 poolId => Pool) public pools;


Reconnecting... 1/5






thinking
**Analyzing contract vulnerabilities and reentrancy risks**

I'm auditing ZAMM's transient storage, reentrancy guard, and token minting logic, focusing on potential supply inflation from coinId collisions in make/makeLiquid and transient balance manipulation via to==address(this) transfers. I'm exploring how multicall, delegatecalls, and lack of locking in some functions might allow reentrancy or unauthorized balance changes, while noting usage of tx.origin for ownership and standard oracle manipulation risks. The transient storage design and reentrancy protections seem mostly sound but some deposit and refund flows might permit subtle reentrancy scenarios. I'll keep assessing exploitability and severity.
thinking
**Examining swap input handling and pool initialization flaws**

I'm diving into how swap relies on transient balances keyed by caller rather than actual token balances, which limits inputs to the caller’s deposits and creates constraints when `to` differs from caller in callbacks. This design might cause issues with token transfers and flash swaps. Also, minting pools via makeLiquid lacks checks for existing pools, risking overwrites of reserve and supply data on repeated calls with the same poolId, which could reset pool state unintentionally.
thinking
**Analyzing pool reinitialization and multicall intricacies**

I’m exploring how reinitializing a pool via makeLiquid can reset reserves and supply without accounting for existing tokens in the contract, potentially causing stuck or misaligned assets. The unique coinId generation allows callers to overwrite their own pools, which might affect LP balances and pool state unpredictably. Additionally, multicall’s delegatecall behavior and payable function restrictions raise questions about msg.value handling across multiple calls, hinting at possible edge cases in ETH usage during batched operations.
thinking
**Examining transient balances and token minting nuances**

I’m digging into how transient balances are managed during swaps and deposits, especially the use of tstore without overflow checks and how minted tokens interact with pool reserves. I also see a potential token ID collision due to timestamp-based IDs allowing repeated minting within a single transaction, which might let a creator inflate their token supply unexpectedly. The handling of fee-on-transfer tokens could cause reserve miscalculations that attackers might exploit through repeated swaps.
thinking
**Investigating unchecked transfers and multicall locking**

I’m analyzing how the multicall lock interacts with transient storage and whether multiple locked calls can be safely made in one transaction. I also noticed unchecked return values on ERC6909 transfers might let a malicious token skip transferring while reserves update, potentially letting attackers manipulate pool balances. There’s also discussion about fee-on-transfer tokens and some subtle nuances in liquidity provisioning and swap fee handling.
thinking
**Detailing fee-on-transfer and ERC6909 transfer issues**

I've identified two main concerns: the pool accounting assumes transferred token amounts equal declared amounts, so fee-on-transfer tokens can cause reserve imbalances that let attackers drain other assets; and ERC6909 token transfers don’t check return values, enabling malicious tokens to fake successful transfers without moving balances, risking pool theft. I'll prepare detailed findings including exploit scenarios, evidence, and recommendations in JSON format.
codex
{"no_findings":false,"summary":"Found two issues: reserve accounting assumes full token transfers (fee-on-transfer tokens can drain pools) and ERC6909 transfer return values are unchecked, allowing malicious tokens to bypass payment.","findings":[{"severity":"medium","category":"other","title":"Fee-on-transfer/deflationary tokens break reserve accounting and allow pool draining","exploit_scenario":"An attacker creates or targets a pool containing a fee-on-transfer token. When swapping in or adding liquidity, the contract uses the requested `amountIn`/`amount` to price and update reserves, even if the token transfer delivers less. The pool overpays the other asset on swaps and/or records inflated reserves, enabling repeated swaps to drain the counter-asset.","recommendation":"Track actual received amounts by measuring balances before/after transfers (or use balance-based math like Uniswap V2) and update reserves using the real deltas. Alternatively, explicitly reject fee-on-transfer/deflationary tokens by verifying that received amount matches the expected input.","evidence":"`swapExactIn`/`swapExactOut` compute outputs from `amountIn` and update reserves with `reserve + amountIn` after `_safeTransferFrom` without checking actual received balances; `addLiquidity` similarly updates reserves with requested amounts rather than balance deltas.","locations":["src/ZAMM.sol:swapExactIn","src/ZAMM.sol:swapExactOut","src/ZAMM.sol:addLiquidity"]},{"severity":"medium","category":"other","title":"Unchecked ERC6909 transfer return values enable malicious tokens to bypass payment","exploit_scenario":"A malicious ERC6909-like token can return `false` (or otherwise not move balances) from `transfer`/`transferFrom` without reverting. Because the AMM ignores these return values, it will proceed as if tokens were moved. The attacker can then add liquidity or swap without actually paying in, draining the paired asset.","recommendation":"Require `transfer`/`transferFrom` to return true (or revert on failure) and revert otherwise. Consider wrapping ERC6909 calls in a safe helper that validates the return value.","evidence":"`_safeTransfer` calls `ZERC6909(token).transfer(...)` and ignores its boolean return; `_safeTransferFrom` calls `ZERC6909(token).transferFrom(...)` and ignores its boolean return.","locations":["src/ZAMM.sol:_safeTransfer","src/ZAMM.sol:_safeTransferFrom"]}]}
tokens used
27,671
Metadata
{
    "codex": {
        "ran_at": "2026-01-12T16:17:08.594659+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 4,
        "import_count": 3,
        "first_party_contracts_count": 4
    },
    "summary": "Found two issues: reserve accounting assumes full token transfers (fee-on-transfer tokens can drain pools) and ERC6909 transfer return values are unchecked, allowing malicious tokens to bypass payment.",
    "raw_final": {
        "summary": "Found two issues: reserve accounting assumes full token transfers (fee-on-transfer tokens can drain pools) and ERC6909 transfer return values are unchecked, allowing malicious tokens to bypass payment.",
        "findings": [
            {
                "title": "Fee-on-transfer/deflationary tokens break reserve accounting and allow pool draining",
                "category": "other",
                "evidence": "`swapExactIn`/`swapExactOut` compute outputs from `amountIn` and update reserves with `reserve + amountIn` after `_safeTransferFrom` without checking actual received balances; `addLiquidity` similarly updates reserves with requested amounts rather than balance deltas.",
                "severity": "medium",
                "locations": [
                    "src/ZAMM.sol:swapExactIn",
                    "src/ZAMM.sol:swapExactOut",
                    "src/ZAMM.sol:addLiquidity"
                ],
                "recommendation": "Track actual received amounts by measuring balances before/after transfers (or use balance-based math like Uniswap V2) and update reserves using the real deltas. Alternatively, explicitly reject fee-on-transfer/deflationary tokens by verifying that received amount matches the expected input.",
                "exploit_scenario": "An attacker creates or targets a pool containing a fee-on-transfer token. When swapping in or adding liquidity, the contract uses the requested `amountIn`/`amount` to price and update reserves, even if the token transfer delivers less. The pool overpays the other asset on swaps and/or records inflated reserves, enabling repeated swaps to drain the counter-asset."
            },
            {
                "title": "Unchecked ERC6909 transfer return values enable malicious tokens to bypass payment",
                "category": "other",
                "evidence": "`_safeTransfer` calls `ZERC6909(token).transfer(...)` and ignores its boolean return; `_safeTransferFrom` calls `ZERC6909(token).transferFrom(...)` and ignores its boolean return.",
                "severity": "medium",
                "locations": [
                    "src/ZAMM.sol:_safeTransfer",
                    "src/ZAMM.sol:_safeTransferFrom"
                ],
                "recommendation": "Require `transfer`/`transferFrom` to return true (or revert on failure) and revert otherwise. Consider wrapping ERC6909 calls in a safe helper that validates the return value.",
                "exploit_scenario": "A malicious ERC6909-like token can return `false` (or otherwise not move balances) from `transfer`/`transferFrom` without reverting. Because the AMM ignores these return values, it will proceed as if tokens were moved. The attacker can then add liquidity or swap without actually paying in, draining the paired asset."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
4
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
3
Total opcodes
5846
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: DUP1
00000003: PUSH1 0x40
00000005: MSTORE
00000006: PUSH1 0x04
00000008: CALLDATASIZE
00000009: LT
0000000a: ISZERO
0000000b: PUSH2 0x0106
0000000e: JUMPI
0000000f: JUMPDEST
00000010: POP
00000011: CALLDATASIZE
00000012: ISZERO
00000013: PUSH2 0x00ef
00000016: JUMPI
00000017: PUSH0
00000018: PUSH0
00000019: JUMPDEST
0000001a: DUP1
0000001b: SWAP2
0000001c: CALLDATASIZE
0000001d: DUP3
0000001e: LT
0000001f: ISZERO
00000020: PUSH2 0x00d6
00000023: JUMPI
00000024: PUSH1 0x01
00000026: DUP3
00000027: CALLDATALOAD
00000028: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000049: DUP5
0000004a: ADD
0000004b: XOR
0000004c: PUSH0
0000004d: BYTE
0000004e: SWAP3
0000004f: ADD
00000050: SWAP2
00000051: DUP1
00000052: ISZERO
00000053: PUSH2 0x0065
00000056: JUMPI
00000057: PUSH1 0x01
00000059: SWAP3
0000005a: SWAP4
0000005b: POP
0000005c: DUP2
0000005d: MSTORE8
0000005e: ADD
0000005f: JUMPDEST
00000060: SWAP1
00000061: PUSH2 0x0019
00000064: JUMP
00000065: JUMPDEST
00000066: POP
00000067: PUSH1 0x7f
00000069: PUSH1 0x02
0000006b: PUSH1 0x01
0000006d: SWAP4
0000006e: CALLDATALOAD
0000006f: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
00000090: DUP7
00000091: ADD
00000092: XOR
00000093: PUSH0
00000094: BYTE
00000095: SWAP5
00000096: ADD
00000097: SWAP4
00000098: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000000b9: DUP4
000000ba: MSTORE
000000bb: DUP2
000000bc: DUP2
000000bd: GT
000000be: ISZERO
000000bf: PUSH2 0x00cb
000000c2: JUMPI
000000c3: JUMPDEST
000000c4: AND
000000c5: ADD
000000c6: ADD
000000c7: PUSH2 0x005f
000000ca: JUMP
000000cb: JUMPDEST
000000cc: DUP4
000000cd: DUP2
000000ce: ADD
000000cf: CALLDATASIZE
000000d0: DUP5
000000d1: CALLDATACOPY
000000d2: PUSH2 0x00c3
000000d5: JUMP
000000d6: JUMPDEST
000000d7: PUSH0
000000d8: SWAP1
000000d9: CODESIZE
000000da: SWAP1
000000db: DUP3
000000dc: ADDRESS
000000dd: GAS
000000de: DELEGATECALL
000000df: RETURNDATASIZE
000000e0: PUSH0
000000e1: DUP1
000000e2: RETURNDATACOPY
000000e3: ISZERO
000000e4: PUSH2 0x00eb
000000e7: JUMPI
000000e8: RETURNDATASIZE
000000e9: PUSH0
000000ea: RETURN
000000eb: JUMPDEST
000000ec: RETURNDATASIZE
000000ed: PUSH0
000000ee: REVERT
000000ef: JUMPDEST
000000f0: CALLER
000000f1: PUSH0
000000f2: MSTORE
000000f3: PUSH0
000000f4: PUSH1 0x20
000000f6: MSTORE
000000f7: PUSH0
000000f8: PUSH1 0x40
000000fa: MSTORE
000000fb: PUSH1 0x60
000000fd: PUSH0
000000fe: KECCAK256
000000ff: CALLVALUE
00000100: DUP2
00000101: TLOAD
00000102: ADD
00000103: SWAP1
00000104: TSTORE
00000105: STOP
00000106: JUMPDEST
00000107: PUSH0
00000108: SWAP1
00000109: PUSH0
0000010a: CALLDATALOAD
0000010b: PUSH1 0xe0
0000010d: SHR
0000010e: SWAP1
0000010f: DUP2
00000110: PUSH3 0xfdd58e
00000114: EQ
00000115: PUSH2 0x2593
00000118: JUMPI
00000119: POP
0000011a: DUP1
0000011b: PUSH4 0x01ffc9a7
00000120: EQ
00000121: PUSH2 0x2519
00000124: JUMPI
00000125: DUP1
00000126: PUSH4 0x095bcdb6
0000012b: EQ
0000012c: PUSH2 0x2465
0000012f: JUMPI
00000130: DUP1
00000131: PUSH4 0x0efe6a8b
00000136: EQ
00000137: PUSH2 0x2404
0000013a: JUMPI
0000013b: DUP1
0000013c: PUSH4 0x426a8493
00000141: EQ
00000142: PUSH2 0x23a1
00000145: JUMPI
00000146: DUP1
00000147: PUSH4 0x48416da8
0000014c: EQ
0000014d: PUSH2 0x1e4f
00000150: JUMPI
00000151: DUP1
00000152: PUSH4 0x558a7297
00000157: EQ
00000158: PUSH2 0x1db9
0000015b: JUMPI
0000015c: DUP1
0000015d: PUSH4 0x598af9e7
00000162: EQ
00000163: PUSH2 0x1d4f
00000166: JUMPI
00000167: DUP1
00000168: PUSH4 0x6dc2a7b3
0000016d: EQ
0000016e: PUSH2 0x1c37
00000171: JUMPI
00000172: DUP1
00000173: PUSH4 0x7466fde7
00000178: EQ
00000179: PUSH2 0x18ed
0000017c: JUMPI
0000017d: DUP1
0000017e: PUSH4 0x895ccb32
00000183: EQ
00000184: PUSH2 0x1487
00000187: JUMPI
00000188: DUP1
00000189: PUSH4 0xa2e74af6
0000018e: EQ
0000018f: PUSH2 0x1447
00000192: JUMPI
00000193: DUP1
00000194: PUSH4 0xa647fc2a
00000199: EQ
0000019a: PUSH2 0x135f
0000019d: JUMPI
0000019e: DUP1
0000019f: PUSH4 0xac4afa38
000001a4: EQ
000001a5: PUSH2 0x12ba
000001a8: JUMPI
000001a9: DUP1
000001aa: PUSH4 0xac9650d8
000001af: EQ
000001b0: PUSH2 0x0f65
000001b3: JUMPI
000001b4: DUP1
000001b5: PUSH4 0xb6363cf2
000001ba: EQ
000001bb: PUSH2 0x0f01
000001be: JUMPI
000001bf: DUP1
000001c0: PUSH4 0xc2b41484
000001c5: EQ
000001c6: PUSH2 0x0a09
000001c9: JUMPI
000001ca: DUP1
000001cb: PUSH4 0xd4ff3f0e
000001d0: EQ
000001d1: PUSH2 0x05a3
000001d4: JUMPI
000001d5: DUP1
000001d6: PUSH4 0xf46901ed
000001db: EQ
000001dc: PUSH2 0x0555
000001df: JUMPI
000001e0: DUP1
000001e1: PUSH4 0xfb575d90
000001e6: EQ
000001e7: PUSH2 0x0332
000001ea: JUMPI
000001eb: PUSH4 0xfe99049a
000001f0: SUB
000001f1: PUSH2 0x000f
000001f4: JUMPI
000001f5: CALLVALUE
000001f6: PUSH2 0x032f
000001f9: JUMPI
000001fa: PUSH1 0x80
000001fc: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000021d: CALLDATASIZE
0000021e: ADD
0000021f: SLT
00000220: PUSH2 0x032f
00000223: JUMPI
00000224: PUSH2 0x022b
00000227: PUSH2 0x25e9
0000022a: JUMP
0000022b: JUMPDEST
0000022c: SWAP1
0000022d: PUSH2 0x0234
00000230: PUSH2 0x260c
00000233: JUMP
00000234: JUMPDEST
00000235: SWAP2
00000236: PUSH1 0x44
00000238: CALLDATALOAD
00000239: SWAP1
0000023a: PUSH1 0x64
0000023c: CALLDATALOAD
0000023d: PUSH8 0xedcaa89a82293940
00000246: PUSH1 0x34
00000248: MSTORE
00000249: DUP2
0000024a: PUSH1 0x28
0000024c: MSTORE
0000024d: CALLER
0000024e: PUSH1 0x14
00000250: MSTORE
00000251: PUSH1 0x34
00000253: PUSH1 0x20
00000255: KECCAK256
00000256: SLOAD
00000257: ISZERO
00000258: PUSH2 0x02f6
0000025b: JUMPI
0000025c: JUMPDEST
0000025d: DUP3
0000025e: PUSH1 0x14
00000260: MSTORE
00000261: PUSH1 0x40
00000263: PUSH1 0x14
00000265: KECCAK256
00000266: DUP1
00000267: SLOAD
00000268: DUP1
00000269: DUP4
0000026a: GT
0000026b: PUSH2 0x02e9
0000026e: JUMPI
0000026f: DUP3
00000270: SWAP1
00000271: SUB
00000272: SWAP1
00000273: SSTORE
00000274: DUP5
00000275: PUSH1 0x28
00000277: MSTORE
00000278: DUP3
00000279: PUSH1 0x14
0000027b: MSTORE
0000027c: PUSH1 0x40
0000027e: PUSH1 0x14
00000280: KECCAK256
00000281: DUP1
00000282: SLOAD
00000283: SWAP1
00000284: DUP3
00000285: DUP3
00000286: ADD
00000287: SWAP2
00000288: DUP3
00000289: LT
0000028a: PUSH2 0x02dc
0000028d: JUMPI
0000028e: SSTORE
0000028f: CALLER
00000290: DUP5
00000291: MSTORE
00000292: PUSH1 0x20
00000294: SWAP1
00000295: DUP2
00000296: MSTORE
00000297: SWAP4
00000298: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002ad: SWAP1
000002ae: DUP2
000002af: AND
000002b0: SWAP2
000002b1: AND
000002b2: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859
000002d3: PUSH1 0x40
000002d5: DUP6
000002d6: LOG4
000002d7: PUSH1 0x01
000002d9: DUP2
000002da: MSTORE
000002db: RETURN
000002dc: JUMPDEST
000002dd: PUSH4 0x89560ca1
000002e2: DUP7
000002e3: MSTORE
000002e4: PUSH1 0x04
000002e6: PUSH1 0x1c
000002e8: REVERT
000002e9: JUMPDEST
000002ea: PUSH4 0xf4d678b8
000002ef: DUP7
000002f0: MSTORE
000002f1: PUSH1 0x04
000002f3: PUSH1 0x1c
000002f5: REVERT
000002f6: JUMPDEST
000002f7: DUP3
000002f8: DUP5
000002f9: MSTORE
000002fa: PUSH1 0x54
000002fc: DUP5
000002fd: KECCAK256
000002fe: DUP1
000002ff: SLOAD
00000300: PUSH1 0x01
00000302: DUP2
00000303: ADD
00000304: PUSH2 0x030f
00000307: JUMPI
00000308: JUMPDEST
00000309: POP
0000030a: POP
0000030b: PUSH2 0x025c
0000030e: JUMP
0000030f: JUMPDEST
00000310: DUP1
00000311: DUP4
00000312: GT
00000313: PUSH2 0x0322
00000316: JUMPI
00000317: DUP3
00000318: SWAP1
00000319: SUB
0000031a: SWAP1
0000031b: SSTORE
0000031c: PUSH0
0000031d: DUP1
0000031e: PUSH2 0x0308
00000321: JUMP
00000322: JUMPDEST
00000323: PUSH4 0xdeda9030
00000328: DUP7
00000329: MSTORE
0000032a: PUSH1 0x04
0000032c: PUSH1 0x1c
0000032e: REVERT
0000032f: JUMPDEST
00000330: DUP1
00000331: REVERT
00000332: JUMPDEST
00000333: POP
00000334: CALLVALUE
00000335: PUSH2 0x032f
00000338: JUMPI
00000339: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000035a: CALLDATASIZE
0000035b: ADD
0000035c: PUSH2 0x0140
0000035f: DUP2
00000360: SLT
00000361: PUSH2 0x0551
00000364: JUMPI
00000365: PUSH1 0xa0
00000367: SGT
00000368: PUSH2 0x032f
0000036b: JUMPI
0000036c: PUSH1 0xa4
0000036e: CALLDATALOAD
0000036f: PUSH2 0x0104
00000372: CALLDATALOAD
00000373: SWAP1
00000374: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000389: DUP3
0000038a: AND
0000038b: SWAP3
0000038c: DUP4
0000038d: DUP4
0000038e: SUB
0000038f: PUSH2 0x032f
00000392: JUMPI
00000393: PUSH9 0x929eee149b4bd21268
0000039d: TLOAD
0000039e: PUSH2 0x0544
000003a1: JUMPI
000003a2: ADDRESS
000003a3: PUSH9 0x929eee149b4bd21268
000003ad: TSTORE
000003ae: TIMESTAMP
000003af: PUSH2 0x0124
000003b2: CALLDATALOAD
000003b3: LT
000003b4: PUSH2 0x051c
000003b7: JUMPI
000003b8: PUSH1 0xa0
000003ba: PUSH1 0x40
000003bc: MLOAD
000003bd: DUP2
000003be: PUSH1 0x04
000003c0: DUP3
000003c1: CALLDATACOPY
000003c2: KECCAK256
000003c3: SWAP4
000003c4: DUP5
000003c5: DUP3
000003c6: MSTORE
000003c7: DUP2
000003c8: PUSH1 0x20
000003ca: MSTORE
000003cb: PUSH1 0x40
000003cd: DUP3
000003ce: KECCAK256
000003cf: SWAP5
000003d0: DUP6
000003d1: SLOAD
000003d2: SWAP6
000003d3: PUSH14 0xffffffffffffffffffffffffffff
000003e2: DUP1
000003e3: DUP9
000003e4: AND
000003e5: SWAP8
000003e6: PUSH1 0x70
000003e8: SHR
000003e9: AND
000003ea: SWAP7
000003eb: PUSH2 0x03f6
000003ee: DUP9
000003ef: DUP3
000003f0: DUP6
000003f1: DUP6
000003f2: PUSH2 0x2a64
000003f5: JUMP
000003f6: JUMPDEST
000003f7: SWAP1
000003f8: PUSH1 0x04
000003fa: DUP4
000003fb: ADD
000003fc: SWAP8
000003fd: DUP9
000003fe: SLOAD
000003ff: SWAP9
00000400: PUSH2 0x0415
00000403: PUSH2 0x040d
00000406: DUP12
00000407: DUP6
00000408: DUP13
00000409: PUSH2 0x2bc9
0000040c: JUMP
0000040d: JUMPDEST
0000040e: SWAP11
0000040f: DUP13
00000410: DUP12
00000411: PUSH2 0x2bc9
00000414: JUMP
00000415: JUMPDEST
00000416: SWAP9
00000417: PUSH1 0xc4
00000419: CALLDATALOAD
0000041a: DUP12
0000041b: LT
0000041c: PUSH2 0x04f4
0000041f: JUMPI
00000420: PUSH1 0xe4
00000422: CALLDATALOAD
00000423: DUP11
00000424: LT
00000425: PUSH2 0x04f4
00000428: JUMPI
00000429: DUP10
0000042a: PUSH1 0x40
0000042c: SWAP13
0000042d: SWAP4
0000042e: PUSH2 0x047a
00000431: SWAP6
00000432: SWAP4
00000433: DUP4
00000434: PUSH2 0x0440
00000437: PUSH2 0x046d
0000043a: SWAP6
0000043b: DUP13
0000043c: PUSH2 0x30ef
0000043f: JUMP
00000440: JUMPDEST
00000441: DUP2
00000442: SLOAD
00000443: SUB
00000444: SWAP1
00000445: SSTORE
00000446: PUSH2 0x045b
00000449: DUP14
0000044a: PUSH2 0x0451
0000044d: PUSH2 0x2725
00000450: JUMP
00000451: JUMPDEST
00000452: DUP4
00000453: PUSH1 0x04
00000455: CALLDATALOAD
00000456: SWAP2
00000457: PUSH2 0x2f1c
0000045a: JUMP
0000045b: JUMPDEST
0000045c: PUSH2 0x0463
0000045f: PUSH2 0x2748
00000462: JUMP
00000463: JUMPDEST
00000464: SWAP1
00000465: PUSH1 0x24
00000467: CALLDATALOAD
00000468: SWAP2
00000469: PUSH2 0x2f1c
0000046c: JUMP
0000046d: JUMPDEST
0000046e: DUP9
0000046f: DUP3
00000470: SUB
00000471: DUP11
00000472: DUP3
00000473: SUB
00000474: DUP8
00000475: DUP8
00000476: PUSH2 0x2cf5
00000479: JUMP
0000047a: JUMPDEST
0000047b: PUSH2 0x04c8
0000047e: JUMPI
0000047f: JUMPDEST
00000480: POP
00000481: DUP6
00000482: MLOAD
00000483: SWAP1
00000484: DUP6
00000485: DUP3
00000486: MSTORE
00000487: DUP5
00000488: PUSH1 0x20
0000048a: DUP4
0000048b: ADD
0000048c: MSTORE
0000048d: PUSH32 0xd72b7803f66104fa4755cf48b28b9408682e97a0b000dd97c8ee3219aa8454ec
000004ae: DUP8
000004af: CALLER
000004b0: SWAP4
000004b1: LOG4
000004b2: PUSH9 0x929eee149b4bd21268
000004bc: TSTORE
000004bd: DUP3
000004be: MLOAD
000004bf: SWAP2
000004c0: DUP3
000004c1: MSTORE
000004c2: PUSH1 0x20
000004c4: DUP3
000004c5: ADD
000004c6: MSTORE
000004c7: RETURN
000004c8: JUMPDEST
000004c9: PUSH1 0x03
000004cb: PUSH2 0x04eb
000004ce: DUP3
000004cf: SLOAD
000004d0: PUSH14 0xffffffffffffffffffffffffffff
000004df: DUP1
000004e0: DUP3
000004e1: PUSH1 0x70
000004e3: SHR
000004e4: AND
000004e5: SWAP2
000004e6: AND
000004e7: PUSH2 0x27cd
000004ea: JUMP
000004eb: JUMPDEST
000004ec: SWAP2
000004ed: ADD
000004ee: SSTORE
000004ef: PUSH0
000004f0: PUSH2 0x047f
000004f3: JUMP
000004f4: JUMPDEST
000004f5: PUSH1 0x04
000004f7: DUP10
000004f8: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000
00000519: DUP2
0000051a: MSTORE
0000051b: REVERT
0000051c: JUMPDEST
0000051d: DUP1
0000051e: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000
0000053f: PUSH1 0x04
00000541: SWAP3
00000542: MSTORE
00000543: REVERT
00000544: JUMPDEST
00000545: PUSH4 0xab143c06
0000054a: SWAP1
0000054b: MSTORE
0000054c: PUSH1 0x04
0000054e: PUSH1 0x1c
00000550: REVERT
00000551: JUMPDEST
00000552: POP
00000553: DUP1
00000554: REVERT
00000555: JUMPDEST
00000556: POP
00000557: PUSH1 0x20
00000559: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000057a: CALLDATASIZE
0000057b: ADD
0000057c: SLT
0000057d: PUSH2 0x032f
00000580: JUMPI
00000581: PUSH2 0x0588
00000584: PUSH2 0x25e9
00000587: JUMP
00000588: JUMPDEST
00000589: DUP2
0000058a: SLOAD
0000058b: CALLER
0000058c: SUB
0000058d: PUSH2 0x0596
00000590: JUMPI
00000591: PUSH1 0x20
00000593: SSTORE
00000594: DUP1
00000595: RETURN
00000596: JUMPDEST
00000597: PUSH4 0x82b42900
0000059c: DUP3
0000059d: MSTORE
0000059e: PUSH1 0x04
000005a0: PUSH1 0x1c
000005a2: REVERT
000005a3: JUMPDEST
000005a4: POP
000005a5: PUSH2 0x05ad
000005a8: CALLDATASIZE
000005a9: PUSH2 0x26b2
000005ac: JUMP
000005ad: JUMPDEST
000005ae: PUSH9 0x929eee149b4bd21268
000005b8: SWAP7
000005b9: SWAP5
000005ba: SWAP3
000005bb: SWAP2
000005bc: SWAP7
000005bd: SWAP6
000005be: SWAP4
000005bf: SWAP6
000005c0: TLOAD
000005c1: PUSH2 0x09fc
000005c4: JUMPI
000005c5: ADDRESS
000005c6: PUSH9 0x929eee149b4bd21268
000005d0: TSTORE
000005d1: TIMESTAMP
000005d2: GT
000005d3: PUSH2 0x09d4
000005d6: JUMPI
000005d7: DUP2
000005d8: ISZERO
000005d9: PUSH2 0x09ac
000005dc: JUMPI
000005dd: PUSH1 0xa0
000005df: PUSH1 0x40
000005e1: MLOAD
000005e2: DUP2
000005e3: DUP6
000005e4: DUP3
000005e5: CALLDATACOPY
000005e6: KECCAK256
000005e7: SWAP3
000005e8: DUP4
000005e9: DUP6
000005ea: MSTORE
000005eb: DUP5
000005ec: PUSH1 0x20
000005ee: MSTORE
000005ef: PUSH1 0x40
000005f1: DUP6
000005f2: KECCAK256
000005f3: DUP1
000005f4: SLOAD
000005f5: SWAP2
000005f6: PUSH14 0xffffffffffffffffffffffffffff
00000605: DUP1
00000606: DUP5
00000607: AND
00000608: SWAP4
00000609: PUSH1 0x70
0000060b: SHR
0000060c: AND
0000060d: SWAP4
0000060e: PUSH0
0000060f: EQ
00000610: PUSH2 0x088a
00000613: JUMPI
00000614: DUP4
00000615: DUP6
00000616: LT
00000617: ISZERO
00000618: PUSH2 0x0862
0000061b: JUMPI
0000061c: PUSH2 0x0632
0000061f: PUSH2 0x062a
00000622: PUSH1 0x80
00000624: DUP4
00000625: ADD
00000626: PUSH2 0x27b4
00000629: JUMP
0000062a: JUMPDEST
0000062b: DUP6
0000062c: DUP6
0000062d: DUP9
0000062e: PUSH2 0x307b
00000631: JUMP
00000632: JUMPDEST
00000633: SWAP8
00000634: DUP9
00000635: GT
00000636: PUSH2 0x083a
00000639: JUMPI
0000063a: PUSH1 0x40
0000063c: DUP2
0000063d: ADD
0000063e: PUSH2 0x0646
00000641: DUP2
00000642: PUSH2 0x276b
00000645: JUMP
00000646: JUMPDEST
00000647: SWAP1
00000648: PUSH2 0x0654
0000064b: DUP11
0000064c: DUP5
0000064d: CALLDATALOAD
0000064e: DUP1
0000064f: SWAP5
00000650: PUSH2 0x2bec
00000653: JUMP
00000654: JUMPDEST
00000655: DUP1
00000656: PUSH2 0x080c
00000659: JUMPI
0000065a: JUMPDEST
0000065b: ISZERO
0000065c: PUSH2 0x070a
0000065f: JUMPI
00000660: JUMPDEST
00000661: POP
00000662: POP
00000663: SWAP3
00000664: DUP9
00000665: SWAP3
00000666: PUSH2 0x06b7
00000669: SWAP3
0000066a: PUSH2 0x069c
0000066d: DUP8
0000066e: DUP8
0000066f: PUSH1 0x20
00000671: SWAP14
00000672: DUP15
00000673: PUSH2 0x0693
00000676: PUSH1 0x60
00000678: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000068d: SWAP13
0000068e: ADD
0000068f: PUSH2 0x276b
00000692: JUMP
00000693: JUMPDEST
00000694: SWAP3
00000695: ADD
00000696: CALLDATALOAD
00000697: SWAP2
00000698: PUSH2 0x2f1c
0000069b: JUMP
0000069c: JUMPDEST
0000069d: PUSH2 0x06a6
000006a0: DUP11
000006a1: DUP4
000006a2: PUSH2 0x278c
000006a5: JUMP
000006a6: JUMPDEST
000006a7: DUP9
000006a8: PUSH2 0x06b1
000006ab: DUP10
000006ac: DUP7
000006ad: PUSH2 0x27e0
000006b0: JUMP
000006b1: JUMPDEST
000006b2: SWAP3
000006b3: PUSH2 0x2cf5
000006b6: JUMP
000006b7: JUMPDEST
000006b8: PUSH1 0x40
000006ba: MLOAD
000006bb: SWAP3
000006bc: DUP7
000006bd: DUP5
000006be: MSTORE
000006bf: DUP6
000006c0: DUP9
000006c1: DUP6
000006c2: ADD
000006c3: MSTORE
000006c4: DUP6
000006c5: PUSH1 0x40
000006c7: DUP6
000006c8: ADD
000006c9: MSTORE
000006ca: PUSH1 0x60
000006cc: DUP5
000006cd: ADD
000006ce: MSTORE
000006cf: AND
000006d0: SWAP2
000006d1: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56
000006f2: PUSH1 0x80
000006f4: CALLER
000006f5: SWAP4
000006f6: LOG4
000006f7: JUMPDEST
000006f8: PUSH9 0x929eee149b4bd21268
00000702: TSTORE
00000703: PUSH1 0x40
00000705: MLOAD
00000706: SWAP1
00000707: DUP2
00000708: MSTORE
00000709: RETURN
0000070a: JUMPDEST
0000070b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000720: PUSH2 0x0728
00000723: DUP3
00000724: PUSH2 0x276b
00000727: JUMP
00000728: JUMPDEST
00000729: AND
0000072a: PUSH2 0x07a9
0000072d: JUMPI
0000072e: POP
0000072f: POP
00000730: DUP8
00000731: CALLVALUE
00000732: LT
00000733: PUSH2 0x0781
00000736: JUMPI
00000737: SWAP3
00000738: PUSH1 0x20
0000073a: SWAP9
0000073b: SWAP3
0000073c: PUSH2 0x06b7
0000073f: SWAP3
00000740: PUSH2 0x069c
00000743: DUP8
00000744: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000759: SWAP8
0000075a: DUP13
0000075b: CALLVALUE
0000075c: GT
0000075d: PUSH2 0x0770
00000760: JUMPI
00000761: JUMPDEST
00000762: SWAP5
00000763: SWAP8
00000764: POP
00000765: POP
00000766: POP
00000767: SWAP3
00000768: DUP2
00000769: SWAP5
0000076a: SWAP11
0000076b: POP
0000076c: PUSH2 0x0660
0000076f: JUMP
00000770: JUMPDEST
00000771: PUSH2 0x077c
00000774: DUP14
00000775: CALLVALUE
00000776: SUB
00000777: CALLER
00000778: PUSH2 0x30d3
0000077b: JUMP
0000077c: JUMPDEST
0000077d: PUSH2 0x0761
00000780: JUMP
00000781: JUMPDEST
00000782: PUSH1 0x04
00000784: DUP8
00000785: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
000007a6: DUP2
000007a7: MSTORE
000007a8: REVERT
000007a9: JUMPDEST
000007aa: CALLVALUE
000007ab: PUSH2 0x07e4
000007ae: JUMPI
000007af: SWAP3
000007b0: PUSH2 0x069c
000007b3: DUP8
000007b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007c9: SWAP8
000007ca: SWAP5
000007cb: PUSH2 0x077c
000007ce: DUP14
000007cf: PUSH1 0x20
000007d1: SWAP16
000007d2: SWAP10
000007d3: SWAP7
000007d4: PUSH2 0x07df
000007d7: PUSH2 0x06b7
000007da: SWAP11
000007db: PUSH2 0x276b
000007de: JUMP
000007df: JUMPDEST
000007e0: PUSH2 0x290a
000007e3: JUMP
000007e4: JUMPDEST
000007e5: PUSH1 0x04
000007e7: DUP10
000007e8: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
00000809: DUP2
0000080a: MSTORE
0000080b: REVERT
0000080c: JUMPDEST
0000080d: CALLVALUE
0000080e: ISZERO
0000080f: PUSH2 0x065a
00000812: JUMPI
00000813: PUSH1 0x04
00000815: DUP11
00000816: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
00000837: DUP2
00000838: MSTORE
00000839: REVERT
0000083a: JUMPDEST
0000083b: PUSH1 0x04
0000083d: DUP8
0000083e: PUSH32 0x098fb56100000000000000000000000000000000000000000000000000000000
0000085f: DUP2
00000860: MSTORE
00000861: REVERT
00000862: JUMPDEST
00000863: PUSH1 0x04
00000865: DUP8
00000866: PUSH32 0xbb55fd2700000000000000000000000000000000000000000000000000000000
00000887: DUP2
00000888: MSTORE
00000889: REVERT
0000088a: JUMPDEST
0000088b: DUP3
0000088c: DUP6
0000088d: LT
0000088e: ISZERO
0000088f: PUSH2 0x0862
00000892: JUMPI
00000893: PUSH2 0x08a9
00000896: PUSH2 0x08a1
00000899: PUSH1 0x80
0000089b: DUP4
0000089c: ADD
0000089d: PUSH2 0x27b4
000008a0: JUMP
000008a1: JUMPDEST
000008a2: DUP5
000008a3: DUP7
000008a4: DUP9
000008a5: PUSH2 0x307b
000008a8: JUMP
000008a9: JUMPDEST
000008aa: SWAP8
000008ab: DUP9
000008ac: GT
000008ad: PUSH2 0x083a
000008b0: JUMPI
000008b1: PUSH1 0x60
000008b3: DUP2
000008b4: ADD
000008b5: PUSH2 0x08bd
000008b8: DUP2
000008b9: PUSH2 0x276b
000008bc: JUMP
000008bd: JUMPDEST
000008be: SWAP1
000008bf: PUSH2 0x08ce
000008c2: DUP11
000008c3: PUSH1 0x20
000008c5: DUP6
000008c6: ADD
000008c7: CALLDATALOAD
000008c8: DUP1
000008c9: SWAP5
000008ca: PUSH2 0x2bec
000008cd: JUMP
000008ce: JUMPDEST
000008cf: ISZERO
000008d0: PUSH2 0x0967
000008d3: JUMPI
000008d4: JUMPDEST
000008d5: POP
000008d6: POP
000008d7: SWAP3
000008d8: DUP9
000008d9: SWAP3
000008da: PUSH2 0x0923
000008dd: SWAP3
000008de: PUSH2 0x090e
000008e1: DUP8
000008e2: DUP8
000008e3: PUSH1 0x20
000008e5: SWAP14
000008e6: PUSH2 0x0906
000008e9: PUSH1 0x40
000008eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000900: SWAP12
00000901: ADD
00000902: PUSH2 0x276b
00000905: JUMP
00000906: JUMPDEST
00000907: SWAP2
00000908: CALLDATALOAD
00000909: SWAP2
0000090a: PUSH2 0x2f1c
0000090d: JUMP
0000090e: JUMPDEST
0000090f: PUSH2 0x0918
00000912: DUP8
00000913: DUP4
00000914: PUSH2 0x27e0
00000917: JUMP
00000918: JUMPDEST
00000919: DUP9
0000091a: PUSH2 0x06b1
0000091d: DUP13
0000091e: DUP7
0000091f: PUSH2 0x278c
00000922: JUMP
00000923: JUMPDEST
00000924: PUSH1 0x40
00000926: MLOAD
00000927: SWAP3
00000928: DUP6
00000929: DUP5
0000092a: MSTORE
0000092b: DUP7
0000092c: DUP9
0000092d: DUP6
0000092e: ADD
0000092f: MSTORE
00000930: PUSH1 0x40
00000932: DUP5
00000933: ADD
00000934: MSTORE
00000935: DUP5
00000936: PUSH1 0x60
00000938: DUP5
00000939: ADD
0000093a: MSTORE
0000093b: AND
0000093c: SWAP2
0000093d: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56
0000095e: PUSH1 0x80
00000960: CALLER
00000961: SWAP4
00000962: LOG4
00000963: PUSH2 0x06f7
00000966: JUMP
00000967: JUMPDEST
00000968: CALLVALUE
00000969: PUSH2 0x07e4
0000096c: JUMPI
0000096d: SWAP3
0000096e: PUSH2 0x090e
00000971: DUP8
00000972: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000987: SWAP8
00000988: SWAP5
00000989: PUSH2 0x099d
0000098c: DUP14
0000098d: PUSH1 0x20
0000098f: SWAP16
00000990: SWAP10
00000991: SWAP7
00000992: PUSH2 0x07df
00000995: PUSH2 0x0923
00000998: SWAP11
00000999: PUSH2 0x276b
0000099c: JUMP
0000099d: JUMPDEST
0000099e: SWAP5
0000099f: SWAP8
000009a0: POP
000009a1: POP
000009a2: POP
000009a3: SWAP3
000009a4: DUP2
000009a5: SWAP5
000009a6: SWAP11
000009a7: POP
000009a8: PUSH2 0x08d4
000009ab: JUMP
000009ac: JUMPDEST
000009ad: PUSH1 0x04
000009af: DUP5
000009b0: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000
000009d1: DUP2
000009d2: MSTORE
000009d3: REVERT
000009d4: JUMPDEST
000009d5: PUSH1 0x04
000009d7: DUP5
000009d8: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000
000009f9: DUP2
000009fa: MSTORE
000009fb: REVERT
000009fc: JUMPDEST
000009fd: PUSH4 0xab143c06
00000a02: DUP6
00000a03: MSTORE
00000a04: PUSH1 0x04
00000a06: PUSH1 0x1c
00000a08: REVERT
00000a09: JUMPDEST
00000a0a: POP
00000a0b: PUSH1 0xc0
00000a0d: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000a2e: CALLDATASIZE
00000a2f: ADD
00000a30: SLT
00000a31: PUSH2 0x032f
00000a34: JUMPI
00000a35: PUSH2 0x0a3c
00000a38: PUSH2 0x25e9
00000a3b: JUMP
00000a3c: JUMPDEST
00000a3d: PUSH2 0x0a44
00000a40: PUSH2 0x260c
00000a43: JUMP
00000a44: JUMPDEST
00000a45: PUSH1 0x64
00000a47: CALLDATALOAD
00000a48: SWAP2
00000a49: SWAP1
00000a4a: PUSH1 0x84
00000a4c: CALLDATALOAD
00000a4d: PUSH1 0x44
00000a4f: CALLDATALOAD
00000a50: PUSH1 0xa4
00000a52: CALLDATALOAD
00000a53: PUSH8 0xffffffffffffffff
00000a5c: DUP2
00000a5d: GT
00000a5e: PUSH2 0x0efd
00000a61: JUMPI
00000a62: PUSH2 0x0a6f
00000a65: SWAP1
00000a66: CALLDATASIZE
00000a67: SWAP1
00000a68: PUSH1 0x04
00000a6a: ADD
00000a6b: PUSH2 0x2684
00000a6e: JUMP
00000a6f: JUMPDEST
00000a70: PUSH2 0x2710
00000a73: DUP5
00000a74: GT
00000a75: PUSH2 0x0ed5
00000a78: JUMPI
00000a79: DUP3
00000a7a: NOT
00000a7b: DUP8
00000a7c: GT
00000a7d: PUSH2 0x0ead
00000a80: JUMPI
00000a81: PUSH1 0xa0
00000a83: SWAP4
00000a84: SWAP3
00000a85: SWAP2
00000a86: PUSH32 0x6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b
00000aa7: SWAP2
00000aa8: PUSH1 0x40
00000aaa: MLOAD
00000aab: PUSH1 0x20
00000aad: DUP2
00000aae: ADD
00000aaf: SWAP1
00000ab0: PUSH32 0xc2b4148400000000000000000000000000000000000000000000000000000000
00000ad1: DUP3
00000ad2: MSTORE
00000ad3: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00000af4: CALLER
00000af5: PUSH1 0x60
00000af7: SHL
00000af8: AND
00000af9: PUSH1 0x24
00000afb: DUP3
00000afc: ADD
00000afd: MSTORE
00000afe: TIMESTAMP
00000aff: PUSH1 0x38
00000b01: DUP3
00000b02: ADD
00000b03: MSTORE
00000b04: PUSH1 0x38
00000b06: DUP2
00000b07: MSTORE
00000b08: PUSH2 0x0b12
00000b0b: PUSH1 0x58
00000b0d: DUP3
00000b0e: PUSH2 0x27ed
00000b11: JUMP
00000b12: JUMPDEST
00000b13: MLOAD
00000b14: SWAP1
00000b15: KECCAK256
00000b16: SWAP8
00000b17: DUP5
00000b18: DUP10
00000b19: DUP1
00000b1a: SWAP7
00000b1b: PUSH2 0x0e9c
00000b1e: JUMPI
00000b1f: JUMPDEST
00000b20: POP
00000b21: POP
00000b22: POP
00000b23: PUSH2 0x0b39
00000b26: PUSH1 0x40
00000b28: MLOAD
00000b29: SWAP3
00000b2a: DUP4
00000b2b: SWAP3
00000b2c: PUSH1 0x20
00000b2e: DUP5
00000b2f: MSTORE
00000b30: PUSH1 0x20
00000b32: DUP5
00000b33: ADD
00000b34: SWAP2
00000b35: PUSH2 0x285b
00000b38: JUMP
00000b39: JUMPDEST
00000b3a: SUB
00000b3b: SWAP1
00000b3c: LOG2
00000b3d: PUSH1 0x40
00000b3f: MLOAD
00000b40: SWAP1
00000b41: DUP7
00000b42: DUP3
00000b43: MSTORE
00000b44: DUP5
00000b45: PUSH1 0x20
00000b47: DUP4
00000b48: ADD
00000b49: MSTORE
00000b4a: DUP7
00000b4b: PUSH1 0x40
00000b4d: DUP4
00000b4e: ADD
00000b4f: MSTORE
00000b50: ADDRESS
00000b51: PUSH1 0x60
00000b53: DUP4
00000b54: ADD
00000b55: MSTORE
00000b56: PUSH1 0x80
00000b58: DUP3
00000b59: ADD
00000b5a: MSTORE
00000b5b: KECCAK256
00000b5c: SWAP3
00000b5d: DUP4
00000b5e: DUP6
00000b5f: MSTORE
00000b60: DUP5
00000b61: PUSH1 0x20
00000b63: MSTORE
00000b64: PUSH1 0x40
00000b66: DUP6
00000b67: KECCAK256
00000b68: PUSH1 0x20
00000b6a: SLOAD
00000b6b: ISZERO
00000b6c: ISZERO
00000b6d: PUSH2 0x0c0a
00000b70: PUSH2 0x0b79
00000b73: DUP5
00000b74: CALLVALUE
00000b75: PUSH2 0x27cd
00000b78: JUMP
00000b79: JUMPDEST
00000b7a: DUP1
00000b7b: PUSH17 0xffffffffffffffffffffffffffffffffff
00000b8d: LT
00000b8e: PUSH1 0x07
00000b90: SHL
00000b91: DUP2
00000b92: DUP2
00000b93: SHR
00000b94: PUSH9 0xffffffffffffffffff
00000b9e: LT
00000b9f: PUSH1 0x06
00000ba1: SHL
00000ba2: OR
00000ba3: DUP2
00000ba4: DUP2
00000ba5: SHR
00000ba6: PUSH5 0xffffffffff
00000bac: LT
00000bad: PUSH1 0x05
00000baf: SHL
00000bb0: OR
00000bb1: DUP2
00000bb2: DUP2
00000bb3: SHR
00000bb4: PUSH3 0xffffff
00000bb8: LT
00000bb9: PUSH1 0x04
00000bbb: SHL
00000bbc: OR
00000bbd: PUSH1 0xb5
00000bbf: PUSH3 0x010000
00000bc3: DUP4
00000bc4: DUP4
00000bc5: SHR
00000bc6: ADD
00000bc7: SWAP2
00000bc8: PUSH1 0x01
00000bca: SHR
00000bcb: SHL
00000bcc: MUL
00000bcd: PUSH1 0x12
00000bcf: SHR
00000bd0: DUP1
00000bd1: DUP3
00000bd2: DIV
00000bd3: ADD
00000bd4: PUSH1 0x01
00000bd6: SHR
00000bd7: DUP1
00000bd8: DUP3
00000bd9: DIV
00000bda: ADD
00000bdb: PUSH1 0x01
00000bdd: SHR
00000bde: DUP1
00000bdf: DUP3
00000be0: DIV
00000be1: ADD
00000be2: PUSH1 0x01
00000be4: SHR
00000be5: DUP1
00000be6: DUP3
00000be7: DIV
00000be8: ADD
00000be9: PUSH1 0x01
00000beb: SHR
00000bec: DUP1
00000bed: DUP3
00000bee: DIV
00000bef: ADD
00000bf0: PUSH1 0x01
00000bf2: SHR
00000bf3: DUP1
00000bf4: DUP3
00000bf5: DIV
00000bf6: ADD
00000bf7: PUSH1 0x01
00000bf9: SHR
00000bfa: DUP1
00000bfb: DUP3
00000bfc: DIV
00000bfd: ADD
00000bfe: PUSH1 0x01
00000c00: SHR
00000c01: DUP1
00000c02: DUP1
00000c03: SWAP3
00000c04: DIV
00000c05: LT
00000c06: SWAP1
00000c07: SUB
00000c08: SWAP1
00000c09: JUMP
00000c0a: JUMPDEST
00000c0b: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18
00000c2c: DUP2
00000c2d: ADD
00000c2e: SWAP5
00000c2f: DUP2
00000c30: DUP7
00000c31: GT
00000c32: PUSH2 0x0e6f
00000c35: JUMPI
00000c36: DUP6
00000c37: ISZERO
00000c38: PUSH2 0x0e47
00000c3b: JUMPI
00000c3c: DUP6
00000c3d: DUP9
00000c3e: PUSH2 0x0c46
00000c41: SWAP3
00000c42: PUSH2 0x2c96
00000c45: JUMP
00000c46: JUMPDEST
00000c47: PUSH1 0x04
00000c49: DUP4
00000c4a: ADD
00000c4b: SSTORE
00000c4c: PUSH14 0xffffffffffffffffffffffffffff
00000c5b: CALLVALUE
00000c5c: GT
00000c5d: PUSH2 0x0e1f
00000c60: JUMPI
00000c61: PUSH14 0xffffffffffffffffffffffffffff
00000c70: DUP4
00000c71: GT
00000c72: PUSH2 0x0e1f
00000c75: JUMPI
00000c76: DUP6
00000c77: PUSH32 0x1857d6b557d31cf8c2bf0cb9e6bf60aaeb9d8a0c5829169328ccf950adc4496f
00000c98: PUSH1 0x40
00000c9a: PUSH2 0x0d8b
00000c9d: SWAP8
00000c9e: SWAP9
00000c9f: SWAP10
00000ca0: DUP6
00000ca1: SLOAD
00000ca2: PUSH4 0xffffffff
00000ca7: DUP2
00000ca8: PUSH1 0xe0
00000caa: SHR
00000cab: DUP2
00000cac: TIMESTAMP
00000cad: AND
00000cae: SUB
00000caf: AND
00000cb0: DUP1
00000cb1: ISZERO
00000cb2: ISZERO
00000cb3: DUP1
00000cb4: PUSH2 0x0e18
00000cb7: JUMPI
00000cb8: JUMPDEST
00000cb9: DUP1
00000cba: PUSH2 0x0e11
00000cbd: JUMPI
00000cbe: JUMPDEST
00000cbf: PUSH2 0x0da4
00000cc2: JUMPI
00000cc3: JUMPDEST
00000cc4: POP
00000cc5: AND
00000cc6: TIMESTAMP
00000cc7: PUSH1 0xe0
00000cc9: SHL
00000cca: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000ceb: AND
00000cec: OR
00000ced: CALLVALUE
00000cee: PUSH14 0xffffffffffffffffffffffffffff
00000cfd: SWAP1
00000cfe: DUP2
00000cff: AND
00000d00: SWAP2
00000d01: DUP3
00000d02: OR
00000d03: PUSH1 0x70
00000d05: DUP10
00000d06: SWAP1
00000d07: SHL
00000d08: PUSH28 0xffffffffffffffffffffffffffff0000000000000000000000000000
00000d25: AND
00000d26: OR
00000d27: DUP8
00000d28: SSTORE
00000d29: DUP3
00000d2a: MLOAD
00000d2b: SWAP2
00000d2c: DUP3
00000d2d: MSTORE
00000d2e: DUP8
00000d2f: AND
00000d30: PUSH1 0x20
00000d32: DUP3
00000d33: ADD
00000d34: MSTORE
00000d35: LOG2
00000d36: PUSH2 0x0d8f
00000d39: JUMPI
00000d3a: JUMPDEST
00000d3b: POP
00000d3c: PUSH1 0x40
00000d3e: MLOAD
00000d3f: SWAP1
00000d40: CALLVALUE
00000d41: DUP3
00000d42: MSTORE
00000d43: PUSH1 0x20
00000d45: DUP3
00000d46: ADD
00000d47: MSTORE
00000d48: DUP5
00000d49: PUSH32 0x5a3e96f397e68b20a43c25f664b628805b877334dadfcc925c6c1a3ad4340458
00000d6a: PUSH1 0x40
00000d6c: CALLER
00000d6d: SWAP4
00000d6e: LOG3
00000d6f: PUSH1 0x40
00000d71: MLOAD
00000d72: SWAP4
00000d73: DUP5
00000d74: SWAP4
00000d75: DUP5
00000d76: PUSH1 0x40
00000d78: SWAP2
00000d79: SWAP5
00000d7a: SWAP4
00000d7b: SWAP3
00000d7c: PUSH1 0x60
00000d7e: DUP3
00000d7f: ADD
00000d80: SWAP6
00000d81: DUP3
00000d82: MSTORE
00000d83: PUSH1 0x20
00000d85: DUP3
00000d86: ADD
00000d87: MSTORE
00000d88: ADD
00000d89: MSTORE
00000d8a: JUMP
00000d8b: JUMPDEST
00000d8c: SUB
00000d8d: SWAP1
00000d8e: RETURN
00000d8f: JUMPDEST
00000d90: PUSH1 0x03
00000d92: PUSH2 0x0d9b
00000d95: DUP4
00000d96: CALLVALUE
00000d97: PUSH2 0x27cd
00000d9a: JUMP
00000d9b: JUMPDEST
00000d9c: SWAP2
00000d9d: ADD
00000d9e: SSTORE
00000d9f: PUSH0
00000da0: PUSH2 0x0d3a
00000da3: JUMP
00000da4: JUMPDEST
00000da5: DUP1
00000da6: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000dc3: PUSH2 0x0dcc
00000dc6: DUP6
00000dc7: DUP1
00000dc8: PUSH2 0x3144
00000dcb: JUMP
00000dcc: JUMPDEST
00000dcd: AND
00000dce: MUL
00000dcf: PUSH1 0x01
00000dd1: DUP10
00000dd2: ADD
00000dd3: SWAP1
00000dd4: DUP2
00000dd5: SLOAD
00000dd6: ADD
00000dd7: SWAP1
00000dd8: SSTORE
00000dd9: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000df6: PUSH2 0x0dff
00000df9: DUP5
00000dfa: DUP1
00000dfb: PUSH2 0x3144
00000dfe: JUMP
00000dff: JUMPDEST
00000e00: AND
00000e01: MUL
00000e02: PUSH1 0x02
00000e04: DUP9
00000e05: ADD
00000e06: SWAP1
00000e07: DUP2
00000e08: SLOAD
00000e09: ADD
00000e0a: SWAP1
00000e0b: SSTORE
00000e0c: PUSH0
00000e0d: PUSH2 0x0cc3
00000e10: JUMP
00000e11: JUMPDEST
00000e12: POP
00000e13: DUP3
00000e14: PUSH2 0x0cbe
00000e17: JUMP
00000e18: JUMPDEST
00000e19: POP
00000e1a: DUP3
00000e1b: PUSH2 0x0cb8
00000e1e: JUMP
00000e1f: JUMPDEST
00000e20: PUSH1 0x04
00000e22: DUP8
00000e23: PUSH32 0x35278d1200000000000000000000000000000000000000000000000000000000
00000e44: DUP2
00000e45: MSTORE
00000e46: REVERT
00000e47: JUMPDEST
00000e48: PUSH1 0x04
00000e4a: DUP10
00000e4b: PUSH32 0xd226f9d400000000000000000000000000000000000000000000000000000000
00000e6c: DUP2
00000e6d: MSTORE
00000e6e: REVERT
00000e6f: JUMPDEST
00000e70: PUSH1 0x24
00000e72: DUP10
00000e73: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00000e94: DUP2
00000e95: MSTORE
00000e96: PUSH1 0x11
00000e98: PUSH1 0x04
00000e9a: MSTORE
00000e9b: REVERT
00000e9c: JUMPDEST
00000e9d: PUSH2 0x0ea5
00000ea0: SWAP3
00000ea1: PUSH2 0x2c96
00000ea4: JUMP
00000ea5: JUMPDEST
00000ea6: PUSH0
00000ea7: DUP1
00000ea8: DUP6
00000ea9: PUSH2 0x0b1f
00000eac: JUMP
00000ead: JUMPDEST
00000eae: PUSH1 0x04
00000eb0: DUP9
00000eb1: PUSH32 0x35278d1200000000000000000000000000000000000000000000000000000000
00000ed2: DUP2
00000ed3: MSTORE
00000ed4: REVERT
00000ed5: JUMPDEST
00000ed6: PUSH1 0x04
00000ed8: DUP9
00000ed9: PUSH32 0xda7459b700000000000000000000000000000000000000000000000000000000
00000efa: DUP2
00000efb: MSTORE
00000efc: REVERT
00000efd: JUMPDEST
00000efe: DUP7
00000eff: DUP1
00000f00: REVERT
00000f01: JUMPDEST
00000f02: POP
00000f03: CALLVALUE
00000f04: PUSH2 0x032f
00000f07: JUMPI
00000f08: PUSH1 0x40
00000f0a: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000f2b: CALLDATASIZE
00000f2c: ADD
00000f2d: SLT
00000f2e: PUSH2 0x032f
00000f31: JUMPI
00000f32: PUSH2 0x0f39
00000f35: PUSH2 0x25e9
00000f38: JUMP
00000f39: JUMPDEST
00000f3a: SWAP1
00000f3b: PUSH2 0x0f42
00000f3e: PUSH2 0x260c
00000f41: JUMP
00000f42: JUMPDEST
00000f43: SWAP2
00000f44: PUSH8 0xedcaa89a82293940
00000f4d: PUSH1 0x20
00000f4f: MSTORE
00000f50: PUSH1 0x14
00000f52: MSTORE
00000f53: MSTORE
00000f54: PUSH1 0x20
00000f56: PUSH1 0x34
00000f58: PUSH1 0x0c
00000f5a: KECCAK256
00000f5b: SLOAD
00000f5c: PUSH1 0x40
00000f5e: MLOAD
00000f5f: SWAP1
00000f60: ISZERO
00000f61: ISZERO
00000f62: DUP2
00000f63: MSTORE
00000f64: RETURN
00000f65: JUMPDEST
00000f66: POP
00000f67: CALLVALUE
00000f68: PUSH2 0x032f
00000f6b: JUMPI
00000f6c: PUSH1 0x20
00000f6e: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000f8f: CALLDATASIZE
00000f90: ADD
00000f91: SLT
00000f92: PUSH2 0x032f
00000f95: JUMPI
00000f96: PUSH1 0x04
00000f98: CALLDATALOAD
00000f99: SWAP1
00000f9a: PUSH8 0xffffffffffffffff
00000fa3: DUP3
00000fa4: GT
00000fa5: PUSH2 0x032f
00000fa8: JUMPI
00000fa9: CALLDATASIZE
00000faa: PUSH1 0x23
00000fac: DUP4
00000fad: ADD
00000fae: SLT
00000faf: ISZERO
00000fb0: PUSH2 0x032f
00000fb3: JUMPI
00000fb4: DUP2
00000fb5: PUSH1 0x04
00000fb7: ADD
00000fb8: CALLDATALOAD
00000fb9: PUSH8 0xffffffffffffffff
00000fc2: DUP2
00000fc3: GT
00000fc4: PUSH2 0x0551
00000fc7: JUMPI
00000fc8: CALLDATASIZE
00000fc9: PUSH1 0x24
00000fcb: DUP3
00000fcc: PUSH1 0x05
00000fce: SHL
00000fcf: DUP6
00000fd0: ADD
00000fd1: ADD
00000fd2: GT
00000fd3: PUSH2 0x0551
00000fd6: JUMPI
00000fd7: PUSH2 0x0fdf
00000fda: DUP2
00000fdb: PUSH2 0x2899
00000fde: JUMP
00000fdf: JUMPDEST
00000fe0: SWAP3
00000fe1: PUSH2 0x0fed
00000fe4: PUSH1 0x40
00000fe6: MLOAD
00000fe7: SWAP5
00000fe8: DUP6
00000fe9: PUSH2 0x27ed
00000fec: JUMP
00000fed: JUMPDEST
00000fee: DUP2
00000fef: DUP5
00000ff0: MSTORE
00000ff1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001012: PUSH2 0x101a
00001015: DUP4
00001016: PUSH2 0x2899
00001019: JUMP
0000101a: JUMPDEST
0000101b: ADD
0000101c: DUP4
0000101d: JUMPDEST
0000101e: DUP2
0000101f: DUP2
00001020: LT
00001021: PUSH2 0x12a7
00001024: JUMPI
00001025: POP
00001026: POP
00001027: DUP3
00001028: SWAP1
00001029: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbd
0000104a: DUP2
0000104b: CALLDATASIZE
0000104c: SUB
0000104d: ADD
0000104e: SWAP2
0000104f: JUMPDEST
00001050: DUP4
00001051: DUP2
00001052: SUB
00001053: PUSH2 0x1110
00001056: JUMPI
00001057: DUP6
00001058: DUP6
00001059: PUSH1 0x40
0000105b: MLOAD
0000105c: SWAP2
0000105d: DUP3
0000105e: SWAP2
0000105f: PUSH1 0x20
00001061: DUP4
00001062: ADD
00001063: PUSH1 0x20
00001065: DUP5
00001066: MSTORE
00001067: DUP3
00001068: MLOAD
00001069: DUP1
0000106a: SWAP2
0000106b: MSTORE
0000106c: PUSH1 0x40
0000106e: DUP5
0000106f: ADD
00001070: SWAP2
00001071: PUSH1 0x20
00001073: PUSH1 0x40
00001075: DUP4
00001076: PUSH1 0x05
00001078: SHL
00001079: DUP8
0000107a: ADD
0000107b: ADD
0000107c: SWAP5
0000107d: ADD
0000107e: SWAP3
0000107f: DUP2
00001080: JUMPDEST
00001081: DUP4
00001082: DUP4
00001083: LT
00001084: PUSH2 0x108d
00001087: JUMPI
00001088: DUP7
00001089: DUP7
0000108a: SUB
0000108b: DUP8
0000108c: RETURN
0000108d: JUMPDEST
0000108e: SWAP2
0000108f: SWAP4
00001090: SWAP6
00001091: PUSH1 0x20
00001093: DUP1
00001094: DUP8
00001095: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0
000010b6: DUP3
000010b7: SWAP5
000010b8: PUSH1 0x01
000010ba: SWAP7
000010bb: SWAP9
000010bc: SWAP11
000010bd: SUB
000010be: ADD
000010bf: DUP8
000010c0: MSTORE
000010c1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000010e2: PUSH1 0x1f
000010e4: DUP4
000010e5: DUP13
000010e6: MLOAD
000010e7: DUP1
000010e8: MLOAD
000010e9: SWAP2
000010ea: DUP3
000010eb: SWAP2
000010ec: DUP3
000010ed: DUP8
000010ee: MSTORE
000010ef: ADD
000010f0: DUP7
000010f1: DUP7
000010f2: ADD
000010f3: MCOPY
000010f4: DUP9
000010f5: DUP6
000010f6: DUP3
000010f7: DUP7
000010f8: ADD
000010f9: ADD
000010fa: MSTORE
000010fb: ADD
000010fc: AND
000010fd: ADD
000010fe: ADD
000010ff: SWAP8
00001100: ADD
00001101: SWAP4
00001102: ADD
00001103: SWAP4
00001104: ADD
00001105: SWAP1
00001106: SWAP3
00001107: DUP7
00001108: SWAP6
00001109: SWAP5
0000110a: SWAP3
0000110b: SWAP4
0000110c: PUSH2 0x1080
0000110f: JUMP
00001110: JUMPDEST
00001111: DUP4
00001112: DUP2
00001113: SWAP7
00001114: SWAP5
00001115: SWAP7
00001116: LT
00001117: ISZERO
00001118: PUSH2 0x127a
0000111b: JUMPI
0000111c: PUSH1 0x24
0000111e: DUP2
0000111f: PUSH1 0x05
00001121: SHL
00001122: DUP4
00001123: ADD
00001124: ADD
00001125: CALLDATALOAD
00001126: DUP4
00001127: DUP2
00001128: SLT
00001129: ISZERO
0000112a: PUSH2 0x1276
0000112d: JUMPI
0000112e: DUP3
0000112f: ADD
00001130: PUSH1 0x24
00001132: DUP2
00001133: ADD
00001134: CALLDATALOAD
00001135: SWAP1
00001136: PUSH8 0xffffffffffffffff
0000113f: DUP3
00001140: GT
00001141: PUSH2 0x0efd
00001144: JUMPI
00001145: PUSH1 0x44
00001147: ADD
00001148: DUP2
00001149: CALLDATASIZE
0000114a: SUB
0000114b: DUP2
0000114c: SGT
0000114d: PUSH2 0x0efd
00001150: JUMPI
00001151: DUP2
00001152: DUP8
00001153: SWAP3
00001154: SWAP2
00001155: DUP4
00001156: SWAP3
00001157: PUSH1 0x40
00001159: MLOAD
0000115a: SWAP3
0000115b: DUP4
0000115c: SWAP3
0000115d: DUP4
0000115e: CALLDATACOPY
0000115f: DUP2
00001160: ADD
00001161: DUP4
00001162: DUP2
00001163: MSTORE
00001164: SUB
00001165: SWAP1
00001166: ADDRESS
00001167: GAS
00001168: DELEGATECALL
00001169: RETURNDATASIZE
0000116a: ISZERO
0000116b: PUSH2 0x126e
0000116e: JUMPI
0000116f: RETURNDATASIZE
00001170: SWAP1
00001171: PUSH8 0xffffffffffffffff
0000117a: DUP3
0000117b: GT
0000117c: PUSH2 0x1241
0000117f: JUMPI
00001180: PUSH1 0x40
00001182: MLOAD
00001183: SWAP2
00001184: PUSH2 0x11b5
00001187: PUSH1 0x20
00001189: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000011aa: PUSH1 0x1f
000011ac: DUP5
000011ad: ADD
000011ae: AND
000011af: ADD
000011b0: DUP5
000011b1: PUSH2 0x27ed
000011b4: JUMP
000011b5: JUMPDEST
000011b6: DUP3
000011b7: MSTORE
000011b8: RETURNDATASIZE
000011b9: DUP8
000011ba: PUSH1 0x20
000011bc: DUP5
000011bd: ADD
000011be: RETURNDATACOPY
000011bf: JUMPDEST
000011c0: ISZERO
000011c1: PUSH2 0x1239
000011c4: JUMPI
000011c5: PUSH2 0x11ce
000011c8: DUP3
000011c9: DUP7
000011ca: PUSH2 0x28b1
000011cd: JUMP
000011ce: JUMPDEST
000011cf: MSTORE
000011d0: PUSH2 0x11d9
000011d3: DUP2
000011d4: DUP6
000011d5: PUSH2 0x28b1
000011d8: JUMP
000011d9: JUMPDEST
000011da: POP
000011db: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000011fc: DUP2
000011fd: EQ
000011fe: PUSH2 0x120c
00001201: JUMPI
00001202: PUSH1 0x01
00001204: ADD
00001205: SWAP5
00001206: SWAP3
00001207: SWAP5
00001208: PUSH2 0x104f
0000120b: JUMP
0000120c: JUMPDEST
0000120d: PUSH1 0x24
0000120f: DUP6
00001210: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00001231: DUP2
00001232: MSTORE
00001233: PUSH1 0x11
00001235: PUSH1 0x04
00001237: MSTORE
00001238: REVERT
00001239: JUMPDEST
0000123a: PUSH1 0x20
0000123c: DUP2
0000123d: MLOAD
0000123e: SWAP2
0000123f: ADD
00001240: REVERT
00001241: JUMPDEST
00001242: PUSH1 0x24
00001244: DUP8
00001245: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00001266: DUP2
00001267: MSTORE
00001268: PUSH1 0x41
0000126a: PUSH1 0x04
0000126c: MSTORE
0000126d: REVERT
0000126e: JUMPDEST
0000126f: PUSH1 0x60
00001271: SWAP1
00001272: PUSH2 0x11bf
00001275: JUMP
00001276: JUMPDEST
00001277: DUP6
00001278: DUP1
00001279: REVERT
0000127a: JUMPDEST
0000127b: PUSH1 0x24
0000127d: DUP6
0000127e: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
0000129f: DUP2
000012a0: MSTORE
000012a1: PUSH1 0x32
000012a3: PUSH1 0x04
000012a5: MSTORE
000012a6: REVERT
000012a7: JUMPDEST
000012a8: PUSH1 0x60
000012aa: PUSH1 0x20
000012ac: DUP3
000012ad: DUP9
000012ae: ADD
000012af: DUP2
000012b0: ADD
000012b1: SWAP2
000012b2: SWAP1
000012b3: SWAP2
000012b4: MSTORE
000012b5: ADD
000012b6: PUSH2 0x101d
000012b9: JUMP
000012ba: JUMPDEST
000012bb: POP
000012bc: CALLVALUE
000012bd: PUSH2 0x032f
000012c0: JUMPI
000012c1: PUSH1 0x20
000012c3: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000012e4: CALLDATASIZE
000012e5: ADD
000012e6: SLT
000012e7: PUSH2 0x032f
000012ea: JUMPI
000012eb: PUSH1 0x40
000012ed: PUSH1 0xe0
000012ef: SWAP2
000012f0: PUSH1 0x04
000012f2: CALLDATALOAD
000012f3: DUP2
000012f4: MSTORE
000012f5: DUP1
000012f6: PUSH1 0x20
000012f8: MSTORE
000012f9: KECCAK256
000012fa: DUP1
000012fb: SLOAD
000012fc: SWAP1
000012fd: PUSH1 0x01
000012ff: DUP2
00001300: ADD
00001301: SLOAD
00001302: SWAP1
00001303: PUSH1 0x02
00001305: DUP2
00001306: ADD
00001307: SLOAD
00001308: PUSH1 0x04
0000130a: PUSH1 0x03
0000130c: DUP4
0000130d: ADD
0000130e: SLOAD
0000130f: SWAP3
00001310: ADD
00001311: SLOAD
00001312: SWAP3
00001313: PUSH1 0x40
00001315: MLOAD
00001316: SWAP5
00001317: PUSH14 0xffffffffffffffffffffffffffff
00001326: DUP2
00001327: AND
00001328: DUP7
00001329: MSTORE
0000132a: PUSH14 0xffffffffffffffffffffffffffff
00001339: DUP2
0000133a: PUSH1 0x70
0000133c: SHR
0000133d: AND
0000133e: PUSH1 0x20
00001340: DUP8
00001341: ADD
00001342: MSTORE
00001343: DUP7
00001344: SHR
00001345: PUSH1 0x40
00001347: DUP7
00001348: ADD
00001349: MSTORE
0000134a: PUSH1 0x60
0000134c: DUP6
0000134d: ADD
0000134e: MSTORE
0000134f: PUSH1 0x80
00001351: DUP5
00001352: ADD
00001353: MSTORE
00001354: PUSH1 0xa0
00001356: DUP4
00001357: ADD
00001358: MSTORE
00001359: PUSH1 0xc0
0000135b: DUP3
0000135c: ADD
0000135d: MSTORE
0000135e: RETURN
0000135f: JUMPDEST
00001360: POP
00001361: CALLVALUE
00001362: PUSH2 0x032f
00001365: JUMPI
00001366: PUSH1 0x60
00001368: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001389: CALLDATASIZE
0000138a: ADD
0000138b: SLT
0000138c: PUSH2 0x032f
0000138f: JUMPI
00001390: PUSH2 0x1397
00001393: PUSH2 0x25e9
00001396: JUMP
00001397: JUMPDEST
00001398: SWAP1
00001399: PUSH1 0x44
0000139b: CALLDATALOAD
0000139c: PUSH1 0x24
0000139e: CALLDATALOAD
0000139f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013b4: DUP3
000013b5: AND
000013b6: DUP3
000013b7: SUB
000013b8: PUSH2 0x1443
000013bb: JUMPI
000013bc: PUSH9 0x929eee149b4bd21268
000013c6: TLOAD
000013c7: PUSH2 0x1436
000013ca: JUMPI
000013cb: SWAP3
000013cc: DUP3
000013cd: SWAP2
000013ce: PUSH1 0x20
000013d0: SWAP5
000013d1: ADDRESS
000013d2: PUSH9 0x929eee149b4bd21268
000013dc: TSTORE
000013dd: PUSH1 0x40
000013df: MLOAD
000013e0: SWAP2
000013e1: CALLER
000013e2: DUP6
000013e3: MSTORE
000013e4: DUP4
000013e5: DUP8
000013e6: MSTORE
000013e7: DUP2
000013e8: PUSH1 0x40
000013ea: MSTORE
000013eb: PUSH1 0x60
000013ed: DUP6
000013ee: KECCAK256
000013ef: SWAP3
000013f0: DUP4
000013f1: TLOAD
000013f2: SWAP7
000013f3: DUP8
000013f4: SWAP5
000013f5: DUP6
000013f6: PUSH2 0x142e
000013f9: JUMPI
000013fa: JUMPDEST
000013fb: POP
000013fc: POP
000013fd: PUSH1 0x40
000013ff: MSTORE
00001400: DUP3
00001401: PUSH2 0x141c
00001404: JUMPI
00001405: JUMPDEST
00001406: POP
00001407: POP
00001408: POP
00001409: POP
0000140a: PUSH9 0x929eee149b4bd21268
00001414: TSTORE
00001415: PUSH1 0x40
00001417: MLOAD
00001418: SWAP1
00001419: DUP2
0000141a: MSTORE
0000141b: RETURN
0000141c: JUMPDEST
0000141d: PUSH2 0x1425
00001420: SWAP4
00001421: PUSH2 0x2f1c
00001424: JUMP
00001425: JUMPDEST
00001426: PUSH0
00001427: DUP3
00001428: DUP2
00001429: DUP1
0000142a: PUSH2 0x1405
0000142d: JUMP
0000142e: JUMPDEST
0000142f: TSTORE
00001430: DUP6
00001431: PUSH0
00001432: PUSH2 0x13fa
00001435: JUMP
00001436: JUMPDEST
00001437: PUSH4 0xab143c06
0000143c: DUP4
0000143d: MSTORE
0000143e: PUSH1 0x04
00001440: PUSH1 0x1c
00001442: REVERT
00001443: JUMPDEST
00001444: DUP3
00001445: DUP1
00001446: REVERT
00001447: JUMPDEST
00001448: POP
00001449: PUSH1 0x20
0000144b: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000146c: CALLDATASIZE
0000146d: ADD
0000146e: SLT
0000146f: PUSH2 0x032f
00001472: JUMPI
00001473: PUSH2 0x147a
00001476: PUSH2 0x25e9
00001479: JUMP
0000147a: JUMPDEST
0000147b: DUP2
0000147c: SLOAD
0000147d: CALLER
0000147e: SUB
0000147f: PUSH2 0x0596
00001482: JUMPI
00001483: DUP2
00001484: SSTORE
00001485: DUP1
00001486: RETURN
00001487: JUMPDEST
00001488: POP
00001489: CALLVALUE
0000148a: PUSH2 0x185f
0000148d: JUMPI
0000148e: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000014af: CALLDATASIZE
000014b0: ADD
000014b1: PUSH2 0x0120
000014b4: DUP2
000014b5: SLT
000014b6: PUSH2 0x185f
000014b9: JUMPI
000014ba: PUSH1 0xa0
000014bc: SGT
000014bd: PUSH2 0x185f
000014c0: JUMPI
000014c1: PUSH1 0xe4
000014c3: CALLDATALOAD
000014c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014d9: DUP2
000014da: AND
000014db: SWAP1
000014dc: PUSH1 0xa4
000014de: CALLDATALOAD
000014df: PUSH1 0xc4
000014e1: CALLDATALOAD
000014e2: DUP4
000014e3: DUP4
000014e4: SUB
000014e5: PUSH2 0x185f
000014e8: JUMPI
000014e9: PUSH2 0x0104
000014ec: CALLDATALOAD
000014ed: PUSH8 0xffffffffffffffff
000014f6: DUP2
000014f7: GT
000014f8: PUSH2 0x185f
000014fb: JUMPI
000014fc: PUSH2 0x1509
000014ff: SWAP1
00001500: CALLDATASIZE
00001501: SWAP1
00001502: PUSH1 0x04
00001504: ADD
00001505: PUSH2 0x2684
00001508: JUMP
00001509: JUMPDEST
0000150a: PUSH9 0x929eee149b4bd21268
00001514: SWAP4
00001515: SWAP2
00001516: SWAP4
00001517: TLOAD
00001518: PUSH2 0x18e0
0000151b: JUMPI
0000151c: ADDRESS
0000151d: PUSH9 0x929eee149b4bd21268
00001527: TSTORE
00001528: DUP2
00001529: ISZERO
0000152a: DUP1
0000152b: ISZERO
0000152c: DUP1
0000152d: SWAP2
0000152e: PUSH2 0x18d7
00001531: JUMPI
00001532: JUMPDEST
00001533: ISZERO
00001534: PUSH2 0x18af
00001537: JUMPI
00001538: PUSH1 0xa0
0000153a: PUSH1 0x40
0000153c: MLOAD
0000153d: DUP2
0000153e: PUSH1 0x04
00001540: DUP3
00001541: CALLDATACOPY
00001542: KECCAK256
00001543: SWAP5
00001544: DUP6
00001545: PUSH0
00001546: MSTORE
00001547: PUSH0
00001548: PUSH1 0x20
0000154a: MSTORE
0000154b: PUSH1 0x40
0000154d: PUSH0
0000154e: KECCAK256
0000154f: SWAP3
00001550: DUP4
00001551: SLOAD
00001552: SWAP8
00001553: PUSH14 0xffffffffffffffffffffffffffff
00001562: DUP1
00001563: DUP11
00001564: AND
00001565: SWAP10
00001566: PUSH1 0x70
00001568: SHR
00001569: AND
0000156a: SWAP4
0000156b: DUP10
0000156c: DUP8
0000156d: LT
0000156e: ISZERO
0000156f: PUSH2 0x1887
00001572: JUMPI
00001573: DUP5
00001574: DUP9
00001575: LT
00001576: ISZERO
00001577: PUSH2 0x1887
0000157a: JUMPI
0000157b: PUSH2 0x1876
0000157e: JUMPI
0000157f: JUMPDEST
00001580: DUP7
00001581: DUP1
00001582: PUSH2 0x1863
00001585: JUMPI
00001586: JUMPDEST
00001587: POP
00001588: POP
00001589: DUP1
0000158a: PUSH2 0x17c7
0000158d: JUMPI
0000158e: JUMPDEST
0000158f: POP
00001590: POP
00001591: PUSH2 0x15b6
00001594: DUP4
00001595: PUSH2 0x15b1
00001598: PUSH2 0x15ab
0000159b: PUSH2 0x15a2
0000159e: PUSH2 0x2725
000015a1: JUMP
000015a2: JUMPDEST
000015a3: PUSH1 0x04
000015a5: CALLDATALOAD
000015a6: SWAP1
000015a7: PUSH2 0x304f
000015aa: JUMP
000015ab: JUMPDEST
000015ac: DUP10
000015ad: PUSH2 0x278c
000015b0: JUMP
000015b1: JUMPDEST
000015b2: PUSH2 0x27e0
000015b5: JUMP
000015b6: JUMPDEST
000015b7: SWAP6
000015b8: PUSH2 0x15d8
000015bb: DUP6
000015bc: PUSH2 0x15b1
000015bf: PUSH2 0x15d2
000015c2: PUSH2 0x15c9
000015c5: PUSH2 0x2748
000015c8: JUMP
000015c9: JUMPDEST
000015ca: PUSH1 0x24
000015cc: CALLDATALOAD
000015cd: SWAP1
000015ce: PUSH2 0x304f
000015d1: JUMP
000015d2: JUMPDEST
000015d3: DUP6
000015d4: PUSH2 0x278c
000015d7: JUMP
000015d8: JUMPDEST
000015d9: DUP5
000015da: DUP3
000015db: SUB
000015dc: DUP1
000015dd: DUP10
000015de: GT
000015df: ISZERO
000015e0: PUSH2 0x17bf
000015e3: JUMPI
000015e4: DUP9
000015e5: SUB
000015e6: SWAP8
000015e7: JUMPDEST
000015e8: DUP7
000015e9: DUP5
000015ea: SUB
000015eb: DUP1
000015ec: DUP4
000015ed: GT
000015ee: ISZERO
000015ef: PUSH2 0x17b7
000015f2: JUMPI
000015f3: DUP3
000015f4: SUB
000015f5: SWAP5
000015f6: JUMPDEST
000015f7: DUP10
000015f8: ISZERO
000015f9: DUP1
000015fa: ISZERO
000015fb: SWAP1
000015fc: PUSH2 0x17ae
000015ff: JUMPI
00001600: JUMPDEST
00001601: ISZERO
00001602: PUSH2 0x1786
00001605: JUMPI
00001606: PUSH2 0x2710
00001609: DUP3
0000160a: MUL
0000160b: DUP3
0000160c: DUP2
0000160d: DIV
0000160e: PUSH2 0x2710
00001611: EQ
00001612: DUP4
00001613: ISZERO
00001614: OR
00001615: ISZERO
00001616: PUSH2 0x1759
00001619: JUMPI
0000161a: PUSH2 0x1642
0000161d: SWAP1
0000161e: PUSH2 0x163c
00001621: PUSH12 0xffffffffffffffffffffffff
0000162e: PUSH2 0x1635
00001631: PUSH2 0x2799
00001634: JUMP
00001635: JUMPDEST
00001636: AND
00001637: DUP14
00001638: PUSH2 0x27cd
0000163b: JUMP
0000163c: JUMPDEST
0000163d: SWAP1
0000163e: PUSH2 0x27e0
00001641: JUMP
00001642: JUMPDEST
00001643: PUSH2 0x2710
00001646: DUP5
00001647: MUL
00001648: DUP5
00001649: DUP2
0000164a: DIV
0000164b: PUSH2 0x2710
0000164e: EQ
0000164f: DUP6
00001650: ISZERO
00001651: OR
00001652: ISZERO
00001653: PUSH2 0x172c
00001656: JUMPI
00001657: SWAP1
00001658: PUSH2 0x167d
0000165b: PUSH2 0x1683
0000165e: SWAP3
0000165f: PUSH2 0x163c
00001662: PUSH12 0xffffffffffffffffffffffff
0000166f: PUSH2 0x1676
00001672: PUSH2 0x2799
00001675: JUMP
00001676: JUMPDEST
00001677: AND
00001678: DUP12
00001679: PUSH2 0x27cd
0000167c: JUMP
0000167d: JUMPDEST
0000167e: SWAP1
0000167f: PUSH2 0x27cd
00001682: JUMP
00001683: JUMPDEST
00001684: PUSH2 0x168d
00001687: DUP7
00001688: DUP7
00001689: PUSH2 0x27cd
0000168c: JUMP
0000168d: JUMPDEST
0000168e: SWAP1
0000168f: PUSH4 0x05f5e100
00001694: DUP3
00001695: MUL
00001696: SWAP2
00001697: DUP1
00001698: DUP4
00001699: DIV
0000169a: PUSH4 0x05f5e100
0000169f: EQ
000016a0: SWAP1
000016a1: ISZERO
000016a2: OR
000016a3: ISZERO
000016a4: PUSH2 0x172c
000016a7: JUMPI
000016a8: LT
000016a9: PUSH2 0x1704
000016ac: JUMPI
000016ad: SWAP1
000016ae: DUP9
000016af: PUSH2 0x16ba
000016b2: SWAP6
000016b3: SWAP5
000016b4: SWAP4
000016b5: SWAP3
000016b6: PUSH2 0x2cf5
000016b9: JUMP
000016ba: JUMPDEST
000016bb: PUSH1 0x40
000016bd: MLOAD
000016be: SWAP5
000016bf: DUP6
000016c0: MSTORE
000016c1: PUSH1 0x20
000016c3: DUP6
000016c4: ADD
000016c5: MSTORE
000016c6: PUSH1 0x40
000016c8: DUP5
000016c9: ADD
000016ca: MSTORE
000016cb: PUSH1 0x60
000016cd: DUP4
000016ce: ADD
000016cf: MSTORE
000016d0: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56
000016f1: PUSH1 0x80
000016f3: CALLER
000016f4: SWAP4
000016f5: LOG4
000016f6: DUP1
000016f7: PUSH9 0x929eee149b4bd21268
00001701: TSTORE
00001702: DUP1
00001703: RETURN
00001704: JUMPDEST
00001705: PUSH1 0x04
00001707: DUP13
00001708: PUSH32 0xa932492f00000000000000000000000000000000000000000000000000000000
00001729: DUP2
0000172a: MSTORE
0000172b: REVERT
0000172c: JUMPDEST
0000172d: PUSH1 0x24
0000172f: DUP15
00001730: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00001751: DUP2
00001752: MSTORE
00001753: PUSH1 0x11
00001755: PUSH1 0x04
00001757: MSTORE
00001758: REVERT
00001759: JUMPDEST
0000175a: PUSH1 0x24
0000175c: DUP14
0000175d: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
0000177e: DUP2
0000177f: MSTORE
00001780: PUSH1 0x11
00001782: PUSH1 0x04
00001784: MSTORE
00001785: REVERT
00001786: JUMPDEST
00001787: PUSH1 0x04
00001789: DUP13
0000178a: PUSH32 0x098fb56100000000000000000000000000000000000000000000000000000000
000017ab: DUP2
000017ac: MSTORE
000017ad: REVERT
000017ae: JUMPDEST
000017af: POP
000017b0: DUP6
000017b1: ISZERO
000017b2: ISZERO
000017b3: PUSH2 0x1600
000017b6: JUMP
000017b7: JUMPDEST
000017b8: POP
000017b9: DUP11
000017ba: SWAP5
000017bb: PUSH2 0x15f6
000017be: JUMP
000017bf: JUMPDEST
000017c0: POP
000017c1: DUP10
000017c2: SWAP8
000017c3: PUSH2 0x15e7
000017c6: JUMP
000017c7: JUMPDEST
000017c8: DUP9
000017c9: EXTCODESIZE
000017ca: ISZERO
000017cb: PUSH2 0x185f
000017ce: JUMPI
000017cf: PUSH2 0x1828
000017d2: SWAP2
000017d3: PUSH0
000017d4: SWAP2
000017d5: PUSH1 0x40
000017d7: MLOAD
000017d8: SWAP4
000017d9: DUP5
000017da: SWAP3
000017db: DUP4
000017dc: SWAP3
000017dd: PUSH32 0xfe2cbab700000000000000000000000000000000000000000000000000000000
000017fe: DUP5
000017ff: MSTORE
00001800: DUP12
00001801: PUSH1 0x04
00001803: DUP6
00001804: ADD
00001805: MSTORE
00001806: CALLER
00001807: PUSH1 0x24
00001809: DUP6
0000180a: ADD
0000180b: MSTORE
0000180c: DUP10
0000180d: PUSH1 0x44
0000180f: DUP6
00001810: ADD
00001811: MSTORE
00001812: DUP11
00001813: PUSH1 0x64
00001815: DUP6
00001816: ADD
00001817: MSTORE
00001818: PUSH1 0xa0
0000181a: PUSH1 0x84
0000181c: DUP6
0000181d: ADD
0000181e: MSTORE
0000181f: PUSH1 0xa4
00001821: DUP5
00001822: ADD
00001823: SWAP2
00001824: PUSH2 0x285b
00001827: JUMP
00001828: JUMPDEST
00001829: SUB
0000182a: DUP2
0000182b: DUP4
0000182c: DUP13
0000182d: GAS
0000182e: CALL
0000182f: DUP1
00001830: ISZERO
00001831: PUSH2 0x1854
00001834: JUMPI
00001835: PUSH2 0x183f
00001838: JUMPI
00001839: JUMPDEST
0000183a: DUP1
0000183b: PUSH2 0x158e
0000183e: JUMP
0000183f: JUMPDEST
00001840: PUSH2 0x184c
00001843: SWAP2
00001844: SWAP9
00001845: POP
00001846: PUSH0
00001847: SWAP1
00001848: PUSH2 0x27ed
0000184b: JUMP
0000184c: JUMPDEST
0000184d: PUSH0
0000184e: SWAP7
0000184f: PUSH0
00001850: PUSH2 0x1839
00001853: JUMP
00001854: JUMPDEST
00001855: PUSH1 0x40
00001857: MLOAD
00001858: RETURNDATASIZE
00001859: PUSH0
0000185a: DUP3
0000185b: RETURNDATACOPY
0000185c: RETURNDATASIZE
0000185d: SWAP1
0000185e: REVERT
0000185f: JUMPDEST
00001860: PUSH0
00001861: DUP1
00001862: REVERT
00001863: JUMPDEST
00001864: PUSH2 0x186f
00001867: SWAP2
00001868: PUSH2 0x0463
0000186b: PUSH2 0x2748
0000186e: JUMP
0000186f: JUMPDEST
00001870: PUSH0
00001871: DUP7
00001872: PUSH2 0x1586
00001875: JUMP
00001876: JUMPDEST
00001877: PUSH2 0x1882
0000187a: DUP7
0000187b: PUSH2 0x0451
0000187e: PUSH2 0x2725
00001881: JUMP
00001882: JUMPDEST
00001883: PUSH2 0x157f
00001886: JUMP
00001887: JUMPDEST
00001888: PUSH32 0xbb55fd2700000000000000000000000000000000000000000000000000000000
000018a9: PUSH0
000018aa: MSTORE
000018ab: PUSH1 0x04
000018ad: PUSH0
000018ae: REVERT
000018af: JUMPDEST
000018b0: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000
000018d1: PUSH0
000018d2: MSTORE
000018d3: PUSH1 0x04
000018d5: PUSH0
000018d6: REVERT
000018d7: JUMPDEST
000018d8: POP
000018d9: DUP4
000018da: ISZERO
000018db: ISZERO
000018dc: PUSH2 0x1532
000018df: JUMP
000018e0: JUMPDEST
000018e1: PUSH4 0xab143c06
000018e6: PUSH0
000018e7: MSTORE
000018e8: PUSH1 0x04
000018ea: PUSH1 0x1c
000018ec: REVERT
000018ed: JUMPDEST
000018ee: PUSH2 0x18f6
000018f1: CALLDATASIZE
000018f2: PUSH2 0x26b2
000018f5: JUMP
000018f6: JUMPDEST
000018f7: PUSH9 0x929eee149b4bd21268
00001901: SWAP6
00001902: SWAP2
00001903: SWAP4
00001904: SWAP5
00001905: SWAP3
00001906: SWAP6
00001907: TLOAD
00001908: PUSH2 0x18e0
0000190b: JUMPI
0000190c: ADDRESS
0000190d: PUSH9 0x929eee149b4bd21268
00001917: TSTORE
00001918: TIMESTAMP
00001919: GT
0000191a: PUSH2 0x1c0f
0000191d: JUMPI
0000191e: DUP2
0000191f: ISZERO
00001920: PUSH2 0x1be7
00001923: JUMPI
00001924: PUSH1 0xa0
00001926: PUSH1 0x40
00001928: MLOAD
00001929: DUP2
0000192a: DUP4
0000192b: DUP3
0000192c: CALLDATACOPY
0000192d: KECCAK256
0000192e: SWAP3
0000192f: DUP4
00001930: PUSH0
00001931: MSTORE
00001932: PUSH0
00001933: PUSH1 0x20
00001935: MSTORE
00001936: PUSH1 0x40
00001938: PUSH0
00001939: KECCAK256
0000193a: SWAP2
0000193b: DUP3
0000193c: SLOAD
0000193d: SWAP7
0000193e: PUSH14 0xffffffffffffffffffffffffffff
0000194d: DUP1
0000194e: DUP10
0000194f: AND
00001950: SWAP9
00001951: PUSH1 0x70
00001953: SHR
00001954: AND
00001955: SWAP1
00001956: DUP1
00001957: PUSH0
00001958: EQ
00001959: PUSH2 0x1bc7
0000195c: JUMPI
0000195d: PUSH2 0x1974
00001960: DUP7
00001961: PUSH2 0x196c
00001964: PUSH1 0x40
00001966: DUP7
00001967: ADD
00001968: PUSH2 0x276b
0000196b: JUMP
0000196c: JUMPDEST
0000196d: DUP6
0000196e: CALLDATALOAD
0000196f: SWAP1
00001970: PUSH2 0x2bec
00001973: JUMP
00001974: JUMPDEST
00001975: DUP1
00001976: PUSH2 0x1b99
00001979: JUMPI
0000197a: JUMPDEST
0000197b: ISZERO
0000197c: PUSH2 0x1afc
0000197f: JUMPI
00001980: JUMPDEST
00001981: ISZERO
00001982: PUSH2 0x1a49
00001985: JUMPI
00001986: PUSH2 0x199c
00001989: PUSH2 0x1994
0000198c: PUSH1 0x80
0000198e: DUP5
0000198f: ADD
00001990: PUSH2 0x27b4
00001993: JUMP
00001994: JUMPDEST
00001995: DUP3
00001996: DUP11
00001997: DUP9
00001998: PUSH2 0x2ec9
0000199b: JUMP
0000199c: JUMPDEST
0000199d: SWAP7
0000199e: DUP8
0000199f: ISZERO
000019a0: PUSH2 0x18af
000019a3: JUMPI
000019a4: DUP8
000019a5: LT
000019a6: PUSH2 0x18af
000019a9: JUMPI
000019aa: DUP1
000019ab: DUP8
000019ac: LT
000019ad: ISZERO
000019ae: PUSH2 0x1887
000019b1: JUMPI
000019b2: PUSH1 0x20
000019b4: SWAP8
000019b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019ca: SWAP5
000019cb: PUSH2 0x19e0
000019ce: DUP10
000019cf: DUP6
000019d0: DUP8
000019d1: DUP14
000019d2: PUSH2 0x0693
000019d5: PUSH1 0x60
000019d7: PUSH2 0x19f5
000019da: SWAP11
000019db: ADD
000019dc: PUSH2 0x276b
000019df: JUMP
000019e0: JUMPDEST
000019e1: PUSH2 0x19ea
000019e4: DUP8
000019e5: DUP4
000019e6: PUSH2 0x278c
000019e9: JUMP
000019ea: JUMPDEST
000019eb: DUP9
000019ec: PUSH2 0x06b1
000019ef: DUP12
000019f0: DUP7
000019f1: PUSH2 0x27e0
000019f4: JUMP
000019f5: JUMPDEST
000019f6: PUSH1 0x40
000019f8: MLOAD
000019f9: SWAP3
000019fa: DUP4
000019fb: MSTORE
000019fc: PUSH0
000019fd: DUP7
000019fe: DUP5
000019ff: ADD
00001a00: MSTORE
00001a01: PUSH0
00001a02: PUSH1 0x40
00001a04: DUP5
00001a05: ADD
00001a06: MSTORE
00001a07: DUP5
00001a08: PUSH1 0x60
00001a0a: DUP5
00001a0b: ADD
00001a0c: MSTORE
00001a0d: AND
00001a0e: SWAP2
00001a0f: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56
00001a30: PUSH1 0x80
00001a32: CALLER
00001a33: SWAP4
00001a34: LOG4
00001a35: JUMPDEST
00001a36: PUSH0
00001a37: PUSH9 0x929eee149b4bd21268
00001a41: TSTORE
00001a42: PUSH1 0x40
00001a44: MLOAD
00001a45: SWAP1
00001a46: DUP2
00001a47: MSTORE
00001a48: RETURN
00001a49: JUMPDEST
00001a4a: PUSH2 0x1a60
00001a4d: PUSH2 0x1a58
00001a50: PUSH1 0x80
00001a52: DUP5
00001a53: ADD
00001a54: PUSH2 0x27b4
00001a57: JUMP
00001a58: JUMPDEST
00001a59: DUP10
00001a5a: DUP4
00001a5b: DUP9
00001a5c: PUSH2 0x2ec9
00001a5f: JUMP
00001a60: JUMPDEST
00001a61: SWAP7
00001a62: DUP8
00001a63: ISZERO
00001a64: PUSH2 0x18af
00001a67: JUMPI
00001a68: DUP8
00001a69: LT
00001a6a: PUSH2 0x18af
00001a6d: JUMPI
00001a6e: DUP8
00001a6f: DUP8
00001a70: LT
00001a71: ISZERO
00001a72: PUSH2 0x1887
00001a75: JUMPI
00001a76: PUSH1 0x20
00001a78: SWAP8
00001a79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a8e: SWAP5
00001a8f: PUSH2 0x1aa3
00001a92: DUP10
00001a93: DUP6
00001a94: DUP8
00001a95: PUSH2 0x0906
00001a98: PUSH1 0x40
00001a9a: PUSH2 0x1ab8
00001a9d: SWAP10
00001a9e: ADD
00001a9f: PUSH2 0x276b
00001aa2: JUMP
00001aa3: JUMPDEST
00001aa4: PUSH2 0x1aad
00001aa7: DUP10
00001aa8: DUP4
00001aa9: PUSH2 0x27e0
00001aac: JUMP
00001aad: JUMPDEST
00001aae: DUP9
00001aaf: PUSH2 0x06b1
00001ab2: DUP10
00001ab3: DUP7
00001ab4: PUSH2 0x278c
00001ab7: JUMP
00001ab8: JUMPDEST
00001ab9: PUSH1 0x40
00001abb: MLOAD
00001abc: SWAP3
00001abd: PUSH0
00001abe: DUP5
00001abf: MSTORE
00001ac0: DUP7
00001ac1: DUP5
00001ac2: ADD
00001ac3: MSTORE
00001ac4: DUP5
00001ac5: PUSH1 0x40
00001ac7: DUP5
00001ac8: ADD
00001ac9: MSTORE
00001aca: PUSH0
00001acb: PUSH1 0x60
00001acd: DUP5
00001ace: ADD
00001acf: MSTORE
00001ad0: AND
00001ad1: SWAP2
00001ad2: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56
00001af3: PUSH1 0x80
00001af5: CALLER
00001af6: SWAP4
00001af7: LOG4
00001af8: PUSH2 0x1a35
00001afb: JUMP
00001afc: JUMPDEST
00001afd: DUP1
00001afe: ISZERO
00001aff: PUSH2 0x1b79
00001b02: JUMPI
00001b03: PUSH1 0x40
00001b05: DUP4
00001b06: ADD
00001b07: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b1c: PUSH2 0x1b24
00001b1f: DUP3
00001b20: PUSH2 0x276b
00001b23: JUMP
00001b24: JUMPDEST
00001b25: AND
00001b26: PUSH2 0x1b5f
00001b29: JUMPI
00001b2a: POP
00001b2b: DUP6
00001b2c: CALLVALUE
00001b2d: SUB
00001b2e: PUSH2 0x1b37
00001b31: JUMPI
00001b32: JUMPDEST
00001b33: PUSH2 0x1980
00001b36: JUMP
00001b37: JUMPDEST
00001b38: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
00001b59: PUSH0
00001b5a: MSTORE
00001b5b: PUSH1 0x04
00001b5d: PUSH0
00001b5e: REVERT
00001b5f: JUMPDEST
00001b60: CALLVALUE
00001b61: PUSH2 0x1b37
00001b64: JUMPI
00001b65: DUP7
00001b66: PUSH2 0x1b71
00001b69: PUSH2 0x1b32
00001b6c: SWAP3
00001b6d: PUSH2 0x276b
00001b70: JUMP
00001b71: JUMPDEST
00001b72: DUP6
00001b73: CALLDATALOAD
00001b74: SWAP1
00001b75: PUSH2 0x290a
00001b78: JUMP
00001b79: JUMPDEST
00001b7a: CALLVALUE
00001b7b: PUSH2 0x1b37
00001b7e: JUMPI
00001b7f: PUSH2 0x1b32
00001b82: DUP7
00001b83: PUSH2 0x1b8e
00001b86: PUSH1 0x60
00001b88: DUP7
00001b89: ADD
00001b8a: PUSH2 0x276b
00001b8d: JUMP
00001b8e: JUMPDEST
00001b8f: PUSH1 0x20
00001b91: DUP7
00001b92: ADD
00001b93: CALLDATALOAD
00001b94: SWAP1
00001b95: PUSH2 0x290a
00001b98: JUMP
00001b99: JUMPDEST
00001b9a: CALLVALUE
00001b9b: ISZERO
00001b9c: PUSH2 0x197a
00001b9f: JUMPI
00001ba0: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
00001bc1: PUSH0
00001bc2: MSTORE
00001bc3: PUSH1 0x04
00001bc5: PUSH0
00001bc6: REVERT
00001bc7: JUMPDEST
00001bc8: PUSH2 0x1be2
00001bcb: DUP7
00001bcc: PUSH2 0x1bd7
00001bcf: PUSH1 0x60
00001bd1: DUP7
00001bd2: ADD
00001bd3: PUSH2 0x276b
00001bd6: JUMP
00001bd7: JUMPDEST
00001bd8: PUSH1 0x20
00001bda: DUP7
00001bdb: ADD
00001bdc: CALLDATALOAD
00001bdd: SWAP1
00001bde: PUSH2 0x2bec
00001be1: JUMP
00001be2: JUMPDEST
00001be3: PUSH2 0x197a
00001be6: JUMP
00001be7: JUMPDEST
00001be8: PUSH32 0x098fb56100000000000000000000000000000000000000000000000000000000
00001c09: PUSH0
00001c0a: MSTORE
00001c0b: PUSH1 0x04
00001c0d: PUSH0
00001c0e: REVERT
00001c0f: JUMPDEST
00001c10: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000
00001c31: PUSH0
00001c32: MSTORE
00001c33: PUSH1 0x04
00001c35: PUSH0
00001c36: REVERT
00001c37: JUMPDEST
00001c38: CALLVALUE
00001c39: PUSH2 0x185f
00001c3c: JUMPI
00001c3d: PUSH1 0x60
00001c3f: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001c60: CALLDATASIZE
00001c61: ADD
00001c62: SLT
00001c63: PUSH2 0x185f
00001c66: JUMPI
00001c67: PUSH2 0x1c6e
00001c6a: PUSH2 0x25e9
00001c6d: JUMP
00001c6e: JUMPDEST
00001c6f: PUSH1 0x44
00001c71: CALLDATALOAD
00001c72: PUSH8 0xffffffffffffffff
00001c7b: DUP2
00001c7c: GT
00001c7d: PUSH2 0x185f
00001c80: JUMPI
00001c81: PUSH1 0x20
00001c83: SWAP2
00001c84: PUSH32 0x6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b
00001ca5: PUSH2 0x1cb5
00001ca8: PUSH2 0x1d2f
00001cab: SWAP4
00001cac: CALLDATASIZE
00001cad: SWAP1
00001cae: PUSH1 0x04
00001cb0: ADD
00001cb1: PUSH2 0x2684
00001cb4: JUMP
00001cb5: JUMPDEST
00001cb6: PUSH1 0x40
00001cb8: MLOAD
00001cb9: DUP7
00001cba: DUP2
00001cbb: ADD
00001cbc: SWAP1
00001cbd: PUSH32 0x6dc2a7b300000000000000000000000000000000000000000000000000000000
00001cde: DUP3
00001cdf: MSTORE
00001ce0: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00001d01: CALLER
00001d02: PUSH1 0x60
00001d04: SHL
00001d05: AND
00001d06: PUSH1 0x24
00001d08: DUP3
00001d09: ADD
00001d0a: MSTORE
00001d0b: TIMESTAMP
00001d0c: PUSH1 0x38
00001d0e: DUP3
00001d0f: ADD
00001d10: MSTORE
00001d11: PUSH1 0x38
00001d13: DUP2
00001d14: MSTORE
00001d15: PUSH2 0x1d1f
00001d18: PUSH1 0x58
00001d1a: DUP3
00001d1b: PUSH2 0x27ed
00001d1e: JUMP
00001d1f: JUMPDEST
00001d20: MLOAD
00001d21: SWAP1
00001d22: KECCAK256
00001d23: SWAP5
00001d24: DUP6
00001d25: SWAP5
00001d26: DUP6
00001d27: PUSH1 0x24
00001d29: CALLDATALOAD
00001d2a: SWAP2
00001d2b: PUSH2 0x2c96
00001d2e: JUMP
00001d2f: JUMPDEST
00001d30: PUSH2 0x1d44
00001d33: PUSH1 0x40
00001d35: MLOAD
00001d36: SWAP3
00001d37: DUP4
00001d38: SWAP3
00001d39: DUP9
00001d3a: DUP5
00001d3b: MSTORE
00001d3c: DUP9
00001d3d: DUP5
00001d3e: ADD
00001d3f: SWAP2
00001d40: PUSH2 0x285b
00001d43: JUMP
00001d44: JUMPDEST
00001d45: SUB
00001d46: SWAP1
00001d47: LOG2
00001d48: PUSH1 0x40
00001d4a: MLOAD
00001d4b: SWAP1
00001d4c: DUP2
00001d4d: MSTORE
00001d4e: RETURN
00001d4f: JUMPDEST
00001d50: CALLVALUE
00001d51: PUSH2 0x185f
00001d54: JUMPI
00001d55: PUSH1 0x60
00001d57: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001d78: CALLDATASIZE
00001d79: ADD
00001d7a: SLT
00001d7b: PUSH2 0x185f
00001d7e: JUMPI
00001d7f: PUSH2 0x1d86
00001d82: PUSH2 0x25e9
00001d85: JUMP
00001d86: JUMPDEST
00001d87: PUSH2 0x1d8e
00001d8a: PUSH2 0x260c
00001d8d: JUMP
00001d8e: JUMPDEST
00001d8f: SWAP1
00001d90: PUSH8 0xedcaa89a82293940
00001d99: PUSH1 0x34
00001d9b: MSTORE
00001d9c: PUSH1 0x28
00001d9e: MSTORE
00001d9f: PUSH1 0x14
00001da1: MSTORE
00001da2: PUSH1 0x44
00001da4: CALLDATALOAD
00001da5: PUSH0
00001da6: MSTORE
00001da7: PUSH1 0x20
00001da9: PUSH1 0x54
00001dab: PUSH0
00001dac: KECCAK256
00001dad: SLOAD
00001dae: PUSH0
00001daf: PUSH1 0x34
00001db1: MSTORE
00001db2: PUSH1 0x40
00001db4: MLOAD
00001db5: SWAP1
00001db6: DUP2
00001db7: MSTORE
00001db8: RETURN
00001db9: JUMPDEST
00001dba: CALLVALUE
00001dbb: PUSH2 0x185f
00001dbe: JUMPI
00001dbf: PUSH1 0x40
00001dc1: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001de2: CALLDATASIZE
00001de3: ADD
00001de4: SLT
00001de5: PUSH2 0x185f
00001de8: JUMPI
00001de9: PUSH2 0x1df0
00001dec: PUSH2 0x25e9
00001def: JUMP
00001df0: JUMPDEST
00001df1: PUSH1 0x24
00001df3: CALLDATALOAD
00001df4: SWAP1
00001df5: DUP2
00001df6: ISZERO
00001df7: ISZERO
00001df8: DUP1
00001df9: SWAP3
00001dfa: SUB
00001dfb: PUSH2 0x185f
00001dfe: JUMPI
00001dff: PUSH8 0xedcaa89a82293940
00001e08: PUSH1 0x20
00001e0a: MSTORE
00001e0b: CALLER
00001e0c: PUSH1 0x14
00001e0e: MSTORE
00001e0f: PUSH0
00001e10: MSTORE
00001e11: DUP1
00001e12: PUSH1 0x34
00001e14: PUSH1 0x0c
00001e16: KECCAK256
00001e17: SSTORE
00001e18: PUSH1 0x20
00001e1a: MSTORE
00001e1b: PUSH1 0x0c
00001e1d: MLOAD
00001e1e: PUSH1 0x60
00001e20: SHR
00001e21: CALLER
00001e22: PUSH32 0xceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267
00001e43: PUSH1 0x20
00001e45: DUP1
00001e46: LOG3
00001e47: PUSH1 0x01
00001e49: PUSH0
00001e4a: MSTORE
00001e4b: PUSH1 0x20
00001e4d: PUSH0
00001e4e: RETURN
00001e4f: JUMPDEST
00001e50: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001e71: CALLDATASIZE
00001e72: ADD
00001e73: PUSH2 0x0160
00001e76: DUP2
00001e77: SLT
00001e78: PUSH2 0x185f
00001e7b: JUMPI
00001e7c: PUSH1 0xa0
00001e7e: SGT
00001e7f: PUSH2 0x185f
00001e82: JUMPI
00001e83: PUSH1 0xa4
00001e85: CALLDATALOAD
00001e86: PUSH1 0xc4
00001e88: CALLDATALOAD
00001e89: PUSH2 0x0124
00001e8c: CALLDATALOAD
00001e8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ea2: DUP2
00001ea3: AND
00001ea4: DUP2
00001ea5: SUB
00001ea6: PUSH2 0x185f
00001ea9: JUMPI
00001eaa: PUSH9 0x929eee149b4bd21268
00001eb4: TLOAD
00001eb5: PUSH2 0x18e0
00001eb8: JUMPI
00001eb9: ADDRESS
00001eba: PUSH9 0x929eee149b4bd21268
00001ec4: TSTORE
00001ec5: TIMESTAMP
00001ec6: PUSH2 0x0144
00001ec9: CALLDATALOAD
00001eca: LT
00001ecb: PUSH2 0x1c0f
00001ece: JUMPI
00001ecf: PUSH1 0xa0
00001ed1: PUSH1 0x40
00001ed3: MLOAD
00001ed4: DUP2
00001ed5: PUSH1 0x04
00001ed7: DUP3
00001ed8: CALLDATACOPY
00001ed9: KECCAK256
00001eda: DUP1
00001edb: PUSH0
00001edc: MSTORE
00001edd: PUSH0
00001ede: PUSH1 0x20
00001ee0: MSTORE
00001ee1: PUSH1 0x40
00001ee3: PUSH0
00001ee4: KECCAK256
00001ee5: SWAP1
00001ee6: DUP2
00001ee7: SLOAD
00001ee8: SWAP2
00001ee9: PUSH14 0xffffffffffffffffffffffffffff
00001ef8: DUP1
00001ef9: DUP5
00001efa: AND
00001efb: SWAP4
00001efc: PUSH1 0x70
00001efe: SHR
00001eff: AND
00001f00: PUSH1 0x04
00001f02: DUP3
00001f03: ADD
00001f04: SWAP4
00001f05: DUP5
00001f06: SLOAD
00001f07: DUP1
00001f08: ISZERO
00001f09: ISZERO
00001f0a: PUSH0
00001f0b: EQ
00001f0c: PUSH2 0x2394
00001f0f: JUMPI
00001f10: POP
00001f11: PUSH2 0x1f1c
00001f14: DUP3
00001f15: DUP3
00001f16: DUP7
00001f17: DUP7
00001f18: PUSH2 0x2a64
00001f1b: JUMP
00001f1c: JUMPDEST
00001f1d: SWAP2
00001f1e: DUP6
00001f1f: SLOAD
00001f20: SWAP8
00001f21: JUMPDEST
00001f22: DUP9
00001f23: ISZERO
00001f24: SWAP1
00001f25: DUP2
00001f26: ISZERO
00001f27: PUSH2 0x231e
00001f2a: JUMPI
00001f2b: SWAP10
00001f2c: SWAP9
00001f2d: JUMPDEST
00001f2e: PUSH2 0x1f35
00001f31: PUSH2 0x2725
00001f34: JUMP
00001f35: JUMPDEST
00001f36: SWAP1
00001f37: PUSH2 0x1f44
00001f3a: DUP12
00001f3b: PUSH1 0x04
00001f3d: CALLDATALOAD
00001f3e: DUP1
00001f3f: SWAP5
00001f40: PUSH2 0x2bec
00001f43: JUMP
00001f44: JUMPDEST
00001f45: DUP1
00001f46: PUSH2 0x22f0
00001f49: JUMPI
00001f4a: JUMPDEST
00001f4b: ISZERO
00001f4c: PUSH2 0x2288
00001f4f: JUMPI
00001f50: JUMPDEST
00001f51: PUSH2 0x1f58
00001f54: PUSH2 0x2748
00001f57: JUMP
00001f58: JUMPDEST
00001f59: SWAP3
00001f5a: PUSH2 0x1f67
00001f5d: DUP14
00001f5e: PUSH1 0x24
00001f60: CALLDATALOAD
00001f61: DUP1
00001f62: SWAP7
00001f63: PUSH2 0x2bec
00001f66: JUMP
00001f67: JUMPDEST
00001f68: ISZERO
00001f69: PUSH2 0x2276
00001f6c: JUMPI
00001f6d: JUMPDEST
00001f6e: ISZERO
00001f6f: PUSH2 0x2226
00001f72: JUMPI
00001f73: POP
00001f74: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f89: PUSH2 0x1f90
00001f8c: PUSH2 0x2725
00001f8f: JUMP
00001f90: JUMPDEST
00001f91: AND
00001f92: ISZERO
00001f93: PUSH2 0x21f8
00001f96: JUMPI
00001f97: JUMPDEST
00001f98: PUSH2 0x1f9f
00001f9b: PUSH2 0x2725
00001f9e: JUMP
00001f9f: JUMPDEST
00001fa0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fb5: DUP1
00001fb6: PUSH2 0x1fbd
00001fb9: PUSH2 0x2748
00001fbc: JUMP
00001fbd: JUMPDEST
00001fbe: AND
00001fbf: SWAP2
00001fc0: AND
00001fc1: LT
00001fc2: SWAP2
00001fc3: DUP3
00001fc4: ISZERO
00001fc5: PUSH2 0x2191
00001fc8: JUMPI
00001fc9: JUMPDEST
00001fca: POP
00001fcb: POP
00001fcc: ISZERO
00001fcd: PUSH2 0x2169
00001fd0: JUMPI
00001fd1: PUSH2 0x2710
00001fd4: PUSH12 0xffffffffffffffffffffffff
00001fe1: PUSH2 0x1fe8
00001fe4: PUSH2 0x2799
00001fe7: JUMP
00001fe8: JUMPDEST
00001fe9: AND
00001fea: GT
00001feb: PUSH2 0x2141
00001fee: JUMPI
00001fef: PUSH2 0x1ffb
00001ff2: PUSH2 0x0b79
00001ff5: DUP11
00001ff6: DUP11
00001ff7: PUSH2 0x27cd
00001ffa: JUMP
00001ffb: JUMPDEST
00001ffc: SWAP2
00001ffd: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18
0000201e: DUP4
0000201f: ADD
00002020: SWAP3
00002021: DUP1
00002022: DUP5
00002023: GT
00002024: PUSH2 0x2114
00002027: JUMPI
00002028: DUP4
00002029: SWAP8
0000202a: DUP5
0000202b: ISZERO
0000202c: PUSH2 0x20ec
0000202f: JUMPI
00002030: PUSH2 0x2040
00002033: PUSH2 0x205e
00002036: SWAP6
00002037: DUP10
00002038: PUSH2 0x0d8b
0000203b: SWAP13
0000203c: PUSH2 0x2c96
0000203f: JUMP
00002040: JUMPDEST
00002041: SSTORE
00002042: JUMPDEST
00002043: PUSH2 0x204c
00002046: DUP2
00002047: DUP11
00002048: PUSH2 0x278c
0000204b: JUMP
0000204c: JUMPDEST
0000204d: PUSH2 0x2056
00002050: DUP4
00002051: DUP13
00002052: PUSH2 0x278c
00002055: JUMP
00002056: JUMPDEST
00002057: SWAP1
00002058: DUP8
00002059: DUP8
0000205a: PUSH2 0x2cf5
0000205d: JUMP
0000205e: JUMPDEST
0000205f: PUSH2 0x20c0
00002062: JUMPI
00002063: JUMPDEST
00002064: POP
00002065: PUSH1 0x40
00002067: MLOAD
00002068: SWAP1
00002069: DUP5
0000206a: DUP3
0000206b: MSTORE
0000206c: DUP6
0000206d: PUSH1 0x20
0000206f: DUP4
00002070: ADD
00002071: MSTORE
00002072: PUSH32 0x5a3e96f397e68b20a43c25f664b628805b877334dadfcc925c6c1a3ad4340458
00002093: PUSH1 0x40
00002095: CALLER
00002096: SWAP4
00002097: LOG3
00002098: PUSH0
00002099: PUSH9 0x929eee149b4bd21268
000020a3: TSTORE
000020a4: PUSH1 0x40
000020a6: MLOAD
000020a7: SWAP4
000020a8: DUP5
000020a9: SWAP4
000020aa: DUP5
000020ab: PUSH1 0x40
000020ad: SWAP2
000020ae: SWAP5
000020af: SWAP4
000020b0: SWAP3
000020b1: PUSH1 0x60
000020b3: DUP3
000020b4: ADD
000020b5: SWAP6
000020b6: DUP3
000020b7: MSTORE
000020b8: PUSH1 0x20
000020ba: DUP3
000020bb: ADD
000020bc: MSTORE
000020bd: ADD
000020be: MSTORE
000020bf: JUMP
000020c0: JUMPDEST
000020c1: PUSH1 0x03
000020c3: PUSH2 0x20e3
000020c6: DUP3
000020c7: SLOAD
000020c8: PUSH14 0xffffffffffffffffffffffffffff
000020d7: DUP1
000020d8: DUP3
000020d9: PUSH1 0x70
000020db: SHR
000020dc: AND
000020dd: SWAP2
000020de: AND
000020df: PUSH2 0x27cd
000020e2: JUMP
000020e3: JUMPDEST
000020e4: SWAP2
000020e5: ADD
000020e6: SSTORE
000020e7: DUP6
000020e8: PUSH2 0x2063
000020eb: JUMP
000020ec: JUMPDEST
000020ed: PUSH32 0xd226f9d400000000000000000000000000000000000000000000000000000000
0000210e: PUSH0
0000210f: MSTORE
00002110: PUSH1 0x04
00002112: PUSH0
00002113: REVERT
00002114: JUMPDEST
00002115: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00002136: PUSH0
00002137: MSTORE
00002138: PUSH1 0x11
0000213a: PUSH1 0x04
0000213c: MSTORE
0000213d: PUSH1 0x24
0000213f: PUSH0
00002140: REVERT
00002141: JUMPDEST
00002142: PUSH32 0xda7459b700000000000000000000000000000000000000000000000000000000
00002163: PUSH0
00002164: MSTORE
00002165: PUSH1 0x04
00002167: PUSH0
00002168: REVERT
00002169: JUMPDEST
0000216a: PUSH32 0x0ab6dd1200000000000000000000000000000000000000000000000000000000
0000218b: PUSH0
0000218c: MSTORE
0000218d: PUSH1 0x04
0000218f: PUSH0
00002190: REVERT
00002191: JUMPDEST
00002192: SWAP1
00002193: SWAP2
00002194: POP
00002195: PUSH2 0x219c
00002198: PUSH2 0x2725
0000219b: JUMP
0000219c: JUMPDEST
0000219d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021b2: DUP1
000021b3: PUSH2 0x21ba
000021b6: PUSH2 0x2748
000021b9: JUMP
000021ba: JUMPDEST
000021bb: AND
000021bc: SWAP2
000021bd: AND
000021be: EQ
000021bf: SWAP2
000021c0: DUP3
000021c1: PUSH2 0x21ee
000021c4: JUMPI
000021c5: JUMPDEST
000021c6: DUP3
000021c7: PUSH2 0x21e4
000021ca: JUMPI
000021cb: JUMPDEST
000021cc: DUP3
000021cd: PUSH2 0x21da
000021d0: JUMPI
000021d1: JUMPDEST
000021d2: POP
000021d3: POP
000021d4: DUP11
000021d5: DUP1
000021d6: PUSH2 0x1fc9
000021d9: JUMP
000021da: JUMPDEST
000021db: LT
000021dc: SWAP1
000021dd: POP
000021de: DUP11
000021df: DUP1
000021e0: PUSH2 0x21d1
000021e3: JUMP
000021e4: JUMPDEST
000021e5: DUP2
000021e6: ISZERO
000021e7: ISZERO
000021e8: SWAP3
000021e9: POP
000021ea: PUSH2 0x21cb
000021ed: JUMP
000021ee: JUMPDEST
000021ef: DUP1
000021f0: ISZERO
000021f1: ISZERO
000021f2: SWAP3
000021f3: POP
000021f4: PUSH2 0x21c5
000021f7: JUMP
000021f8: JUMPDEST
000021f9: DUP1
000021fa: ISZERO
000021fb: PUSH2 0x1f97
000021fe: JUMPI
000021ff: PUSH32 0x0ab6dd1200000000000000000000000000000000000000000000000000000000
00002220: PUSH0
00002221: MSTORE
00002222: PUSH1 0x04
00002224: PUSH0
00002225: REVERT
00002226: JUMPDEST
00002227: SWAP8
00002228: SWAP9
00002229: SWAP4
0000222a: SWAP2
0000222b: POP
0000222c: POP
0000222d: PUSH2 0x2242
00002230: DUP3
00002231: PUSH2 0x223b
00002234: DUP4
00002235: DUP11
00002236: DUP14
00002237: PUSH2 0x2bc9
0000223a: JUMP
0000223b: JUMPDEST
0000223c: SWAP9
0000223d: DUP13
0000223e: PUSH2 0x2bc9
00002241: JUMP
00002242: JUMPDEST
00002243: DUP8
00002244: DUP2
00002245: LT
00002246: SWAP1
00002247: DUP9
00002248: XOR
00002249: MUL
0000224a: DUP1
0000224b: DUP9
0000224c: XOR
0000224d: SWAP8
0000224e: EQ
0000224f: PUSH2 0x20ec
00002252: JUMPI
00002253: PUSH2 0x0d8b
00002256: SWAP8
00002257: PUSH2 0x2264
0000225a: DUP9
0000225b: DUP9
0000225c: PUSH2 0x205e
0000225f: SWAP7
00002260: PUSH2 0x2c29
00002263: JUMP
00002264: JUMPDEST
00002265: PUSH2 0x226f
00002268: DUP9
00002269: DUP3
0000226a: SLOAD
0000226b: PUSH2 0x278c
0000226e: JUMP
0000226f: JUMPDEST
00002270: SWAP1
00002271: SSTORE
00002272: PUSH2 0x2042
00002275: JUMP
00002276: JUMPDEST
00002277: PUSH2 0x2283
0000227a: DUP14
0000227b: DUP6
0000227c: PUSH2 0x07df
0000227f: PUSH2 0x2748
00002282: JUMP
00002283: JUMPDEST
00002284: PUSH2 0x1f6d
00002287: JUMP
00002288: JUMPDEST
00002289: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000229e: PUSH2 0x22a5
000022a1: PUSH2 0x2725
000022a4: JUMP
000022a5: JUMPDEST
000022a6: AND
000022a7: PUSH2 0x22d9
000022aa: JUMPI
000022ab: CALLVALUE
000022ac: DUP12
000022ad: EQ
000022ae: PUSH2 0x1f50
000022b1: JUMPI
000022b2: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
000022d3: PUSH0
000022d4: MSTORE
000022d5: PUSH1 0x04
000022d7: PUSH0
000022d8: REVERT
000022d9: JUMPDEST
000022da: CALLVALUE
000022db: PUSH2 0x1b37
000022de: JUMPI
000022df: PUSH2 0x22eb
000022e2: DUP12
000022e3: DUP4
000022e4: PUSH2 0x07df
000022e7: PUSH2 0x2725
000022ea: JUMP
000022eb: JUMPDEST
000022ec: PUSH2 0x1f50
000022ef: JUMP
000022f0: JUMPDEST
000022f1: CALLVALUE
000022f2: ISZERO
000022f3: PUSH2 0x1f4a
000022f6: JUMPI
000022f7: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
00002318: PUSH0
00002319: MSTORE
0000231a: PUSH1 0x04
0000231c: PUSH0
0000231d: REVERT
0000231e: JUMPDEST
0000231f: PUSH2 0x2329
00002322: DUP5
00002323: DUP5
00002324: DUP14
00002325: PUSH2 0x2bc9
00002328: JUMP
00002329: JUMPDEST
0000232a: SWAP1
0000232b: DUP1
0000232c: DUP3
0000232d: GT
0000232e: PUSH2 0x2343
00002331: JUMPI
00002332: POP
00002333: PUSH2 0x0104
00002336: CALLDATALOAD
00002337: DUP2
00002338: LT
00002339: PUSH2 0x18af
0000233c: JUMPI
0000233d: SWAP10
0000233e: SWAP9
0000233f: PUSH2 0x1f2d
00002342: JUMP
00002343: JUMPDEST
00002344: SWAP1
00002345: POP
00002346: PUSH2 0x2350
00002349: DUP4
0000234a: DUP6
0000234b: DUP4
0000234c: PUSH2 0x2bc9
0000234f: JUMP
00002350: JUMPDEST
00002351: SWAP11
00002352: DUP12
00002353: GT
00002354: PUSH2 0x2367
00002357: JUMPI
00002358: PUSH1 0xe4
0000235a: CALLDATALOAD
0000235b: DUP12
0000235c: LT
0000235d: PUSH2 0x18af
00002360: JUMPI
00002361: SWAP10
00002362: SWAP9
00002363: PUSH2 0x1f2d
00002366: JUMP
00002367: JUMPDEST
00002368: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00002389: PUSH0
0000238a: MSTORE
0000238b: PUSH1 0x01
0000238d: PUSH1 0x04
0000238f: MSTORE
00002390: PUSH1 0x24
00002392: PUSH0
00002393: REVERT
00002394: JUMPDEST
00002395: SWAP7
00002396: SWAP2
00002397: PUSH1 0x20
00002399: SLOAD
0000239a: ISZERO
0000239b: ISZERO
0000239c: SWAP3
0000239d: PUSH2 0x1f21
000023a0: JUMP
000023a1: JUMPDEST
000023a2: CALLVALUE
000023a3: PUSH2 0x185f
000023a6: JUMPI
000023a7: PUSH2 0x23af
000023aa: CALLDATASIZE
000023ab: PUSH2 0x262f
000023ae: JUMP
000023af: JUMPDEST
000023b0: SWAP1
000023b1: SWAP2
000023b2: PUSH8 0xedcaa89a82293940
000023bb: PUSH1 0x34
000023bd: MSTORE
000023be: CALLER
000023bf: PUSH1 0x28
000023c1: MSTORE
000023c2: PUSH1 0x14
000023c4: MSTORE
000023c5: DUP2
000023c6: PUSH0
000023c7: MSTORE
000023c8: DUP1
000023c9: PUSH1 0x54
000023cb: PUSH0
000023cc: KECCAK256
000023cd: SSTORE
000023ce: PUSH0
000023cf: MSTORE
000023d0: PUSH1 0x20
000023d2: MLOAD
000023d3: PUSH1 0x60
000023d5: SHR
000023d6: CALLER
000023d7: PUSH32 0xb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7
000023f8: PUSH1 0x20
000023fa: PUSH0
000023fb: LOG4
000023fc: PUSH1 0x01
000023fe: PUSH0
000023ff: MSTORE
00002400: PUSH1 0x20
00002402: PUSH0
00002403: RETURN
00002404: JUMPDEST
00002405: PUSH2 0x240d
00002408: CALLDATASIZE
00002409: PUSH2 0x262f
0000240c: JUMP
0000240d: JUMPDEST
0000240e: SWAP2
0000240f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002424: DUP2
00002425: AND
00002426: ISZERO
00002427: DUP1
00002428: ISZERO
00002429: PUSH2 0x245f
0000242c: JUMPI
0000242d: DUP4
0000242e: JUMPDEST
0000242f: CALLVALUE
00002430: SUB
00002431: PUSH2 0x1b37
00002434: JUMPI
00002435: ISZERO
00002436: PUSH2 0x244f
00002439: JUMPI
0000243a: JUMPDEST
0000243b: CALLER
0000243c: PUSH0
0000243d: MSTORE
0000243e: PUSH1 0x20
00002440: MSTORE
00002441: PUSH1 0x40
00002443: MSTORE
00002444: PUSH1 0x60
00002446: PUSH0
00002447: KECCAK256
00002448: SWAP1
00002449: DUP2
0000244a: TLOAD
0000244b: ADD
0000244c: SWAP1
0000244d: TSTORE
0000244e: STOP
0000244f: JUMPDEST
00002450: PUSH2 0x245a
00002453: DUP4
00002454: DUP4
00002455: DUP4
00002456: PUSH2 0x290a
00002459: JUMP
0000245a: JUMPDEST
0000245b: PUSH2 0x243a
0000245e: JUMP
0000245f: JUMPDEST
00002460: PUSH0
00002461: PUSH2 0x242e
00002464: JUMP
00002465: JUMPDEST
00002466: CALLVALUE
00002467: PUSH2 0x185f
0000246a: JUMPI
0000246b: PUSH2 0x2473
0000246e: CALLDATASIZE
0000246f: PUSH2 0x262f
00002472: JUMP
00002473: JUMPDEST
00002474: SWAP1
00002475: SWAP2
00002476: PUSH8 0xedcaa89a82293940
0000247f: PUSH1 0x20
00002481: MSTORE
00002482: CALLER
00002483: PUSH1 0x14
00002485: MSTORE
00002486: DUP3
00002487: PUSH0
00002488: MSTORE
00002489: PUSH1 0x40
0000248b: PUSH0
0000248c: KECCAK256
0000248d: DUP1
0000248e: SLOAD
0000248f: DUP1
00002490: DUP5
00002491: GT
00002492: PUSH2 0x250c
00002495: JUMPI
00002496: DUP4
00002497: SWAP1
00002498: SUB
00002499: SWAP1
0000249a: SSTORE
0000249b: DUP1
0000249c: PUSH1 0x14
0000249e: MSTORE
0000249f: DUP3
000024a0: PUSH0
000024a1: MSTORE
000024a2: PUSH1 0x40
000024a4: PUSH0
000024a5: KECCAK256
000024a6: SWAP2
000024a7: DUP3
000024a8: SLOAD
000024a9: DUP2
000024aa: DUP2
000024ab: ADD
000024ac: SWAP1
000024ad: DUP2
000024ae: LT
000024af: PUSH2 0x24ff
000024b2: JUMPI
000024b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024c8: SWAP4
000024c9: SSTORE
000024ca: CALLER
000024cb: PUSH0
000024cc: MSTORE
000024cd: PUSH1 0x20
000024cf: MSTORE
000024d0: AND
000024d1: CALLER
000024d2: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859
000024f3: PUSH1 0x40
000024f5: PUSH0
000024f6: LOG4
000024f7: PUSH1 0x01
000024f9: PUSH0
000024fa: MSTORE
000024fb: PUSH1 0x20
000024fd: PUSH0
000024fe: RETURN
000024ff: JUMPDEST
00002500: PUSH4 0x89560ca1
00002505: PUSH0
00002506: MSTORE
00002507: PUSH1 0x04
00002509: PUSH1 0x1c
0000250b: REVERT
0000250c: JUMPDEST
0000250d: PUSH4 0xf4d678b8
00002512: PUSH0
00002513: MSTORE
00002514: PUSH1 0x04
00002516: PUSH1 0x1c
00002518: REVERT
00002519: JUMPDEST
0000251a: CALLVALUE
0000251b: PUSH2 0x185f
0000251e: JUMPI
0000251f: PUSH1 0x20
00002521: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00002542: CALLDATASIZE
00002543: ADD
00002544: SLT
00002545: PUSH2 0x185f
00002548: JUMPI
00002549: PUSH1 0x04
0000254b: CALLDATALOAD
0000254c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000256d: DUP2
0000256e: AND
0000256f: DUP2
00002570: SUB
00002571: PUSH2 0x185f
00002574: JUMPI
00002575: PUSH1 0x20
00002577: SWAP1
00002578: PUSH1 0xe0
0000257a: SHR
0000257b: PUSH1 0x40
0000257d: MLOAD
0000257e: SWAP1
0000257f: PUSH4 0x01ffc9a7
00002584: PUSH4 0x0f632fb3
00002589: DUP3
0000258a: EQ
0000258b: SWAP2
0000258c: EQ
0000258d: OR
0000258e: ISZERO
0000258f: ISZERO
00002590: DUP2
00002591: MSTORE
00002592: RETURN
00002593: JUMPDEST
00002594: CALLVALUE
00002595: PUSH2 0x185f
00002598: JUMPI
00002599: PUSH1 0x40
0000259b: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000025bc: CALLDATASIZE
000025bd: ADD
000025be: SLT
000025bf: PUSH2 0x185f
000025c2: JUMPI
000025c3: PUSH1 0x20
000025c5: SWAP1
000025c6: PUSH2 0x25cd
000025c9: PUSH2 0x25e9
000025cc: JUMP
000025cd: JUMPDEST
000025ce: PUSH8 0xedcaa89a82293940
000025d7: DUP4
000025d8: MSTORE
000025d9: PUSH1 0x14
000025db: MSTORE
000025dc: PUSH1 0x24
000025de: CALLDATALOAD
000025df: PUSH0
000025e0: MSTORE
000025e1: PUSH1 0x40
000025e3: PUSH0
000025e4: KECCAK256
000025e5: SLOAD
000025e6: DUP2
000025e7: MSTORE
000025e8: RETURN
000025e9: JUMPDEST
000025ea: PUSH1 0x04
000025ec: CALLDATALOAD
000025ed: SWAP1
000025ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002603: DUP3
00002604: AND
00002605: DUP3
00002606: SUB
00002607: PUSH2 0x185f
0000260a: JUMPI
0000260b: JUMP
0000260c: JUMPDEST
0000260d: PUSH1 0x24
0000260f: CALLDATALOAD
00002610: SWAP1
00002611: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002626: DUP3
00002627: AND
00002628: DUP3
00002629: SUB
0000262a: PUSH2 0x185f
0000262d: JUMPI
0000262e: JUMP
0000262f: JUMPDEST
00002630: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00002651: PUSH1 0x60
00002653: SWAP2
00002654: ADD
00002655: SLT
00002656: PUSH2 0x185f
00002659: JUMPI
0000265a: PUSH1 0x04
0000265c: CALLDATALOAD
0000265d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002672: DUP2
00002673: AND
00002674: DUP2
00002675: SUB
00002676: PUSH2 0x185f
00002679: JUMPI
0000267a: SWAP1
0000267b: PUSH1 0x24
0000267d: CALLDATALOAD
0000267e: SWAP1
0000267f: PUSH1 0x44
00002681: CALLDATALOAD
00002682: SWAP1
00002683: JUMP
00002684: JUMPDEST
00002685: SWAP2
00002686: DUP2
00002687: PUSH1 0x1f
00002689: DUP5
0000268a: ADD
0000268b: SLT
0000268c: ISZERO
0000268d: PUSH2 0x185f
00002690: JUMPI
00002691: DUP3
00002692: CALLDATALOAD
00002693: SWAP2
00002694: PUSH8 0xffffffffffffffff
0000269d: DUP4
0000269e: GT
0000269f: PUSH2 0x185f
000026a2: JUMPI
000026a3: PUSH1 0x20
000026a5: DUP4
000026a6: DUP2
000026a7: DUP7
000026a8: ADD
000026a9: SWAP6
000026aa: ADD
000026ab: ADD
000026ac: GT
000026ad: PUSH2 0x185f
000026b0: JUMPI
000026b1: JUMP
000026b2: JUMPDEST
000026b3: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000026d4: ADD
000026d5: PUSH2 0x0140
000026d8: DUP2
000026d9: SLT
000026da: PUSH2 0x185f
000026dd: JUMPI
000026de: PUSH1 0xa0
000026e0: SGT
000026e1: PUSH2 0x185f
000026e4: JUMPI
000026e5: PUSH1 0x04
000026e7: SWAP1
000026e8: PUSH1 0xa4
000026ea: CALLDATALOAD
000026eb: SWAP1
000026ec: PUSH1 0xc4
000026ee: CALLDATALOAD
000026ef: SWAP1
000026f0: PUSH1 0xe4
000026f2: CALLDATALOAD
000026f3: DUP1
000026f4: ISZERO
000026f5: ISZERO
000026f6: DUP2
000026f7: SUB
000026f8: PUSH2 0x185f
000026fb: JUMPI
000026fc: SWAP1
000026fd: PUSH2 0x0104
00002700: CALLDATALOAD
00002701: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002716: DUP2
00002717: AND
00002718: DUP2
00002719: SUB
0000271a: PUSH2 0x185f
0000271d: JUMPI
0000271e: SWAP1
0000271f: PUSH2 0x0124
00002722: CALLDATALOAD
00002723: SWAP1
00002724: JUMP
00002725: JUMPDEST
00002726: PUSH1 0x44
00002728: CALLDATALOAD
00002729: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000273e: DUP2
0000273f: AND
00002740: DUP2
00002741: SUB
00002742: PUSH2 0x185f
00002745: JUMPI
00002746: SWAP1
00002747: JUMP
00002748: JUMPDEST
00002749: PUSH1 0x64
0000274b: CALLDATALOAD
0000274c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002761: DUP2
00002762: AND
00002763: DUP2
00002764: SUB
00002765: PUSH2 0x185f
00002768: JUMPI
00002769: SWAP1
0000276a: JUMP
0000276b: JUMPDEST
0000276c: CALLDATALOAD
0000276d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002782: DUP2
00002783: AND
00002784: DUP2
00002785: SUB
00002786: PUSH2 0x185f
00002789: JUMPI
0000278a: SWAP1
0000278b: JUMP
0000278c: JUMPDEST
0000278d: SWAP2
0000278e: SWAP1
0000278f: DUP3
00002790: ADD
00002791: DUP1
00002792: SWAP3
00002793: GT
00002794: PUSH2 0x2114
00002797: JUMPI
00002798: JUMP
00002799: JUMPDEST
0000279a: PUSH1 0x84
0000279c: CALLDATALOAD
0000279d: PUSH12 0xffffffffffffffffffffffff
000027aa: DUP2
000027ab: AND
000027ac: DUP2
000027ad: SUB
000027ae: PUSH2 0x185f
000027b1: JUMPI
000027b2: SWAP1
000027b3: JUMP
000027b4: JUMPDEST
000027b5: CALLDATALOAD
000027b6: PUSH12 0xffffffffffffffffffffffff
000027c3: DUP2
000027c4: AND
000027c5: DUP2
000027c6: SUB
000027c7: PUSH2 0x185f
000027ca: JUMPI
000027cb: SWAP1
000027cc: JUMP
000027cd: JUMPDEST
000027ce: DUP2
000027cf: DUP2
000027d0: MUL
000027d1: SWAP3
000027d2: SWAP2
000027d3: DUP2
000027d4: ISZERO
000027d5: SWAP2
000027d6: DUP5
000027d7: DIV
000027d8: EQ
000027d9: OR
000027da: ISZERO
000027db: PUSH2 0x2114
000027de: JUMPI
000027df: JUMP
000027e0: JUMPDEST
000027e1: SWAP2
000027e2: SWAP1
000027e3: DUP3
000027e4: SUB
000027e5: SWAP2
000027e6: DUP3
000027e7: GT
000027e8: PUSH2 0x2114
000027eb: JUMPI
000027ec: JUMP
000027ed: JUMPDEST
000027ee: SWAP1
000027ef: PUSH1 0x1f
000027f1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00002812: SWAP2
00002813: ADD
00002814: AND
00002815: DUP2
00002816: ADD
00002817: SWAP1
00002818: DUP2
00002819: LT
0000281a: PUSH8 0xffffffffffffffff
00002823: DUP3
00002824: GT
00002825: OR
00002826: PUSH2 0x282e
00002829: JUMPI
0000282a: PUSH1 0x40
0000282c: MSTORE
0000282d: JUMP
0000282e: JUMPDEST
0000282f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00002850: PUSH0
00002851: MSTORE
00002852: PUSH1 0x41
00002854: PUSH1 0x04
00002856: MSTORE
00002857: PUSH1 0x24
00002859: PUSH0
0000285a: REVERT
0000285b: JUMPDEST
0000285c: PUSH1 0x1f
0000285e: DUP3
0000285f: PUSH1 0x20
00002861: SWAP5
00002862: SWAP4
00002863: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00002884: SWAP4
00002885: DUP2
00002886: DUP7
00002887: MSTORE
00002888: DUP7
00002889: DUP7
0000288a: ADD
0000288b: CALLDATACOPY
0000288c: PUSH0
0000288d: DUP6
0000288e: DUP3
0000288f: DUP7
00002890: ADD
00002891: ADD
00002892: MSTORE
00002893: ADD
00002894: AND
00002895: ADD
00002896: ADD
00002897: SWAP1
00002898: JUMP
00002899: JUMPDEST
0000289a: PUSH8 0xffffffffffffffff
000028a3: DUP2
000028a4: GT
000028a5: PUSH2 0x282e
000028a8: JUMPI
000028a9: PUSH1 0x05
000028ab: SHL
000028ac: PUSH1 0x20
000028ae: ADD
000028af: SWAP1
000028b0: JUMP
000028b1: JUMPDEST
000028b2: DUP1
000028b3: MLOAD
000028b4: DUP3
000028b5: LT
000028b6: ISZERO
000028b7: PUSH2 0x28c5
000028ba: JUMPI
000028bb: PUSH1 0x20
000028bd: SWAP2
000028be: PUSH1 0x05
000028c0: SHL
000028c1: ADD
000028c2: ADD
000028c3: SWAP1
000028c4: JUMP
000028c5: JUMPDEST
000028c6: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000028e7: PUSH0
000028e8: MSTORE
000028e9: PUSH1 0x32
000028eb: PUSH1 0x04
000028ed: MSTORE
000028ee: PUSH1 0x24
000028f0: PUSH0
000028f1: REVERT
000028f2: JUMPDEST
000028f3: SWAP1
000028f4: DUP2
000028f5: PUSH1 0x20
000028f7: SWAP2
000028f8: SUB
000028f9: SLT
000028fa: PUSH2 0x185f
000028fd: JUMPI
000028fe: MLOAD
000028ff: DUP1
00002900: ISZERO
00002901: ISZERO
00002902: DUP2
00002903: SUB
00002904: PUSH2 0x185f
00002907: JUMPI
00002908: SWAP1
00002909: JUMP
0000290a: JUMPDEST
0000290b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002920: DUP2
00002921: AND
00002922: ADDRESS
00002923: DUP2
00002924: SUB
00002925: PUSH2 0x2936
00002928: JUMPI
00002929: POP
0000292a: POP
0000292b: SWAP1
0000292c: PUSH2 0x2934
0000292f: SWAP2
00002930: PUSH2 0x30ef
00002933: JUMP
00002934: JUMPDEST
00002935: JUMP
00002936: JUMPDEST
00002937: SWAP1
00002938: SWAP2
00002939: DUP1
0000293a: PUSH2 0x29a7
0000293d: JUMPI
0000293e: POP
0000293f: POP
00002940: PUSH1 0x40
00002942: MLOAD
00002943: SWAP2
00002944: PUSH1 0x60
00002946: MSTORE
00002947: ADDRESS
00002948: PUSH1 0x40
0000294a: MSTORE
0000294b: CALLER
0000294c: PUSH1 0x60
0000294e: SHL
0000294f: PUSH1 0x2c
00002951: MSTORE
00002952: PUSH16 0x23b872dd000000000000000000000000
00002963: PUSH1 0x0c
00002965: MSTORE
00002966: PUSH1 0x20
00002968: PUSH0
00002969: PUSH1 0x64
0000296b: PUSH1 0x1c
0000296d: DUP3
0000296e: DUP6
0000296f: GAS
00002970: CALL
00002971: SWAP1
00002972: DUP2
00002973: PUSH1 0x01
00002975: PUSH0
00002976: MLOAD
00002977: EQ
00002978: AND
00002979: ISZERO
0000297a: PUSH2 0x2989
0000297d: JUMPI
0000297e: JUMPDEST
0000297f: POP
00002980: POP
00002981: PUSH0
00002982: PUSH1 0x60
00002984: MSTORE
00002985: PUSH1 0x40
00002987: MSTORE
00002988: JUMP
00002989: JUMPDEST
0000298a: EXTCODESIZE
0000298b: ISZERO
0000298c: RETURNDATASIZE
0000298d: OR
0000298e: LT
0000298f: ISZERO
00002990: PUSH2 0x299a
00002993: JUMPI
00002994: PUSH0
00002995: DUP1
00002996: PUSH2 0x297e
00002999: JUMP
0000299a: JUMPDEST
0000299b: PUSH4 0x7939f424
000029a0: PUSH0
000029a1: MSTORE
000029a2: PUSH1 0x04
000029a4: PUSH1 0x1c
000029a6: REVERT
000029a7: JUMPDEST
000029a8: PUSH1 0x20
000029aa: SWAP3
000029ab: POP
000029ac: PUSH1 0x84
000029ae: SWAP1
000029af: PUSH0
000029b0: PUSH1 0x40
000029b2: SWAP6
000029b3: SWAP4
000029b4: SWAP6
000029b5: MLOAD
000029b6: SWAP6
000029b7: DUP7
000029b8: SWAP5
000029b9: DUP6
000029ba: SWAP4
000029bb: PUSH32 0xfe99049a00000000000000000000000000000000000000000000000000000000
000029dc: DUP6
000029dd: MSTORE
000029de: CALLER
000029df: PUSH1 0x04
000029e1: DUP7
000029e2: ADD
000029e3: MSTORE
000029e4: ADDRESS
000029e5: PUSH1 0x24
000029e7: DUP7
000029e8: ADD
000029e9: MSTORE
000029ea: PUSH1 0x44
000029ec: DUP6
000029ed: ADD
000029ee: MSTORE
000029ef: PUSH1 0x64
000029f1: DUP5
000029f2: ADD
000029f3: MSTORE
000029f4: GAS
000029f5: CALL
000029f6: DUP1
000029f7: ISZERO
000029f8: PUSH2 0x1854
000029fb: JUMPI
000029fc: PUSH2 0x2a02
000029ff: JUMPI
00002a00: POP
00002a01: JUMP
00002a02: JUMPDEST
00002a03: PUSH2 0x2a23
00002a06: SWAP1
00002a07: PUSH1 0x20
00002a09: RETURNDATASIZE
00002a0a: PUSH1 0x20
00002a0c: GT
00002a0d: PUSH2 0x2a26
00002a10: JUMPI
00002a11: JUMPDEST
00002a12: PUSH2 0x2a1b
00002a15: DUP2
00002a16: DUP4
00002a17: PUSH2 0x27ed
00002a1a: JUMP
00002a1b: JUMPDEST
00002a1c: DUP2
00002a1d: ADD
00002a1e: SWAP1
00002a1f: PUSH2 0x28f2
00002a22: JUMP
00002a23: JUMPDEST
00002a24: POP
00002a25: JUMP
00002a26: JUMPDEST
00002a27: POP
00002a28: RETURNDATASIZE
00002a29: PUSH2 0x2a11
00002a2c: JUMP
00002a2d: JUMPDEST
00002a2e: DUP2
00002a2f: ISZERO
00002a30: PUSH2 0x2a37
00002a33: JUMPI
00002a34: DIV
00002a35: SWAP1
00002a36: JUMP
00002a37: JUMPDEST
00002a38: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00002a59: PUSH0
00002a5a: MSTORE
00002a5b: PUSH1 0x12
00002a5d: PUSH1 0x04
00002a5f: MSTORE
00002a60: PUSH1 0x24
00002a62: PUSH0
00002a63: REVERT
00002a64: JUMPDEST
00002a65: PUSH1 0x20
00002a67: SLOAD
00002a68: DUP1
00002a69: ISZERO
00002a6a: DUP1
00002a6b: ISZERO
00002a6c: SWAP7
00002a6d: SWAP6
00002a6e: SWAP2
00002a6f: SWAP3
00002a70: SWAP2
00002a71: SWAP1
00002a72: PUSH2 0x2bb2
00002a75: JUMPI
00002a76: PUSH1 0x03
00002a78: DUP3
00002a79: ADD
00002a7a: SLOAD
00002a7b: SWAP5
00002a7c: DUP6
00002a7d: PUSH2 0x2a89
00002a80: JUMPI
00002a81: JUMPDEST
00002a82: POP
00002a83: POP
00002a84: POP
00002a85: POP
00002a86: POP
00002a87: POP
00002a88: JUMP
00002a89: JUMPDEST
00002a8a: PUSH2 0x0b79
00002a8d: PUSH2 0x2aac
00002a90: SWAP2
00002a91: PUSH14 0xffffffffffffffffffffffffffff
00002aa0: DUP1
00002aa1: PUSH2 0x2b3e
00002aa4: SWAP6
00002aa5: AND
00002aa6: SWAP2
00002aa7: AND
00002aa8: PUSH2 0x27cd
00002aab: JUMP
00002aac: JUMPDEST
00002aad: SWAP5
00002aae: DUP1
00002aaf: PUSH17 0xffffffffffffffffffffffffffffffffff
00002ac1: LT
00002ac2: PUSH1 0x07
00002ac4: SHL
00002ac5: DUP2
00002ac6: DUP2
00002ac7: SHR
00002ac8: PUSH9 0xffffffffffffffffff
00002ad2: LT
00002ad3: PUSH1 0x06
00002ad5: SHL
00002ad6: OR
00002ad7: DUP2
00002ad8: DUP2
00002ad9: SHR
00002ada: PUSH5 0xffffffffff
00002ae0: LT
00002ae1: PUSH1 0x05
00002ae3: SHL
00002ae4: OR
00002ae5: DUP2
00002ae6: DUP2
00002ae7: SHR
00002ae8: PUSH3 0xffffff
00002aec: LT
00002aed: PUSH1 0x04
00002aef: SHL
00002af0: OR
00002af1: PUSH1 0xb5
00002af3: PUSH3 0x010000
00002af7: DUP4
00002af8: DUP4
00002af9: SHR
00002afa: ADD
00002afb: SWAP2
00002afc: PUSH1 0x01
00002afe: SHR
00002aff: SHL
00002b00: MUL
00002b01: PUSH1 0x12
00002b03: SHR
00002b04: DUP1
00002b05: DUP3
00002b06: DIV
00002b07: ADD
00002b08: PUSH1 0x01
00002b0a: SHR
00002b0b: DUP1
00002b0c: DUP3
00002b0d: DIV
00002b0e: ADD
00002b0f: PUSH1 0x01
00002b11: SHR
00002b12: DUP1
00002b13: DUP3
00002b14: DIV
00002b15: ADD
00002b16: PUSH1 0x01
00002b18: SHR
00002b19: DUP1
00002b1a: DUP3
00002b1b: DIV
00002b1c: ADD
00002b1d: PUSH1 0x01
00002b1f: SHR
00002b20: DUP1
00002b21: DUP3
00002b22: DIV
00002b23: ADD
00002b24: PUSH1 0x01
00002b26: SHR
00002b27: DUP1
00002b28: DUP3
00002b29: DIV
00002b2a: ADD
00002b2b: PUSH1 0x01
00002b2d: SHR
00002b2e: DUP1
00002b2f: DUP3
00002b30: DIV
00002b31: ADD
00002b32: PUSH1 0x01
00002b34: SHR
00002b35: DUP1
00002b36: DUP1
00002b37: SWAP3
00002b38: DIV
00002b39: LT
00002b3a: SWAP1
00002b3b: SUB
00002b3c: SWAP1
00002b3d: JUMP
00002b3e: JUMPDEST
00002b3f: SWAP1
00002b40: DUP2
00002b41: DUP6
00002b42: GT
00002b43: PUSH2 0x2b4d
00002b46: JUMPI
00002b47: JUMPDEST
00002b48: DUP1
00002b49: PUSH2 0x2a81
00002b4c: JUMP
00002b4d: JUMPDEST
00002b4e: PUSH1 0x04
00002b50: ADD
00002b51: SWAP4
00002b52: PUSH2 0x2b60
00002b55: DUP6
00002b56: SLOAD
00002b57: PUSH2 0x167d
00002b5a: DUP5
00002b5b: DUP5
00002b5c: PUSH2 0x27e0
00002b5f: JUMP
00002b60: JUMPDEST
00002b61: SWAP1
00002b62: PUSH1 0x05
00002b64: DUP2
00002b65: MUL
00002b66: SWAP1
00002b67: DUP1
00002b68: DUP3
00002b69: DIV
00002b6a: PUSH1 0x05
00002b6c: EQ
00002b6d: SWAP1
00002b6e: ISZERO
00002b6f: OR
00002b70: ISZERO
00002b71: PUSH2 0x2114
00002b74: JUMPI
00002b75: PUSH2 0x2b87
00002b78: SWAP3
00002b79: PUSH2 0x2b81
00002b7c: SWAP2
00002b7d: PUSH2 0x278c
00002b80: JUMP
00002b81: JUMPDEST
00002b82: SWAP1
00002b83: PUSH2 0x2a2d
00002b86: JUMP
00002b87: JUMPDEST
00002b88: DUP1
00002b89: SWAP3
00002b8a: DUP2
00002b8b: PUSH2 0x2ba1
00002b8e: JUMPI
00002b8f: JUMPDEST
00002b90: POP
00002b91: POP
00002b92: POP
00002b93: DUP2
00002b94: SLOAD
00002b95: ADD
00002b96: SWAP1
00002b97: SSTORE
00002b98: PUSH0
00002b99: DUP1
00002b9a: DUP1
00002b9b: DUP1
00002b9c: DUP1
00002b9d: PUSH2 0x2b47
00002ba0: JUMP
00002ba1: JUMPDEST
00002ba2: PUSH2 0x2baa
00002ba5: SWAP3
00002ba6: PUSH2 0x2c29
00002ba9: JUMP
00002baa: JUMPDEST
00002bab: PUSH0
00002bac: DUP2
00002bad: DUP2
00002bae: PUSH2 0x2b8f
00002bb1: JUMP
00002bb2: JUMPDEST
00002bb3: POP
00002bb4: SWAP2
00002bb5: POP
00002bb6: POP
00002bb7: PUSH1 0x03
00002bb9: SWAP2
00002bba: POP
00002bbb: ADD
00002bbc: DUP1
00002bbd: SLOAD
00002bbe: PUSH2 0x2bc4
00002bc1: JUMPI
00002bc2: POP
00002bc3: JUMP
00002bc4: JUMPDEST
00002bc5: PUSH0
00002bc6: SWAP1
00002bc7: SSTORE
00002bc8: JUMP
00002bc9: JUMPDEST
00002bca: DUP2
00002bcb: DUP2
00002bcc: MUL
00002bcd: SWAP2
00002bce: DUP2
00002bcf: ISZERO
00002bd0: SWAP2
00002bd1: DUP4
00002bd2: DIV
00002bd3: EQ
00002bd4: OR
00002bd5: DUP3
00002bd6: MUL
00002bd7: ISZERO
00002bd8: PUSH2 0x2bdf
00002bdb: JUMPI
00002bdc: DIV
00002bdd: SWAP1
00002bde: JUMP
00002bdf: JUMPDEST
00002be0: PUSH4 0xad251c27
00002be5: PUSH0
00002be6: MSTORE
00002be7: PUSH1 0x04
00002be9: PUSH1 0x1c
00002beb: REVERT
00002bec: JUMPDEST
00002bed: SWAP1
00002bee: SWAP3
00002bef: SWAP2
00002bf0: PUSH0
00002bf1: SWAP4
00002bf2: PUSH1 0x40
00002bf4: MLOAD
00002bf5: SWAP3
00002bf6: CALLER
00002bf7: PUSH0
00002bf8: MSTORE
00002bf9: PUSH1 0x20
00002bfb: MSTORE
00002bfc: PUSH1 0x40
00002bfe: MSTORE
00002bff: PUSH1 0x60
00002c01: PUSH0
00002c02: KECCAK256
00002c03: SWAP1
00002c04: DUP2
00002c05: TLOAD
00002c06: DUP2
00002c07: DUP2
00002c08: LT
00002c09: ISZERO
00002c0a: PUSH2 0x2c16
00002c0d: JUMPI
00002c0e: JUMPDEST
00002c0f: POP
00002c10: POP
00002c11: POP
00002c12: PUSH1 0x40
00002c14: MSTORE
00002c15: JUMP
00002c16: JUMPDEST
00002c17: SWAP1
00002c18: SWAP2
00002c19: SWAP3
00002c1a: SWAP5
00002c1b: POP
00002c1c: SUB
00002c1d: SWAP1
00002c1e: TSTORE
00002c1f: PUSH1 0x01
00002c21: SWAP2
00002c22: PUSH0
00002c23: DUP1
00002c24: DUP1
00002c25: PUSH2 0x2c0e
00002c28: JUMP
00002c29: JUMPDEST
00002c2a: SWAP2
00002c2b: SWAP1
00002c2c: SWAP2
00002c2d: PUSH8 0xedcaa89a82293940
00002c36: PUSH1 0x20
00002c38: MSTORE
00002c39: DUP1
00002c3a: PUSH1 0x14
00002c3c: MSTORE
00002c3d: DUP3
00002c3e: PUSH0
00002c3f: MSTORE
00002c40: PUSH1 0x40
00002c42: PUSH0
00002c43: KECCAK256
00002c44: SWAP2
00002c45: DUP3
00002c46: SLOAD
00002c47: DUP2
00002c48: DUP2
00002c49: ADD
00002c4a: SWAP1
00002c4b: DUP2
00002c4c: LT
00002c4d: PUSH2 0x24ff
00002c50: JUMPI
00002c51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c66: SWAP4
00002c67: SSTORE
00002c68: CALLER
00002c69: PUSH0
00002c6a: MSTORE
00002c6b: PUSH1 0x20
00002c6d: MSTORE
00002c6e: AND
00002c6f: PUSH0
00002c70: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859
00002c91: PUSH1 0x40
00002c93: DUP3
00002c94: LOG4
00002c95: JUMP
00002c96: JUMPDEST
00002c97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002cac: SWAP2
00002cad: SWAP3
00002cae: PUSH8 0xedcaa89a82293940
00002cb7: PUSH1 0x20
00002cb9: MSTORE
00002cba: DUP2
00002cbb: PUSH1 0x14
00002cbd: MSTORE
00002cbe: DUP4
00002cbf: PUSH0
00002cc0: MSTORE
00002cc1: DUP1
00002cc2: PUSH1 0x40
00002cc4: PUSH0
00002cc5: KECCAK256
00002cc6: SSTORE
00002cc7: CALLER
00002cc8: PUSH0
00002cc9: MSTORE
00002cca: PUSH1 0x20
00002ccc: MSTORE
00002ccd: AND
00002cce: PUSH0
00002ccf: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859
00002cf0: PUSH1 0x40
00002cf2: DUP3
00002cf3: LOG4
00002cf4: JUMP
00002cf5: JUMPDEST
00002cf6: SWAP4
00002cf7: SWAP3
00002cf8: SWAP5
00002cf9: SWAP2
00002cfa: SWAP1
00002cfb: SWAP5
00002cfc: PUSH14 0xffffffffffffffffffffffffffff
00002d0b: DUP3
00002d0c: GT
00002d0d: PUSH2 0x2e79
00002d10: JUMPI
00002d11: PUSH14 0xffffffffffffffffffffffffffff
00002d20: DUP2
00002d21: GT
00002d22: PUSH2 0x2e79
00002d25: JUMPI
00002d26: DUP5
00002d27: PUSH14 0xffffffffffffffffffffffffffff
00002d36: PUSH28 0xffffffffffffffffffffffffffff0000000000000000000000000000
00002d53: SWAP5
00002d54: DUP2
00002d55: SWAP5
00002d56: PUSH1 0x40
00002d58: SWAP8
00002d59: PUSH32 0x1857d6b557d31cf8c2bf0cb9e6bf60aaeb9d8a0c5829169328ccf950adc4496f
00002d7a: SWAP10
00002d7b: SLOAD
00002d7c: SWAP3
00002d7d: PUSH4 0xffffffff
00002d82: DUP5
00002d83: PUSH1 0xe0
00002d85: SHR
00002d86: DUP2
00002d87: TIMESTAMP
00002d88: AND
00002d89: SUB
00002d8a: AND
00002d8b: SWAP2
00002d8c: DUP3
00002d8d: ISZERO
00002d8e: ISZERO
00002d8f: DUP1
00002d90: PUSH2 0x2e6e
00002d93: JUMPI
00002d94: JUMPDEST
00002d95: DUP1
00002d96: PUSH2 0x2e63
00002d99: JUMPI
00002d9a: JUMPDEST
00002d9b: PUSH2 0x2e06
00002d9e: JUMPI
00002d9f: JUMPDEST
00002da0: POP
00002da1: POP
00002da2: POP
00002da3: SWAP1
00002da4: SWAP2
00002da5: AND
00002da6: TIMESTAMP
00002da7: PUSH1 0xe0
00002da9: SHL
00002daa: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00002dcb: AND
00002dcc: DUP2
00002dcd: OR
00002dce: PUSH1 0x70
00002dd0: DUP6
00002dd1: SWAP1
00002dd2: SHL
00002dd3: PUSH28 0xffffffffffffffffffffffffffff0000000000000000000000000000
00002df0: AND
00002df1: OR
00002df2: SWAP1
00002df3: SWAP3
00002df4: SSTORE
00002df5: POP
00002df6: DUP5
00002df7: MLOAD
00002df8: SWAP1
00002df9: DUP2
00002dfa: MSTORE
00002dfb: SWAP2
00002dfc: AND
00002dfd: PUSH1 0x20
00002dff: DUP3
00002e00: ADD
00002e01: MSTORE
00002e02: SWAP1
00002e03: POP
00002e04: LOG2
00002e05: JUMP
00002e06: JUMPDEST
00002e07: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002e24: SWAP2
00002e25: DUP11
00002e26: PUSH2 0x2e4f
00002e29: SWAP3
00002e2a: DUP6
00002e2b: DUP6
00002e2c: PUSH2 0x2e3a
00002e2f: DUP4
00002e30: DUP6
00002e31: DUP8
00002e32: PUSH1 0x70
00002e34: SHL
00002e35: AND
00002e36: PUSH2 0x3144
00002e39: JUMP
00002e3a: JUMPDEST
00002e3b: AND
00002e3c: MUL
00002e3d: PUSH1 0x01
00002e3f: DUP12
00002e40: ADD
00002e41: SWAP1
00002e42: DUP2
00002e43: SLOAD
00002e44: ADD
00002e45: SWAP1
00002e46: SSTORE
00002e47: PUSH1 0x70
00002e49: SHL
00002e4a: AND
00002e4b: PUSH2 0x3144
00002e4e: JUMP
00002e4f: JUMPDEST
00002e50: AND
00002e51: MUL
00002e52: PUSH1 0x02
00002e54: DUP6
00002e55: ADD
00002e56: SWAP1
00002e57: DUP2
00002e58: SLOAD
00002e59: ADD
00002e5a: SWAP1
00002e5b: SSTORE
00002e5c: PUSH0
00002e5d: DUP1
00002e5e: DUP1
00002e5f: PUSH2 0x2d9f
00002e62: JUMP
00002e63: JUMPDEST
00002e64: POP
00002e65: DUP6
00002e66: DUP3
00002e67: AND
00002e68: ISZERO
00002e69: ISZERO
00002e6a: PUSH2 0x2d9a
00002e6d: JUMP
00002e6e: JUMPDEST
00002e6f: POP
00002e70: DUP6
00002e71: DUP2
00002e72: AND
00002e73: ISZERO
00002e74: ISZERO
00002e75: PUSH2 0x2d94
00002e78: JUMP
00002e79: JUMPDEST
00002e7a: PUSH32 0x35278d1200000000000000000000000000000000000000000000000000000000
00002e9b: PUSH0
00002e9c: MSTORE
00002e9d: PUSH1 0x04
00002e9f: PUSH0
00002ea0: REVERT
00002ea1: JUMPDEST
00002ea2: PUSH12 0xffffffffffffffffffffffff
00002eaf: AND
00002eb0: PUSH2 0x2710
00002eb3: SUB
00002eb4: SWAP1
00002eb5: PUSH12 0xffffffffffffffffffffffff
00002ec2: DUP3
00002ec3: GT
00002ec4: PUSH2 0x2114
00002ec7: JUMPI
00002ec8: JUMP
00002ec9: JUMPDEST
00002eca: PUSH2 0x2eef
00002ecd: SWAP1
00002ece: PUSH12 0xffffffffffffffffffffffff
00002edb: PUSH2 0x2ee8
00002ede: PUSH2 0x2ef6
00002ee1: SWAP5
00002ee2: SWAP6
00002ee3: SWAP7
00002ee4: PUSH2 0x2ea1
00002ee7: JUMP
00002ee8: JUMPDEST
00002ee9: AND
00002eea: SWAP1
00002eeb: PUSH2 0x27cd
00002eee: JUMP
00002eef: JUMPDEST
00002ef0: SWAP3
00002ef1: DUP4
00002ef2: PUSH2 0x27cd
00002ef5: JUMP
00002ef6: JUMPDEST
00002ef7: SWAP1
00002ef8: PUSH2 0x2710
00002efb: DUP2
00002efc: MUL
00002efd: SWAP1
00002efe: DUP1
00002eff: DUP3
00002f00: DIV
00002f01: PUSH2 0x2710
00002f04: EQ
00002f05: SWAP1
00002f06: ISZERO
00002f07: OR
00002f08: ISZERO
00002f09: PUSH2 0x2114
00002f0c: JUMPI
00002f0d: PUSH2 0x2f19
00002f10: SWAP3
00002f11: PUSH2 0x2b81
00002f14: SWAP2
00002f15: PUSH2 0x278c
00002f18: JUMP
00002f19: JUMPDEST
00002f1a: SWAP1
00002f1b: JUMP
00002f1c: JUMPDEST
00002f1d: SWAP3
00002f1e: SWAP2
00002f1f: SWAP1
00002f20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f35: DUP2
00002f36: AND
00002f37: ADDRESS
00002f38: DUP2
00002f39: SUB
00002f3a: PUSH2 0x2f5b
00002f3d: JUMPI
00002f3e: POP
00002f3f: POP
00002f40: PUSH1 0x40
00002f42: MLOAD
00002f43: SWAP3
00002f44: CALLER
00002f45: PUSH0
00002f46: MSTORE
00002f47: PUSH1 0x20
00002f49: MSTORE
00002f4a: PUSH1 0x40
00002f4c: MSTORE
00002f4d: PUSH1 0x60
00002f4f: PUSH0
00002f50: KECCAK256
00002f51: SWAP1
00002f52: DUP2
00002f53: TLOAD
00002f54: ADD
00002f55: SWAP1
00002f56: TSTORE
00002f57: PUSH1 0x40
00002f59: MSTORE
00002f5a: JUMP
00002f5b: JUMPDEST
00002f5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f71: DUP6
00002f72: AND
00002f73: ADDRESS
00002f74: DUP2
00002f75: SUB
00002f76: PUSH2 0x2f85
00002f79: JUMPI
00002f7a: POP
00002f7b: POP
00002f7c: PUSH2 0x2934
00002f7f: SWAP4
00002f80: POP
00002f81: PUSH2 0x2c29
00002f84: JUMP
00002f85: JUMPDEST
00002f86: SWAP2
00002f87: SWAP3
00002f88: SWAP2
00002f89: DUP1
00002f8a: PUSH2 0x2f9a
00002f8d: JUMPI
00002f8e: POP
00002f8f: POP
00002f90: POP
00002f91: PUSH2 0x2934
00002f94: SWAP3
00002f95: POP
00002f96: PUSH2 0x30d3
00002f99: JUMP
00002f9a: JUMPDEST
00002f9b: DUP3
00002f9c: PUSH2 0x2ffa
00002f9f: JUMPI
00002fa0: POP
00002fa1: POP
00002fa2: POP
00002fa3: PUSH1 0x14
00002fa5: MSTORE
00002fa6: PUSH1 0x34
00002fa8: MSTORE
00002fa9: PUSH16 0xa9059cbb000000000000000000000000
00002fba: PUSH0
00002fbb: MSTORE
00002fbc: PUSH1 0x20
00002fbe: PUSH0
00002fbf: PUSH1 0x44
00002fc1: PUSH1 0x10
00002fc3: DUP3
00002fc4: DUP6
00002fc5: GAS
00002fc6: CALL
00002fc7: SWAP1
00002fc8: DUP2
00002fc9: PUSH1 0x01
00002fcb: PUSH0
00002fcc: MLOAD
00002fcd: EQ
00002fce: AND
00002fcf: ISZERO
00002fd0: PUSH2 0x2fdc
00002fd3: JUMPI
00002fd4: JUMPDEST
00002fd5: POP
00002fd6: POP
00002fd7: PUSH0
00002fd8: PUSH1 0x34
00002fda: MSTORE
00002fdb: JUMP
00002fdc: JUMPDEST
00002fdd: EXTCODESIZE
00002fde: ISZERO
00002fdf: RETURNDATASIZE
00002fe0: OR
00002fe1: LT
00002fe2: ISZERO
00002fe3: PUSH2 0x2fed
00002fe6: JUMPI
00002fe7: PUSH0
00002fe8: DUP1
00002fe9: PUSH2 0x2fd4
00002fec: JUMP
00002fed: JUMPDEST
00002fee: PUSH4 0x90b8ec18
00002ff3: PUSH0
00002ff4: MSTORE
00002ff5: PUSH1 0x04
00002ff7: PUSH1 0x1c
00002ff9: REVERT
00002ffa: JUMPDEST
00002ffb: PUSH1 0x20
00002ffd: SWAP5
00002ffe: SWAP6
00002fff: POP
00003000: PUSH1 0x64
00003002: SWAP3
00003003: SWAP4
00003004: POP
00003005: PUSH0
00003006: SWAP1
00003007: PUSH1 0x40
00003009: MLOAD
0000300a: SWAP7
0000300b: DUP8
0000300c: SWAP6
0000300d: DUP7
0000300e: SWAP5
0000300f: PUSH32 0x095bcdb600000000000000000000000000000000000000000000000000000000
00003030: DUP7
00003031: MSTORE
00003032: PUSH1 0x04
00003034: DUP7
00003035: ADD
00003036: MSTORE
00003037: PUSH1 0x24
00003039: DUP6
0000303a: ADD
0000303b: MSTORE
0000303c: PUSH1 0x44
0000303e: DUP5
0000303f: ADD
00003040: MSTORE
00003041: GAS
00003042: CALL
00003043: DUP1
00003044: ISZERO
00003045: PUSH2 0x1854
00003048: JUMPI
00003049: PUSH2 0x2a02
0000304c: JUMPI
0000304d: POP
0000304e: JUMP
0000304f: JUMPDEST
00003050: SWAP2
00003051: SWAP1
00003052: PUSH1 0x40
00003054: MLOAD
00003055: SWAP3
00003056: CALLER
00003057: PUSH0
00003058: MSTORE
00003059: PUSH1 0x20
0000305b: MSTORE
0000305c: PUSH1 0x40
0000305e: MSTORE
0000305f: PUSH1 0x60
00003061: PUSH0
00003062: KECCAK256
00003063: SWAP2
00003064: DUP3
00003065: TLOAD
00003066: SWAP3
00003067: DUP4
00003068: PUSH2 0x3072
0000306b: JUMPI
0000306c: JUMPDEST
0000306d: POP
0000306e: PUSH1 0x40
00003070: MSTORE
00003071: JUMP
00003072: JUMPDEST
00003073: PUSH0
00003074: SWAP1
00003075: TSTORE
00003076: PUSH0
00003077: PUSH2 0x306c
0000307a: JUMP
0000307b: JUMPDEST
0000307c: SWAP1
0000307d: DUP2
0000307e: PUSH2 0x3089
00003081: SWAP2
00003082: SWAP5
00003083: SWAP4
00003084: SWAP5
00003085: PUSH2 0x27cd
00003088: JUMP
00003089: JUMPDEST
0000308a: SWAP2
0000308b: PUSH2 0x2710
0000308e: DUP4
0000308f: MUL
00003090: SWAP3
00003091: DUP1
00003092: DUP5
00003093: DIV
00003094: PUSH2 0x2710
00003097: EQ
00003098: SWAP1
00003099: ISZERO
0000309a: OR
0000309b: ISZERO
0000309c: PUSH2 0x2114
0000309f: JUMPI
000030a0: PUSH12 0xffffffffffffffffffffffff
000030ad: PUSH2 0x2ee8
000030b0: PUSH2 0x30bf
000030b3: PUSH2 0x2b81
000030b6: SWAP5
000030b7: PUSH2 0x30c5
000030ba: SWAP8
000030bb: PUSH2 0x27e0
000030be: JUMP
000030bf: JUMPDEST
000030c0: SWAP3
000030c1: PUSH2 0x2ea1
000030c4: JUMP
000030c5: JUMPDEST
000030c6: PUSH1 0x01
000030c8: DUP2
000030c9: ADD
000030ca: DUP1
000030cb: SWAP2
000030cc: GT
000030cd: PUSH2 0x2114
000030d0: JUMPI
000030d1: SWAP1
000030d2: JUMP
000030d3: JUMPDEST
000030d4: PUSH0
000030d5: DUP1
000030d6: DUP1
000030d7: SWAP4
000030d8: CODESIZE
000030d9: SWAP4
000030da: GAS
000030db: CALL
000030dc: ISZERO
000030dd: PUSH2 0x30e2
000030e0: JUMPI
000030e1: JUMP
000030e2: JUMPDEST
000030e3: PUSH4 0xb12d13eb
000030e8: PUSH0
000030e9: MSTORE
000030ea: PUSH1 0x04
000030ec: PUSH1 0x1c
000030ee: REVERT
000030ef: JUMPDEST
000030f0: SWAP1
000030f1: PUSH8 0xedcaa89a82293940
000030fa: PUSH1 0x20
000030fc: MSTORE
000030fd: CALLER
000030fe: PUSH1 0x14
00003100: MSTORE
00003101: DUP2
00003102: PUSH0
00003103: MSTORE
00003104: PUSH1 0x40
00003106: PUSH0
00003107: KECCAK256
00003108: DUP1
00003109: SLOAD
0000310a: DUP1
0000310b: DUP4
0000310c: GT
0000310d: PUSH2 0x250c
00003110: JUMPI
00003111: DUP3
00003112: SWAP1
00003113: SUB
00003114: SWAP1
00003115: SSTORE
00003116: CALLER
00003117: PUSH0
00003118: MSTORE
00003119: PUSH1 0x20
0000311b: MSTORE
0000311c: PUSH0
0000311d: CALLER
0000311e: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859
0000313f: PUSH1 0x40
00003141: DUP4
00003142: LOG4
00003143: JUMP
00003144: JUMPDEST
00003145: SWAP1
00003146: PUSH14 0xffffffffffffffffffffffffffff
00003155: AND
00003156: SWAP1
00003157: DUP2
00003158: ISZERO
00003159: PUSH2 0x2a37
0000315c: JUMPI
0000315d: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000317a: AND
0000317b: DIV
0000317c: SWAP1
0000317d: JUMP
0000317e: INVALID
0000317f: LOG2
00003180: PUSH5 0x6970667358
00003186: UNKNOWN(0x22)
00003187: SLT
00003188: KECCAK256
00003189: UNKNOWN(0x0C)
0000318a: DELEGATECALL
0000318b: DELEGATECALL
0000318c: CALLDATACOPY
0000318d: UNKNOWN(0xB8)
0000318e: LOG1
0000318f: ADDRESS
00003190: UNKNOWN(0xD6)
00003191: DUP9
00003192: UNKNOWN(0x25)
00003193: PUSH12 0xcf4b66cf749daa93ac35ff14
000031a0: DUP13
000031a1: SDIV
000031a2: RETURNDATACOPY
000031a3: UNKNOWN(0xDA)
000031a4: SWAP9
000031a5: UNKNOWN(0xC7)
000031a6: TLOAD
000031a7: CALLDATACOPY
000031a8: PUSH10 0x64736f6c634300081d00
000031b3: 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: 0xe394adb5c1fc08b4d9959978bfaf01793ae455682b1360eaca16072cd92a1ede
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0xe394adb5c1fc08b4d9959978bfaf01793ae455682b1360eaca16072cd92a1ede",
    "confirmed": false,
    "trace_mode": "callTracer",
    "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": "0x01ffc9a7",
            "selector": "0x01ffc9a7",
            "calldata_variants": [
                "0x01ffc9a7",
                "0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095bcdb6",
            "selector": "0x095bcdb6",
            "calldata_variants": [
                "0x095bcdb6",
                "0x095bcdb60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0efe6a8b",
            "selector": "0x0efe6a8b",
            "calldata_variants": [
                "0x0efe6a8b",
                "0x0efe6a8b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x426a8493",
            "selector": "0x426a8493",
            "calldata_variants": [
                "0x426a8493",
                "0x426a84930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x48416da8",
            "selector": "0x48416da8",
            "calldata_variants": [
                "0x48416da8",
                "0x48416da80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x558a7297",
            "selector": "0x558a7297",
            "calldata_variants": [
                "0x558a7297",
                "0x558a72970000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x598af9e7",
            "selector": "0x598af9e7",
            "calldata_variants": [
                "0x598af9e7",
                "0x598af9e70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6dc2a7b3",
            "selector": "0x6dc2a7b3",
            "calldata_variants": [
                "0x6dc2a7b3",
                "0x6dc2a7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 222,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 4456,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 12682,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 4,
    "untrusted_delegatecall_count": 4
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x383124ae87fcf3a6d1a4dafe513ae6b14df1ab05601fffca26eddf59d8fe5608
call_targets: 0x00000000000008882d72efa6cce4b6a40b24c860
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x383124ae87fcf3a6d1a4dafe513ae6b14df1ab05601fffca26eddf59d8fe5608",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x00000000000008882d72efa6cce4b6a40b24c860"
    ],
    "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": "0x01ffc9a7",
            "selector": "0x01ffc9a7",
            "calldata_variants": [
                "0x01ffc9a7",
                "0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095bcdb6",
            "selector": "0x095bcdb6",
            "calldata_variants": [
                "0x095bcdb6",
                "0x095bcdb60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0efe6a8b",
            "selector": "0x0efe6a8b",
            "calldata_variants": [
                "0x0efe6a8b",
                "0x0efe6a8b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x426a8493",
            "selector": "0x426a8493",
            "calldata_variants": [
                "0x426a8493",
                "0x426a84930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x48416da8",
            "selector": "0x48416da8",
            "calldata_variants": [
                "0x48416da8",
                "0x48416da80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x558a7297",
            "selector": "0x558a7297",
            "calldata_variants": [
                "0x558a7297",
                "0x558a72970000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x598af9e7",
            "selector": "0x598af9e7",
            "calldata_variants": [
                "0x598af9e7",
                "0x598af9e70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6dc2a7b3",
            "selector": "0x6dc2a7b3",
            "calldata_variants": [
                "0x6dc2a7b3",
                "0x6dc2a7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6190,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10608,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "constant",
            "target_expression_category": "computed"
        },
        {
            "pc": 10741,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 6,
    "guards_detected": [],
    "untrusted_call_count": 6
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x383124ae87fcf3a6d1a4dafe513ae6b14df1ab05601fffca26eddf59d8fe5608
call_targets: 0x00000000000008882d72efa6cce4b6a40b24c860
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x383124ae87fcf3a6d1a4dafe513ae6b14df1ab05601fffca26eddf59d8fe5608",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x00000000000008882d72efa6cce4b6a40b24c860"
    ],
    "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": "0x01ffc9a7",
            "selector": "0x01ffc9a7",
            "calldata_variants": [
                "0x01ffc9a7",
                "0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095bcdb6",
            "selector": "0x095bcdb6",
            "calldata_variants": [
                "0x095bcdb6",
                "0x095bcdb60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0efe6a8b",
            "selector": "0x0efe6a8b",
            "calldata_variants": [
                "0x0efe6a8b",
                "0x0efe6a8b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x426a8493",
            "selector": "0x426a8493",
            "calldata_variants": [
                "0x426a8493",
                "0x426a84930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x48416da8",
            "selector": "0x48416da8",
            "calldata_variants": [
                "0x48416da8",
                "0x48416da80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x558a7297",
            "selector": "0x558a7297",
            "calldata_variants": [
                "0x558a7297",
                "0x558a72970000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x598af9e7",
            "selector": "0x598af9e7",
            "calldata_variants": [
                "0x598af9e7",
                "0x598af9e70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6dc2a7b3",
            "selector": "0x6dc2a7b3",
            "calldata_variants": [
                "0x6dc2a7b3",
                "0x6dc2a7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6190,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10608,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "constant",
            "target_expression_category": "computed"
        },
        {
            "pc": 10741,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 6,
    "guards_detected": []
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 4
}
medium other codex Fee-on-transfer/deflationary tokens break reserve accounting and allow pool draining 75 no
view
evidence_json
{
    "evidence": "`swapExactIn`/`swapExactOut` compute outputs from `amountIn` and update reserves with `reserve + amountIn` after `_safeTransferFrom` without checking actual received balances; `addLiquidity` similarly updates reserves with requested amounts rather than balance deltas.",
    "locations": [
        "src/ZAMM.sol:swapExactIn",
        "src/ZAMM.sol:swapExactOut",
        "src/ZAMM.sol:addLiquidity"
    ],
    "recommendation": "Track actual received amounts by measuring balances before/after transfers (or use balance-based math like Uniswap V2) and update reserves using the real deltas. Alternatively, explicitly reject fee-on-transfer/deflationary tokens by verifying that received amount matches the expected input.",
    "exploit_scenario": "An attacker creates or targets a pool containing a fee-on-transfer token. When swapping in or adding liquidity, the contract uses the requested `amountIn`/`amount` to price and update reserves, even if the token transfer delivers less. The pool overpays the other asset on swaps and/or records inflated reserves, enabling repeated swaps to drain the counter-asset."
}
medium other codex Unchecked ERC6909 transfer return values enable malicious tokens to bypass payment 75 no
view
evidence_json
{
    "evidence": "`_safeTransfer` calls `ZERC6909(token).transfer(...)` and ignores its boolean return; `_safeTransferFrom` calls `ZERC6909(token).transferFrom(...)` and ignores its boolean return.",
    "locations": [
        "src/ZAMM.sol:_safeTransfer",
        "src/ZAMM.sol:_safeTransferFrom"
    ],
    "recommendation": "Require `transfer`/`transferFrom` to return true (or revert on failure) and revert otherwise. Consider wrapping ERC6909 calls in a safe helper that validates the return value.",
    "exploit_scenario": "A malicious ERC6909-like token can return `false` (or otherwise not move balances) from `transfer`/`transferFrom` without reverting. Because the AMM ignores these return values, it will proceed as if tokens were moved. The attacker can then add liquidity or swap without actually paying in, draining the paired asset."
}