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

Analysis Run

019bb50b-e0f2-711c-aedb-1c48d3e2f46f

failed
Chain ID
1
Address
Block Number
Created
Tue, Jan 13, 2026 1:50 AM
Review Summary

What survived the funnel

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

Confirmed
1
Validated
1
Source
Verified
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 1 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
40303 artifact.fetch complete 1 / 3 3 months ago
40304 proxy.resolve complete 1 / 3 3 months ago
40305 tool.cast_disasm complete 1 / 3 3 months ago
40306 analysis.bundle complete 1 / 3 3 months ago
40307 capability.graph complete 1 / 3 3 months ago
40308 detector.run complete 1 / 3 3 months ago
40309 validation.fork complete 1 / 3 3 months ago
40458 report.consolidate complete 1 / 6 3 months ago
40459 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"
}

Slither

tool.slither
Status
failed slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-nmek44wq) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-nmek44wq) 'forge' returned non-zero exit code 1 Compiling 8 files with Solc 0.8.19 stdout: Solc 0.8.19 finished in 236.05ms Error: Compiler run failed: stderr: Error: Compiler error (/solidity/libsolidity/codegen/LValue.cpp:52):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: --> contracts/Subs.sol:122:89: stderr: | stderr: 122 | bytes32 subId = getSubId(msg.sender, currentPeriod, expiration, amountPerCycle, receiver, sharesAccumulator, sharesLeft); 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-nmek44wq/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-nmek44wq)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-nmek44wq)
'forge' returned non-zero exit code 1
Compiling 8 files with Solc 0.8.19
stdout: Solc 0.8.19 finished in 236.05ms
Error: Compiler run failed:
stderr: Error: Compiler error (/solidity/libsolidity/codegen/LValue.cpp:52):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:    --> contracts/Subs.sol:122:89:
stderr:     |
stderr: 122 |         bytes32 subId = getSubId(msg.sender, currentPeriod, expiration, amountPerCycle, receiver, sharesAccumulator, sharesLeft);
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-nmek44wq/out/build-info is not a directory.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
One high-severity accounting issue: share inflation attack if the adapter is deployed without the initial share seeding described in comments.
View stdout
{"no_findings":false,"summary":"One high-severity accounting issue: share inflation attack if the adapter is deployed without the initial share seeding described in comments.","findings":[{"severity":"high","category":"math","title":"ERC4626-style share inflation lets early depositor steal later deposits","exploit_scenario":"An attacker makes the first tiny subscription to mint a minimal number of shares, then transfers a large amount of assets directly to the contract (not via subscribe), inflating totalAssets without increasing totalSupply. Subsequent subscribers mint zero/near-zero shares because shares = assets * totalSupply / totalAssets rounds down. The attacker later redeems their shares to withdraw all assets, including victims’ deposits.","recommendation":"Enforce the initial share seeding/virtual share defense inside the adapter (mint+burn seed shares or use virtual shares) rather than relying on an external factory, or hard-block direct asset donations from affecting share price accounting.","evidence":"BaseAdapter deposit/convertToShares uses totalAssets and totalSupply directly with no on-chain seed share defense; comment explicitly notes ERC4626 inflation risk.","locations":["contracts/yield/BaseAdapter.sol:72","contracts/yield/BaseAdapter.sol:91"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-56igszl3
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb510-0e12-7922-a174-b581be567852
--------
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 ls in /tmp/codex-56igszl3 succeeded in 7ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
solmate

thinking
**Reading AUDIT_BUNDLE.txt**
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-56igszl3 succeeded in 10ms:
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: contracts/Subs.sol
================================================================================
pragma solidity ^0.8.19;

import {ERC20} from "solmate/src/tokens/ERC20.sol";
import {SafeTransferLib} from "solmate/src/utils/SafeTransferLib.sol";
import {BoringBatchable} from "./fork/BoringBatchable.sol";
import {AaveV3Adapter} from "./yield/AaveV3Adapter.sol";
import {FixedPointMathLib} from "solmate/src/utils/FixedPointMathLib.sol";

contract Subs is BoringBatchable, AaveV3Adapter {
    using SafeTransferLib for ERC20;
    using FixedPointMathLib for uint256;

    uint public immutable periodDuration;
    address public immutable feeCollector;

thinking
**Recovering full BaseAdapter content**
exec
/bin/bash -lc "sed -n '1,260p' contracts/yield/BaseAdapter.sol" in /tmp/codex-56igszl3 succeeded in 5ms:
pragma solidity ^0.8.19;

import {ERC20} from "solmate/src/tokens/ERC20.sol";
import {SafeTransferLib} from "solmate/src/utils/SafeTransferLib.sol";
import {FixedPointMathLib} from "solmate/src/utils/FixedPointMathLib.sol";
import {Owned} from "solmate/src/auth/Owned.sol";

/*
This is vulnerable to ERC4626 inflation attacks!
See https://docs.openzeppelin.com/contracts/5.x/erc4626 and https://blog.openzeppelin.com/a-novel-defense-against-erc4626-inflation-attacks

This is solved through SubsFactory, which creates some shares upon deployment and burns them.
*/

abstract contract BaseAdapter is Owned {
    using SafeTransferLib for ERC20;
    using FixedPointMathLib for uint256;

    ERC20 public immutable asset;
    address public rewardRecipient;




thinking
**Analyzing contract reentrancy and state update risks**

I'm auditing potential vulnerabilities focused on reentrancy around asset transfers and state updates in subscription and adapter contracts. The timing of share minting before asset transfers could allow reentrancy if tokens have callbacks. I’m also evaluating arithmetic risks from share calculations, potential underflows from price drops, and how outdated share price snapshots might be gamed. There’s concern over improper access controls and order of state changes around external calls that might allow exploits or cause user fund locking. Overall, I’m carefully piecing together function interactions to identify any critical attack vectors.
thinking
**Examining share price manipulation via asset transfers**

I'm exploring how an attacker might influence share price by transferring assets directly to the contract, affecting sharesPerPeriod calculations and potentially altering receiver payouts. The dynamics between totalAssets, totalSupply, and shares minted per period suggest possible economic manipulation but also some balancing mechanisms. I’m considering if temporary asset donations combined with timing of updates could let an attacker game share accruals or withdraw more than they should, especially via flash loans or strategic redemptions. The interaction is complex, so I’m carefully weighing whether these scenarios open exploitable gaps or are controlled by the contract’s accounting.
thinking
**Identifying key vulnerabilities and accounting nuances**

I’m unpacking several potential issues, including the major inflation attack risk where an initial depositor can skew share price by donating assets directly, causing later subscribers to get zero shares and lose funds. I also see how deflationary tokens or fee-on-transfer behavior might cause under-collateralization. Beyond that, I’m noting subtle state update orders that might allow reentrancy or inconsistent accounting but appear limited due to checks. Most non-critical findings seem more like design quirks than exploitable bugs, focusing my attention mainly on the inflation attack and asset transfer nuances.
thinking
**Analyzing minor issues and auditing completeness**

I’m looking at small quirks like rounding losses in fee splits during claims and potential reentrancy via token transfers, but these don’t appear to cause serious problems. I also note how large periods can cause expensive loops, though partial update functions help mitigate that. Finally, I want to carefully reread the full audit bundle in segments to ensure no important detail is missed due to output truncation.
exec
/bin/bash -lc "sed -n '1,400p' AUDIT_BUNDLE.txt" in /tmp/codex-56igszl3 succeeded in 7ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/Subs.sol
================================================================================
pragma solidity ^0.8.19;

import {ERC20} from "solmate/src/tokens/ERC20.sol";
import {SafeTransferLib} from "solmate/src/utils/SafeTransferLib.sol";
import {BoringBatchable} from "./fork/BoringBatchable.sol";
import {AaveV3Adapter} from "./yield/AaveV3Adapter.sol";
import {FixedPointMathLib} from "solmate/src/utils/FixedPointMathLib.sol";

contract Subs is BoringBatchable, AaveV3Adapter {
    using SafeTransferLib for ERC20;
    using FixedPointMathLib for uint256;

    uint public immutable periodDuration;
    address public immutable feeCollector;
exec
/bin/bash -lc "sed -n '401,800p' AUDIT_BUNDLE.txt" in /tmp/codex-56igszl3 succeeded in 6ms:
            uint pullAmount = oldTotalAssets - newTotalAssets;
            require(pullAmount < maxToPull, ">maxToPull");
            asset.safeTransferFrom(msg.sender, address(this), pullAmount);
        }
    }

    function forceDeposit(uint assets) internal virtual;

    // Yield buffer
    //   Most of the gas cost in calls to subscribe() comes moving the coins into the yield-generating vault
    //   For small subscriptions this means that users might end up paying more in gas costs than the yield they generate,
    //   so to greatly reduce gas costs and amortize them among all users we've implemented a yield buffer.
    //   When new coins are deposited they'll be simply stored in the contract, with no extra gas costs,
    //   then, when we trigger it, all coins will be moved to the yield vault, thus aggregating all these user deposits
    //   into a single large deposit for which we pay O(1) gas, thus amortizing costs.
    //   This means that some money will sit idle and not earn any yield, but thats ok.
    //   This also applies for withdrawals, if we have enough money in the buffer we'll just use that so we don't have to pull money from vault
    function deposit(uint256 assets) internal returns (uint shares) {
        shares = totalSupply == 0 ? assets : assets.mulDivDown(totalSupply, totalAssets());
        totalSupply += shares;
exec
/bin/bash -lc "sed -n '801,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-56igszl3 succeeded in 6ms:
            }
            default {
                switch mod(n, 2)
                case 0 {
                    // If n is even, store scalar in z for now.
                    z := scalar
                }
                default {
                    // If n is odd, store x in z for now.
                    z := x
                }

                // Shifting right by 1 is like dividing by 2.
                let half := shr(1, scalar)

                for {
                    // Shift n right by 1 before looping to halve it.
                    n := shr(1, n)
                } n {
                    // Shift n right by 1 each iteration to halve it.

thinking
**Preparing to analyze BaseAdapter vulnerability**
exec
/bin/bash -lc "nl -ba contracts/yield/BaseAdapter.sol | sed -n '60,150p'" in /tmp/codex-56igszl3 succeeded in 6ms:
    60	
    61	    function forceDeposit(uint assets) internal virtual;
    62	
    63	    // Yield buffer
    64	    //   Most of the gas cost in calls to subscribe() comes moving the coins into the yield-generating vault
    65	    //   For small subscriptions this means that users might end up paying more in gas costs than the yield they generate,
    66	    //   so to greatly reduce gas costs and amortize them among all users we've implemented a yield buffer.
    67	    //   When new coins are deposited they'll be simply stored in the contract, with no extra gas costs,
    68	    //   then, when we trigger it, all coins will be moved to the yield vault, thus aggregating all these user deposits
    69	    //   into a single large deposit for which we pay O(1) gas, thus amortizing costs.
    70	    //   This means that some money will sit idle and not earn any yield, but thats ok.
    71	    //   This also applies for withdrawals, if we have enough money in the buffer we'll just use that so we don't have to pull money from vault
    72	    function deposit(uint256 assets) internal returns (uint shares) {
    73	        shares = totalSupply == 0 ? assets : assets.mulDivDown(totalSupply, totalAssets());
    74	        totalSupply += shares;
    75	    }
    76	
    77	    function forceRedeem(uint assets, address receiver) internal virtual;
    78	
    79	    function redeem(uint256 shares, address receiver) internal {

thinking
**Summarizing ERC4626 inflation vulnerability**

I’m outlining a high-severity finding about an inflation attack where initial share seeding is missing, letting an attacker inflate share price by donating assets directly. This causes later subscribers to mint few or zero shares, losing assets to the attacker. I’ll include details on the affected lines in BaseAdapter.sol and mention mitigations like minting initial shares or restricting direct transfers. I'll also touch on minor points like fee-on-transfer asset risks and claim rounding effects, but focus on the main exploitable issue.
codex
{"no_findings":false,"summary":"One high-severity accounting issue: share inflation attack if the adapter is deployed without the initial share seeding described in comments.","findings":[{"severity":"high","category":"math","title":"ERC4626-style share inflation lets early depositor steal later deposits","exploit_scenario":"An attacker makes the first tiny subscription to mint a minimal number of shares, then transfers a large amount of assets directly to the contract (not via subscribe), inflating totalAssets without increasing totalSupply. Subsequent subscribers mint zero/near-zero shares because shares = assets * totalSupply / totalAssets rounds down. The attacker later redeems their shares to withdraw all assets, including victims’ deposits.","recommendation":"Enforce the initial share seeding/virtual share defense inside the adapter (mint+burn seed shares or use virtual shares) rather than relying on an external factory, or hard-block direct asset donations from affecting share price accounting.","evidence":"BaseAdapter deposit/convertToShares uses totalAssets and totalSupply directly with no on-chain seed share defense; comment explicitly notes ERC4626 inflation risk.","locations":["contracts/yield/BaseAdapter.sol:72","contracts/yield/BaseAdapter.sol:91"]}]}
tokens used
39,669
Metadata
{
    "codex": {
        "ran_at": "2026-01-13T01:59:35.804623+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 8,
        "import_count": 8,
        "first_party_contracts_count": 8
    },
    "summary": "One high-severity accounting issue: share inflation attack if the adapter is deployed without the initial share seeding described in comments.",
    "raw_final": {
        "summary": "One high-severity accounting issue: share inflation attack if the adapter is deployed without the initial share seeding described in comments.",
        "findings": [
            {
                "title": "ERC4626-style share inflation lets early depositor steal later deposits",
                "category": "math",
                "evidence": "BaseAdapter deposit/convertToShares uses totalAssets and totalSupply directly with no on-chain seed share defense; comment explicitly notes ERC4626 inflation risk.",
                "severity": "high",
                "locations": [
                    "contracts/yield/BaseAdapter.sol:72",
                    "contracts/yield/BaseAdapter.sol:91"
                ],
                "recommendation": "Enforce the initial share seeding/virtual share defense inside the adapter (mint+burn seed shares or use virtual shares) rather than relying on an external factory, or hard-block direct asset donations from affecting share price accounting.",
                "exploit_scenario": "An attacker makes the first tiny subscription to mint a minimal number of shares, then transfers a large amount of assets directly to the contract (not via subscribe), inflating totalAssets without increasing totalSupply. Subsequent subscribers mint zero/near-zero shares because shares = assets * totalSupply / totalAssets rounds down. The attacker later redeems their shares to withdraw all assets, including victims\u2019 deposits."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
1
CREATE2
0
CALL-family (heavy)
12
EXT*/BALANCE
2
Total opcodes
4315
Flags
delegatecall_present selfdestruct_present create_opcodes_present call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: ISZERO
0000000a: PUSH2 0x0012
0000000d: JUMPI
0000000e: PUSH1 0x00
00000010: DUP1
00000011: REVERT
00000012: JUMPDEST
00000013: PUSH1 0x00
00000015: CALLDATALOAD
00000016: PUSH1 0xe0
00000018: SHR
00000019: DUP1
0000001a: PUSH4 0x01e1d114
0000001f: EQ
00000020: PUSH2 0x0217
00000023: JUMPI
00000024: DUP1
00000025: PUSH4 0x06040618
0000002a: EQ
0000002b: PUSH2 0x0212
0000002e: JUMPI
0000002f: DUP1
00000030: PUSH4 0x07a2d13a
00000035: EQ
00000036: PUSH2 0x020d
00000039: JUMPI
0000003a: DUP1
0000003b: PUSH4 0x1468026d
00000040: EQ
00000041: PUSH2 0x0208
00000044: JUMPI
00000045: DUP1
00000046: PUSH4 0x17f33340
0000004b: EQ
0000004c: PUSH2 0x0203
0000004f: JUMPI
00000050: DUP1
00000051: PUSH4 0x18160ddd
00000056: EQ
00000057: PUSH2 0x01fe
0000005a: JUMPI
0000005b: DUP1
0000005c: PUSH4 0x19d10f09
00000061: EQ
00000062: PUSH2 0x01f9
00000065: JUMPI
00000066: DUP1
00000067: PUSH4 0x3410fe6e
0000006c: EQ
0000006d: PUSH2 0x01f4
00000070: JUMPI
00000071: DUP1
00000072: PUSH4 0x372500ab
00000077: EQ
00000078: PUSH2 0x01ef
0000007b: JUMPI
0000007c: DUP1
0000007d: PUSH4 0x379607f5
00000082: EQ
00000083: PUSH2 0x01ea
00000086: JUMPI
00000087: DUP1
00000088: PUSH4 0x38d52e0f
0000008d: EQ
0000008e: PUSH2 0x01e5
00000091: JUMPI
00000092: DUP1
00000093: PUSH4 0x535a05e2
00000098: EQ
00000099: PUSH2 0x01e0
0000009c: JUMPI
0000009d: DUP1
0000009e: PUSH4 0x5fb030c1
000000a3: EQ
000000a4: PUSH2 0x01db
000000a7: JUMPI
000000a8: DUP1
000000a9: PUSH4 0x6b82b985
000000ae: EQ
000000af: PUSH2 0x01d6
000000b2: JUMPI
000000b3: DUP1
000000b4: PUSH4 0x6bb65f53
000000b9: EQ
000000ba: PUSH2 0x01d1
000000bd: JUMPI
000000be: DUP1
000000bf: PUSH4 0x78316317
000000c4: EQ
000000c5: PUSH2 0x01cc
000000c8: JUMPI
000000c9: DUP1
000000ca: PUSH4 0x7c516e94
000000cf: EQ
000000d0: PUSH2 0x01c7
000000d3: JUMPI
000000d4: DUP1
000000d5: PUSH4 0x8da5cb5b
000000da: EQ
000000db: PUSH2 0x01c2
000000de: JUMPI
000000df: DUP1
000000e0: PUSH4 0x9c9b85b6
000000e5: EQ
000000e6: PUSH2 0x01bd
000000e9: JUMPI
000000ea: DUP1
000000eb: PUSH4 0xa0c1f15e
000000f0: EQ
000000f1: PUSH2 0x01b8
000000f4: JUMPI
000000f5: DUP1
000000f6: PUSH4 0xa59a9973
000000fb: EQ
000000fc: PUSH2 0x01b3
000000ff: JUMPI
00000100: DUP1
00000101: PUSH4 0xb470aade
00000106: EQ
00000107: PUSH2 0x01ae
0000010a: JUMPI
0000010b: DUP1
0000010c: PUSH4 0xbf33a1f5
00000111: EQ
00000112: PUSH2 0x01a9
00000115: JUMPI
00000116: DUP1
00000117: PUSH4 0xc0d672c0
0000011c: EQ
0000011d: PUSH2 0x01a4
00000120: JUMPI
00000121: DUP1
00000122: PUSH4 0xc415b95c
00000127: EQ
00000128: PUSH2 0x019f
0000012b: JUMPI
0000012c: DUP1
0000012d: PUSH4 0xc6e6f592
00000132: EQ
00000133: PUSH2 0x019a
00000136: JUMPI
00000137: DUP1
00000138: PUSH4 0xd2423b51
0000013d: EQ
0000013e: PUSH2 0x0195
00000141: JUMPI
00000142: DUP1
00000143: PUSH4 0xd8dc8be8
00000148: EQ
00000149: PUSH2 0x0190
0000014c: JUMPI
0000014d: DUP1
0000014e: PUSH4 0xdd674836
00000153: EQ
00000154: PUSH2 0x018b
00000157: JUMPI
00000158: DUP1
00000159: PUSH4 0xdf11784a
0000015e: EQ
0000015f: PUSH2 0x0186
00000162: JUMPI
00000163: DUP1
00000164: PUSH4 0xe521136f
00000169: EQ
0000016a: PUSH2 0x0181
0000016d: JUMPI
0000016e: PUSH4 0xf2fde38b
00000173: EQ
00000174: PUSH2 0x017c
00000177: JUMPI
00000178: PUSH1 0x00
0000017a: DUP1
0000017b: REVERT
0000017c: JUMPDEST
0000017d: PUSH2 0x15b9
00000180: JUMP
00000181: JUMPDEST
00000182: PUSH2 0x152a
00000185: JUMP
00000186: JUMPDEST
00000187: PUSH2 0x13d0
0000018a: JUMP
0000018b: JUMPDEST
0000018c: PUSH2 0x1118
0000018f: JUMP
00000190: JUMPDEST
00000191: PUSH2 0x106b
00000194: JUMP
00000195: JUMPDEST
00000196: PUSH2 0x0fef
00000199: JUMP
0000019a: JUMPDEST
0000019b: PUSH2 0x0fb3
0000019e: JUMP
0000019f: JUMPDEST
000001a0: PUSH2 0x0f44
000001a3: JUMP
000001a4: JUMPDEST
000001a5: PUSH2 0x0ecd
000001a8: JUMP
000001a9: JUMPDEST
000001aa: PUSH2 0x0d8d
000001ad: JUMP
000001ae: JUMPDEST
000001af: PUSH2 0x0d34
000001b2: JUMP
000001b3: JUMPDEST
000001b4: PUSH2 0x0cc5
000001b7: JUMP
000001b8: JUMPDEST
000001b9: PUSH2 0x0c56
000001bc: JUMP
000001bd: JUMPDEST
000001be: PUSH2 0x0b38
000001c1: JUMP
000001c2: JUMPDEST
000001c3: PUSH2 0x0ae6
000001c6: JUMP
000001c7: JUMPDEST
000001c8: PUSH2 0x09dc
000001cb: JUMP
000001cc: JUMPDEST
000001cd: PUSH2 0x089a
000001d0: JUMP
000001d1: JUMPDEST
000001d2: PUSH2 0x082b
000001d5: JUMP
000001d6: JUMPDEST
000001d7: PUSH2 0x07dc
000001da: JUMP
000001db: JUMPDEST
000001dc: PUSH2 0x075c
000001df: JUMP
000001e0: JUMPDEST
000001e1: PUSH2 0x06f6
000001e4: JUMP
000001e5: JUMPDEST
000001e6: PUSH2 0x0669
000001e9: JUMP
000001ea: JUMPDEST
000001eb: PUSH2 0x0590
000001ee: JUMP
000001ef: JUMPDEST
000001f0: PUSH2 0x0452
000001f3: JUMP
000001f4: JUMPDEST
000001f5: PUSH2 0x03f9
000001f8: JUMP
000001f9: JUMPDEST
000001fa: PUSH2 0x03af
000001fd: JUMP
000001fe: JUMPDEST
000001ff: PUSH2 0x0373
00000202: JUMP
00000203: JUMPDEST
00000204: PUSH2 0x0321
00000207: JUMP
00000208: JUMPDEST
00000209: PUSH2 0x02e5
0000020c: JUMP
0000020d: JUMPDEST
0000020e: PUSH2 0x02a9
00000211: JUMP
00000212: JUMPDEST
00000213: PUSH2 0x026d
00000216: JUMP
00000217: JUMPDEST
00000218: PUSH2 0x022c
0000021b: JUMP
0000021c: JUMPDEST
0000021d: PUSH1 0x00
0000021f: SWAP2
00000220: SUB
00000221: SLT
00000222: PUSH2 0x0227
00000225: JUMPI
00000226: JUMP
00000227: JUMPDEST
00000228: PUSH1 0x00
0000022a: DUP1
0000022b: REVERT
0000022c: JUMPDEST
0000022d: CALLVALUE
0000022e: PUSH2 0x0227
00000231: JUMPI
00000232: PUSH1 0x00
00000234: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000255: CALLDATASIZE
00000256: ADD
00000257: SLT
00000258: PUSH2 0x0227
0000025b: JUMPI
0000025c: PUSH1 0x20
0000025e: PUSH2 0x0265
00000261: PUSH2 0x2258
00000264: JUMP
00000265: JUMPDEST
00000266: PUSH1 0x40
00000268: MLOAD
00000269: SWAP1
0000026a: DUP2
0000026b: MSTORE
0000026c: RETURN
0000026d: JUMPDEST
0000026e: CALLVALUE
0000026f: PUSH2 0x0227
00000272: JUMPI
00000273: PUSH1 0x00
00000275: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000296: CALLDATASIZE
00000297: ADD
00000298: SLT
00000299: PUSH2 0x0227
0000029c: JUMPI
0000029d: PUSH1 0x20
0000029f: PUSH1 0x03
000002a1: SLOAD
000002a2: PUSH1 0x40
000002a4: MLOAD
000002a5: SWAP1
000002a6: DUP2
000002a7: MSTORE
000002a8: RETURN
000002a9: JUMPDEST
000002aa: CALLVALUE
000002ab: PUSH2 0x0227
000002ae: JUMPI
000002af: PUSH1 0x20
000002b1: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000002d2: CALLDATASIZE
000002d3: ADD
000002d4: SLT
000002d5: PUSH2 0x0227
000002d8: JUMPI
000002d9: PUSH1 0x20
000002db: PUSH2 0x0265
000002de: PUSH1 0x04
000002e0: CALLDATALOAD
000002e1: PUSH2 0x262d
000002e4: JUMP
000002e5: JUMPDEST
000002e6: CALLVALUE
000002e7: PUSH2 0x0227
000002ea: JUMPI
000002eb: PUSH1 0x00
000002ed: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000030e: CALLDATASIZE
0000030f: ADD
00000310: SLT
00000311: PUSH2 0x0227
00000314: JUMPI
00000315: PUSH1 0x20
00000317: PUSH1 0x04
00000319: SLOAD
0000031a: PUSH1 0x40
0000031c: MLOAD
0000031d: SWAP1
0000031e: DUP2
0000031f: MSTORE
00000320: RETURN
00000321: JUMPDEST
00000322: CALLVALUE
00000323: PUSH2 0x0227
00000326: JUMPI
00000327: PUSH1 0x00
00000329: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000034a: CALLDATASIZE
0000034b: ADD
0000034c: SLT
0000034d: PUSH2 0x0227
00000350: JUMPI
00000351: PUSH1 0x20
00000353: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000368: PUSH1 0x01
0000036a: SLOAD
0000036b: AND
0000036c: PUSH1 0x40
0000036e: MLOAD
0000036f: SWAP1
00000370: DUP2
00000371: MSTORE
00000372: RETURN
00000373: JUMPDEST
00000374: CALLVALUE
00000375: PUSH2 0x0227
00000378: JUMPI
00000379: PUSH1 0x00
0000037b: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000039c: CALLDATASIZE
0000039d: ADD
0000039e: SLT
0000039f: PUSH2 0x0227
000003a2: JUMPI
000003a3: PUSH1 0x20
000003a5: PUSH1 0x02
000003a7: SLOAD
000003a8: PUSH1 0x40
000003aa: MLOAD
000003ab: SWAP1
000003ac: DUP2
000003ad: MSTORE
000003ae: RETURN
000003af: JUMPDEST
000003b0: CALLVALUE
000003b1: PUSH2 0x0227
000003b4: JUMPI
000003b5: PUSH1 0x20
000003b7: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000003d8: CALLDATASIZE
000003d9: ADD
000003da: SLT
000003db: PUSH2 0x0227
000003de: JUMPI
000003df: PUSH1 0x04
000003e1: CALLDATALOAD
000003e2: PUSH1 0x00
000003e4: MSTORE
000003e5: PUSH1 0x07
000003e7: PUSH1 0x20
000003e9: MSTORE
000003ea: PUSH1 0x20
000003ec: PUSH1 0x40
000003ee: PUSH1 0x00
000003f0: KECCAK256
000003f1: SLOAD
000003f2: PUSH1 0x40
000003f4: MLOAD
000003f5: SWAP1
000003f6: DUP2
000003f7: MSTORE
000003f8: RETURN
000003f9: JUMPDEST
000003fa: CALLVALUE
000003fb: PUSH2 0x0227
000003fe: JUMPI
000003ff: PUSH1 0x00
00000401: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000422: CALLDATASIZE
00000423: ADD
00000424: SLT
00000425: PUSH2 0x0227
00000428: JUMPI
00000429: PUSH1 0x20
0000042b: PUSH1 0x40
0000042d: MLOAD
0000042e: PUSH32 0x00000000000000000000000000000000000000000000000000000000000f4240
0000044f: DUP2
00000450: MSTORE
00000451: RETURN
00000452: JUMPDEST
00000453: CALLVALUE
00000454: PUSH2 0x0227
00000457: JUMPI
00000458: PUSH1 0x00
0000045a: DUP1
0000045b: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000047c: CALLDATASIZE
0000047d: ADD
0000047e: SLT
0000047f: PUSH2 0x058d
00000482: JUMPI
00000483: PUSH2 0x0534
00000486: DUP2
00000487: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000049c: DUP1
0000049d: PUSH1 0x01
0000049f: SLOAD
000004a0: AND
000004a1: SWAP1
000004a2: PUSH2 0x04ac
000004a5: DUP3
000004a6: CALLER
000004a7: EQ
000004a8: PUSH2 0x2007
000004ab: JUMP
000004ac: JUMPDEST
000004ad: PUSH2 0x04b4
000004b0: PUSH2 0x2084
000004b3: JUMP
000004b4: JUMPDEST
000004b5: PUSH2 0x04fe
000004b8: DUP3
000004b9: PUSH32 0x00000000000000000000000098c23e9d8f34fefb1b7bd6a91b7ff122f4e16f5c
000004da: AND
000004db: PUSH2 0x04e3
000004de: DUP4
000004df: PUSH2 0x209e
000004e2: JUMP
000004e3: JUMPDEST
000004e4: SWAP1
000004e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004fa: AND
000004fb: SWAP1
000004fc: MSTORE
000004fd: JUMP
000004fe: JUMPDEST
000004ff: DUP4
00000500: PUSH1 0x40
00000502: MLOAD
00000503: DUP1
00000504: SWAP7
00000505: DUP2
00000506: SWAP6
00000507: DUP3
00000508: SWAP5
00000509: PUSH32 0xbb492bf500000000000000000000000000000000000000000000000000000000
0000052a: DUP5
0000052b: MSTORE
0000052c: PUSH1 0x04
0000052e: DUP5
0000052f: ADD
00000530: PUSH2 0x21d8
00000533: JUMP
00000534: JUMPDEST
00000535: SUB
00000536: SWAP3
00000537: PUSH32 0x0000000000000000000000008164cc65827dcfe994ab23944cbc90e0aa80bfcb
00000558: AND
00000559: GAS
0000055a: CALL
0000055b: DUP1
0000055c: ISZERO
0000055d: PUSH2 0x0588
00000560: JUMPI
00000561: PUSH2 0x0568
00000564: JUMPI
00000565: POP
00000566: DUP1
00000567: RETURN
00000568: JUMPDEST
00000569: PUSH2 0x0583
0000056c: SWAP1
0000056d: RETURNDATASIZE
0000056e: DUP1
0000056f: DUP5
00000570: DUP4
00000571: RETURNDATACOPY
00000572: PUSH2 0x057b
00000575: DUP2
00000576: DUP4
00000577: PUSH2 0x19f2
0000057a: JUMP
0000057b: JUMPDEST
0000057c: DUP2
0000057d: ADD
0000057e: SWAP1
0000057f: PUSH2 0x2138
00000582: JUMP
00000583: JUMPDEST
00000584: POP
00000585: POP
00000586: DUP1
00000587: RETURN
00000588: JUMPDEST
00000589: PUSH2 0x1ffb
0000058c: JUMP
0000058d: JUMPDEST
0000058e: DUP1
0000058f: REVERT
00000590: JUMPDEST
00000591: CALLVALUE
00000592: PUSH2 0x0227
00000595: JUMPI
00000596: PUSH1 0x20
00000598: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000005b9: CALLDATASIZE
000005ba: ADD
000005bb: SLT
000005bc: PUSH2 0x0227
000005bf: JUMPI
000005c0: PUSH1 0x04
000005c2: CALLDATALOAD
000005c3: PUSH2 0x05cc
000005c6: TIMESTAMP
000005c7: CALLER
000005c8: PUSH2 0x1703
000005cb: JUMP
000005cc: JUMPDEST
000005cd: CALLER
000005ce: PUSH1 0x00
000005d0: MSTORE
000005d1: PUSH1 0x06
000005d3: PUSH1 0x20
000005d5: MSTORE
000005d6: PUSH1 0x40
000005d8: PUSH1 0x00
000005da: KECCAK256
000005db: DUP1
000005dc: SLOAD
000005dd: SWAP1
000005de: DUP3
000005df: DUP3
000005e0: SUB
000005e1: SWAP2
000005e2: DUP3
000005e3: GT
000005e4: PUSH2 0x0664
000005e7: JUMPI
000005e8: SSTORE
000005e9: PUSH1 0x63
000005eb: DUP2
000005ec: MUL
000005ed: DUP2
000005ee: DUP2
000005ef: DIV
000005f0: PUSH1 0x63
000005f2: EQ
000005f3: DUP3
000005f4: ISZERO
000005f5: OR
000005f6: ISZERO
000005f7: PUSH2 0x0664
000005fa: JUMPI
000005fb: PUSH2 0x0608
000005fe: SWAP1
000005ff: PUSH1 0x64
00000601: CALLER
00000602: SWAP2
00000603: DIV
00000604: PUSH2 0x2479
00000607: JUMP
00000608: JUMPDEST
00000609: PUSH2 0x0660
0000060c: PUSH1 0x64
0000060e: PUSH2 0x0657
00000611: PUSH32 0x0000000000000000000000009fe36b2d3cc3fb56f35225c2912ee5283464842e
00000632: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000647: AND
00000648: PUSH1 0x00
0000064a: MSTORE
0000064b: PUSH1 0x06
0000064d: PUSH1 0x20
0000064f: MSTORE
00000650: PUSH1 0x40
00000652: PUSH1 0x00
00000654: KECCAK256
00000655: SWAP1
00000656: JUMP
00000657: JUMPDEST
00000658: SWAP3
00000659: DIV
0000065a: DUP3
0000065b: SLOAD
0000065c: PUSH2 0x169d
0000065f: JUMP
00000660: JUMPDEST
00000661: SWAP1
00000662: SSTORE
00000663: STOP
00000664: JUMPDEST
00000665: PUSH2 0x166e
00000668: JUMP
00000669: JUMPDEST
0000066a: CALLVALUE
0000066b: PUSH2 0x0227
0000066e: JUMPI
0000066f: PUSH1 0x00
00000671: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000692: CALLDATASIZE
00000693: ADD
00000694: SLT
00000695: PUSH2 0x0227
00000698: JUMPI
00000699: PUSH1 0x20
0000069b: PUSH1 0x40
0000069d: MLOAD
0000069e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006b3: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
000006d4: AND
000006d5: DUP2
000006d6: MSTORE
000006d7: RETURN
000006d8: JUMPDEST
000006d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ee: DUP2
000006ef: AND
000006f0: SUB
000006f1: PUSH2 0x0227
000006f4: JUMPI
000006f5: JUMP
000006f6: JUMPDEST
000006f7: CALLVALUE
000006f8: PUSH2 0x0227
000006fb: JUMPI
000006fc: PUSH1 0xe0
000006fe: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000071f: CALLDATASIZE
00000720: ADD
00000721: SLT
00000722: PUSH2 0x0227
00000725: JUMPI
00000726: PUSH1 0x20
00000728: PUSH2 0x0265
0000072b: PUSH1 0x04
0000072d: CALLDATALOAD
0000072e: PUSH2 0x0736
00000731: DUP2
00000732: PUSH2 0x06d8
00000735: JUMP
00000736: JUMPDEST
00000737: PUSH1 0x84
00000739: CALLDATALOAD
0000073a: SWAP1
0000073b: PUSH2 0x0743
0000073e: DUP3
0000073f: PUSH2 0x06d8
00000742: JUMP
00000743: JUMPDEST
00000744: PUSH1 0xc4
00000746: CALLDATALOAD
00000747: SWAP2
00000748: PUSH1 0xa4
0000074a: CALLDATALOAD
0000074b: SWAP2
0000074c: PUSH1 0x64
0000074e: CALLDATALOAD
0000074f: SWAP1
00000750: PUSH1 0x44
00000752: CALLDATALOAD
00000753: SWAP1
00000754: PUSH1 0x24
00000756: CALLDATALOAD
00000757: SWAP1
00000758: PUSH2 0x1a33
0000075b: JUMP
0000075c: JUMPDEST
0000075d: CALLVALUE
0000075e: PUSH2 0x0227
00000761: JUMPI
00000762: PUSH1 0x20
00000764: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000785: CALLDATASIZE
00000786: ADD
00000787: SLT
00000788: PUSH2 0x0227
0000078b: JUMPI
0000078c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007a1: PUSH1 0x04
000007a3: CALLDATALOAD
000007a4: PUSH2 0x07ac
000007a7: DUP2
000007a8: PUSH2 0x06d8
000007ab: JUMP
000007ac: JUMPDEST
000007ad: AND
000007ae: PUSH1 0x00
000007b0: MSTORE
000007b1: PUSH1 0x06
000007b3: PUSH1 0x20
000007b5: MSTORE
000007b6: PUSH1 0x60
000007b8: PUSH1 0x40
000007ba: PUSH1 0x00
000007bc: KECCAK256
000007bd: DUP1
000007be: SLOAD
000007bf: SWAP1
000007c0: PUSH1 0x02
000007c2: PUSH1 0x01
000007c4: DUP3
000007c5: ADD
000007c6: SLOAD
000007c7: SWAP2
000007c8: ADD
000007c9: SLOAD
000007ca: SWAP1
000007cb: PUSH1 0x40
000007cd: MLOAD
000007ce: SWAP3
000007cf: DUP4
000007d0: MSTORE
000007d1: PUSH1 0x20
000007d3: DUP4
000007d4: ADD
000007d5: MSTORE
000007d6: PUSH1 0x40
000007d8: DUP3
000007d9: ADD
000007da: MSTORE
000007db: RETURN
000007dc: JUMPDEST
000007dd: CALLVALUE
000007de: PUSH2 0x0227
000007e1: JUMPI
000007e2: PUSH1 0x20
000007e4: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000805: CALLDATASIZE
00000806: ADD
00000807: SLT
00000808: PUSH2 0x0227
0000080b: JUMPI
0000080c: PUSH1 0x04
0000080e: CALLDATALOAD
0000080f: PUSH1 0x00
00000811: MSTORE
00000812: PUSH1 0x08
00000814: PUSH1 0x20
00000816: MSTORE
00000817: PUSH1 0x20
00000819: PUSH1 0xff
0000081b: PUSH1 0x40
0000081d: PUSH1 0x00
0000081f: KECCAK256
00000820: SLOAD
00000821: AND
00000822: PUSH1 0x40
00000824: MLOAD
00000825: SWAP1
00000826: ISZERO
00000827: ISZERO
00000828: DUP2
00000829: MSTORE
0000082a: RETURN
0000082b: JUMPDEST
0000082c: CALLVALUE
0000082d: PUSH2 0x0227
00000830: JUMPI
00000831: PUSH1 0x00
00000833: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000854: CALLDATASIZE
00000855: ADD
00000856: SLT
00000857: PUSH2 0x0227
0000085a: JUMPI
0000085b: PUSH1 0x20
0000085d: PUSH1 0x40
0000085f: MLOAD
00000860: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000875: PUSH32 0x0000000000000000000000008164cc65827dcfe994ab23944cbc90e0aa80bfcb
00000896: AND
00000897: DUP2
00000898: MSTORE
00000899: RETURN
0000089a: JUMPDEST
0000089b: CALLVALUE
0000089c: PUSH2 0x0227
0000089f: JUMPI
000008a0: PUSH1 0xa0
000008a2: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000008c3: CALLDATASIZE
000008c4: ADD
000008c5: SLT
000008c6: PUSH2 0x0227
000008c9: JUMPI
000008ca: PUSH1 0x04
000008cc: CALLDATALOAD
000008cd: PUSH2 0x08d5
000008d0: DUP2
000008d1: PUSH2 0x06d8
000008d4: JUMP
000008d5: JUMPDEST
000008d6: PUSH1 0x44
000008d8: CALLDATALOAD
000008d9: SWAP1
000008da: PUSH1 0x24
000008dc: CALLDATALOAD
000008dd: PUSH1 0x64
000008df: CALLDATALOAD
000008e0: DUP2
000008e1: DUP5
000008e2: LT
000008e3: PUSH2 0x097e
000008e6: JUMPI
000008e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008fc: PUSH2 0x0140
000008ff: SWAP4
00000900: PUSH2 0x0936
00000903: DUP4
00000904: PUSH32 0xc5f7d2537bccbf672a30f34c54dc9c79ade308a26616c2c448ecb31db28d948d
00000925: SWAP8
00000926: PUSH2 0x092f
00000929: TIMESTAMP
0000092a: DUP6
0000092b: PUSH2 0x1703
0000092e: JUMP
0000092f: JUMPDEST
00000930: DUP7
00000931: DUP5
00000932: PUSH2 0x1b06
00000935: JUMP
00000936: JUMPDEST
00000937: SWAP4
00000938: SWAP1
00000939: SWAP3
0000093a: PUSH1 0x03
0000093c: SLOAD
0000093d: SWAP7
0000093e: PUSH1 0x04
00000940: SLOAD
00000941: SWAP4
00000942: PUSH1 0x40
00000944: MLOAD
00000945: SWAP9
00000946: CALLER
00000947: DUP11
00000948: MSTORE
00000949: PUSH1 0x20
0000094b: DUP11
0000094c: ADD
0000094d: MSTORE
0000094e: PUSH1 0x40
00000950: DUP10
00000951: ADD
00000952: MSTORE
00000953: PUSH1 0x60
00000955: DUP9
00000956: ADD
00000957: MSTORE
00000958: AND
00000959: PUSH1 0x80
0000095b: DUP7
0000095c: ADD
0000095d: MSTORE
0000095e: PUSH1 0xa0
00000960: DUP6
00000961: ADD
00000962: MSTORE
00000963: PUSH1 0xc0
00000965: DUP5
00000966: ADD
00000967: MSTORE
00000968: PUSH1 0xe0
0000096a: DUP4
0000096b: ADD
0000096c: MSTORE
0000096d: PUSH2 0x0100
00000970: DUP3
00000971: ADD
00000972: MSTORE
00000973: PUSH1 0x84
00000975: CALLDATALOAD
00000976: PUSH2 0x0120
00000979: DUP3
0000097a: ADD
0000097b: MSTORE
0000097c: LOG1
0000097d: STOP
0000097e: JUMPDEST
0000097f: PUSH1 0x64
00000981: PUSH1 0x40
00000983: MLOAD
00000984: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000009a5: DUP2
000009a6: MSTORE
000009a7: PUSH1 0x20
000009a9: PUSH1 0x04
000009ab: DUP3
000009ac: ADD
000009ad: MSTORE
000009ae: PUSH1 0x20
000009b0: PUSH1 0x24
000009b2: DUP3
000009b3: ADD
000009b4: MSTORE
000009b5: PUSH32 0x616d6f756e74466f72467574757265203c20616d6f756e745065724379636c65
000009d6: PUSH1 0x44
000009d8: DUP3
000009d9: ADD
000009da: MSTORE
000009db: REVERT
000009dc: JUMPDEST
000009dd: CALLVALUE
000009de: PUSH2 0x0227
000009e1: JUMPI
000009e2: PUSH2 0x0100
000009e5: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000a06: CALLDATASIZE
00000a07: ADD
00000a08: SLT
00000a09: PUSH2 0x0227
00000a0c: JUMPI
00000a0d: PUSH1 0x04
00000a0f: CALLDATALOAD
00000a10: PUSH2 0x0a18
00000a13: DUP2
00000a14: PUSH2 0x06d8
00000a17: JUMP
00000a18: JUMPDEST
00000a19: PUSH1 0x24
00000a1b: CALLDATALOAD
00000a1c: PUSH2 0x0a24
00000a1f: DUP2
00000a20: PUSH2 0x06d8
00000a23: JUMP
00000a24: JUMPDEST
00000a25: PUSH1 0x44
00000a27: CALLDATALOAD
00000a28: SWAP2
00000a29: PUSH2 0x0a31
00000a2c: DUP4
00000a2d: PUSH2 0x06d8
00000a30: JUMP
00000a31: JUMPDEST
00000a32: PUSH1 0xa4
00000a34: CALLDATALOAD
00000a35: SWAP2
00000a36: PUSH1 0xff
00000a38: DUP4
00000a39: AND
00000a3a: DUP1
00000a3b: SWAP4
00000a3c: SUB
00000a3d: PUSH2 0x0227
00000a40: JUMPI
00000a41: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a56: DUP1
00000a57: SWAP3
00000a58: AND
00000a59: SWAP1
00000a5a: DUP2
00000a5b: EXTCODESIZE
00000a5c: ISZERO
00000a5d: PUSH2 0x0227
00000a60: JUMPI
00000a61: PUSH1 0x00
00000a63: PUSH1 0xe4
00000a65: SWAP3
00000a66: DUP2
00000a67: SWAP6
00000a68: DUP6
00000a69: PUSH1 0x40
00000a6b: MLOAD
00000a6c: SWAP9
00000a6d: DUP10
00000a6e: SWAP8
00000a6f: DUP9
00000a70: SWAP7
00000a71: PUSH32 0xd505accf00000000000000000000000000000000000000000000000000000000
00000a92: DUP9
00000a93: MSTORE
00000a94: AND
00000a95: PUSH1 0x04
00000a97: DUP8
00000a98: ADD
00000a99: MSTORE
00000a9a: AND
00000a9b: PUSH1 0x24
00000a9d: DUP6
00000a9e: ADD
00000a9f: MSTORE
00000aa0: PUSH1 0x64
00000aa2: CALLDATALOAD
00000aa3: PUSH1 0x44
00000aa5: DUP6
00000aa6: ADD
00000aa7: MSTORE
00000aa8: PUSH1 0x84
00000aaa: CALLDATALOAD
00000aab: PUSH1 0x64
00000aad: DUP6
00000aae: ADD
00000aaf: MSTORE
00000ab0: PUSH1 0x84
00000ab2: DUP5
00000ab3: ADD
00000ab4: MSTORE
00000ab5: PUSH1 0xc4
00000ab7: CALLDATALOAD
00000ab8: PUSH1 0xa4
00000aba: DUP5
00000abb: ADD
00000abc: MSTORE
00000abd: DUP4
00000abe: CALLDATALOAD
00000abf: PUSH1 0xc4
00000ac1: DUP5
00000ac2: ADD
00000ac3: MSTORE
00000ac4: GAS
00000ac5: CALL
00000ac6: DUP1
00000ac7: ISZERO
00000ac8: PUSH2 0x0588
00000acb: JUMPI
00000acc: PUSH2 0x0ad1
00000acf: JUMPI
00000ad0: STOP
00000ad1: JUMPDEST
00000ad2: DUP1
00000ad3: PUSH2 0x0ade
00000ad6: PUSH2 0x0ae4
00000ad9: SWAP3
00000ada: PUSH2 0x19bd
00000add: JUMP
00000ade: JUMPDEST
00000adf: DUP1
00000ae0: PUSH2 0x021c
00000ae3: JUMP
00000ae4: JUMPDEST
00000ae5: STOP
00000ae6: JUMPDEST
00000ae7: CALLVALUE
00000ae8: PUSH2 0x0227
00000aeb: JUMPI
00000aec: PUSH1 0x00
00000aee: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000b0f: CALLDATASIZE
00000b10: ADD
00000b11: SLT
00000b12: PUSH2 0x0227
00000b15: JUMPI
00000b16: PUSH1 0x20
00000b18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b2d: PUSH1 0x00
00000b2f: SLOAD
00000b30: AND
00000b31: PUSH1 0x40
00000b33: MLOAD
00000b34: SWAP1
00000b35: DUP2
00000b36: MSTORE
00000b37: RETURN
00000b38: JUMPDEST
00000b39: CALLVALUE
00000b3a: PUSH2 0x0227
00000b3d: JUMPI
00000b3e: PUSH1 0x80
00000b40: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000b61: CALLDATASIZE
00000b62: ADD
00000b63: SLT
00000b64: PUSH2 0x0227
00000b67: JUMPI
00000b68: PUSH1 0x04
00000b6a: CALLDATALOAD
00000b6b: PUSH2 0x0b73
00000b6e: DUP2
00000b6f: PUSH2 0x06d8
00000b72: JUMP
00000b73: JUMPDEST
00000b74: PUSH1 0x24
00000b76: CALLDATALOAD
00000b77: PUSH2 0x0b80
00000b7a: TIMESTAMP
00000b7b: DUP4
00000b7c: PUSH2 0x1703
00000b7f: JUMP
00000b80: JUMPDEST
00000b81: PUSH1 0x03
00000b83: SLOAD
00000b84: SWAP1
00000b85: PUSH32 0x0000000000000000000000000000000000000000000000000000000000278d00
00000ba6: SWAP2
00000ba7: DUP3
00000ba8: DUP2
00000ba9: ADD
00000baa: DUP1
00000bab: SWAP2
00000bac: GT
00000bad: PUSH2 0x0664
00000bb0: JUMPI
00000bb1: TIMESTAMP
00000bb2: DUP2
00000bb3: SUB
00000bb4: SWAP1
00000bb5: DUP2
00000bb6: GT
00000bb7: PUSH2 0x0664
00000bba: JUMPI
00000bbb: PUSH32 0x7738243047b841a251d42cf97044d157c4995a38ee47272bb948a87d99a0afb3
00000bdc: SWAP4
00000bdd: PUSH2 0x0c14
00000be0: PUSH2 0x0c0a
00000be3: PUSH2 0x0120
00000be6: SWAP6
00000be7: PUSH2 0x0c05
00000bea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bff: SWAP6
00000c00: DUP8
00000c01: PUSH2 0x16b7
00000c04: JUMP
00000c05: JUMPDEST
00000c06: PUSH2 0x16ca
00000c09: JUMP
00000c0a: JUMPDEST
00000c0b: PUSH1 0x44
00000c0d: CALLDATALOAD
00000c0e: DUP6
00000c0f: DUP5
00000c10: PUSH2 0x1b06
00000c13: JUMP
00000c14: JUMPDEST
00000c15: SWAP4
00000c16: SWAP1
00000c17: SWAP3
00000c18: PUSH1 0x03
00000c1a: SLOAD
00000c1b: SWAP6
00000c1c: PUSH1 0x04
00000c1e: SLOAD
00000c1f: SWAP4
00000c20: PUSH1 0x40
00000c22: MLOAD
00000c23: SWAP8
00000c24: CALLER
00000c25: DUP10
00000c26: MSTORE
00000c27: PUSH1 0x20
00000c29: DUP10
00000c2a: ADD
00000c2b: MSTORE
00000c2c: PUSH1 0x40
00000c2e: DUP9
00000c2f: ADD
00000c30: MSTORE
00000c31: PUSH1 0x60
00000c33: DUP8
00000c34: ADD
00000c35: MSTORE
00000c36: AND
00000c37: PUSH1 0x80
00000c39: DUP6
00000c3a: ADD
00000c3b: MSTORE
00000c3c: PUSH1 0xa0
00000c3e: DUP5
00000c3f: ADD
00000c40: MSTORE
00000c41: PUSH1 0xc0
00000c43: DUP4
00000c44: ADD
00000c45: MSTORE
00000c46: PUSH1 0xe0
00000c48: DUP3
00000c49: ADD
00000c4a: MSTORE
00000c4b: PUSH1 0x64
00000c4d: CALLDATALOAD
00000c4e: PUSH2 0x0100
00000c51: DUP3
00000c52: ADD
00000c53: MSTORE
00000c54: LOG1
00000c55: STOP
00000c56: JUMPDEST
00000c57: CALLVALUE
00000c58: PUSH2 0x0227
00000c5b: JUMPI
00000c5c: PUSH1 0x00
00000c5e: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000c7f: CALLDATASIZE
00000c80: ADD
00000c81: SLT
00000c82: PUSH2 0x0227
00000c85: JUMPI
00000c86: PUSH1 0x20
00000c88: PUSH1 0x40
00000c8a: MLOAD
00000c8b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ca0: PUSH32 0x00000000000000000000000098c23e9d8f34fefb1b7bd6a91b7ff122f4e16f5c
00000cc1: AND
00000cc2: DUP2
00000cc3: MSTORE
00000cc4: RETURN
00000cc5: JUMPDEST
00000cc6: CALLVALUE
00000cc7: PUSH2 0x0227
00000cca: JUMPI
00000ccb: PUSH1 0x00
00000ccd: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000cee: CALLDATASIZE
00000cef: ADD
00000cf0: SLT
00000cf1: PUSH2 0x0227
00000cf4: JUMPI
00000cf5: PUSH1 0x20
00000cf7: PUSH1 0x40
00000cf9: MLOAD
00000cfa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d0f: PUSH32 0x00000000000000000000000087870bca3f3fd6335c3f4ce8392d69350b4fa4e2
00000d30: AND
00000d31: DUP2
00000d32: MSTORE
00000d33: RETURN
00000d34: JUMPDEST
00000d35: CALLVALUE
00000d36: PUSH2 0x0227
00000d39: JUMPI
00000d3a: PUSH1 0x00
00000d3c: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000d5d: CALLDATASIZE
00000d5e: ADD
00000d5f: SLT
00000d60: PUSH2 0x0227
00000d63: JUMPI
00000d64: PUSH1 0x20
00000d66: PUSH1 0x40
00000d68: MLOAD
00000d69: PUSH32 0x0000000000000000000000000000000000000000000000000000000000278d00
00000d8a: DUP2
00000d8b: MSTORE
00000d8c: RETURN
00000d8d: JUMPDEST
00000d8e: CALLVALUE
00000d8f: PUSH2 0x0227
00000d92: JUMPI
00000d93: PUSH1 0x00
00000d95: DUP1
00000d96: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000db7: CALLDATASIZE
00000db8: ADD
00000db9: SLT
00000dba: PUSH2 0x058d
00000dbd: JUMPI
00000dbe: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00000ddf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000df4: PUSH32 0x00000000000000000000000087870bca3f3fd6335c3f4ce8392d69350b4fa4e2
00000e15: AND
00000e16: PUSH1 0x20
00000e18: DUP4
00000e19: PUSH1 0x44
00000e1b: PUSH1 0x40
00000e1d: MLOAD
00000e1e: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000
00000e3f: DUP2
00000e40: MSTORE
00000e41: DUP5
00000e42: PUSH1 0x04
00000e44: DUP3
00000e45: ADD
00000e46: MSTORE
00000e47: DUP3
00000e48: PUSH1 0x24
00000e4a: DUP3
00000e4b: ADD
00000e4c: MSTORE
00000e4d: DUP3
00000e4e: DUP7
00000e4f: GAS
00000e50: CALL
00000e51: RETURNDATASIZE
00000e52: ISZERO
00000e53: PUSH1 0x1f
00000e55: RETURNDATASIZE
00000e56: GT
00000e57: PUSH1 0x01
00000e59: DUP7
00000e5a: MLOAD
00000e5b: EQ
00000e5c: AND
00000e5d: OR
00000e5e: AND
00000e5f: ISZERO
00000e60: PUSH2 0x0e6f
00000e63: JUMPI
00000e64: PUSH2 0x0e6c
00000e67: SWAP2
00000e68: PUSH2 0x284e
00000e6b: JUMP
00000e6c: JUMPDEST
00000e6d: DUP1
00000e6e: RETURN
00000e6f: JUMPDEST
00000e70: PUSH1 0x64
00000e72: PUSH1 0x40
00000e74: MLOAD
00000e75: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000e96: DUP2
00000e97: MSTORE
00000e98: PUSH1 0x20
00000e9a: PUSH1 0x04
00000e9c: DUP3
00000e9d: ADD
00000e9e: MSTORE
00000e9f: PUSH1 0x0e
00000ea1: PUSH1 0x24
00000ea3: DUP3
00000ea4: ADD
00000ea5: MSTORE
00000ea6: PUSH32 0x415050524f56455f4641494c4544000000000000000000000000000000000000
00000ec7: PUSH1 0x44
00000ec9: DUP3
00000eca: ADD
00000ecb: MSTORE
00000ecc: REVERT
00000ecd: JUMPDEST
00000ece: CALLVALUE
00000ecf: PUSH2 0x0227
00000ed2: JUMPI
00000ed3: PUSH1 0x40
00000ed5: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000ef6: CALLDATASIZE
00000ef7: ADD
00000ef8: SLT
00000ef9: PUSH2 0x0227
00000efc: JUMPI
00000efd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f12: PUSH1 0x04
00000f14: CALLDATALOAD
00000f15: PUSH2 0x0f1d
00000f18: DUP2
00000f19: PUSH2 0x06d8
00000f1c: JUMP
00000f1d: JUMPDEST
00000f1e: AND
00000f1f: PUSH1 0x00
00000f21: MSTORE
00000f22: PUSH1 0x05
00000f24: PUSH1 0x20
00000f26: MSTORE
00000f27: PUSH1 0x40
00000f29: PUSH1 0x00
00000f2b: KECCAK256
00000f2c: PUSH1 0x24
00000f2e: CALLDATALOAD
00000f2f: PUSH1 0x00
00000f31: MSTORE
00000f32: PUSH1 0x20
00000f34: MSTORE
00000f35: PUSH1 0x20
00000f37: PUSH1 0x40
00000f39: PUSH1 0x00
00000f3b: KECCAK256
00000f3c: SLOAD
00000f3d: PUSH1 0x40
00000f3f: MLOAD
00000f40: SWAP1
00000f41: DUP2
00000f42: MSTORE
00000f43: RETURN
00000f44: JUMPDEST
00000f45: CALLVALUE
00000f46: PUSH2 0x0227
00000f49: JUMPI
00000f4a: PUSH1 0x00
00000f4c: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000f6d: CALLDATASIZE
00000f6e: ADD
00000f6f: SLT
00000f70: PUSH2 0x0227
00000f73: JUMPI
00000f74: PUSH1 0x20
00000f76: PUSH1 0x40
00000f78: MLOAD
00000f79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f8e: PUSH32 0x0000000000000000000000009fe36b2d3cc3fb56f35225c2912ee5283464842e
00000faf: AND
00000fb0: DUP2
00000fb1: MSTORE
00000fb2: RETURN
00000fb3: JUMPDEST
00000fb4: CALLVALUE
00000fb5: PUSH2 0x0227
00000fb8: JUMPI
00000fb9: PUSH1 0x20
00000fbb: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000fdc: CALLDATASIZE
00000fdd: ADD
00000fde: SLT
00000fdf: PUSH2 0x0227
00000fe2: JUMPI
00000fe3: PUSH1 0x20
00000fe5: PUSH2 0x0265
00000fe8: PUSH1 0x04
00000fea: CALLDATALOAD
00000feb: PUSH2 0x2614
00000fee: JUMP
00000fef: JUMPDEST
00000ff0: PUSH1 0x40
00000ff2: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001013: CALLDATASIZE
00001014: ADD
00001015: SLT
00001016: PUSH2 0x0227
00001019: JUMPI
0000101a: PUSH1 0x04
0000101c: CALLDATALOAD
0000101d: PUSH8 0xffffffffffffffff
00001026: DUP1
00001027: DUP3
00001028: GT
00001029: PUSH2 0x0227
0000102c: JUMPI
0000102d: CALLDATASIZE
0000102e: PUSH1 0x23
00001030: DUP4
00001031: ADD
00001032: SLT
00001033: ISZERO
00001034: PUSH2 0x0227
00001037: JUMPI
00001038: DUP2
00001039: PUSH1 0x04
0000103b: ADD
0000103c: CALLDATALOAD
0000103d: SWAP1
0000103e: DUP2
0000103f: GT
00001040: PUSH2 0x0227
00001043: JUMPI
00001044: CALLDATASIZE
00001045: PUSH1 0x24
00001047: DUP3
00001048: PUSH1 0x05
0000104a: SHL
0000104b: DUP5
0000104c: ADD
0000104d: ADD
0000104e: GT
0000104f: PUSH2 0x0227
00001052: JUMPI
00001053: PUSH1 0x24
00001055: CALLDATALOAD
00001056: SWAP1
00001057: DUP2
00001058: ISZERO
00001059: ISZERO
0000105a: DUP3
0000105b: SUB
0000105c: PUSH2 0x0227
0000105f: JUMPI
00001060: PUSH1 0x24
00001062: PUSH2 0x0ae4
00001065: SWAP4
00001066: ADD
00001067: PUSH2 0x1e34
0000106a: JUMP
0000106b: JUMPDEST
0000106c: CALLVALUE
0000106d: PUSH2 0x0227
00001070: JUMPI
00001071: PUSH1 0x40
00001073: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001094: CALLDATASIZE
00001095: ADD
00001096: SLT
00001097: PUSH2 0x0227
0000109a: JUMPI
0000109b: PUSH1 0x04
0000109d: CALLDATALOAD
0000109e: PUSH2 0x10a6
000010a1: DUP2
000010a2: PUSH2 0x06d8
000010a5: JUMP
000010a6: JUMPDEST
000010a7: PUSH1 0x24
000010a9: CALLDATALOAD
000010aa: TIMESTAMP
000010ab: DUP2
000010ac: LT
000010ad: ISZERO
000010ae: PUSH2 0x10ba
000010b1: JUMPI
000010b2: PUSH2 0x0ae4
000010b5: SWAP2
000010b6: PUSH2 0x1703
000010b9: JUMP
000010ba: JUMPDEST
000010bb: PUSH1 0x64
000010bd: PUSH1 0x40
000010bf: MLOAD
000010c0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000010e1: DUP2
000010e2: MSTORE
000010e3: PUSH1 0x20
000010e5: PUSH1 0x04
000010e7: DUP3
000010e8: ADD
000010e9: MSTORE
000010ea: PUSH1 0x0d
000010ec: PUSH1 0x24
000010ee: DUP3
000010ef: ADD
000010f0: MSTORE
000010f1: PUSH32 0x6c696d697420746f6f2062696700000000000000000000000000000000000000
00001112: PUSH1 0x44
00001114: DUP3
00001115: ADD
00001116: MSTORE
00001117: REVERT
00001118: JUMPDEST
00001119: CALLVALUE
0000111a: PUSH2 0x0227
0000111d: JUMPI
0000111e: PUSH1 0xc0
00001120: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001141: CALLDATASIZE
00001142: ADD
00001143: SLT
00001144: PUSH2 0x0227
00001147: JUMPI
00001148: PUSH1 0x64
0000114a: CALLDATALOAD
0000114b: PUSH1 0x04
0000114d: CALLDATALOAD
0000114e: PUSH1 0x44
00001150: CALLDATALOAD
00001151: PUSH1 0x24
00001153: CALLDATALOAD
00001154: PUSH2 0x115c
00001157: DUP5
00001158: PUSH2 0x06d8
0000115b: JUMP
0000115c: JUMPDEST
0000115d: PUSH1 0xa4
0000115f: CALLDATALOAD
00001160: PUSH1 0x84
00001162: CALLDATALOAD
00001163: PUSH2 0x117a
00001166: DUP3
00001167: DUP3
00001168: DUP9
00001169: DUP8
0000116a: DUP8
0000116b: DUP11
0000116c: PUSH2 0x1174
0000116f: TIMESTAMP
00001170: PUSH2 0x18a4
00001173: JUMP
00001174: JUMPDEST
00001175: CALLER
00001176: PUSH2 0x1a33
00001179: JUMP
0000117a: JUMPDEST
0000117b: SWAP5
0000117c: PUSH2 0x11a6
0000117f: PUSH1 0x01
00001181: PUSH2 0x119e
00001184: PUSH2 0x1197
00001187: DUP10
00001188: PUSH1 0x00
0000118a: MSTORE
0000118b: PUSH1 0x08
0000118d: PUSH1 0x20
0000118f: MSTORE
00001190: PUSH1 0x40
00001192: PUSH1 0x00
00001194: KECCAK256
00001195: SWAP1
00001196: JUMP
00001197: JUMPDEST
00001198: SLOAD
00001199: PUSH1 0xff
0000119b: AND
0000119c: SWAP1
0000119d: JUMP
0000119e: JUMPDEST
0000119f: ISZERO
000011a0: ISZERO
000011a1: EQ
000011a2: PUSH2 0x1cea
000011a5: JUMP
000011a6: JUMPDEST
000011a7: PUSH2 0x11e5
000011aa: PUSH2 0x11bd
000011ad: DUP8
000011ae: PUSH1 0x00
000011b0: MSTORE
000011b1: PUSH1 0x08
000011b3: PUSH1 0x20
000011b5: MSTORE
000011b6: PUSH1 0x40
000011b8: PUSH1 0x00
000011ba: KECCAK256
000011bb: SWAP1
000011bc: JUMP
000011bd: JUMPDEST
000011be: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
000011df: DUP2
000011e0: SLOAD
000011e1: AND
000011e2: SWAP1
000011e3: SSTORE
000011e4: JUMP
000011e5: JUMPDEST
000011e6: TIMESTAMP
000011e7: DUP5
000011e8: LT
000011e9: PUSH2 0x130a
000011ec: JUMPI
000011ed: POP
000011ee: PUSH2 0x12d9
000011f1: PUSH32 0x893fd01daa6afc79c31ef343da6349fe3770d6be153aebf639378d0f1c69795e
00001212: SWAP7
00001213: PUSH2 0x12a6
00001216: PUSH2 0x1305
00001219: SWAP8
0000121a: SWAP7
0000121b: SWAP6
0000121c: PUSH2 0x126d
0000121f: PUSH2 0x12f2
00001222: SWAP7
00001223: PUSH2 0x1268
00001226: PUSH2 0x1234
00001229: PUSH2 0x12ea
0000122c: SWAP9
0000122d: PUSH1 0x04
0000122f: SLOAD
00001230: PUSH2 0x16aa
00001233: JUMP
00001234: JUMPDEST
00001235: SWAP2
00001236: PUSH2 0x1262
00001239: CALLER
0000123a: SWAP4
0000123b: DUP13
0000123c: PUSH32 0x00000000000000000000000000000000000000000000000000000000000f4240
0000125d: SWAP2
0000125e: PUSH2 0x267b
00001261: JUMP
00001262: JUMPDEST
00001263: SWAP1
00001264: PUSH2 0x16aa
00001267: JUMP
00001268: JUMPDEST
00001269: PUSH2 0x2479
0000126c: JUMP
0000126d: JUMPDEST
0000126e: PUSH2 0x1297
00001271: DUP4
00001272: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001287: AND
00001288: PUSH1 0x00
0000128a: MSTORE
0000128b: PUSH1 0x05
0000128d: PUSH1 0x20
0000128f: MSTORE
00001290: PUSH1 0x40
00001292: PUSH1 0x00
00001294: KECCAK256
00001295: SWAP1
00001296: JUMP
00001297: JUMPDEST
00001298: SWAP1
00001299: PUSH1 0x00
0000129b: MSTORE
0000129c: PUSH1 0x20
0000129e: MSTORE
0000129f: PUSH1 0x40
000012a1: PUSH1 0x00
000012a3: KECCAK256
000012a4: SWAP1
000012a5: JUMP
000012a6: JUMPDEST
000012a7: PUSH2 0x12b1
000012aa: DUP7
000012ab: DUP3
000012ac: SLOAD
000012ad: PUSH2 0x16aa
000012b0: JUMP
000012b1: JUMPDEST
000012b2: SWAP1
000012b3: SSTORE
000012b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012c9: AND
000012ca: PUSH1 0x00
000012cc: MSTORE
000012cd: PUSH1 0x05
000012cf: PUSH1 0x20
000012d1: MSTORE
000012d2: PUSH1 0x40
000012d4: PUSH1 0x00
000012d6: KECCAK256
000012d7: SWAP1
000012d8: JUMP
000012d9: JUMPDEST
000012da: PUSH1 0x03
000012dc: SLOAD
000012dd: PUSH1 0x00
000012df: MSTORE
000012e0: PUSH1 0x20
000012e2: MSTORE
000012e3: PUSH1 0x40
000012e5: PUSH1 0x00
000012e7: KECCAK256
000012e8: SWAP1
000012e9: JUMP
000012ea: JUMPDEST
000012eb: SWAP2
000012ec: DUP3
000012ed: SLOAD
000012ee: PUSH2 0x169d
000012f1: JUMP
000012f2: JUMPDEST
000012f3: SWAP1
000012f4: SSTORE
000012f5: JUMPDEST
000012f6: PUSH1 0x40
000012f8: MLOAD
000012f9: SWAP1
000012fa: DUP2
000012fb: MSTORE
000012fc: SWAP1
000012fd: DUP2
000012fe: SWAP1
000012ff: PUSH1 0x20
00001301: DUP3
00001302: ADD
00001303: SWAP1
00001304: JUMP
00001305: JUMPDEST
00001306: SUB
00001307: SWAP1
00001308: LOG1
00001309: STOP
0000130a: JUMPDEST
0000130b: PUSH1 0x00
0000130d: SWAP7
0000130e: POP
0000130f: SWAP2
00001310: SWAP3
00001311: PUSH32 0x0000000000000000000000000000000000000000000000000000000000278d00
00001332: SWAP2
00001333: POP
00001334: JUMPDEST
00001335: DUP1
00001336: DUP4
00001337: LT
00001338: PUSH2 0x139d
0000133b: JUMPI
0000133c: POP
0000133d: POP
0000133e: POP
0000133f: PUSH2 0x1305
00001342: SWAP3
00001343: SWAP2
00001344: PUSH2 0x1268
00001347: PUSH2 0x1398
0000134a: SWAP3
0000134b: PUSH2 0x1262
0000134e: PUSH32 0x893fd01daa6afc79c31ef343da6349fe3770d6be153aebf639378d0f1c69795e
0000136f: SWAP8
00001370: CALLER
00001371: SWAP5
00001372: PUSH32 0x00000000000000000000000000000000000000000000000000000000000f4240
00001393: SWAP2
00001394: PUSH2 0x267b
00001397: JUMP
00001398: JUMPDEST
00001399: PUSH2 0x12f5
0000139c: JUMP
0000139d: JUMPDEST
0000139e: SWAP1
0000139f: SWAP2
000013a0: SWAP6
000013a1: DUP3
000013a2: PUSH2 0x13c3
000013a5: PUSH2 0x13c9
000013a8: SWAP3
000013a9: PUSH2 0x13bc
000013ac: DUP11
000013ad: PUSH1 0x00
000013af: MSTORE
000013b0: PUSH1 0x07
000013b2: PUSH1 0x20
000013b4: MSTORE
000013b5: PUSH1 0x40
000013b7: PUSH1 0x00
000013b9: KECCAK256
000013ba: SWAP1
000013bb: JUMP
000013bc: JUMPDEST
000013bd: SLOAD
000013be: SWAP1
000013bf: PUSH2 0x169d
000013c2: JUMP
000013c3: JUMPDEST
000013c4: SWAP8
000013c5: PUSH2 0x169d
000013c8: JUMP
000013c9: JUMPDEST
000013ca: SWAP2
000013cb: SWAP1
000013cc: PUSH2 0x1334
000013cf: JUMP
000013d0: JUMPDEST
000013d1: CALLVALUE
000013d2: PUSH2 0x0227
000013d5: JUMPI
000013d6: PUSH1 0x40
000013d8: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000013f9: CALLDATASIZE
000013fa: ADD
000013fb: SLT
000013fc: PUSH2 0x0227
000013ff: JUMPI
00001400: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001415: PUSH1 0x00
00001417: SWAP1
00001418: PUSH2 0x1425
0000141b: DUP2
0000141c: DUP4
0000141d: SLOAD
0000141e: AND
0000141f: CALLER
00001420: EQ
00001421: PUSH2 0x237b
00001424: JUMP
00001425: JUMPDEST
00001426: PUSH2 0x142d
00001429: PUSH2 0x2258
0000142c: JUMP
0000142d: JUMPDEST
0000142e: SWAP1
0000142f: DUP3
00001430: DUP2
00001431: PUSH32 0x00000000000000000000000087870bca3f3fd6335c3f4ce8392d69350b4fa4e2
00001452: AND
00001453: SWAP2
00001454: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00001475: SWAP3
00001476: DUP1
00001477: EXTCODESIZE
00001478: ISZERO
00001479: PUSH2 0x1526
0000147c: JUMPI
0000147d: PUSH1 0x84
0000147f: DUP4
00001480: SWAP3
00001481: PUSH1 0x40
00001483: MLOAD
00001484: SWAP5
00001485: DUP6
00001486: SWAP4
00001487: DUP5
00001488: SWAP3
00001489: PUSH32 0x617ba03700000000000000000000000000000000000000000000000000000000
000014aa: DUP5
000014ab: MSTORE
000014ac: DUP9
000014ad: AND
000014ae: PUSH1 0x04
000014b0: DUP5
000014b1: ADD
000014b2: MSTORE
000014b3: PUSH1 0x04
000014b5: CALLDATALOAD
000014b6: PUSH1 0x24
000014b8: DUP5
000014b9: ADD
000014ba: MSTORE
000014bb: ADDRESS
000014bc: PUSH1 0x44
000014be: DUP5
000014bf: ADD
000014c0: MSTORE
000014c1: DUP2
000014c2: PUSH1 0x64
000014c4: DUP5
000014c5: ADD
000014c6: MSTORE
000014c7: GAS
000014c8: CALL
000014c9: DUP1
000014ca: ISZERO
000014cb: PUSH2 0x0588
000014ce: JUMPI
000014cf: PUSH2 0x1513
000014d2: JUMPI
000014d3: JUMPDEST
000014d4: POP
000014d5: PUSH2 0x14dc
000014d8: PUSH2 0x2258
000014db: JUMP
000014dc: JUMPDEST
000014dd: SWAP2
000014de: DUP1
000014df: DUP4
000014e0: LT
000014e1: PUSH2 0x14e8
000014e4: JUMPI
000014e5: DUP4
000014e6: DUP1
000014e7: RETURN
000014e8: JUMPDEST
000014e9: PUSH2 0x150c
000014ec: SWAP3
000014ed: PUSH2 0x14f5
000014f0: SWAP2
000014f1: PUSH2 0x16aa
000014f4: JUMP
000014f5: JUMPDEST
000014f6: SWAP1
000014f7: PUSH2 0x1503
000014fa: PUSH1 0x24
000014fc: CALLDATALOAD
000014fd: DUP4
000014fe: LT
000014ff: PUSH2 0x23e0
00001502: JUMP
00001503: JUMPDEST
00001504: ADDRESS
00001505: SWAP1
00001506: CALLER
00001507: SWAP1
00001508: PUSH2 0x26b7
0000150b: JUMP
0000150c: JUMPDEST
0000150d: CODESIZE
0000150e: DUP1
0000150f: DUP1
00001510: DUP4
00001511: DUP1
00001512: RETURN
00001513: JUMPDEST
00001514: DUP1
00001515: PUSH2 0x0ade
00001518: PUSH2 0x1520
0000151b: SWAP3
0000151c: PUSH2 0x19bd
0000151f: JUMP
00001520: JUMPDEST
00001521: CODESIZE
00001522: PUSH2 0x14d3
00001525: JUMP
00001526: JUMPDEST
00001527: DUP3
00001528: DUP1
00001529: REVERT
0000152a: JUMPDEST
0000152b: CALLVALUE
0000152c: PUSH2 0x0227
0000152f: JUMPI
00001530: PUSH1 0x20
00001532: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001553: CALLDATASIZE
00001554: ADD
00001555: SLT
00001556: PUSH2 0x0227
00001559: JUMPI
0000155a: PUSH1 0x04
0000155c: CALLDATALOAD
0000155d: PUSH2 0x1565
00001560: DUP2
00001561: PUSH2 0x06d8
00001564: JUMP
00001565: JUMPDEST
00001566: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000157b: SWAP1
0000157c: PUSH2 0x158a
0000157f: DUP3
00001580: PUSH1 0x00
00001582: SLOAD
00001583: AND
00001584: CALLER
00001585: EQ
00001586: PUSH2 0x237b
00001589: JUMP
0000158a: JUMPDEST
0000158b: AND
0000158c: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000015ad: PUSH1 0x01
000015af: SLOAD
000015b0: AND
000015b1: OR
000015b2: PUSH1 0x01
000015b4: SSTORE
000015b5: PUSH1 0x00
000015b7: DUP1
000015b8: RETURN
000015b9: JUMPDEST
000015ba: CALLVALUE
000015bb: PUSH2 0x0227
000015be: JUMPI
000015bf: PUSH1 0x20
000015c1: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000015e2: CALLDATASIZE
000015e3: ADD
000015e4: SLT
000015e5: PUSH2 0x0227
000015e8: JUMPI
000015e9: PUSH1 0x04
000015eb: CALLDATALOAD
000015ec: PUSH2 0x15f4
000015ef: DUP2
000015f0: PUSH2 0x06d8
000015f3: JUMP
000015f4: JUMPDEST
000015f5: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00001616: PUSH1 0x00
00001618: SWAP2
00001619: DUP3
0000161a: SLOAD
0000161b: SWAP1
0000161c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001631: SWAP1
00001632: PUSH2 0x163e
00001635: DUP3
00001636: DUP5
00001637: AND
00001638: CALLER
00001639: EQ
0000163a: PUSH2 0x237b
0000163d: JUMP
0000163e: JUMPDEST
0000163f: AND
00001640: SWAP2
00001641: DUP3
00001642: SWAP2
00001643: AND
00001644: OR
00001645: DUP3
00001646: SSTORE
00001647: CALLER
00001648: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001669: DUP4
0000166a: DUP1
0000166b: LOG3
0000166c: DUP1
0000166d: RETURN
0000166e: JUMPDEST
0000166f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00001690: PUSH1 0x00
00001692: MSTORE
00001693: PUSH1 0x11
00001695: PUSH1 0x04
00001697: MSTORE
00001698: PUSH1 0x24
0000169a: PUSH1 0x00
0000169c: REVERT
0000169d: JUMPDEST
0000169e: SWAP2
0000169f: SWAP1
000016a0: DUP3
000016a1: ADD
000016a2: DUP1
000016a3: SWAP3
000016a4: GT
000016a5: PUSH2 0x0664
000016a8: JUMPI
000016a9: JUMP
000016aa: JUMPDEST
000016ab: SWAP2
000016ac: SWAP1
000016ad: DUP3
000016ae: SUB
000016af: SWAP2
000016b0: DUP3
000016b1: GT
000016b2: PUSH2 0x0664
000016b5: JUMPI
000016b6: JUMP
000016b7: JUMPDEST
000016b8: DUP2
000016b9: DUP2
000016ba: MUL
000016bb: SWAP3
000016bc: SWAP2
000016bd: DUP2
000016be: ISZERO
000016bf: SWAP2
000016c0: DUP5
000016c1: DIV
000016c2: EQ
000016c3: OR
000016c4: ISZERO
000016c5: PUSH2 0x0664
000016c8: JUMPI
000016c9: JUMP
000016ca: JUMPDEST
000016cb: DUP2
000016cc: ISZERO
000016cd: PUSH2 0x16d4
000016d0: JUMPI
000016d1: DIV
000016d2: SWAP1
000016d3: JUMP
000016d4: JUMPDEST
000016d5: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000016f6: PUSH1 0x00
000016f8: MSTORE
000016f9: PUSH1 0x12
000016fb: PUSH1 0x04
000016fd: MSTORE
000016fe: PUSH1 0x24
00001700: PUSH1 0x00
00001702: REVERT
00001703: JUMPDEST
00001704: PUSH2 0x172d
00001707: DUP2
00001708: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000171d: AND
0000171e: PUSH1 0x00
00001720: MSTORE
00001721: PUSH1 0x06
00001723: PUSH1 0x20
00001725: MSTORE
00001726: PUSH1 0x40
00001728: PUSH1 0x00
0000172a: KECCAK256
0000172b: SWAP1
0000172c: JUMP
0000172d: JUMPDEST
0000172e: SWAP2
0000172f: PUSH1 0x02
00001731: DUP4
00001732: ADD
00001733: SWAP2
00001734: DUP3
00001735: SLOAD
00001736: SWAP4
00001737: PUSH32 0x0000000000000000000000000000000000000000000000000000000000278d00
00001758: SWAP1
00001759: PUSH2 0x1762
0000175c: DUP3
0000175d: DUP8
0000175e: PUSH2 0x169d
00001761: JUMP
00001762: JUMPDEST
00001763: TIMESTAMP
00001764: GT
00001765: PUSH2 0x1771
00001768: JUMPI
00001769: JUMPDEST
0000176a: POP
0000176b: POP
0000176c: POP
0000176d: POP
0000176e: POP
0000176f: POP
00001770: JUMP
00001771: JUMPDEST
00001772: PUSH2 0x177a
00001775: DUP5
00001776: PUSH2 0x18a4
00001779: JUMP
0000177a: JUMPDEST
0000177b: DUP6
0000177c: PUSH2 0x1795
0000177f: JUMPI
00001780: POP
00001781: POP
00001782: PUSH1 0x03
00001784: SLOAD
00001785: SWAP4
00001786: POP
00001787: POP
00001788: POP
00001789: JUMPDEST
0000178a: SSTORE
0000178b: CODESIZE
0000178c: DUP1
0000178d: DUP1
0000178e: DUP1
0000178f: DUP1
00001790: DUP1
00001791: PUSH2 0x1769
00001794: JUMP
00001795: JUMPDEST
00001796: DUP1
00001797: SLOAD
00001798: SWAP2
00001799: PUSH1 0x01
0000179b: SWAP1
0000179c: DUP2
0000179d: DUP1
0000179e: DUP5
0000179f: ADD
000017a0: SWAP6
000017a1: PUSH2 0x17ae
000017a4: DUP8
000017a5: SLOAD
000017a6: SWAP9
000017a7: PUSH1 0x03
000017a9: SLOAD
000017aa: PUSH2 0x197d
000017ad: JUMP
000017ae: JUMPDEST
000017af: DUP3
000017b0: PUSH32 0x00000000000000000000000000000000000000000000000000000000000f4240
000017d1: SWAP4
000017d2: JUMPDEST
000017d3: PUSH2 0x17e4
000017d6: JUMPI
000017d7: JUMPDEST
000017d8: POP
000017d9: POP
000017da: POP
000017db: POP
000017dc: POP
000017dd: POP
000017de: SSTORE
000017df: SSTORE
000017e0: PUSH2 0x1789
000017e3: JUMP
000017e4: JUMPDEST
000017e5: SWAP11
000017e6: DUP5
000017e7: SWAP8
000017e8: SWAP10
000017e9: SWAP2
000017ea: SWAP3
000017eb: SWAP4
000017ec: SWAP5
000017ed: SWAP6
000017ee: SWAP12
000017ef: ISZERO
000017f0: PUSH2 0x1882
000017f3: JUMPI
000017f4: JUMPDEST
000017f5: PUSH1 0x00
000017f7: SWAP2
000017f8: DUP2
000017f9: PUSH2 0x1822
000017fc: DUP7
000017fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001812: AND
00001813: PUSH1 0x00
00001815: MSTORE
00001816: PUSH1 0x05
00001818: PUSH1 0x20
0000181a: MSTORE
0000181b: PUSH1 0x40
0000181d: PUSH1 0x00
0000181f: KECCAK256
00001820: SWAP1
00001821: JUMP
00001822: JUMPDEST
00001823: PUSH1 0x00
00001825: SWAP2
00001826: DUP3
00001827: MSTORE
00001828: PUSH1 0x20
0000182a: MSTORE
0000182b: PUSH1 0x40
0000182d: SWAP1
0000182e: KECCAK256
0000182f: SLOAD
00001830: PUSH2 0x1838
00001833: SWAP2
00001834: PUSH2 0x16aa
00001837: JUMP
00001838: JUMPDEST
00001839: SWAP10
0000183a: DUP6
0000183b: PUSH2 0x184e
0000183e: DUP4
0000183f: PUSH1 0x00
00001841: MSTORE
00001842: PUSH1 0x07
00001844: PUSH1 0x20
00001846: MSTORE
00001847: PUSH1 0x40
00001849: PUSH1 0x00
0000184b: KECCAK256
0000184c: SWAP1
0000184d: JUMP
0000184e: JUMPDEST
0000184f: SLOAD
00001850: PUSH2 0x1859
00001853: SWAP1
00001854: DUP14
00001855: PUSH2 0x16b7
00001858: JUMP
00001859: JUMPDEST
0000185a: SWAP1
0000185b: PUSH2 0x1863
0000185e: SWAP2
0000185f: PUSH2 0x16ca
00001862: JUMP
00001863: JUMPDEST
00001864: PUSH2 0x186c
00001867: SWAP2
00001868: PUSH2 0x169d
0000186b: JUMP
0000186c: JUMPDEST
0000186d: SWAP8
0000186e: PUSH2 0x1876
00001871: SWAP2
00001872: PUSH2 0x169d
00001875: JUMP
00001876: JUMPDEST
00001877: SWAP11
00001878: SWAP5
00001879: SWAP4
0000187a: SWAP3
0000187b: SWAP2
0000187c: SWAP1
0000187d: DUP6
0000187e: PUSH2 0x17d2
00001881: JUMP
00001882: JUMPDEST
00001883: SWAP1
00001884: SWAP2
00001885: DUP1
00001886: SWAP4
00001887: SWAP5
00001888: SWAP6
00001889: POP
0000188a: DUP2
0000188b: LT
0000188c: ISZERO
0000188d: PUSH2 0x189b
00001890: JUMPI
00001891: SWAP1
00001892: DUP7
00001893: SWAP5
00001894: SWAP4
00001895: SWAP3
00001896: SWAP2
00001897: PUSH2 0x17f4
0000189a: JUMP
0000189b: JUMPDEST
0000189c: SWAP10
0000189d: DUP2
0000189e: SWAP9
0000189f: SWAP7
000018a0: PUSH2 0x17d7
000018a3: JUMP
000018a4: JUMPDEST
000018a5: PUSH1 0x03
000018a7: DUP1
000018a8: SLOAD
000018a9: SWAP1
000018aa: PUSH32 0x0000000000000000000000000000000000000000000000000000000000278d00
000018cb: SWAP2
000018cc: DUP3
000018cd: DUP2
000018ce: ADD
000018cf: DUP1
000018d0: SWAP2
000018d1: GT
000018d2: PUSH2 0x0664
000018d5: JUMPI
000018d6: TIMESTAMP
000018d7: GT
000018d8: PUSH2 0x18e0
000018db: JUMPI
000018dc: POP
000018dd: POP
000018de: POP
000018df: JUMP
000018e0: JUMPDEST
000018e1: PUSH2 0x1909
000018e4: PUSH32 0x00000000000000000000000000000000000000000000000000000000000f4240
00001905: PUSH2 0x2614
00001908: JUMP
00001909: JUMPDEST
0000190a: SWAP3
0000190b: PUSH1 0x01
0000190d: DUP1
0000190e: DUP1
0000190f: JUMPDEST
00001910: PUSH2 0x191b
00001913: JUMPI
00001914: POP
00001915: POP
00001916: POP
00001917: POP
00001918: POP
00001919: POP
0000191a: JUMP
0000191b: JUMPDEST
0000191c: ISZERO
0000191d: PUSH2 0x1965
00001920: JUMPI
00001921: JUMPDEST
00001922: PUSH1 0x00
00001924: SWAP1
00001925: DUP6
00001926: PUSH2 0x193a
00001929: DUP6
0000192a: SLOAD
0000192b: PUSH1 0x00
0000192d: MSTORE
0000192e: PUSH1 0x07
00001930: PUSH1 0x20
00001932: MSTORE
00001933: PUSH1 0x40
00001935: PUSH1 0x00
00001937: KECCAK256
00001938: SWAP1
00001939: JUMP
0000193a: JUMPDEST
0000193b: SSTORE
0000193c: DUP4
0000193d: SLOAD
0000193e: DUP6
0000193f: DUP2
00001940: ADD
00001941: DUP1
00001942: SWAP2
00001943: GT
00001944: PUSH2 0x0664
00001947: JUMPI
00001948: PUSH1 0x03
0000194a: SSTORE
0000194b: PUSH2 0x195e
0000194e: PUSH2 0x1959
00001951: DUP8
00001952: PUSH1 0x04
00001954: SLOAD
00001955: PUSH2 0x169d
00001958: JUMP
00001959: JUMPDEST
0000195a: PUSH1 0x04
0000195c: SSTORE
0000195d: JUMP
0000195e: JUMPDEST
0000195f: SWAP1
00001960: DUP2
00001961: PUSH2 0x190f
00001964: JUMP
00001965: JUMPDEST
00001966: DUP3
00001967: SLOAD
00001968: DUP5
00001969: DUP2
0000196a: ADD
0000196b: DUP1
0000196c: SWAP2
0000196d: GT
0000196e: PUSH2 0x0664
00001971: JUMPI
00001972: DUP3
00001973: GT
00001974: PUSH2 0x1921
00001977: JUMPI
00001978: DUP1
00001979: PUSH2 0x1769
0000197c: JUMP
0000197d: JUMPDEST
0000197e: DUP2
0000197f: DUP2
00001980: GT
00001981: ISZERO
00001982: PUSH2 0x1989
00001985: JUMPI
00001986: POP
00001987: SWAP1
00001988: JUMP
00001989: JUMPDEST
0000198a: SWAP1
0000198b: POP
0000198c: SWAP1
0000198d: JUMP
0000198e: JUMPDEST
0000198f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000019b0: PUSH1 0x00
000019b2: MSTORE
000019b3: PUSH1 0x41
000019b5: PUSH1 0x04
000019b7: MSTORE
000019b8: PUSH1 0x24
000019ba: PUSH1 0x00
000019bc: REVERT
000019bd: JUMPDEST
000019be: PUSH8 0xffffffffffffffff
000019c7: DUP2
000019c8: GT
000019c9: PUSH2 0x19d1
000019cc: JUMPI
000019cd: PUSH1 0x40
000019cf: MSTORE
000019d0: JUMP
000019d1: JUMPDEST
000019d2: PUSH2 0x198e
000019d5: JUMP
000019d6: JUMPDEST
000019d7: PUSH1 0x40
000019d9: DUP2
000019da: ADD
000019db: SWAP1
000019dc: DUP2
000019dd: LT
000019de: PUSH8 0xffffffffffffffff
000019e7: DUP3
000019e8: GT
000019e9: OR
000019ea: PUSH2 0x19d1
000019ed: JUMPI
000019ee: PUSH1 0x40
000019f0: MSTORE
000019f1: JUMP
000019f2: JUMPDEST
000019f3: SWAP1
000019f4: PUSH1 0x1f
000019f6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001a17: SWAP2
00001a18: ADD
00001a19: AND
00001a1a: DUP2
00001a1b: ADD
00001a1c: SWAP1
00001a1d: DUP2
00001a1e: LT
00001a1f: PUSH8 0xffffffffffffffff
00001a28: DUP3
00001a29: GT
00001a2a: OR
00001a2b: PUSH2 0x19d1
00001a2e: JUMPI
00001a2f: PUSH1 0x40
00001a31: MSTORE
00001a32: JUMP
00001a33: JUMPDEST
00001a34: SWAP2
00001a35: SWAP5
00001a36: SWAP3
00001a37: SWAP6
00001a38: SWAP4
00001a39: SWAP1
00001a3a: SWAP6
00001a3b: PUSH1 0x40
00001a3d: MLOAD
00001a3e: SWAP6
00001a3f: PUSH1 0x20
00001a41: DUP8
00001a42: ADD
00001a43: SWAP8
00001a44: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a59: DUP1
00001a5a: SWAP6
00001a5b: AND
00001a5c: DUP10
00001a5d: MSTORE
00001a5e: PUSH1 0x40
00001a60: DUP9
00001a61: ADD
00001a62: MSTORE
00001a63: PUSH1 0x60
00001a65: DUP8
00001a66: ADD
00001a67: MSTORE
00001a68: PUSH1 0x80
00001a6a: DUP7
00001a6b: ADD
00001a6c: MSTORE
00001a6d: AND
00001a6e: PUSH1 0xa0
00001a70: DUP5
00001a71: ADD
00001a72: MSTORE
00001a73: PUSH1 0xc0
00001a75: DUP4
00001a76: ADD
00001a77: MSTORE
00001a78: PUSH1 0xe0
00001a7a: DUP3
00001a7b: ADD
00001a7c: MSTORE
00001a7d: PUSH1 0xe0
00001a7f: DUP2
00001a80: MSTORE
00001a81: PUSH2 0x0100
00001a84: DUP2
00001a85: ADD
00001a86: DUP2
00001a87: DUP2
00001a88: LT
00001a89: PUSH8 0xffffffffffffffff
00001a92: DUP3
00001a93: GT
00001a94: OR
00001a95: PUSH2 0x19d1
00001a98: JUMPI
00001a99: PUSH1 0x40
00001a9b: MSTORE
00001a9c: MLOAD
00001a9d: SWAP1
00001a9e: KECCAK256
00001a9f: SWAP1
00001aa0: JUMP
00001aa1: JUMPDEST
00001aa2: ISZERO
00001aa3: PUSH2 0x1aa8
00001aa6: JUMPI
00001aa7: JUMP
00001aa8: JUMPDEST
00001aa9: PUSH1 0x64
00001aab: PUSH1 0x40
00001aad: MLOAD
00001aae: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001acf: DUP2
00001ad0: MSTORE
00001ad1: PUSH1 0x20
00001ad3: PUSH1 0x04
00001ad5: DUP3
00001ad6: ADD
00001ad7: MSTORE
00001ad8: PUSH1 0x0e
00001ada: PUSH1 0x24
00001adc: DUP3
00001add: ADD
00001ade: MSTORE
00001adf: PUSH32 0x6475706c69636174656420737562000000000000000000000000000000000000
00001b00: PUSH1 0x44
00001b02: DUP3
00001b03: ADD
00001b04: MSTORE
00001b05: REVERT
00001b06: JUMPDEST
00001b07: SWAP1
00001b08: SWAP4
00001b09: SWAP2
00001b0a: DUP4
00001b0b: DUP2
00001b0c: ADD
00001b0d: SWAP1
00001b0e: DUP2
00001b0f: DUP2
00001b10: GT
00001b11: PUSH2 0x0664
00001b14: JUMPI
00001b15: PUSH2 0x1b1e
00001b18: DUP7
00001b19: DUP3
00001b1a: PUSH2 0x16ca
00001b1d: JUMP
00001b1e: JUMPDEST
00001b1f: DUP3
00001b20: PUSH2 0x1b28
00001b23: DUP2
00001b24: PUSH2 0x2445
00001b27: JUMP
00001b28: JUMPDEST
00001b29: SWAP2
00001b2a: PUSH2 0x1b55
00001b2d: DUP3
00001b2e: ADDRESS
00001b2f: CALLER
00001b30: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00001b51: PUSH2 0x26b7
00001b54: JUMP
00001b55: JUMPDEST
00001b56: PUSH1 0x03
00001b58: SLOAD
00001b59: SWAP1
00001b5a: PUSH2 0x1b83
00001b5d: SWAP1
00001b5e: PUSH32 0x0000000000000000000000000000000000000000000000000000000000278d00
00001b7f: PUSH2 0x16b7
00001b82: JUMP
00001b83: JUMPDEST
00001b84: PUSH2 0x1b8c
00001b87: SWAP2
00001b88: PUSH2 0x169d
00001b8b: JUMP
00001b8c: JUMPDEST
00001b8d: SWAP7
00001b8e: DUP8
00001b8f: PUSH2 0x1bb8
00001b92: DUP8
00001b93: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ba8: AND
00001ba9: PUSH1 0x00
00001bab: MSTORE
00001bac: PUSH1 0x05
00001bae: PUSH1 0x20
00001bb0: MSTORE
00001bb1: PUSH1 0x40
00001bb3: PUSH1 0x00
00001bb5: KECCAK256
00001bb6: SWAP1
00001bb7: JUMP
00001bb8: JUMPDEST
00001bb9: PUSH1 0x00
00001bbb: SWAP2
00001bbc: DUP3
00001bbd: MSTORE
00001bbe: PUSH1 0x20
00001bc0: MSTORE
00001bc1: PUSH1 0x40
00001bc3: SWAP1
00001bc4: KECCAK256
00001bc5: DUP10
00001bc6: DUP2
00001bc7: SLOAD
00001bc8: SWAP1
00001bc9: PUSH2 0x1bd1
00001bcc: SWAP2
00001bcd: PUSH2 0x169d
00001bd0: JUMP
00001bd1: JUMPDEST
00001bd2: SWAP1
00001bd3: SSTORE
00001bd4: PUSH2 0x1bfd
00001bd7: DUP7
00001bd8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bed: AND
00001bee: PUSH1 0x00
00001bf0: MSTORE
00001bf1: PUSH1 0x06
00001bf3: PUSH1 0x20
00001bf5: MSTORE
00001bf6: PUSH1 0x40
00001bf8: PUSH1 0x00
00001bfa: KECCAK256
00001bfb: SWAP1
00001bfc: JUMP
00001bfd: JUMPDEST
00001bfe: PUSH1 0x01
00001c00: ADD
00001c01: DUP10
00001c02: DUP2
00001c03: SLOAD
00001c04: SWAP1
00001c05: PUSH2 0x1c0d
00001c08: SWAP2
00001c09: PUSH2 0x169d
00001c0c: JUMP
00001c0d: JUMPDEST
00001c0e: SWAP1
00001c0f: SSTORE
00001c10: PUSH2 0x1c19
00001c13: SWAP1
00001c14: DUP4
00001c15: PUSH2 0x16b7
00001c18: JUMP
00001c19: JUMPDEST
00001c1a: SWAP1
00001c1b: PUSH2 0x1c23
00001c1e: SWAP2
00001c1f: PUSH2 0x16ca
00001c22: JUMP
00001c23: JUMPDEST
00001c24: PUSH2 0x1c4d
00001c27: DUP6
00001c28: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c3d: AND
00001c3e: PUSH1 0x00
00001c40: MSTORE
00001c41: PUSH1 0x06
00001c43: PUSH1 0x20
00001c45: MSTORE
00001c46: PUSH1 0x40
00001c48: PUSH1 0x00
00001c4a: KECCAK256
00001c4b: SWAP1
00001c4c: JUMP
00001c4d: JUMPDEST
00001c4e: SWAP1
00001c4f: DUP2
00001c50: SLOAD
00001c51: SWAP1
00001c52: PUSH2 0x1c5a
00001c55: SWAP2
00001c56: PUSH2 0x169d
00001c59: JUMP
00001c5a: JUMPDEST
00001c5b: SWAP1
00001c5c: SSTORE
00001c5d: PUSH2 0x1c65
00001c60: SWAP2
00001c61: PUSH2 0x16b7
00001c64: JUMP
00001c65: JUMPDEST
00001c66: SWAP1
00001c67: PUSH2 0x1c6f
00001c6a: SWAP2
00001c6b: PUSH2 0x16ca
00001c6e: JUMP
00001c6f: JUMPDEST
00001c70: DUP1
00001c71: SWAP5
00001c72: PUSH1 0x03
00001c74: SLOAD
00001c75: SWAP3
00001c76: PUSH1 0x04
00001c78: SLOAD
00001c79: SWAP2
00001c7a: DUP7
00001c7b: CALLER
00001c7c: SWAP6
00001c7d: PUSH2 0x1c85
00001c80: SWAP7
00001c81: PUSH2 0x1a33
00001c84: JUMP
00001c85: JUMPDEST
00001c86: SWAP2
00001c87: PUSH2 0x1c9a
00001c8a: DUP4
00001c8b: PUSH1 0x00
00001c8d: MSTORE
00001c8e: PUSH1 0x08
00001c90: PUSH1 0x20
00001c92: MSTORE
00001c93: PUSH1 0x40
00001c95: PUSH1 0x00
00001c97: KECCAK256
00001c98: SWAP1
00001c99: JUMP
00001c9a: JUMPDEST
00001c9b: SLOAD
00001c9c: PUSH1 0xff
00001c9e: AND
00001c9f: ISZERO
00001ca0: PUSH2 0x1ca8
00001ca3: SWAP1
00001ca4: PUSH2 0x1aa1
00001ca7: JUMP
00001ca8: JUMPDEST
00001ca9: PUSH2 0x1cbc
00001cac: DUP4
00001cad: PUSH1 0x00
00001caf: MSTORE
00001cb0: PUSH1 0x08
00001cb2: PUSH1 0x20
00001cb4: MSTORE
00001cb5: PUSH1 0x40
00001cb7: PUSH1 0x00
00001cb9: KECCAK256
00001cba: SWAP1
00001cbb: JUMP
00001cbc: JUMPDEST
00001cbd: DUP1
00001cbe: SLOAD
00001cbf: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
00001ce0: AND
00001ce1: PUSH1 0x01
00001ce3: OR
00001ce4: SWAP1
00001ce5: SSTORE
00001ce6: SWAP3
00001ce7: SWAP2
00001ce8: SWAP1
00001ce9: JUMP
00001cea: JUMPDEST
00001ceb: ISZERO
00001cec: PUSH2 0x1cf1
00001cef: JUMPI
00001cf0: JUMP
00001cf1: JUMPDEST
00001cf2: PUSH1 0x64
00001cf4: PUSH1 0x40
00001cf6: MLOAD
00001cf7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001d18: DUP2
00001d19: MSTORE
00001d1a: PUSH1 0x20
00001d1c: PUSH1 0x04
00001d1e: DUP3
00001d1f: ADD
00001d20: MSTORE
00001d21: PUSH1 0x11
00001d23: PUSH1 0x24
00001d25: DUP3
00001d26: ADD
00001d27: MSTORE
00001d28: PUSH32 0x73756220646f65736e2774206578697374000000000000000000000000000000
00001d49: PUSH1 0x44
00001d4b: DUP3
00001d4c: ADD
00001d4d: MSTORE
00001d4e: REVERT
00001d4f: JUMPDEST
00001d50: SWAP1
00001d51: DUP1
00001d52: SWAP3
00001d53: SWAP2
00001d54: DUP3
00001d55: CALLDATACOPY
00001d56: ADD
00001d57: PUSH1 0x00
00001d59: DUP2
00001d5a: MSTORE
00001d5b: SWAP1
00001d5c: JUMP
00001d5d: JUMPDEST
00001d5e: PUSH8 0xffffffffffffffff
00001d67: DUP2
00001d68: GT
00001d69: PUSH2 0x19d1
00001d6c: JUMPI
00001d6d: PUSH1 0x1f
00001d6f: ADD
00001d70: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001d91: AND
00001d92: PUSH1 0x20
00001d94: ADD
00001d95: SWAP1
00001d96: JUMP
00001d97: JUMPDEST
00001d98: RETURNDATASIZE
00001d99: ISZERO
00001d9a: PUSH2 0x1dc2
00001d9d: JUMPI
00001d9e: RETURNDATASIZE
00001d9f: SWAP1
00001da0: PUSH2 0x1da8
00001da3: DUP3
00001da4: PUSH2 0x1d5d
00001da7: JUMP
00001da8: JUMPDEST
00001da9: SWAP2
00001daa: PUSH2 0x1db6
00001dad: PUSH1 0x40
00001daf: MLOAD
00001db0: SWAP4
00001db1: DUP5
00001db2: PUSH2 0x19f2
00001db5: JUMP
00001db6: JUMPDEST
00001db7: DUP3
00001db8: MSTORE
00001db9: RETURNDATASIZE
00001dba: PUSH1 0x00
00001dbc: PUSH1 0x20
00001dbe: DUP5
00001dbf: ADD
00001dc0: RETURNDATACOPY
00001dc1: JUMP
00001dc2: JUMPDEST
00001dc3: PUSH1 0x60
00001dc5: SWAP1
00001dc6: JUMP
00001dc7: JUMPDEST
00001dc8: PUSH1 0x00
00001dca: JUMPDEST
00001dcb: DUP4
00001dcc: DUP2
00001dcd: LT
00001dce: PUSH2 0x1dda
00001dd1: JUMPI
00001dd2: POP
00001dd3: POP
00001dd4: PUSH1 0x00
00001dd6: SWAP2
00001dd7: ADD
00001dd8: MSTORE
00001dd9: JUMP
00001dda: JUMPDEST
00001ddb: DUP2
00001ddc: DUP2
00001ddd: ADD
00001dde: MLOAD
00001ddf: DUP4
00001de0: DUP3
00001de1: ADD
00001de2: MSTORE
00001de3: PUSH1 0x20
00001de5: ADD
00001de6: PUSH2 0x1dca
00001de9: JUMP
00001dea: JUMPDEST
00001deb: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001e0c: PUSH1 0x1f
00001e0e: PUSH1 0x40
00001e10: SWAP4
00001e11: PUSH1 0x20
00001e13: DUP5
00001e14: MSTORE
00001e15: PUSH2 0x1e2d
00001e18: DUP2
00001e19: MLOAD
00001e1a: DUP1
00001e1b: SWAP3
00001e1c: DUP2
00001e1d: PUSH1 0x20
00001e1f: DUP9
00001e20: ADD
00001e21: MSTORE
00001e22: PUSH1 0x20
00001e24: DUP9
00001e25: DUP9
00001e26: ADD
00001e27: SWAP2
00001e28: ADD
00001e29: PUSH2 0x1dc7
00001e2c: JUMP
00001e2d: JUMPDEST
00001e2e: ADD
00001e2f: AND
00001e30: ADD
00001e31: ADD
00001e32: SWAP1
00001e33: JUMP
00001e34: JUMPDEST
00001e35: SWAP2
00001e36: SWAP1
00001e37: SWAP2
00001e38: PUSH1 0x00
00001e3a: JUMPDEST
00001e3b: DUP4
00001e3c: DUP2
00001e3d: LT
00001e3e: PUSH2 0x1e47
00001e41: JUMPI
00001e42: POP
00001e43: POP
00001e44: POP
00001e45: POP
00001e46: JUMP
00001e47: JUMPDEST
00001e48: DUP1
00001e49: PUSH1 0x05
00001e4b: SHL
00001e4c: DUP3
00001e4d: ADD
00001e4e: CALLDATALOAD
00001e4f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1
00001e70: DUP4
00001e71: CALLDATASIZE
00001e72: SUB
00001e73: ADD
00001e74: DUP2
00001e75: SLT
00001e76: ISZERO
00001e77: PUSH2 0x0227
00001e7a: JUMPI
00001e7b: DUP3
00001e7c: ADD
00001e7d: DUP1
00001e7e: CALLDATALOAD
00001e7f: SWAP1
00001e80: PUSH8 0xffffffffffffffff
00001e89: DUP3
00001e8a: GT
00001e8b: PUSH2 0x0227
00001e8e: JUMPI
00001e8f: PUSH1 0x20
00001e91: ADD
00001e92: SWAP1
00001e93: DUP1
00001e94: CALLDATASIZE
00001e95: SUB
00001e96: DUP3
00001e97: SGT
00001e98: PUSH2 0x0227
00001e9b: JUMPI
00001e9c: PUSH1 0x00
00001e9e: DUP1
00001e9f: SWAP2
00001ea0: PUSH1 0x40
00001ea2: SWAP4
00001ea3: PUSH2 0x1eb0
00001ea6: DUP6
00001ea7: MLOAD
00001ea8: DUP1
00001ea9: SWAP4
00001eaa: DUP2
00001eab: SWAP4
00001eac: PUSH2 0x1d4f
00001eaf: JUMP
00001eb0: JUMPDEST
00001eb1: SUB
00001eb2: SWAP1
00001eb3: ADDRESS
00001eb4: GAS
00001eb5: DELEGATECALL
00001eb6: PUSH2 0x1ebd
00001eb9: PUSH2 0x1d97
00001ebc: JUMP
00001ebd: JUMPDEST
00001ebe: SWAP1
00001ebf: ISZERO
00001ec0: DUP1
00001ec1: PUSH2 0x1f3c
00001ec4: JUMPI
00001ec5: JUMPDEST
00001ec6: PUSH2 0x1efa
00001ec9: JUMPI
00001eca: POP
00001ecb: POP
00001ecc: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001eed: DUP2
00001eee: EQ
00001eef: PUSH2 0x0664
00001ef2: JUMPI
00001ef3: PUSH1 0x01
00001ef5: ADD
00001ef6: PUSH2 0x1e3a
00001ef9: JUMP
00001efa: JUMPDEST
00001efb: SWAP1
00001efc: PUSH2 0x1f07
00001eff: PUSH2 0x1f38
00001f02: SWAP3
00001f03: PUSH2 0x1f43
00001f06: JUMP
00001f07: JUMPDEST
00001f08: SWAP1
00001f09: MLOAD
00001f0a: SWAP2
00001f0b: DUP3
00001f0c: SWAP2
00001f0d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001f2e: DUP4
00001f2f: MSTORE
00001f30: PUSH1 0x04
00001f32: DUP4
00001f33: ADD
00001f34: PUSH2 0x1dea
00001f37: JUMP
00001f38: JUMPDEST
00001f39: SUB
00001f3a: SWAP1
00001f3b: REVERT
00001f3c: JUMPDEST
00001f3d: POP
00001f3e: DUP5
00001f3f: PUSH2 0x1ec5
00001f42: JUMP
00001f43: JUMPDEST
00001f44: PUSH1 0x44
00001f46: DUP2
00001f47: MLOAD
00001f48: LT
00001f49: PUSH2 0x1fc1
00001f4c: JUMPI
00001f4d: PUSH1 0x04
00001f4f: DUP2
00001f50: ADD
00001f51: MLOAD
00001f52: DUP2
00001f53: ADD
00001f54: SWAP1
00001f55: PUSH1 0x20
00001f57: DUP2
00001f58: PUSH1 0x24
00001f5a: DUP5
00001f5b: ADD
00001f5c: SWAP4
00001f5d: SUB
00001f5e: SLT
00001f5f: PUSH2 0x0227
00001f62: JUMPI
00001f63: PUSH1 0x24
00001f65: DUP2
00001f66: ADD
00001f67: MLOAD
00001f68: SWAP1
00001f69: PUSH8 0xffffffffffffffff
00001f72: DUP3
00001f73: GT
00001f74: PUSH2 0x0227
00001f77: JUMPI
00001f78: ADD
00001f79: DUP2
00001f7a: PUSH1 0x43
00001f7c: DUP3
00001f7d: ADD
00001f7e: SLT
00001f7f: ISZERO
00001f80: PUSH2 0x0227
00001f83: JUMPI
00001f84: PUSH1 0x24
00001f86: DUP2
00001f87: ADD
00001f88: MLOAD
00001f89: PUSH2 0x1f91
00001f8c: DUP2
00001f8d: PUSH2 0x1d5d
00001f90: JUMP
00001f91: JUMPDEST
00001f92: SWAP3
00001f93: PUSH2 0x1f9f
00001f96: PUSH1 0x40
00001f98: MLOAD
00001f99: SWAP5
00001f9a: DUP6
00001f9b: PUSH2 0x19f2
00001f9e: JUMP
00001f9f: JUMPDEST
00001fa0: DUP2
00001fa1: DUP5
00001fa2: MSTORE
00001fa3: PUSH1 0x44
00001fa5: DUP3
00001fa6: DUP5
00001fa7: ADD
00001fa8: ADD
00001fa9: GT
00001faa: PUSH2 0x0227
00001fad: JUMPI
00001fae: PUSH2 0x1fbe
00001fb1: SWAP2
00001fb2: PUSH1 0x44
00001fb4: PUSH1 0x20
00001fb6: DUP6
00001fb7: ADD
00001fb8: SWAP2
00001fb9: ADD
00001fba: PUSH2 0x1dc7
00001fbd: JUMP
00001fbe: JUMPDEST
00001fbf: SWAP1
00001fc0: JUMP
00001fc1: JUMPDEST
00001fc2: POP
00001fc3: PUSH1 0x40
00001fc5: MLOAD
00001fc6: PUSH2 0x1fce
00001fc9: DUP2
00001fca: PUSH2 0x19d6
00001fcd: JUMP
00001fce: JUMPDEST
00001fcf: PUSH1 0x1d
00001fd1: DUP2
00001fd2: MSTORE
00001fd3: PUSH32 0x5472616e73616374696f6e2072657665727465642073696c656e746c79000000
00001ff4: PUSH1 0x20
00001ff6: DUP3
00001ff7: ADD
00001ff8: MSTORE
00001ff9: SWAP1
00001ffa: JUMP
00001ffb: JUMPDEST
00001ffc: PUSH1 0x40
00001ffe: MLOAD
00001fff: RETURNDATASIZE
00002000: PUSH1 0x00
00002002: DUP3
00002003: RETURNDATACOPY
00002004: RETURNDATASIZE
00002005: SWAP1
00002006: REVERT
00002007: JUMPDEST
00002008: ISZERO
00002009: PUSH2 0x200e
0000200c: JUMPI
0000200d: JUMP
0000200e: JUMPDEST
0000200f: PUSH1 0x64
00002011: PUSH1 0x40
00002013: MLOAD
00002014: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002035: DUP2
00002036: MSTORE
00002037: PUSH1 0x20
00002039: PUSH1 0x04
0000203b: DUP3
0000203c: ADD
0000203d: MSTORE
0000203e: PUSH1 0x13
00002040: PUSH1 0x24
00002042: DUP3
00002043: ADD
00002044: MSTORE
00002045: PUSH32 0x6e6f7420726577617264526563697069656e7400000000000000000000000000
00002066: PUSH1 0x44
00002068: DUP3
00002069: ADD
0000206a: MSTORE
0000206b: REVERT
0000206c: JUMPDEST
0000206d: PUSH8 0xffffffffffffffff
00002076: DUP2
00002077: GT
00002078: PUSH2 0x19d1
0000207b: JUMPI
0000207c: PUSH1 0x05
0000207e: SHL
0000207f: PUSH1 0x20
00002081: ADD
00002082: SWAP1
00002083: JUMP
00002084: JUMPDEST
00002085: PUSH1 0x40
00002087: MLOAD
00002088: SWAP1
00002089: PUSH2 0x2091
0000208c: DUP3
0000208d: PUSH2 0x19d6
00002090: JUMP
00002091: JUMPDEST
00002092: PUSH1 0x01
00002094: DUP3
00002095: MSTORE
00002096: PUSH1 0x20
00002098: CALLDATASIZE
00002099: DUP2
0000209a: DUP5
0000209b: ADD
0000209c: CALLDATACOPY
0000209d: JUMP
0000209e: JUMPDEST
0000209f: DUP1
000020a0: MLOAD
000020a1: ISZERO
000020a2: PUSH2 0x20ab
000020a5: JUMPI
000020a6: PUSH1 0x20
000020a8: ADD
000020a9: SWAP1
000020aa: JUMP
000020ab: JUMPDEST
000020ac: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000020cd: PUSH1 0x00
000020cf: MSTORE
000020d0: PUSH1 0x32
000020d2: PUSH1 0x04
000020d4: MSTORE
000020d5: PUSH1 0x24
000020d7: PUSH1 0x00
000020d9: REVERT
000020da: JUMPDEST
000020db: DUP2
000020dc: PUSH1 0x1f
000020de: DUP3
000020df: ADD
000020e0: SLT
000020e1: ISZERO
000020e2: PUSH2 0x0227
000020e5: JUMPI
000020e6: DUP1
000020e7: MLOAD
000020e8: SWAP2
000020e9: PUSH2 0x20f1
000020ec: DUP4
000020ed: PUSH2 0x206c
000020f0: JUMP
000020f1: JUMPDEST
000020f2: SWAP3
000020f3: PUSH2 0x20ff
000020f6: PUSH1 0x40
000020f8: MLOAD
000020f9: SWAP5
000020fa: DUP6
000020fb: PUSH2 0x19f2
000020fe: JUMP
000020ff: JUMPDEST
00002100: DUP1
00002101: DUP5
00002102: MSTORE
00002103: PUSH1 0x20
00002105: SWAP3
00002106: DUP4
00002107: DUP1
00002108: DUP7
00002109: ADD
0000210a: SWAP3
0000210b: PUSH1 0x05
0000210d: SHL
0000210e: DUP3
0000210f: ADD
00002110: ADD
00002111: SWAP3
00002112: DUP4
00002113: GT
00002114: PUSH2 0x0227
00002117: JUMPI
00002118: DUP4
00002119: ADD
0000211a: SWAP1
0000211b: JUMPDEST
0000211c: DUP3
0000211d: DUP3
0000211e: LT
0000211f: PUSH2 0x2129
00002122: JUMPI
00002123: POP
00002124: POP
00002125: POP
00002126: POP
00002127: SWAP1
00002128: JUMP
00002129: JUMPDEST
0000212a: DUP2
0000212b: MLOAD
0000212c: DUP2
0000212d: MSTORE
0000212e: SWAP1
0000212f: DUP4
00002130: ADD
00002131: SWAP1
00002132: DUP4
00002133: ADD
00002134: PUSH2 0x211b
00002137: JUMP
00002138: JUMPDEST
00002139: SWAP2
0000213a: SWAP1
0000213b: SWAP2
0000213c: PUSH1 0x40
0000213e: DUP2
0000213f: DUP5
00002140: SUB
00002141: SLT
00002142: PUSH2 0x0227
00002145: JUMPI
00002146: DUP1
00002147: MLOAD
00002148: SWAP3
00002149: PUSH8 0xffffffffffffffff
00002152: SWAP4
00002153: DUP5
00002154: DUP2
00002155: GT
00002156: PUSH2 0x0227
00002159: JUMPI
0000215a: DUP3
0000215b: ADD
0000215c: SWAP4
0000215d: DUP2
0000215e: PUSH1 0x1f
00002160: DUP7
00002161: ADD
00002162: SLT
00002163: ISZERO
00002164: PUSH2 0x0227
00002167: JUMPI
00002168: DUP5
00002169: MLOAD
0000216a: PUSH2 0x2172
0000216d: DUP2
0000216e: PUSH2 0x206c
00002171: JUMP
00002172: JUMPDEST
00002173: SWAP1
00002174: PUSH2 0x2180
00002177: PUSH1 0x40
00002179: MLOAD
0000217a: SWAP3
0000217b: DUP4
0000217c: PUSH2 0x19f2
0000217f: JUMP
00002180: JUMPDEST
00002181: DUP1
00002182: DUP3
00002183: MSTORE
00002184: PUSH1 0x20
00002186: SWAP7
00002187: DUP8
00002188: DUP1
00002189: DUP5
0000218a: ADD
0000218b: SWAP3
0000218c: PUSH1 0x05
0000218e: SHL
0000218f: DUP3
00002190: ADD
00002191: ADD
00002192: SWAP2
00002193: DUP6
00002194: DUP4
00002195: GT
00002196: PUSH2 0x0227
00002199: JUMPI
0000219a: DUP9
0000219b: DUP1
0000219c: SWAP3
0000219d: ADD
0000219e: SWAP1
0000219f: JUMPDEST
000021a0: DUP4
000021a1: DUP3
000021a2: LT
000021a3: PUSH2 0x21bf
000021a6: JUMPI
000021a7: POP
000021a8: POP
000021a9: POP
000021aa: POP
000021ab: SWAP5
000021ac: DUP4
000021ad: ADD
000021ae: MLOAD
000021af: SWAP1
000021b0: DUP2
000021b1: GT
000021b2: PUSH2 0x0227
000021b5: JUMPI
000021b6: PUSH2 0x1fbe
000021b9: SWAP3
000021ba: ADD
000021bb: PUSH2 0x20da
000021be: JUMP
000021bf: JUMPDEST
000021c0: DUP3
000021c1: DUP1
000021c2: SWAP2
000021c3: DUP4
000021c4: MLOAD
000021c5: PUSH2 0x21cd
000021c8: DUP2
000021c9: PUSH2 0x06d8
000021cc: JUMP
000021cd: JUMPDEST
000021ce: DUP2
000021cf: MSTORE
000021d0: ADD
000021d1: SWAP2
000021d2: ADD
000021d3: SWAP1
000021d4: PUSH2 0x219f
000021d7: JUMP
000021d8: JUMPDEST
000021d9: SWAP1
000021da: SWAP3
000021db: SWAP2
000021dc: SWAP3
000021dd: PUSH1 0x40
000021df: DUP3
000021e0: ADD
000021e1: PUSH1 0x40
000021e3: DUP4
000021e4: MSTORE
000021e5: DUP2
000021e6: MLOAD
000021e7: DUP1
000021e8: SWAP2
000021e9: MSTORE
000021ea: PUSH1 0x60
000021ec: DUP4
000021ed: ADD
000021ee: PUSH1 0x20
000021f0: DUP1
000021f1: SWAP4
000021f2: ADD
000021f3: SWAP2
000021f4: PUSH1 0x00
000021f6: JUMPDEST
000021f7: DUP5
000021f8: DUP3
000021f9: DUP3
000021fa: LT
000021fb: PUSH2 0x221f
000021fe: JUMPI
000021ff: POP
00002200: POP
00002201: POP
00002202: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002217: SWAP2
00002218: POP
00002219: SWAP5
0000221a: AND
0000221b: SWAP2
0000221c: ADD
0000221d: MSTORE
0000221e: JUMP
0000221f: JUMPDEST
00002220: DUP5
00002221: MLOAD
00002222: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002237: AND
00002238: DUP5
00002239: MSTORE
0000223a: SWAP4
0000223b: DUP5
0000223c: ADD
0000223d: SWAP4
0000223e: SWAP1
0000223f: SWAP3
00002240: ADD
00002241: SWAP2
00002242: PUSH1 0x01
00002244: ADD
00002245: PUSH2 0x21f6
00002248: JUMP
00002249: JUMPDEST
0000224a: SWAP1
0000224b: DUP2
0000224c: PUSH1 0x20
0000224e: SWAP2
0000224f: SUB
00002250: SLT
00002251: PUSH2 0x0227
00002254: JUMPI
00002255: MLOAD
00002256: SWAP1
00002257: JUMP
00002258: JUMPDEST
00002259: PUSH1 0x40
0000225b: MLOAD
0000225c: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
0000227d: DUP1
0000227e: DUP3
0000227f: MSTORE
00002280: ADDRESS
00002281: PUSH1 0x04
00002283: DUP4
00002284: ADD
00002285: MSTORE
00002286: PUSH1 0x20
00002288: SWAP2
00002289: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000229e: SWAP2
0000229f: SWAP1
000022a0: DUP4
000022a1: DUP2
000022a2: PUSH1 0x24
000022a4: DUP2
000022a5: PUSH32 0x00000000000000000000000098c23e9d8f34fefb1b7bd6a91b7ff122f4e16f5c
000022c6: DUP8
000022c7: AND
000022c8: GAS
000022c9: STATICCALL
000022ca: SWAP2
000022cb: DUP3
000022cc: ISZERO
000022cd: PUSH2 0x0588
000022d0: JUMPI
000022d1: DUP5
000022d2: SWAP2
000022d3: PUSH1 0x00
000022d5: SWAP4
000022d6: PUSH2 0x235c
000022d9: JUMPI
000022da: JUMPDEST
000022db: POP
000022dc: PUSH1 0x40
000022de: MLOAD
000022df: SWAP1
000022e0: DUP2
000022e1: MSTORE
000022e2: ADDRESS
000022e3: PUSH1 0x04
000022e5: DUP3
000022e6: ADD
000022e7: MSTORE
000022e8: SWAP3
000022e9: DUP4
000022ea: SWAP1
000022eb: PUSH1 0x24
000022ed: SWAP1
000022ee: DUP3
000022ef: SWAP1
000022f0: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00002311: AND
00002312: GAS
00002313: STATICCALL
00002314: SWAP2
00002315: DUP3
00002316: ISZERO
00002317: PUSH2 0x0588
0000231a: JUMPI
0000231b: PUSH2 0x1fbe
0000231e: SWAP4
0000231f: PUSH1 0x00
00002321: SWAP4
00002322: PUSH2 0x232d
00002325: JUMPI
00002326: JUMPDEST
00002327: POP
00002328: POP
00002329: PUSH2 0x169d
0000232c: JUMP
0000232d: JUMPDEST
0000232e: PUSH2 0x234d
00002331: SWAP3
00002332: SWAP4
00002333: POP
00002334: DUP1
00002335: RETURNDATASIZE
00002336: LT
00002337: PUSH2 0x2355
0000233a: JUMPI
0000233b: JUMPDEST
0000233c: PUSH2 0x2345
0000233f: DUP2
00002340: DUP4
00002341: PUSH2 0x19f2
00002344: JUMP
00002345: JUMPDEST
00002346: DUP2
00002347: ADD
00002348: SWAP1
00002349: PUSH2 0x2249
0000234c: JUMP
0000234d: JUMPDEST
0000234e: SWAP1
0000234f: CODESIZE
00002350: DUP1
00002351: PUSH2 0x2326
00002354: JUMP
00002355: JUMPDEST
00002356: POP
00002357: RETURNDATASIZE
00002358: PUSH2 0x233b
0000235b: JUMP
0000235c: JUMPDEST
0000235d: PUSH2 0x2374
00002360: SWAP2
00002361: SWAP4
00002362: POP
00002363: DUP3
00002364: RETURNDATASIZE
00002365: DUP5
00002366: GT
00002367: PUSH2 0x2355
0000236a: JUMPI
0000236b: PUSH2 0x2345
0000236e: DUP2
0000236f: DUP4
00002370: PUSH2 0x19f2
00002373: JUMP
00002374: JUMPDEST
00002375: SWAP2
00002376: CODESIZE
00002377: PUSH2 0x22da
0000237a: JUMP
0000237b: JUMPDEST
0000237c: ISZERO
0000237d: PUSH2 0x2382
00002380: JUMPI
00002381: JUMP
00002382: JUMPDEST
00002383: PUSH1 0x64
00002385: PUSH1 0x40
00002387: MLOAD
00002388: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000023a9: DUP2
000023aa: MSTORE
000023ab: PUSH1 0x20
000023ad: PUSH1 0x04
000023af: DUP3
000023b0: ADD
000023b1: MSTORE
000023b2: PUSH1 0x0c
000023b4: PUSH1 0x24
000023b6: DUP3
000023b7: ADD
000023b8: MSTORE
000023b9: PUSH32 0x554e415554484f52495a45440000000000000000000000000000000000000000
000023da: PUSH1 0x44
000023dc: DUP3
000023dd: ADD
000023de: MSTORE
000023df: REVERT
000023e0: JUMPDEST
000023e1: ISZERO
000023e2: PUSH2 0x23e7
000023e5: JUMPI
000023e6: JUMP
000023e7: JUMPDEST
000023e8: PUSH1 0x64
000023ea: PUSH1 0x40
000023ec: MLOAD
000023ed: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000240e: DUP2
0000240f: MSTORE
00002410: PUSH1 0x20
00002412: PUSH1 0x04
00002414: DUP3
00002415: ADD
00002416: MSTORE
00002417: PUSH1 0x0a
00002419: PUSH1 0x24
0000241b: DUP3
0000241c: ADD
0000241d: MSTORE
0000241e: PUSH32 0x3e6d6178546f50756c6c00000000000000000000000000000000000000000000
0000243f: PUSH1 0x44
00002441: DUP3
00002442: ADD
00002443: MSTORE
00002444: REVERT
00002445: JUMPDEST
00002446: PUSH1 0x02
00002448: SLOAD
00002449: SWAP2
0000244a: SWAP1
0000244b: DUP3
0000244c: PUSH2 0x2460
0000244f: JUMPI
00002450: SWAP2
00002451: JUMPDEST
00002452: DUP3
00002453: DUP2
00002454: ADD
00002455: DUP1
00002456: SWAP2
00002457: GT
00002458: PUSH2 0x0664
0000245b: JUMPI
0000245c: PUSH1 0x02
0000245e: SSTORE
0000245f: JUMP
00002460: JUMPDEST
00002461: PUSH2 0x2473
00002464: SWAP1
00002465: DUP4
00002466: PUSH2 0x246d
00002469: PUSH2 0x2258
0000246c: JUMP
0000246d: JUMPDEST
0000246e: SWAP2
0000246f: PUSH2 0x2647
00002472: JUMP
00002473: JUMPDEST
00002474: SWAP2
00002475: PUSH2 0x2451
00002478: JUMP
00002479: JUMPDEST
0000247a: PUSH2 0x2482
0000247d: DUP2
0000247e: PUSH2 0x262d
00002481: JUMP
00002482: JUMPDEST
00002483: SWAP1
00002484: PUSH1 0x02
00002486: SLOAD
00002487: SWAP1
00002488: DUP2
00002489: SUB
0000248a: SWAP1
0000248b: DUP2
0000248c: GT
0000248d: PUSH2 0x0664
00002490: JUMPI
00002491: PUSH1 0x02
00002493: SSTORE
00002494: PUSH1 0x40
00002496: MLOAD
00002497: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
000024b8: DUP2
000024b9: MSTORE
000024ba: ADDRESS
000024bb: PUSH1 0x04
000024bd: DUP3
000024be: ADD
000024bf: MSTORE
000024c0: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
000024e1: SWAP3
000024e2: SWAP1
000024e3: PUSH1 0x20
000024e5: DUP2
000024e6: PUSH1 0x24
000024e8: DUP2
000024e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024fe: DUP9
000024ff: AND
00002500: GAS
00002501: STATICCALL
00002502: SWAP1
00002503: DUP2
00002504: ISZERO
00002505: PUSH2 0x0588
00002508: JUMPI
00002509: PUSH1 0x00
0000250b: SWAP2
0000250c: PUSH2 0x252d
0000250f: JUMPI
00002510: JUMPDEST
00002511: POP
00002512: DUP3
00002513: GT
00002514: PUSH2 0x2522
00002517: JUMPI
00002518: PUSH2 0x2520
0000251b: SWAP3
0000251c: PUSH2 0x2787
0000251f: JUMP
00002520: JUMPDEST
00002521: JUMP
00002522: JUMPDEST
00002523: SWAP1
00002524: PUSH2 0x2520
00002527: SWAP3
00002528: POP
00002529: PUSH2 0x254b
0000252c: JUMP
0000252d: JUMPDEST
0000252e: PUSH2 0x2545
00002531: SWAP2
00002532: POP
00002533: PUSH1 0x20
00002535: RETURNDATASIZE
00002536: DUP2
00002537: GT
00002538: PUSH2 0x2355
0000253b: JUMPI
0000253c: PUSH2 0x2345
0000253f: DUP2
00002540: DUP4
00002541: PUSH2 0x19f2
00002544: JUMP
00002545: JUMPDEST
00002546: CODESIZE
00002547: PUSH2 0x2510
0000254a: JUMP
0000254b: JUMPDEST
0000254c: PUSH1 0x00
0000254e: SWAP2
0000254f: PUSH1 0x64
00002551: PUSH1 0x20
00002553: SWAP3
00002554: PUSH1 0x40
00002556: MLOAD
00002557: SWAP5
00002558: DUP6
00002559: SWAP4
0000255a: DUP5
0000255b: SWAP3
0000255c: PUSH32 0x69328dec00000000000000000000000000000000000000000000000000000000
0000257d: DUP5
0000257e: MSTORE
0000257f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002594: SWAP2
00002595: DUP3
00002596: SWAP2
00002597: DUP3
00002598: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
000025b9: AND
000025ba: PUSH1 0x04
000025bc: DUP8
000025bd: ADD
000025be: MSTORE
000025bf: PUSH1 0x24
000025c1: DUP7
000025c2: ADD
000025c3: MSTORE
000025c4: AND
000025c5: PUSH1 0x44
000025c7: DUP5
000025c8: ADD
000025c9: MSTORE
000025ca: PUSH32 0x00000000000000000000000087870bca3f3fd6335c3f4ce8392d69350b4fa4e2
000025eb: AND
000025ec: GAS
000025ed: CALL
000025ee: DUP1
000025ef: ISZERO
000025f0: PUSH2 0x0588
000025f3: JUMPI
000025f4: PUSH2 0x25fa
000025f7: JUMPI
000025f8: POP
000025f9: JUMP
000025fa: JUMPDEST
000025fb: PUSH2 0x2611
000025fe: SWAP1
000025ff: PUSH1 0x20
00002601: RETURNDATASIZE
00002602: DUP2
00002603: GT
00002604: PUSH2 0x2355
00002607: JUMPI
00002608: PUSH2 0x2345
0000260b: DUP2
0000260c: DUP4
0000260d: PUSH2 0x19f2
00002610: JUMP
00002611: JUMPDEST
00002612: POP
00002613: JUMP
00002614: JUMPDEST
00002615: PUSH1 0x02
00002617: SLOAD
00002618: DUP1
00002619: PUSH2 0x2620
0000261c: JUMPI
0000261d: POP
0000261e: SWAP1
0000261f: JUMP
00002620: JUMPDEST
00002621: SWAP1
00002622: PUSH2 0x1fbe
00002625: SWAP2
00002626: PUSH2 0x246d
00002629: PUSH2 0x2258
0000262c: JUMP
0000262d: JUMPDEST
0000262e: PUSH1 0x02
00002630: SLOAD
00002631: DUP1
00002632: PUSH2 0x2639
00002635: JUMPI
00002636: POP
00002637: SWAP1
00002638: JUMP
00002639: JUMPDEST
0000263a: PUSH2 0x1fbe
0000263d: SWAP2
0000263e: PUSH2 0x2645
00002641: PUSH2 0x2258
00002644: JUMP
00002645: JUMPDEST
00002646: SWAP1
00002647: JUMPDEST
00002648: DUP2
00002649: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000266a: DIV
0000266b: DUP2
0000266c: GT
0000266d: DUP3
0000266e: MUL
0000266f: ISZERO
00002670: DUP4
00002671: MUL
00002672: ISZERO
00002673: PUSH2 0x0227
00002676: JUMPI
00002677: MUL
00002678: DIV
00002679: SWAP1
0000267a: JUMP
0000267b: JUMPDEST
0000267c: DUP2
0000267d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000269e: DIV
0000269f: DUP2
000026a0: GT
000026a1: DUP3
000026a2: MUL
000026a3: ISZERO
000026a4: DUP4
000026a5: MUL
000026a6: ISZERO
000026a7: PUSH2 0x0227
000026aa: JUMPI
000026ab: MUL
000026ac: SWAP1
000026ad: DUP1
000026ae: DUP3
000026af: DIV
000026b0: SWAP2
000026b1: MOD
000026b2: ISZERO
000026b3: ISZERO
000026b4: ADD
000026b5: SWAP1
000026b6: JUMP
000026b7: JUMPDEST
000026b8: SWAP2
000026b9: PUSH1 0x00
000026bb: DUP1
000026bc: SWAP4
000026bd: PUSH1 0x20
000026bf: SWAP6
000026c0: PUSH1 0x64
000026c2: SWAP5
000026c3: PUSH1 0x40
000026c5: MLOAD
000026c6: SWAP5
000026c7: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
000026e8: DUP7
000026e9: MSTORE
000026ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026ff: DUP1
00002700: SWAP3
00002701: AND
00002702: PUSH1 0x04
00002704: DUP8
00002705: ADD
00002706: MSTORE
00002707: AND
00002708: PUSH1 0x24
0000270a: DUP6
0000270b: ADD
0000270c: MSTORE
0000270d: PUSH1 0x44
0000270f: DUP5
00002710: ADD
00002711: MSTORE
00002712: GAS
00002713: CALL
00002714: RETURNDATASIZE
00002715: ISZERO
00002716: PUSH1 0x1f
00002718: RETURNDATASIZE
00002719: GT
0000271a: PUSH1 0x01
0000271c: PUSH1 0x00
0000271e: MLOAD
0000271f: EQ
00002720: AND
00002721: OR
00002722: AND
00002723: ISZERO
00002724: PUSH2 0x2729
00002727: JUMPI
00002728: JUMP
00002729: JUMPDEST
0000272a: PUSH1 0x64
0000272c: PUSH1 0x40
0000272e: MLOAD
0000272f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002750: DUP2
00002751: MSTORE
00002752: PUSH1 0x20
00002754: PUSH1 0x04
00002756: DUP3
00002757: ADD
00002758: MSTORE
00002759: PUSH1 0x14
0000275b: PUSH1 0x24
0000275d: DUP3
0000275e: ADD
0000275f: MSTORE
00002760: PUSH32 0x5452414e534645525f46524f4d5f4641494c4544000000000000000000000000
00002781: PUSH1 0x44
00002783: DUP3
00002784: ADD
00002785: MSTORE
00002786: REVERT
00002787: JUMPDEST
00002788: PUSH1 0x00
0000278a: SWAP2
0000278b: DUP3
0000278c: PUSH1 0x44
0000278e: SWAP3
0000278f: PUSH1 0x20
00002791: SWAP6
00002792: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027a7: PUSH1 0x40
000027a9: MLOAD
000027aa: SWAP5
000027ab: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
000027cc: DUP7
000027cd: MSTORE
000027ce: AND
000027cf: PUSH1 0x04
000027d1: DUP6
000027d2: ADD
000027d3: MSTORE
000027d4: PUSH1 0x24
000027d6: DUP5
000027d7: ADD
000027d8: MSTORE
000027d9: GAS
000027da: CALL
000027db: RETURNDATASIZE
000027dc: ISZERO
000027dd: PUSH1 0x1f
000027df: RETURNDATASIZE
000027e0: GT
000027e1: PUSH1 0x01
000027e3: PUSH1 0x00
000027e5: MLOAD
000027e6: EQ
000027e7: AND
000027e8: OR
000027e9: AND
000027ea: ISZERO
000027eb: PUSH2 0x27f0
000027ee: JUMPI
000027ef: JUMP
000027f0: JUMPDEST
000027f1: PUSH1 0x64
000027f3: PUSH1 0x40
000027f5: MLOAD
000027f6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002817: DUP2
00002818: MSTORE
00002819: PUSH1 0x20
0000281b: PUSH1 0x04
0000281d: DUP3
0000281e: ADD
0000281f: MSTORE
00002820: PUSH1 0x0f
00002822: PUSH1 0x24
00002824: DUP3
00002825: ADD
00002826: MSTORE
00002827: PUSH32 0x5452414e534645525f4641494c45440000000000000000000000000000000000
00002848: PUSH1 0x44
0000284a: DUP3
0000284b: ADD
0000284c: MSTORE
0000284d: REVERT
0000284e: JUMPDEST
0000284f: PUSH1 0x44
00002851: PUSH1 0x20
00002853: SWAP3
00002854: PUSH1 0x00
00002856: DUP1
00002857: SWAP4
00002858: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000286d: PUSH1 0x40
0000286f: MLOAD
00002870: SWAP4
00002871: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000
00002892: DUP6
00002893: MSTORE
00002894: AND
00002895: PUSH1 0x04
00002897: DUP5
00002898: ADD
00002899: MSTORE
0000289a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000028bb: PUSH1 0x24
000028bd: DUP5
000028be: ADD
000028bf: MSTORE
000028c0: GAS
000028c1: CALL
000028c2: RETURNDATASIZE
000028c3: ISZERO
000028c4: PUSH1 0x1f
000028c6: RETURNDATASIZE
000028c7: GT
000028c8: PUSH1 0x01
000028ca: PUSH1 0x00
000028cc: MLOAD
000028cd: EQ
000028ce: AND
000028cf: OR
000028d0: AND
000028d1: ISZERO
000028d2: PUSH2 0x0e6f
000028d5: JUMPI
000028d6: JUMP
000028d7: INVALID
000028d8: LOG2
000028d9: PUSH5 0x6970667358
000028df: UNKNOWN(0x22)
000028e0: SLT
000028e1: KECCAK256
000028e2: DIV
000028e3: SAR
000028e4: UNKNOWN(0xE1)
000028e5: MULMOD
000028e6: UNKNOWN(0x2D)
000028e7: BASEFEE
000028e8: SELFDESTRUCT
000028e9: CLZ
000028ea: PUSH9 0x5d8ac6a031787d0bcd
000028f4: UNKNOWN(0xE5)
000028f5: SELFBALANCE
000028f6: UNKNOWN(0xBA)
000028f7: STATICCALL
000028f8: UNKNOWN(0xE3)
000028f9: SAR
000028fa: UNKNOWN(0x2D)
000028fb: CREATE
000028fc: UNKNOWN(0x2D)
000028fd: UNKNOWN(0xC9)
000028fe: UNKNOWN(0xC1)
000028ff: UNKNOWN(0xAB)
00002900: SWAP14
00002901: SWAP5
00002902: PUSH5 0x736f6c6343
00002908: STOP
00002909: ADDMOD
0000290a: SGT
0000290b: STOP
0000290c: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other cast SELFDESTRUCT present 85 no
view
evidence_json
{
    "notes": "selfdestruct can remove contract code and send funds; review reachability",
    "selfdestruct_count": 1
}
high math codex ERC4626-style share inflation lets early depositor steal later deposits 85 no
view
evidence_json
{
    "evidence": "BaseAdapter deposit/convertToShares uses totalAssets and totalSupply directly with no on-chain seed share defense; comment explicitly notes ERC4626 inflation risk.",
    "locations": [
        "contracts/yield/BaseAdapter.sol:72",
        "contracts/yield/BaseAdapter.sol:91"
    ],
    "recommendation": "Enforce the initial share seeding/virtual share defense inside the adapter (mint+burn seed shares or use virtual shares) rather than relying on an external factory, or hard-block direct asset donations from affecting share price accounting.",
    "exploit_scenario": "An attacker makes the first tiny subscription to mint a minimal number of shares, then transfers a large amount of assets directly to the contract (not via subscribe), inflating totalAssets without increasing totalSupply. Subsequent subscribers mint zero/near-zero shares because shares = assets * totalSupply / totalAssets rounds down. The attacker later redeems their shares to withdraw all assets, including victims\u2019 deposits."
}
high upgradeability detector Untrusted DELEGATECALL target reachable 55 yes yes
view
trace_id: 0x68ee6b01411814d851bc672b064df4b465c2d0cd5d67526234af294e1c7fd8f6
call_targets: 0x43506849d7c04f9138d1a2050bbf3a0c054402dd, 0x97287a4f35e583d924f78ad88db8afce1379189a, 0xb76cf0f1d2e1a606c14044607c8c44878aae7186
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x68ee6b01411814d851bc672b064df4b465c2d0cd5d67526234af294e1c7fd8f6",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x43506849d7c04f9138d1a2050bbf3a0c054402dd",
        "0x97287a4f35e583d924f78ad88db8afce1379189a",
        "0xb76cf0f1d2e1a606c14044607c8c44878aae7186"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06040618",
            "selector": "0x06040618",
            "calldata_variants": [
                "0x06040618",
                "0x060406180000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1468026d",
            "selector": "0x1468026d",
            "calldata_variants": [
                "0x1468026d",
                "0x1468026d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x17f33340",
            "selector": "0x17f33340",
            "calldata_variants": [
                "0x17f33340",
                "0x17f333400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19d10f09",
            "selector": "0x19d10f09",
            "calldata_variants": [
                "0x19d10f09",
                "0x19d10f090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3410fe6e",
            "selector": "0x3410fe6e",
            "calldata_variants": [
                "0x3410fe6e",
                "0x3410fe6e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7861,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 1191,
            "type": "msg_sender_eq_const",
            "value": 1196
        }
    ],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0xaf5f13881c6aa948d1156c27fea8a7bff7fb64ed8c9c563e811e6e7553fe8b18
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0xaf5f13881c6aa948d1156c27fea8a7bff7fb64ed8c9c563e811e6e7553fe8b18",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06040618",
            "selector": "0x06040618",
            "calldata_variants": [
                "0x06040618",
                "0x060406180000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1468026d",
            "selector": "0x1468026d",
            "calldata_variants": [
                "0x1468026d",
                "0x1468026d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x17f33340",
            "selector": "0x17f33340",
            "calldata_variants": [
                "0x17f33340",
                "0x17f333400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19d10f09",
            "selector": "0x19d10f09",
            "calldata_variants": [
                "0x19d10f09",
                "0x19d10f090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3410fe6e",
            "selector": "0x3410fe6e",
            "calldata_variants": [
                "0x3410fe6e",
                "0x3410fe6e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x68ee6b01411814d851bc672b064df4b465c2d0cd5d67526234af294e1c7fd8f6
call_targets: 0x15a86c79665b61a5747563d83aed3337821a8a79
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x68ee6b01411814d851bc672b064df4b465c2d0cd5d67526234af294e1c7fd8f6",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x15a86c79665b61a5747563d83aed3337821a8a79"
    ],
    "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": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06040618",
            "selector": "0x06040618",
            "calldata_variants": [
                "0x06040618",
                "0x060406180000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1468026d",
            "selector": "0x1468026d",
            "calldata_variants": [
                "0x1468026d",
                "0x1468026d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x17f33340",
            "selector": "0x17f33340",
            "calldata_variants": [
                "0x17f33340",
                "0x17f333400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19d10f09",
            "selector": "0x19d10f09",
            "calldata_variants": [
                "0x19d10f09",
                "0x19d10f090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3410fe6e",
            "selector": "0x3410fe6e",
            "calldata_variants": [
                "0x3410fe6e",
                "0x3410fe6e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1370,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2757,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3664,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 8,
    "guards_detected": [
        {
            "pc": 1191,
            "type": "msg_sender_eq_const",
            "value": 1196
        }
    ]
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium other detector SELFDESTRUCT reachable 45 no no
view
trace_id: 0xaf5f13881c6aa948d1156c27fea8a7bff7fb64ed8c9c563e811e6e7553fe8b18
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0xaf5f13881c6aa948d1156c27fea8a7bff7fb64ed8c9c563e811e6e7553fe8b18",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06040618",
            "selector": "0x06040618",
            "calldata_variants": [
                "0x06040618",
                "0x060406180000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1468026d",
            "selector": "0x1468026d",
            "calldata_variants": [
                "0x1468026d",
                "0x1468026d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x17f33340",
            "selector": "0x17f33340",
            "calldata_variants": [
                "0x17f33340",
                "0x17f333400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19d10f09",
            "selector": "0x19d10f09",
            "calldata_variants": [
                "0x19d10f09",
                "0x19d10f090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3410fe6e",
            "selector": "0x3410fe6e",
            "calldata_variants": [
                "0x3410fe6e",
                "0x3410fe6e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 1191,
            "type": "msg_sender_eq_const",
            "value": 1196
        }
    ],
    "selfdestruct_count": 1
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x68ee6b01411814d851bc672b064df4b465c2d0cd5d67526234af294e1c7fd8f6
call_targets: 0x15a86c79665b61a5747563d83aed3337821a8a79
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x68ee6b01411814d851bc672b064df4b465c2d0cd5d67526234af294e1c7fd8f6",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x15a86c79665b61a5747563d83aed3337821a8a79"
    ],
    "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": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06040618",
            "selector": "0x06040618",
            "calldata_variants": [
                "0x06040618",
                "0x060406180000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1468026d",
            "selector": "0x1468026d",
            "calldata_variants": [
                "0x1468026d",
                "0x1468026d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x17f33340",
            "selector": "0x17f33340",
            "calldata_variants": [
                "0x17f33340",
                "0x17f333400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19d10f09",
            "selector": "0x19d10f09",
            "calldata_variants": [
                "0x19d10f09",
                "0x19d10f090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3410fe6e",
            "selector": "0x3410fe6e",
            "calldata_variants": [
                "0x3410fe6e",
                "0x3410fe6e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1370,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2757,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3664,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 8,
    "guards_detected": [
        {
            "pc": 1191,
            "type": "msg_sender_eq_const",
            "value": 1196
        }
    ],
    "untrusted_call_count": 8
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 12
}