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

Analysis Run

019bab3b-ab0b-7271-88f2-a566c8ee7df8

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

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Centralized, unbounded price oracle can arbitrarily change token pricing
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
38457 artifact.fetch complete 1 / 3 3 months ago
38458 proxy.resolve complete 1 / 3 3 months ago
38459 tool.cast_disasm complete 1 / 3 3 months ago
38460 analysis.bundle complete 1 / 3 3 months ago
38461 capability.graph complete 1 / 3 3 months ago
38462 detector.run complete 1 / 3 3 months ago
38463 validation.fork complete 1 / 3 3 months ago
39010 report.consolidate complete 1 / 6 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

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
Token pricing relies on a single privileged price provider with no sanity bounds, enabling arbitrary price manipulation if that role is compromised or misconfigured.
View stdout
{"no_findings":false,"summary":"Token pricing relies on a single privileged price provider with no sanity bounds, enabling arbitrary price manipulation if that role is compromised or misconfigured.","findings":[{"severity":"medium","category":"oracle","title":"Centralized, unbounded price oracle can arbitrarily change token pricing","exploit_scenario":"If the `ethPriceProvider` (or owner who can replace it) is compromised, it can set `ethUsdRate` to an extreme value right before purchases. This lets a malicious buyer obtain far more tokens per ETH than intended (or block sales by setting a near-zero rate), impacting caps and allocations without any on-chain safeguards.","recommendation":"Use a decentralized oracle or multi-sig-controlled updater with a timelock; add sanity bounds and rate-change limits; consider using a time-weighted average or requiring a minimum update interval.","evidence":"`receiveEthPrice`/`receiveBtcPrice` only validate `> 0`, and `doPurchase` directly uses `ethUsdRate` to compute tokens.","locations":["contracts/Contract.sol:602","contracts/Contract.sol:607","contracts/Contract.sol:627"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-ktbc16x7
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bab88-f24d-7ca3-86d8-290001d928d6
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

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

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

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

thinking
**Reading AUDIT_BUNDLE.txt**
exec
/bin/bash -lc ls in /tmp/codex-ktbc16x7 succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-ktbc16x7 succeeded in 5ms:
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/Contract.sol
================================================================================
pragma solidity ^0.4.11;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.

thinking
**Analyzing Solidity ICO contract vulnerabilities**

I'll audit the Solidity 0.4.11 token and ICO contracts for security risks. I’m focusing on zero address checks, reentrancy, oracle manipulation through price providers, unchecked token transfer returns, and potential owner control issues. There appears to be a medium-severity risk from the centralized price oracle and some minor coding concerns, but no critical vulnerabilities stand out. I’ll reference relevant contract functions and note findings for output JSON.
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '250,520p'" in /tmp/codex-ktbc16x7 succeeded in 6ms:
   250	  function transfer(address _to, uint _value) returns (bool success) {
   251	    require(_to != 0x0); //use burn
   252	
   253	    return super.transfer(_to, _value);
   254	  }
   255	
   256	  function transferFrom(address _from, address _to, uint _value) returns (bool success) {
   257	    require(_to != 0x0); //use burn
   258	
   259	    return super.transferFrom(_from, _to, _value);
   260	  }
   261	}
   262	
   263	/**
   264	 * @title JincorToken
   265	 *
   266	 * @dev Burnable Ownable ERC20 token
   267	 */
   268	contract JincorToken is Burnable, Ownable {
   269	
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '520,760p'" in /tmp/codex-ktbc16x7 succeeded in 6ms:
   520	  }
   521	
   522	  function() payable minInvestment inWhiteList {
   523	    doPurchase();
   524	  }
   525	
   526	  function refund() external icoEnded {
   527	    require(softCapReached == false);
   528	    require(deposited[msg.sender] > 0);
   529	
   530	    uint refund = deposited[msg.sender];
   531	
   532	    deposited[msg.sender] = 0;
   533	    msg.sender.transfer(refund);
   534	
   535	    weiRefunded = weiRefunded.add(refund);
   536	    Refunded(msg.sender, refund);
   537	  }
   538	
   539	  function withdraw() external onlyOwner {

thinking
**Assessing oracle and ownership risks**

I’m analyzing potential vulnerabilities around oracle manipulation, hardcoded owner addresses, and token transfer behaviors, focusing on exploitable issues like centralized price feeds without sanity checks and access control risks due to fixed ownership—this helps me decide which findings to include in a detailed JSON report.
codex
{"no_findings":false,"summary":"Token pricing relies on a single privileged price provider with no sanity bounds, enabling arbitrary price manipulation if that role is compromised or misconfigured.","findings":[{"severity":"medium","category":"oracle","title":"Centralized, unbounded price oracle can arbitrarily change token pricing","exploit_scenario":"If the `ethPriceProvider` (or owner who can replace it) is compromised, it can set `ethUsdRate` to an extreme value right before purchases. This lets a malicious buyer obtain far more tokens per ETH than intended (or block sales by setting a near-zero rate), impacting caps and allocations without any on-chain safeguards.","recommendation":"Use a decentralized oracle or multi-sig-controlled updater with a timelock; add sanity bounds and rate-change limits; consider using a time-weighted average or requiring a minimum update interval.","evidence":"`receiveEthPrice`/`receiveBtcPrice` only validate `> 0`, and `doPurchase` directly uses `ethUsdRate` to compute tokens.","locations":["contracts/Contract.sol:602","contracts/Contract.sol:607","contracts/Contract.sol:627"]}]}
tokens used
22,590
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T05:31:56.971333+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": "Token pricing relies on a single privileged price provider with no sanity bounds, enabling arbitrary price manipulation if that role is compromised or misconfigured.",
    "raw_final": {
        "summary": "Token pricing relies on a single privileged price provider with no sanity bounds, enabling arbitrary price manipulation if that role is compromised or misconfigured.",
        "findings": [
            {
                "title": "Centralized, unbounded price oracle can arbitrarily change token pricing",
                "category": "oracle",
                "evidence": "`receiveEthPrice`/`receiveBtcPrice` only validate `> 0`, and `doPurchase` directly uses `ethUsdRate` to compute tokens.",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:602",
                    "contracts/Contract.sol:607",
                    "contracts/Contract.sol:627"
                ],
                "recommendation": "Use a decentralized oracle or multi-sig-controlled updater with a timelock; add sanity bounds and rate-change limits; consider using a time-weighted average or requiring a minimum update interval.",
                "exploit_scenario": "If the `ethPriceProvider` (or owner who can replace it) is compromised, it can set `ethUsdRate` to an extreme value right before purchases. This lets a malicious buyer obtain far more tokens per ETH than intended (or block sales by setting a near-zero rate), impacting caps and allocations without any on-chain safeguards."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
8
EXT*/BALANCE
6
Total opcodes
3751
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0196
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002e: SWAP1
0000002f: DIV
00000030: PUSH4 0xffffffff
00000035: AND
00000036: DUP1
00000037: PUSH4 0x06fdde03
0000003c: EQ
0000003d: PUSH2 0x02a2
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0x083c6323
00000047: EQ
00000048: PUSH2 0x0330
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0x2b9edee9
00000052: EQ
00000053: PUSH2 0x0359
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0x2be86e01
0000005d: EQ
0000005e: PUSH2 0x0386
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0x3535ab2a
00000068: EQ
00000069: PUSH2 0x03af
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0x38af3eed
00000073: EQ
00000074: PUSH2 0x03d8
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0x3b478fc5
0000007e: EQ
0000007f: PUSH2 0x042d
00000082: JUMPI
00000083: DUP1
00000084: PUSH4 0x3c8d284b
00000089: EQ
0000008a: PUSH2 0x0456
0000008d: JUMPI
0000008e: DUP1
0000008f: PUSH4 0x3ccfd60b
00000094: EQ
00000095: PUSH2 0x0479
00000098: JUMPI
00000099: DUP1
0000009a: PUSH4 0x48cd4cb1
0000009f: EQ
000000a0: PUSH2 0x048e
000000a3: JUMPI
000000a4: DUP1
000000a5: PUSH4 0x518ab2a8
000000aa: EQ
000000ab: PUSH2 0x04b7
000000ae: JUMPI
000000af: DUP1
000000b0: PUSH4 0x590e1ae3
000000b5: EQ
000000b6: PUSH2 0x04e0
000000b9: JUMPI
000000ba: DUP1
000000bb: PUSH4 0x5da89ac0
000000c0: EQ
000000c1: PUSH2 0x04f5
000000c4: JUMPI
000000c5: DUP1
000000c6: PUSH4 0x5ed7ca5b
000000cb: EQ
000000cc: PUSH2 0x051e
000000cf: JUMPI
000000d0: DUP1
000000d1: PUSH4 0x7119a490
000000d6: EQ
000000d7: PUSH2 0x0533
000000da: JUMPI
000000db: DUP1
000000dc: PUSH4 0x84bcefd4
000000e1: EQ
000000e2: PUSH2 0x056c
000000e5: JUMPI
000000e6: DUP1
000000e7: PUSH4 0x8da5cb5b
000000ec: EQ
000000ed: PUSH2 0x0595
000000f0: JUMPI
000000f1: DUP1
000000f2: PUSH4 0x906a26e0
000000f7: EQ
000000f8: PUSH2 0x05ea
000000fb: JUMPI
000000fc: DUP1
000000fd: PUSH4 0xa47001a8
00000102: EQ
00000103: PUSH2 0x0613
00000106: JUMPI
00000107: DUP1
00000108: PUSH4 0xb9b8af0b
0000010d: EQ
0000010e: PUSH2 0x0636
00000111: JUMPI
00000112: DUP1
00000113: PUSH4 0xc4b6c2f3
00000118: EQ
00000119: PUSH2 0x0663
0000011c: JUMPI
0000011d: DUP1
0000011e: PUSH4 0xcb13cddb
00000123: EQ
00000124: PUSH2 0x06b8
00000127: JUMPI
00000128: DUP1
00000129: PUSH4 0xcb3e64fd
0000012e: EQ
0000012f: PUSH2 0x0705
00000132: JUMPI
00000133: DUP1
00000134: PUSH4 0xdccdc893
00000139: EQ
0000013a: PUSH2 0x071a
0000013d: JUMPI
0000013e: DUP1
0000013f: PUSH4 0xe342c2e6
00000144: EQ
00000145: PUSH2 0x0753
00000148: JUMPI
00000149: DUP1
0000014a: PUSH4 0xe41f7dc1
0000014f: EQ
00000150: PUSH2 0x07a8
00000153: JUMPI
00000154: DUP1
00000155: PUSH4 0xe4e9bcca
0000015a: EQ
0000015b: PUSH2 0x07fd
0000015e: JUMPI
0000015f: DUP1
00000160: PUSH4 0xeb08aa3b
00000165: EQ
00000166: PUSH2 0x0836
00000169: JUMPI
0000016a: DUP1
0000016b: PUSH4 0xece84fd5
00000170: EQ
00000171: PUSH2 0x088b
00000174: JUMPI
00000175: DUP1
00000176: PUSH4 0xf2fde38b
0000017b: EQ
0000017c: PUSH2 0x08b8
0000017f: JUMPI
00000180: DUP1
00000181: PUSH4 0xfb86a404
00000186: EQ
00000187: PUSH2 0x08f1
0000018a: JUMPI
0000018b: DUP1
0000018c: PUSH4 0xfc0c546a
00000191: EQ
00000192: PUSH2 0x091a
00000195: JUMPI
00000196: JUMPDEST
00000197: PUSH8 0x016345785d8a0000
000001a0: CALLVALUE
000001a1: LT
000001a2: ISZERO
000001a3: ISZERO
000001a4: ISZERO
000001a5: PUSH2 0x01ad
000001a8: JUMPI
000001a9: PUSH1 0x00
000001ab: DUP1
000001ac: REVERT
000001ad: JUMPDEST
000001ae: PUSH1 0x05
000001b0: PUSH1 0x00
000001b2: SWAP1
000001b3: SLOAD
000001b4: SWAP1
000001b5: PUSH2 0x0100
000001b8: EXP
000001b9: SWAP1
000001ba: DIV
000001bb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001d0: AND
000001d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001e6: AND
000001e7: PUSH4 0xbabcc539
000001ec: CALLER
000001ed: PUSH1 0x00
000001ef: PUSH1 0x40
000001f1: MLOAD
000001f2: PUSH1 0x20
000001f4: ADD
000001f5: MSTORE
000001f6: PUSH1 0x40
000001f8: MLOAD
000001f9: DUP3
000001fa: PUSH4 0xffffffff
000001ff: AND
00000200: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000021e: MUL
0000021f: DUP2
00000220: MSTORE
00000221: PUSH1 0x04
00000223: ADD
00000224: DUP1
00000225: DUP3
00000226: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000023b: AND
0000023c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000251: AND
00000252: DUP2
00000253: MSTORE
00000254: PUSH1 0x20
00000256: ADD
00000257: SWAP2
00000258: POP
00000259: POP
0000025a: PUSH1 0x20
0000025c: PUSH1 0x40
0000025e: MLOAD
0000025f: DUP1
00000260: DUP4
00000261: SUB
00000262: DUP2
00000263: PUSH1 0x00
00000265: DUP8
00000266: DUP1
00000267: EXTCODESIZE
00000268: ISZERO
00000269: ISZERO
0000026a: PUSH2 0x0272
0000026d: JUMPI
0000026e: PUSH1 0x00
00000270: DUP1
00000271: REVERT
00000272: JUMPDEST
00000273: PUSH2 0x02c6
00000276: GAS
00000277: SUB
00000278: CALL
00000279: ISZERO
0000027a: ISZERO
0000027b: PUSH2 0x0283
0000027e: JUMPI
0000027f: PUSH1 0x00
00000281: DUP1
00000282: REVERT
00000283: JUMPDEST
00000284: POP
00000285: POP
00000286: POP
00000287: PUSH1 0x40
00000289: MLOAD
0000028a: DUP1
0000028b: MLOAD
0000028c: SWAP1
0000028d: POP
0000028e: ISZERO
0000028f: ISZERO
00000290: PUSH2 0x0298
00000293: JUMPI
00000294: PUSH1 0x00
00000296: DUP1
00000297: REVERT
00000298: JUMPDEST
00000299: PUSH2 0x02a0
0000029c: PUSH2 0x096f
0000029f: JUMP
000002a0: JUMPDEST
000002a1: STOP
000002a2: JUMPDEST
000002a3: CALLVALUE
000002a4: ISZERO
000002a5: PUSH2 0x02ad
000002a8: JUMPI
000002a9: PUSH1 0x00
000002ab: DUP1
000002ac: REVERT
000002ad: JUMPDEST
000002ae: PUSH2 0x02b5
000002b1: PUSH2 0x0f59
000002b4: JUMP
000002b5: JUMPDEST
000002b6: PUSH1 0x40
000002b8: MLOAD
000002b9: DUP1
000002ba: DUP1
000002bb: PUSH1 0x20
000002bd: ADD
000002be: DUP3
000002bf: DUP2
000002c0: SUB
000002c1: DUP3
000002c2: MSTORE
000002c3: DUP4
000002c4: DUP2
000002c5: DUP2
000002c6: MLOAD
000002c7: DUP2
000002c8: MSTORE
000002c9: PUSH1 0x20
000002cb: ADD
000002cc: SWAP2
000002cd: POP
000002ce: DUP1
000002cf: MLOAD
000002d0: SWAP1
000002d1: PUSH1 0x20
000002d3: ADD
000002d4: SWAP1
000002d5: DUP1
000002d6: DUP4
000002d7: DUP4
000002d8: PUSH1 0x00
000002da: JUMPDEST
000002db: DUP4
000002dc: DUP2
000002dd: LT
000002de: ISZERO
000002df: PUSH2 0x02f5
000002e2: JUMPI
000002e3: DUP1
000002e4: DUP3
000002e5: ADD
000002e6: MLOAD
000002e7: DUP2
000002e8: DUP5
000002e9: ADD
000002ea: MSTORE
000002eb: PUSH1 0x20
000002ed: DUP2
000002ee: ADD
000002ef: SWAP1
000002f0: POP
000002f1: PUSH2 0x02da
000002f4: JUMP
000002f5: JUMPDEST
000002f6: POP
000002f7: POP
000002f8: POP
000002f9: POP
000002fa: SWAP1
000002fb: POP
000002fc: SWAP1
000002fd: DUP2
000002fe: ADD
000002ff: SWAP1
00000300: PUSH1 0x1f
00000302: AND
00000303: DUP1
00000304: ISZERO
00000305: PUSH2 0x0322
00000308: JUMPI
00000309: DUP1
0000030a: DUP3
0000030b: SUB
0000030c: DUP1
0000030d: MLOAD
0000030e: PUSH1 0x01
00000310: DUP4
00000311: PUSH1 0x20
00000313: SUB
00000314: PUSH2 0x0100
00000317: EXP
00000318: SUB
00000319: NOT
0000031a: AND
0000031b: DUP2
0000031c: MSTORE
0000031d: PUSH1 0x20
0000031f: ADD
00000320: SWAP2
00000321: POP
00000322: JUMPDEST
00000323: POP
00000324: SWAP3
00000325: POP
00000326: POP
00000327: POP
00000328: PUSH1 0x40
0000032a: MLOAD
0000032b: DUP1
0000032c: SWAP2
0000032d: SUB
0000032e: SWAP1
0000032f: RETURN
00000330: JUMPDEST
00000331: CALLVALUE
00000332: ISZERO
00000333: PUSH2 0x033b
00000336: JUMPI
00000337: PUSH1 0x00
00000339: DUP1
0000033a: REVERT
0000033b: JUMPDEST
0000033c: PUSH2 0x0343
0000033f: PUSH2 0x0f92
00000342: JUMP
00000343: JUMPDEST
00000344: PUSH1 0x40
00000346: MLOAD
00000347: DUP1
00000348: DUP3
00000349: DUP2
0000034a: MSTORE
0000034b: PUSH1 0x20
0000034d: ADD
0000034e: SWAP2
0000034f: POP
00000350: POP
00000351: PUSH1 0x40
00000353: MLOAD
00000354: DUP1
00000355: SWAP2
00000356: SUB
00000357: SWAP1
00000358: RETURN
00000359: JUMPDEST
0000035a: CALLVALUE
0000035b: ISZERO
0000035c: PUSH2 0x0364
0000035f: JUMPI
00000360: PUSH1 0x00
00000362: DUP1
00000363: REVERT
00000364: JUMPDEST
00000365: PUSH2 0x036c
00000368: PUSH2 0x0f98
0000036b: JUMP
0000036c: JUMPDEST
0000036d: PUSH1 0x40
0000036f: MLOAD
00000370: DUP1
00000371: DUP3
00000372: ISZERO
00000373: ISZERO
00000374: ISZERO
00000375: ISZERO
00000376: DUP2
00000377: MSTORE
00000378: PUSH1 0x20
0000037a: ADD
0000037b: SWAP2
0000037c: POP
0000037d: POP
0000037e: PUSH1 0x40
00000380: MLOAD
00000381: DUP1
00000382: SWAP2
00000383: SUB
00000384: SWAP1
00000385: RETURN
00000386: JUMPDEST
00000387: CALLVALUE
00000388: ISZERO
00000389: PUSH2 0x0391
0000038c: JUMPI
0000038d: PUSH1 0x00
0000038f: DUP1
00000390: REVERT
00000391: JUMPDEST
00000392: PUSH2 0x0399
00000395: PUSH2 0x0fab
00000398: JUMP
00000399: JUMPDEST
0000039a: PUSH1 0x40
0000039c: MLOAD
0000039d: DUP1
0000039e: DUP3
0000039f: DUP2
000003a0: MSTORE
000003a1: PUSH1 0x20
000003a3: ADD
000003a4: SWAP2
000003a5: POP
000003a6: POP
000003a7: PUSH1 0x40
000003a9: MLOAD
000003aa: DUP1
000003ab: SWAP2
000003ac: SUB
000003ad: SWAP1
000003ae: RETURN
000003af: JUMPDEST
000003b0: CALLVALUE
000003b1: ISZERO
000003b2: PUSH2 0x03ba
000003b5: JUMPI
000003b6: PUSH1 0x00
000003b8: DUP1
000003b9: REVERT
000003ba: JUMPDEST
000003bb: PUSH2 0x03c2
000003be: PUSH2 0x0fb0
000003c1: JUMP
000003c2: JUMPDEST
000003c3: PUSH1 0x40
000003c5: MLOAD
000003c6: DUP1
000003c7: DUP3
000003c8: DUP2
000003c9: MSTORE
000003ca: PUSH1 0x20
000003cc: ADD
000003cd: SWAP2
000003ce: POP
000003cf: POP
000003d0: PUSH1 0x40
000003d2: MLOAD
000003d3: DUP1
000003d4: SWAP2
000003d5: SUB
000003d6: SWAP1
000003d7: RETURN
000003d8: JUMPDEST
000003d9: CALLVALUE
000003da: ISZERO
000003db: PUSH2 0x03e3
000003de: JUMPI
000003df: PUSH1 0x00
000003e1: DUP1
000003e2: REVERT
000003e3: JUMPDEST
000003e4: PUSH2 0x03eb
000003e7: PUSH2 0x0fb6
000003ea: JUMP
000003eb: JUMPDEST
000003ec: PUSH1 0x40
000003ee: MLOAD
000003ef: DUP1
000003f0: DUP3
000003f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000406: AND
00000407: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000041c: AND
0000041d: DUP2
0000041e: MSTORE
0000041f: PUSH1 0x20
00000421: ADD
00000422: SWAP2
00000423: POP
00000424: POP
00000425: PUSH1 0x40
00000427: MLOAD
00000428: DUP1
00000429: SWAP2
0000042a: SUB
0000042b: SWAP1
0000042c: RETURN
0000042d: JUMPDEST
0000042e: CALLVALUE
0000042f: ISZERO
00000430: PUSH2 0x0438
00000433: JUMPI
00000434: PUSH1 0x00
00000436: DUP1
00000437: REVERT
00000438: JUMPDEST
00000439: PUSH2 0x0440
0000043c: PUSH2 0x0fdc
0000043f: JUMP
00000440: JUMPDEST
00000441: PUSH1 0x40
00000443: MLOAD
00000444: DUP1
00000445: DUP3
00000446: DUP2
00000447: MSTORE
00000448: PUSH1 0x20
0000044a: ADD
0000044b: SWAP2
0000044c: POP
0000044d: POP
0000044e: PUSH1 0x40
00000450: MLOAD
00000451: DUP1
00000452: SWAP2
00000453: SUB
00000454: SWAP1
00000455: RETURN
00000456: JUMPDEST
00000457: CALLVALUE
00000458: ISZERO
00000459: PUSH2 0x0461
0000045c: JUMPI
0000045d: PUSH1 0x00
0000045f: DUP1
00000460: REVERT
00000461: JUMPDEST
00000462: PUSH2 0x0477
00000465: PUSH1 0x04
00000467: DUP1
00000468: DUP1
00000469: CALLDATALOAD
0000046a: SWAP1
0000046b: PUSH1 0x20
0000046d: ADD
0000046e: SWAP1
0000046f: SWAP2
00000470: SWAP1
00000471: POP
00000472: POP
00000473: PUSH2 0x0fe2
00000476: JUMP
00000477: JUMPDEST
00000478: STOP
00000479: JUMPDEST
0000047a: CALLVALUE
0000047b: ISZERO
0000047c: PUSH2 0x0484
0000047f: JUMPI
00000480: PUSH1 0x00
00000482: DUP1
00000483: REVERT
00000484: JUMPDEST
00000485: PUSH2 0x048c
00000488: PUSH2 0x1057
0000048b: JUMP
0000048c: JUMPDEST
0000048d: STOP
0000048e: JUMPDEST
0000048f: CALLVALUE
00000490: ISZERO
00000491: PUSH2 0x0499
00000494: JUMPI
00000495: PUSH1 0x00
00000497: DUP1
00000498: REVERT
00000499: JUMPDEST
0000049a: PUSH2 0x04a1
0000049d: PUSH2 0x1338
000004a0: JUMP
000004a1: JUMPDEST
000004a2: PUSH1 0x40
000004a4: MLOAD
000004a5: DUP1
000004a6: DUP3
000004a7: DUP2
000004a8: MSTORE
000004a9: PUSH1 0x20
000004ab: ADD
000004ac: SWAP2
000004ad: POP
000004ae: POP
000004af: PUSH1 0x40
000004b1: MLOAD
000004b2: DUP1
000004b3: SWAP2
000004b4: SUB
000004b5: SWAP1
000004b6: RETURN
000004b7: JUMPDEST
000004b8: CALLVALUE
000004b9: ISZERO
000004ba: PUSH2 0x04c2
000004bd: JUMPI
000004be: PUSH1 0x00
000004c0: DUP1
000004c1: REVERT
000004c2: JUMPDEST
000004c3: PUSH2 0x04ca
000004c6: PUSH2 0x133e
000004c9: JUMP
000004ca: JUMPDEST
000004cb: PUSH1 0x40
000004cd: MLOAD
000004ce: DUP1
000004cf: DUP3
000004d0: DUP2
000004d1: MSTORE
000004d2: PUSH1 0x20
000004d4: ADD
000004d5: SWAP2
000004d6: POP
000004d7: POP
000004d8: PUSH1 0x40
000004da: MLOAD
000004db: DUP1
000004dc: SWAP2
000004dd: SUB
000004de: SWAP1
000004df: RETURN
000004e0: JUMPDEST
000004e1: CALLVALUE
000004e2: ISZERO
000004e3: PUSH2 0x04eb
000004e6: JUMPI
000004e7: PUSH1 0x00
000004e9: DUP1
000004ea: REVERT
000004eb: JUMPDEST
000004ec: PUSH2 0x04f3
000004ef: PUSH2 0x1344
000004f2: JUMP
000004f3: JUMPDEST
000004f4: STOP
000004f5: JUMPDEST
000004f6: CALLVALUE
000004f7: ISZERO
000004f8: PUSH2 0x0500
000004fb: JUMPI
000004fc: PUSH1 0x00
000004fe: DUP1
000004ff: REVERT
00000500: JUMPDEST
00000501: PUSH2 0x0508
00000504: PUSH2 0x14fa
00000507: JUMP
00000508: JUMPDEST
00000509: PUSH1 0x40
0000050b: MLOAD
0000050c: DUP1
0000050d: DUP3
0000050e: DUP2
0000050f: MSTORE
00000510: PUSH1 0x20
00000512: ADD
00000513: SWAP2
00000514: POP
00000515: POP
00000516: PUSH1 0x40
00000518: MLOAD
00000519: DUP1
0000051a: SWAP2
0000051b: SUB
0000051c: SWAP1
0000051d: RETURN
0000051e: JUMPDEST
0000051f: CALLVALUE
00000520: ISZERO
00000521: PUSH2 0x0529
00000524: JUMPI
00000525: PUSH1 0x00
00000527: DUP1
00000528: REVERT
00000529: JUMPDEST
0000052a: PUSH2 0x0531
0000052d: PUSH2 0x1500
00000530: JUMP
00000531: JUMPDEST
00000532: STOP
00000533: JUMPDEST
00000534: CALLVALUE
00000535: ISZERO
00000536: PUSH2 0x053e
00000539: JUMPI
0000053a: PUSH1 0x00
0000053c: DUP1
0000053d: REVERT
0000053e: JUMPDEST
0000053f: PUSH2 0x056a
00000542: PUSH1 0x04
00000544: DUP1
00000545: DUP1
00000546: CALLDATALOAD
00000547: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000055c: AND
0000055d: SWAP1
0000055e: PUSH1 0x20
00000560: ADD
00000561: SWAP1
00000562: SWAP2
00000563: SWAP1
00000564: POP
00000565: POP
00000566: PUSH2 0x1594
00000569: JUMP
0000056a: JUMPDEST
0000056b: STOP
0000056c: JUMPDEST
0000056d: CALLVALUE
0000056e: ISZERO
0000056f: PUSH2 0x0577
00000572: JUMPI
00000573: PUSH1 0x00
00000575: DUP1
00000576: REVERT
00000577: JUMPDEST
00000578: PUSH2 0x057f
0000057b: PUSH2 0x1659
0000057e: JUMP
0000057f: JUMPDEST
00000580: PUSH1 0x40
00000582: MLOAD
00000583: DUP1
00000584: DUP3
00000585: DUP2
00000586: MSTORE
00000587: PUSH1 0x20
00000589: ADD
0000058a: SWAP2
0000058b: POP
0000058c: POP
0000058d: PUSH1 0x40
0000058f: MLOAD
00000590: DUP1
00000591: SWAP2
00000592: SUB
00000593: SWAP1
00000594: RETURN
00000595: JUMPDEST
00000596: CALLVALUE
00000597: ISZERO
00000598: PUSH2 0x05a0
0000059b: JUMPI
0000059c: PUSH1 0x00
0000059e: DUP1
0000059f: REVERT
000005a0: JUMPDEST
000005a1: PUSH2 0x05a8
000005a4: PUSH2 0x165f
000005a7: JUMP
000005a8: JUMPDEST
000005a9: PUSH1 0x40
000005ab: MLOAD
000005ac: DUP1
000005ad: DUP3
000005ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005c3: AND
000005c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005d9: AND
000005da: DUP2
000005db: MSTORE
000005dc: PUSH1 0x20
000005de: ADD
000005df: SWAP2
000005e0: POP
000005e1: POP
000005e2: PUSH1 0x40
000005e4: MLOAD
000005e5: DUP1
000005e6: SWAP2
000005e7: SUB
000005e8: SWAP1
000005e9: RETURN
000005ea: JUMPDEST
000005eb: CALLVALUE
000005ec: ISZERO
000005ed: PUSH2 0x05f5
000005f0: JUMPI
000005f1: PUSH1 0x00
000005f3: DUP1
000005f4: REVERT
000005f5: JUMPDEST
000005f6: PUSH2 0x05fd
000005f9: PUSH2 0x1684
000005fc: JUMP
000005fd: JUMPDEST
000005fe: PUSH1 0x40
00000600: MLOAD
00000601: DUP1
00000602: DUP3
00000603: DUP2
00000604: MSTORE
00000605: PUSH1 0x20
00000607: ADD
00000608: SWAP2
00000609: POP
0000060a: POP
0000060b: PUSH1 0x40
0000060d: MLOAD
0000060e: DUP1
0000060f: SWAP2
00000610: SUB
00000611: SWAP1
00000612: RETURN
00000613: JUMPDEST
00000614: CALLVALUE
00000615: ISZERO
00000616: PUSH2 0x061e
00000619: JUMPI
0000061a: PUSH1 0x00
0000061c: DUP1
0000061d: REVERT
0000061e: JUMPDEST
0000061f: PUSH2 0x0634
00000622: PUSH1 0x04
00000624: DUP1
00000625: DUP1
00000626: CALLDATALOAD
00000627: SWAP1
00000628: PUSH1 0x20
0000062a: ADD
0000062b: SWAP1
0000062c: SWAP2
0000062d: SWAP1
0000062e: POP
0000062f: POP
00000630: PUSH2 0x168a
00000633: JUMP
00000634: JUMPDEST
00000635: STOP
00000636: JUMPDEST
00000637: CALLVALUE
00000638: ISZERO
00000639: PUSH2 0x0641
0000063c: JUMPI
0000063d: PUSH1 0x00
0000063f: DUP1
00000640: REVERT
00000641: JUMPDEST
00000642: PUSH2 0x0649
00000645: PUSH2 0x16ff
00000648: JUMP
00000649: JUMPDEST
0000064a: PUSH1 0x40
0000064c: MLOAD
0000064d: DUP1
0000064e: DUP3
0000064f: ISZERO
00000650: ISZERO
00000651: ISZERO
00000652: ISZERO
00000653: DUP2
00000654: MSTORE
00000655: PUSH1 0x20
00000657: ADD
00000658: SWAP2
00000659: POP
0000065a: POP
0000065b: PUSH1 0x40
0000065d: MLOAD
0000065e: DUP1
0000065f: SWAP2
00000660: SUB
00000661: SWAP1
00000662: RETURN
00000663: JUMPDEST
00000664: CALLVALUE
00000665: ISZERO
00000666: PUSH2 0x066e
00000669: JUMPI
0000066a: PUSH1 0x00
0000066c: DUP1
0000066d: REVERT
0000066e: JUMPDEST
0000066f: PUSH2 0x0676
00000672: PUSH2 0x1712
00000675: JUMP
00000676: JUMPDEST
00000677: PUSH1 0x40
00000679: MLOAD
0000067a: DUP1
0000067b: DUP3
0000067c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000691: AND
00000692: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006a7: AND
000006a8: DUP2
000006a9: MSTORE
000006aa: PUSH1 0x20
000006ac: ADD
000006ad: SWAP2
000006ae: POP
000006af: POP
000006b0: PUSH1 0x40
000006b2: MLOAD
000006b3: DUP1
000006b4: SWAP2
000006b5: SUB
000006b6: SWAP1
000006b7: RETURN
000006b8: JUMPDEST
000006b9: CALLVALUE
000006ba: ISZERO
000006bb: PUSH2 0x06c3
000006be: JUMPI
000006bf: PUSH1 0x00
000006c1: DUP1
000006c2: REVERT
000006c3: JUMPDEST
000006c4: PUSH2 0x06ef
000006c7: PUSH1 0x04
000006c9: DUP1
000006ca: DUP1
000006cb: CALLDATALOAD
000006cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006e1: AND
000006e2: SWAP1
000006e3: PUSH1 0x20
000006e5: ADD
000006e6: SWAP1
000006e7: SWAP2
000006e8: SWAP1
000006e9: POP
000006ea: POP
000006eb: PUSH2 0x1738
000006ee: JUMP
000006ef: JUMPDEST
000006f0: PUSH1 0x40
000006f2: MLOAD
000006f3: DUP1
000006f4: DUP3
000006f5: DUP2
000006f6: MSTORE
000006f7: PUSH1 0x20
000006f9: ADD
000006fa: SWAP2
000006fb: POP
000006fc: POP
000006fd: PUSH1 0x40
000006ff: MLOAD
00000700: DUP1
00000701: SWAP2
00000702: SUB
00000703: SWAP1
00000704: RETURN
00000705: JUMPDEST
00000706: CALLVALUE
00000707: ISZERO
00000708: PUSH2 0x0710
0000070b: JUMPI
0000070c: PUSH1 0x00
0000070e: DUP1
0000070f: REVERT
00000710: JUMPDEST
00000711: PUSH2 0x0718
00000714: PUSH2 0x1750
00000717: JUMP
00000718: JUMPDEST
00000719: STOP
0000071a: JUMPDEST
0000071b: CALLVALUE
0000071c: ISZERO
0000071d: PUSH2 0x0725
00000720: JUMPI
00000721: PUSH1 0x00
00000723: DUP1
00000724: REVERT
00000725: JUMPDEST
00000726: PUSH2 0x0751
00000729: PUSH1 0x04
0000072b: DUP1
0000072c: DUP1
0000072d: CALLDATALOAD
0000072e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000743: AND
00000744: SWAP1
00000745: PUSH1 0x20
00000747: ADD
00000748: SWAP1
00000749: SWAP2
0000074a: SWAP1
0000074b: POP
0000074c: POP
0000074d: PUSH2 0x17e2
00000750: JUMP
00000751: JUMPDEST
00000752: STOP
00000753: JUMPDEST
00000754: CALLVALUE
00000755: ISZERO
00000756: PUSH2 0x075e
00000759: JUMPI
0000075a: PUSH1 0x00
0000075c: DUP1
0000075d: REVERT
0000075e: JUMPDEST
0000075f: PUSH2 0x0766
00000762: PUSH2 0x18a7
00000765: JUMP
00000766: JUMPDEST
00000767: PUSH1 0x40
00000769: MLOAD
0000076a: DUP1
0000076b: DUP3
0000076c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000781: AND
00000782: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000797: AND
00000798: DUP2
00000799: MSTORE
0000079a: PUSH1 0x20
0000079c: ADD
0000079d: SWAP2
0000079e: POP
0000079f: POP
000007a0: PUSH1 0x40
000007a2: MLOAD
000007a3: DUP1
000007a4: SWAP2
000007a5: SUB
000007a6: SWAP1
000007a7: RETURN
000007a8: JUMPDEST
000007a9: CALLVALUE
000007aa: ISZERO
000007ab: PUSH2 0x07b3
000007ae: JUMPI
000007af: PUSH1 0x00
000007b1: DUP1
000007b2: REVERT
000007b3: JUMPDEST
000007b4: PUSH2 0x07bb
000007b7: PUSH2 0x18cd
000007ba: JUMP
000007bb: JUMPDEST
000007bc: PUSH1 0x40
000007be: MLOAD
000007bf: DUP1
000007c0: DUP3
000007c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007d6: AND
000007d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007ec: AND
000007ed: DUP2
000007ee: MSTORE
000007ef: PUSH1 0x20
000007f1: ADD
000007f2: SWAP2
000007f3: POP
000007f4: POP
000007f5: PUSH1 0x40
000007f7: MLOAD
000007f8: DUP1
000007f9: SWAP2
000007fa: SUB
000007fb: SWAP1
000007fc: RETURN
000007fd: JUMPDEST
000007fe: CALLVALUE
000007ff: ISZERO
00000800: PUSH2 0x0808
00000803: JUMPI
00000804: PUSH1 0x00
00000806: DUP1
00000807: REVERT
00000808: JUMPDEST
00000809: PUSH2 0x0834
0000080c: PUSH1 0x04
0000080e: DUP1
0000080f: DUP1
00000810: CALLDATALOAD
00000811: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000826: AND
00000827: SWAP1
00000828: PUSH1 0x20
0000082a: ADD
0000082b: SWAP1
0000082c: SWAP2
0000082d: SWAP1
0000082e: POP
0000082f: POP
00000830: PUSH2 0x18f3
00000833: JUMP
00000834: JUMPDEST
00000835: STOP
00000836: JUMPDEST
00000837: CALLVALUE
00000838: ISZERO
00000839: PUSH2 0x0841
0000083c: JUMPI
0000083d: PUSH1 0x00
0000083f: DUP1
00000840: REVERT
00000841: JUMPDEST
00000842: PUSH2 0x0849
00000845: PUSH2 0x19b8
00000848: JUMP
00000849: JUMPDEST
0000084a: PUSH1 0x40
0000084c: MLOAD
0000084d: DUP1
0000084e: DUP3
0000084f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000864: AND
00000865: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000087a: AND
0000087b: DUP2
0000087c: MSTORE
0000087d: PUSH1 0x20
0000087f: ADD
00000880: SWAP2
00000881: POP
00000882: POP
00000883: PUSH1 0x40
00000885: MLOAD
00000886: DUP1
00000887: SWAP2
00000888: SUB
00000889: SWAP1
0000088a: RETURN
0000088b: JUMPDEST
0000088c: CALLVALUE
0000088d: ISZERO
0000088e: PUSH2 0x0896
00000891: JUMPI
00000892: PUSH1 0x00
00000894: DUP1
00000895: REVERT
00000896: JUMPDEST
00000897: PUSH2 0x089e
0000089a: PUSH2 0x19d0
0000089d: JUMP
0000089e: JUMPDEST
0000089f: PUSH1 0x40
000008a1: MLOAD
000008a2: DUP1
000008a3: DUP3
000008a4: ISZERO
000008a5: ISZERO
000008a6: ISZERO
000008a7: ISZERO
000008a8: DUP2
000008a9: MSTORE
000008aa: PUSH1 0x20
000008ac: ADD
000008ad: SWAP2
000008ae: POP
000008af: POP
000008b0: PUSH1 0x40
000008b2: MLOAD
000008b3: DUP1
000008b4: SWAP2
000008b5: SUB
000008b6: SWAP1
000008b7: RETURN
000008b8: JUMPDEST
000008b9: CALLVALUE
000008ba: ISZERO
000008bb: PUSH2 0x08c3
000008be: JUMPI
000008bf: PUSH1 0x00
000008c1: DUP1
000008c2: REVERT
000008c3: JUMPDEST
000008c4: PUSH2 0x08ef
000008c7: PUSH1 0x04
000008c9: DUP1
000008ca: DUP1
000008cb: CALLDATALOAD
000008cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008e1: AND
000008e2: SWAP1
000008e3: PUSH1 0x20
000008e5: ADD
000008e6: SWAP1
000008e7: SWAP2
000008e8: SWAP1
000008e9: POP
000008ea: POP
000008eb: PUSH2 0x19e3
000008ee: JUMP
000008ef: JUMPDEST
000008f0: STOP
000008f1: JUMPDEST
000008f2: CALLVALUE
000008f3: ISZERO
000008f4: PUSH2 0x08fc
000008f7: JUMPI
000008f8: PUSH1 0x00
000008fa: DUP1
000008fb: REVERT
000008fc: JUMPDEST
000008fd: PUSH2 0x0904
00000900: PUSH2 0x1a5b
00000903: JUMP
00000904: JUMPDEST
00000905: PUSH1 0x40
00000907: MLOAD
00000908: DUP1
00000909: DUP3
0000090a: DUP2
0000090b: MSTORE
0000090c: PUSH1 0x20
0000090e: ADD
0000090f: SWAP2
00000910: POP
00000911: POP
00000912: PUSH1 0x40
00000914: MLOAD
00000915: DUP1
00000916: SWAP2
00000917: SUB
00000918: SWAP1
00000919: RETURN
0000091a: JUMPDEST
0000091b: CALLVALUE
0000091c: ISZERO
0000091d: PUSH2 0x0925
00000920: JUMPI
00000921: PUSH1 0x00
00000923: DUP1
00000924: REVERT
00000925: JUMPDEST
00000926: PUSH2 0x092d
00000929: PUSH2 0x1a61
0000092c: JUMP
0000092d: JUMPDEST
0000092e: PUSH1 0x40
00000930: MLOAD
00000931: DUP1
00000932: DUP3
00000933: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000948: AND
00000949: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000095e: AND
0000095f: DUP2
00000960: MSTORE
00000961: PUSH1 0x20
00000963: ADD
00000964: SWAP2
00000965: POP
00000966: POP
00000967: PUSH1 0x40
00000969: MLOAD
0000096a: DUP1
0000096b: SWAP2
0000096c: SUB
0000096d: SWAP1
0000096e: RETURN
0000096f: JUMPDEST
00000970: PUSH1 0x00
00000972: DUP1
00000973: PUSH1 0x00
00000975: DUP1
00000976: PUSH1 0x0d
00000978: SLOAD
00000979: NUMBER
0000097a: LT
0000097b: ISZERO
0000097c: DUP1
0000097d: ISZERO
0000097e: PUSH2 0x0988
00000981: JUMPI
00000982: POP
00000983: PUSH1 0x0e
00000985: SLOAD
00000986: NUMBER
00000987: LT
00000988: JUMPDEST
00000989: ISZERO
0000098a: ISZERO
0000098b: PUSH2 0x0993
0000098e: JUMPI
0000098f: PUSH1 0x00
00000991: DUP1
00000992: REVERT
00000993: JUMPDEST
00000994: PUSH1 0x00
00000996: PUSH1 0x14
00000998: SWAP1
00000999: SLOAD
0000099a: SWAP1
0000099b: PUSH2 0x0100
0000099e: EXP
0000099f: SWAP1
000009a0: DIV
000009a1: PUSH1 0xff
000009a3: AND
000009a4: ISZERO
000009a5: ISZERO
000009a6: ISZERO
000009a7: PUSH2 0x09af
000009aa: JUMPI
000009ab: PUSH1 0x00
000009ad: DUP1
000009ae: REVERT
000009af: JUMPDEST
000009b0: PUSH1 0x0f
000009b2: PUSH1 0x01
000009b4: SWAP1
000009b5: SLOAD
000009b6: SWAP1
000009b7: PUSH2 0x0100
000009ba: EXP
000009bb: SWAP1
000009bc: DIV
000009bd: PUSH1 0xff
000009bf: AND
000009c0: ISZERO
000009c1: ISZERO
000009c2: ISZERO
000009c3: PUSH2 0x09cb
000009c6: JUMPI
000009c7: PUSH1 0x00
000009c9: DUP1
000009ca: REVERT
000009cb: JUMPDEST
000009cc: PUSH2 0x09f3
000009cf: PUSH1 0x64
000009d1: PUSH2 0x09e5
000009d4: PUSH1 0x06
000009d6: SLOAD
000009d7: CALLVALUE
000009d8: PUSH2 0x1a87
000009db: SWAP1
000009dc: SWAP2
000009dd: SWAP1
000009de: PUSH4 0xffffffff
000009e3: AND
000009e4: JUMP
000009e5: JUMPDEST
000009e6: PUSH2 0x1aba
000009e9: SWAP1
000009ea: SWAP2
000009eb: SWAP1
000009ec: PUSH4 0xffffffff
000009f1: AND
000009f2: JUMP
000009f3: JUMPDEST
000009f4: SWAP4
000009f5: POP
000009f6: PUSH2 0x09fe
000009f9: DUP5
000009fa: PUSH2 0x1ad5
000009fd: JUMP
000009fe: JUMPDEST
000009ff: SWAP3
00000a00: POP
00000a01: PUSH1 0x05
00000a03: PUSH1 0x00
00000a05: SWAP1
00000a06: SLOAD
00000a07: SWAP1
00000a08: PUSH2 0x0100
00000a0b: EXP
00000a0c: SWAP1
00000a0d: DIV
00000a0e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a23: AND
00000a24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a39: AND
00000a3a: PUSH4 0x9478a7c9
00000a3f: CALLER
00000a40: PUSH1 0x00
00000a42: PUSH1 0x40
00000a44: MLOAD
00000a45: PUSH1 0x20
00000a47: ADD
00000a48: MSTORE
00000a49: PUSH1 0x40
00000a4b: MLOAD
00000a4c: DUP3
00000a4d: PUSH4 0xffffffff
00000a52: AND
00000a53: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000a71: MUL
00000a72: DUP2
00000a73: MSTORE
00000a74: PUSH1 0x04
00000a76: ADD
00000a77: DUP1
00000a78: DUP3
00000a79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a8e: AND
00000a8f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aa4: AND
00000aa5: DUP2
00000aa6: MSTORE
00000aa7: PUSH1 0x20
00000aa9: ADD
00000aaa: SWAP2
00000aab: POP
00000aac: POP
00000aad: PUSH1 0x20
00000aaf: PUSH1 0x40
00000ab1: MLOAD
00000ab2: DUP1
00000ab3: DUP4
00000ab4: SUB
00000ab5: DUP2
00000ab6: PUSH1 0x00
00000ab8: DUP8
00000ab9: DUP1
00000aba: EXTCODESIZE
00000abb: ISZERO
00000abc: ISZERO
00000abd: PUSH2 0x0ac5
00000ac0: JUMPI
00000ac1: PUSH1 0x00
00000ac3: DUP1
00000ac4: REVERT
00000ac5: JUMPDEST
00000ac6: PUSH2 0x02c6
00000ac9: GAS
00000aca: SUB
00000acb: CALL
00000acc: ISZERO
00000acd: ISZERO
00000ace: PUSH2 0x0ad6
00000ad1: JUMPI
00000ad2: PUSH1 0x00
00000ad4: DUP1
00000ad5: REVERT
00000ad6: JUMPDEST
00000ad7: POP
00000ad8: POP
00000ad9: POP
00000ada: PUSH1 0x40
00000adc: MLOAD
00000add: DUP1
00000ade: MLOAD
00000adf: SWAP1
00000ae0: POP
00000ae1: SWAP2
00000ae2: POP
00000ae3: PUSH2 0x0afd
00000ae6: PUSH2 0x0aee
00000ae9: DUP6
00000aea: PUSH2 0x1c63
00000aed: JUMP
00000aee: JUMPDEST
00000aef: DUP6
00000af0: PUSH2 0x1df1
00000af3: SWAP1
00000af4: SWAP2
00000af5: SWAP1
00000af6: PUSH4 0xffffffff
00000afb: AND
00000afc: JUMP
00000afd: JUMPDEST
00000afe: SWAP4
00000aff: POP
00000b00: PUSH2 0x0b14
00000b03: DUP5
00000b04: PUSH1 0x0b
00000b06: SLOAD
00000b07: PUSH2 0x1df1
00000b0a: SWAP1
00000b0b: SWAP2
00000b0c: SWAP1
00000b0d: PUSH4 0xffffffff
00000b12: AND
00000b13: JUMP
00000b14: JUMPDEST
00000b15: SWAP1
00000b16: POP
00000b17: PUSH1 0x00
00000b19: DUP4
00000b1a: GT
00000b1b: DUP1
00000b1c: ISZERO
00000b1d: PUSH2 0x0b3d
00000b20: JUMPI
00000b21: POP
00000b22: PUSH1 0x00
00000b24: DUP3
00000b25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b3a: AND
00000b3b: EQ
00000b3c: ISZERO
00000b3d: JUMPDEST
00000b3e: ISZERO
00000b3f: PUSH2 0x0b58
00000b42: JUMPI
00000b43: PUSH2 0x0b55
00000b46: DUP4
00000b47: DUP3
00000b48: PUSH2 0x1df1
00000b4b: SWAP1
00000b4c: SWAP2
00000b4d: SWAP1
00000b4e: PUSH4 0xffffffff
00000b53: AND
00000b54: JUMP
00000b55: JUMPDEST
00000b56: SWAP1
00000b57: POP
00000b58: JUMPDEST
00000b59: PUSH1 0x08
00000b5b: SLOAD
00000b5c: DUP2
00000b5d: GT
00000b5e: ISZERO
00000b5f: ISZERO
00000b60: ISZERO
00000b61: PUSH2 0x0b69
00000b64: JUMPI
00000b65: PUSH1 0x00
00000b67: DUP1
00000b68: REVERT
00000b69: JUMPDEST
00000b6a: PUSH1 0x0f
00000b6c: PUSH1 0x00
00000b6e: SWAP1
00000b6f: SLOAD
00000b70: SWAP1
00000b71: PUSH2 0x0100
00000b74: EXP
00000b75: SWAP1
00000b76: DIV
00000b77: PUSH1 0xff
00000b79: AND
00000b7a: ISZERO
00000b7b: DUP1
00000b7c: ISZERO
00000b7d: PUSH2 0x0b88
00000b80: JUMPI
00000b81: POP
00000b82: PUSH1 0x09
00000b84: SLOAD
00000b85: DUP2
00000b86: LT
00000b87: ISZERO
00000b88: JUMPDEST
00000b89: ISZERO
00000b8a: PUSH2 0x0be2
00000b8d: JUMPI
00000b8e: PUSH1 0x01
00000b90: PUSH1 0x0f
00000b92: PUSH1 0x00
00000b94: PUSH2 0x0100
00000b97: EXP
00000b98: DUP2
00000b99: SLOAD
00000b9a: DUP2
00000b9b: PUSH1 0xff
00000b9d: MUL
00000b9e: NOT
00000b9f: AND
00000ba0: SWAP1
00000ba1: DUP4
00000ba2: ISZERO
00000ba3: ISZERO
00000ba4: MUL
00000ba5: OR
00000ba6: SWAP1
00000ba7: SSTORE
00000ba8: POP
00000ba9: PUSH32 0x42ef6182c6d744dd081ab962505f40413083376dfcc13e58b60f4f32e9673809
00000bca: PUSH1 0x09
00000bcc: SLOAD
00000bcd: PUSH1 0x40
00000bcf: MLOAD
00000bd0: DUP1
00000bd1: DUP3
00000bd2: DUP2
00000bd3: MSTORE
00000bd4: PUSH1 0x20
00000bd6: ADD
00000bd7: SWAP2
00000bd8: POP
00000bd9: POP
00000bda: PUSH1 0x40
00000bdc: MLOAD
00000bdd: DUP1
00000bde: SWAP2
00000bdf: SUB
00000be0: SWAP1
00000be1: LOG1
00000be2: JUMPDEST
00000be3: PUSH2 0x0bf7
00000be6: CALLVALUE
00000be7: PUSH1 0x0a
00000be9: SLOAD
00000bea: PUSH2 0x1df1
00000bed: SWAP1
00000bee: SWAP2
00000bef: SWAP1
00000bf0: PUSH4 0xffffffff
00000bf5: AND
00000bf6: JUMP
00000bf7: JUMPDEST
00000bf8: PUSH1 0x0a
00000bfa: DUP2
00000bfb: SWAP1
00000bfc: SSTORE
00000bfd: POP
00000bfe: DUP1
00000bff: PUSH1 0x0b
00000c01: DUP2
00000c02: SWAP1
00000c03: SSTORE
00000c04: POP
00000c05: PUSH2 0x0c56
00000c08: CALLVALUE
00000c09: PUSH1 0x10
00000c0b: PUSH1 0x00
00000c0d: CALLER
00000c0e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c23: AND
00000c24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c39: AND
00000c3a: DUP2
00000c3b: MSTORE
00000c3c: PUSH1 0x20
00000c3e: ADD
00000c3f: SWAP1
00000c40: DUP2
00000c41: MSTORE
00000c42: PUSH1 0x20
00000c44: ADD
00000c45: PUSH1 0x00
00000c47: KECCAK256
00000c48: SLOAD
00000c49: PUSH2 0x1df1
00000c4c: SWAP1
00000c4d: SWAP2
00000c4e: SWAP1
00000c4f: PUSH4 0xffffffff
00000c54: AND
00000c55: JUMP
00000c56: JUMPDEST
00000c57: PUSH1 0x10
00000c59: PUSH1 0x00
00000c5b: CALLER
00000c5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c71: AND
00000c72: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c87: AND
00000c88: DUP2
00000c89: MSTORE
00000c8a: PUSH1 0x20
00000c8c: ADD
00000c8d: SWAP1
00000c8e: DUP2
00000c8f: MSTORE
00000c90: PUSH1 0x20
00000c92: ADD
00000c93: PUSH1 0x00
00000c95: KECCAK256
00000c96: DUP2
00000c97: SWAP1
00000c98: SSTORE
00000c99: POP
00000c9a: PUSH1 0x03
00000c9c: PUSH1 0x00
00000c9e: SWAP1
00000c9f: SLOAD
00000ca0: SWAP1
00000ca1: PUSH2 0x0100
00000ca4: EXP
00000ca5: SWAP1
00000ca6: DIV
00000ca7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cbc: AND
00000cbd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cd2: AND
00000cd3: PUSH4 0xa9059cbb
00000cd8: CALLER
00000cd9: DUP7
00000cda: PUSH1 0x00
00000cdc: PUSH1 0x40
00000cde: MLOAD
00000cdf: PUSH1 0x20
00000ce1: ADD
00000ce2: MSTORE
00000ce3: PUSH1 0x40
00000ce5: MLOAD
00000ce6: DUP4
00000ce7: PUSH4 0xffffffff
00000cec: AND
00000ced: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000d0b: MUL
00000d0c: DUP2
00000d0d: MSTORE
00000d0e: PUSH1 0x04
00000d10: ADD
00000d11: DUP1
00000d12: DUP4
00000d13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d28: AND
00000d29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d3e: AND
00000d3f: DUP2
00000d40: MSTORE
00000d41: PUSH1 0x20
00000d43: ADD
00000d44: DUP3
00000d45: DUP2
00000d46: MSTORE
00000d47: PUSH1 0x20
00000d49: ADD
00000d4a: SWAP3
00000d4b: POP
00000d4c: POP
00000d4d: POP
00000d4e: PUSH1 0x20
00000d50: PUSH1 0x40
00000d52: MLOAD
00000d53: DUP1
00000d54: DUP4
00000d55: SUB
00000d56: DUP2
00000d57: PUSH1 0x00
00000d59: DUP8
00000d5a: DUP1
00000d5b: EXTCODESIZE
00000d5c: ISZERO
00000d5d: ISZERO
00000d5e: PUSH2 0x0d66
00000d61: JUMPI
00000d62: PUSH1 0x00
00000d64: DUP1
00000d65: REVERT
00000d66: JUMPDEST
00000d67: PUSH2 0x02c6
00000d6a: GAS
00000d6b: SUB
00000d6c: CALL
00000d6d: ISZERO
00000d6e: ISZERO
00000d6f: PUSH2 0x0d77
00000d72: JUMPI
00000d73: PUSH1 0x00
00000d75: DUP1
00000d76: REVERT
00000d77: JUMPDEST
00000d78: POP
00000d79: POP
00000d7a: POP
00000d7b: PUSH1 0x40
00000d7d: MLOAD
00000d7e: DUP1
00000d7f: MLOAD
00000d80: SWAP1
00000d81: POP
00000d82: POP
00000d83: CALLER
00000d84: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d99: AND
00000d9a: PUSH32 0x16d99cb06fd9528f88184dd0483174a09cfd8312c28639858734b0c449cc05b8
00000dbb: DUP6
00000dbc: CALLVALUE
00000dbd: PUSH1 0x40
00000dbf: MLOAD
00000dc0: DUP1
00000dc1: DUP4
00000dc2: DUP2
00000dc3: MSTORE
00000dc4: PUSH1 0x20
00000dc6: ADD
00000dc7: DUP3
00000dc8: DUP2
00000dc9: MSTORE
00000dca: PUSH1 0x20
00000dcc: ADD
00000dcd: SWAP3
00000dce: POP
00000dcf: POP
00000dd0: POP
00000dd1: PUSH1 0x40
00000dd3: MLOAD
00000dd4: DUP1
00000dd5: SWAP2
00000dd6: SUB
00000dd7: SWAP1
00000dd8: LOG2
00000dd9: PUSH1 0x00
00000ddb: DUP4
00000ddc: GT
00000ddd: DUP1
00000dde: ISZERO
00000ddf: PUSH2 0x0dff
00000de2: JUMPI
00000de3: POP
00000de4: PUSH1 0x00
00000de6: DUP3
00000de7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dfc: AND
00000dfd: EQ
00000dfe: ISZERO
00000dff: JUMPDEST
00000e00: ISZERO
00000e01: PUSH2 0x0f53
00000e04: JUMPI
00000e05: PUSH1 0x03
00000e07: PUSH1 0x00
00000e09: SWAP1
00000e0a: SLOAD
00000e0b: SWAP1
00000e0c: PUSH2 0x0100
00000e0f: EXP
00000e10: SWAP1
00000e11: DIV
00000e12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e27: AND
00000e28: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e3d: AND
00000e3e: PUSH4 0xa9059cbb
00000e43: DUP4
00000e44: DUP6
00000e45: PUSH1 0x00
00000e47: PUSH1 0x40
00000e49: MLOAD
00000e4a: PUSH1 0x20
00000e4c: ADD
00000e4d: MSTORE
00000e4e: PUSH1 0x40
00000e50: MLOAD
00000e51: DUP4
00000e52: PUSH4 0xffffffff
00000e57: AND
00000e58: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000e76: MUL
00000e77: DUP2
00000e78: MSTORE
00000e79: PUSH1 0x04
00000e7b: ADD
00000e7c: DUP1
00000e7d: DUP4
00000e7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e93: AND
00000e94: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ea9: AND
00000eaa: DUP2
00000eab: MSTORE
00000eac: PUSH1 0x20
00000eae: ADD
00000eaf: DUP3
00000eb0: DUP2
00000eb1: MSTORE
00000eb2: PUSH1 0x20
00000eb4: ADD
00000eb5: SWAP3
00000eb6: POP
00000eb7: POP
00000eb8: POP
00000eb9: PUSH1 0x20
00000ebb: PUSH1 0x40
00000ebd: MLOAD
00000ebe: DUP1
00000ebf: DUP4
00000ec0: SUB
00000ec1: DUP2
00000ec2: PUSH1 0x00
00000ec4: DUP8
00000ec5: DUP1
00000ec6: EXTCODESIZE
00000ec7: ISZERO
00000ec8: ISZERO
00000ec9: PUSH2 0x0ed1
00000ecc: JUMPI
00000ecd: PUSH1 0x00
00000ecf: DUP1
00000ed0: REVERT
00000ed1: JUMPDEST
00000ed2: PUSH2 0x02c6
00000ed5: GAS
00000ed6: SUB
00000ed7: CALL
00000ed8: ISZERO
00000ed9: ISZERO
00000eda: PUSH2 0x0ee2
00000edd: JUMPI
00000ede: PUSH1 0x00
00000ee0: DUP1
00000ee1: REVERT
00000ee2: JUMPDEST
00000ee3: POP
00000ee4: POP
00000ee5: POP
00000ee6: PUSH1 0x40
00000ee8: MLOAD
00000ee9: DUP1
00000eea: MLOAD
00000eeb: SWAP1
00000eec: POP
00000eed: POP
00000eee: DUP2
00000eef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f04: AND
00000f05: CALLER
00000f06: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f1b: AND
00000f1c: PUSH32 0x63b1806f17e56a5994496cf87e213450b3ca26912d0a7c2ba0b722a2f822e497
00000f3d: DUP6
00000f3e: PUSH1 0x40
00000f40: MLOAD
00000f41: DUP1
00000f42: DUP3
00000f43: DUP2
00000f44: MSTORE
00000f45: PUSH1 0x20
00000f47: ADD
00000f48: SWAP2
00000f49: POP
00000f4a: POP
00000f4b: PUSH1 0x40
00000f4d: MLOAD
00000f4e: DUP1
00000f4f: SWAP2
00000f50: SUB
00000f51: SWAP1
00000f52: LOG3
00000f53: JUMPDEST
00000f54: POP
00000f55: POP
00000f56: POP
00000f57: POP
00000f58: JUMP
00000f59: JUMPDEST
00000f5a: PUSH1 0x40
00000f5c: DUP1
00000f5d: MLOAD
00000f5e: SWAP1
00000f5f: DUP2
00000f60: ADD
00000f61: PUSH1 0x40
00000f63: MSTORE
00000f64: DUP1
00000f65: PUSH1 0x10
00000f67: DUP2
00000f68: MSTORE
00000f69: PUSH1 0x20
00000f6b: ADD
00000f6c: PUSH32 0x4a696e636f7220546f6b656e2049434f00000000000000000000000000000000
00000f8d: DUP2
00000f8e: MSTORE
00000f8f: POP
00000f90: DUP2
00000f91: JUMP
00000f92: JUMPDEST
00000f93: PUSH1 0x0e
00000f95: SLOAD
00000f96: DUP2
00000f97: JUMP
00000f98: JUMPDEST
00000f99: PUSH1 0x0f
00000f9b: PUSH1 0x00
00000f9d: SWAP1
00000f9e: SLOAD
00000f9f: SWAP1
00000fa0: PUSH2 0x0100
00000fa3: EXP
00000fa4: SWAP1
00000fa5: DIV
00000fa6: PUSH1 0xff
00000fa8: AND
00000fa9: DUP2
00000faa: JUMP
00000fab: JUMPDEST
00000fac: PUSH1 0x64
00000fae: DUP2
00000faf: JUMP
00000fb0: JUMPDEST
00000fb1: PUSH1 0x07
00000fb3: SLOAD
00000fb4: DUP2
00000fb5: JUMP
00000fb6: JUMPDEST
00000fb7: PUSH1 0x04
00000fb9: PUSH1 0x00
00000fbb: SWAP1
00000fbc: SLOAD
00000fbd: SWAP1
00000fbe: PUSH2 0x0100
00000fc1: EXP
00000fc2: SWAP1
00000fc3: DIV
00000fc4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fd9: AND
00000fda: DUP2
00000fdb: JUMP
00000fdc: JUMPDEST
00000fdd: PUSH1 0x06
00000fdf: SLOAD
00000fe0: DUP2
00000fe1: JUMP
00000fe2: JUMPDEST
00000fe3: PUSH1 0x02
00000fe5: PUSH1 0x00
00000fe7: SWAP1
00000fe8: SLOAD
00000fe9: SWAP1
00000fea: PUSH2 0x0100
00000fed: EXP
00000fee: SWAP1
00000fef: DIV
00000ff0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001005: AND
00001006: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000101b: AND
0000101c: CALLER
0000101d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001032: AND
00001033: EQ
00001034: ISZERO
00001035: ISZERO
00001036: PUSH2 0x103e
00001039: JUMPI
0000103a: PUSH1 0x00
0000103c: DUP1
0000103d: REVERT
0000103e: JUMPDEST
0000103f: PUSH1 0x00
00001041: DUP2
00001042: GT
00001043: ISZERO
00001044: ISZERO
00001045: PUSH2 0x104d
00001048: JUMPI
00001049: PUSH1 0x00
0000104b: DUP1
0000104c: REVERT
0000104d: JUMPDEST
0000104e: DUP1
0000104f: PUSH1 0x07
00001051: DUP2
00001052: SWAP1
00001053: SSTORE
00001054: POP
00001055: POP
00001056: JUMP
00001057: JUMPDEST
00001058: PUSH1 0x00
0000105a: DUP1
0000105b: SWAP1
0000105c: SLOAD
0000105d: SWAP1
0000105e: PUSH2 0x0100
00001061: EXP
00001062: SWAP1
00001063: DIV
00001064: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001079: AND
0000107a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000108f: AND
00001090: CALLER
00001091: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010a6: AND
000010a7: EQ
000010a8: ISZERO
000010a9: ISZERO
000010aa: PUSH2 0x10b2
000010ad: JUMPI
000010ae: PUSH1 0x00
000010b0: DUP1
000010b1: REVERT
000010b2: JUMPDEST
000010b3: PUSH1 0x0f
000010b5: PUSH1 0x00
000010b7: SWAP1
000010b8: SLOAD
000010b9: SWAP1
000010ba: PUSH2 0x0100
000010bd: EXP
000010be: SWAP1
000010bf: DIV
000010c0: PUSH1 0xff
000010c2: AND
000010c3: ISZERO
000010c4: ISZERO
000010c5: PUSH2 0x10cd
000010c8: JUMPI
000010c9: PUSH1 0x00
000010cb: DUP1
000010cc: REVERT
000010cd: JUMPDEST
000010ce: PUSH1 0x04
000010d0: PUSH1 0x00
000010d2: SWAP1
000010d3: SLOAD
000010d4: SWAP1
000010d5: PUSH2 0x0100
000010d8: EXP
000010d9: SWAP1
000010da: DIV
000010db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010f0: AND
000010f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001106: AND
00001107: PUSH2 0x08fc
0000110a: PUSH1 0x0a
0000110c: SLOAD
0000110d: SWAP1
0000110e: DUP2
0000110f: ISZERO
00001110: MUL
00001111: SWAP1
00001112: PUSH1 0x40
00001114: MLOAD
00001115: PUSH1 0x00
00001117: PUSH1 0x40
00001119: MLOAD
0000111a: DUP1
0000111b: DUP4
0000111c: SUB
0000111d: DUP2
0000111e: DUP6
0000111f: DUP9
00001120: DUP9
00001121: CALL
00001122: SWAP4
00001123: POP
00001124: POP
00001125: POP
00001126: POP
00001127: ISZERO
00001128: ISZERO
00001129: PUSH2 0x1131
0000112c: JUMPI
0000112d: PUSH1 0x00
0000112f: DUP1
00001130: REVERT
00001131: JUMPDEST
00001132: PUSH1 0x03
00001134: PUSH1 0x00
00001136: SWAP1
00001137: SLOAD
00001138: SWAP1
00001139: PUSH2 0x0100
0000113c: EXP
0000113d: SWAP1
0000113e: DIV
0000113f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001154: AND
00001155: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000116a: AND
0000116b: PUSH4 0xa9059cbb
00001170: PUSH1 0x04
00001172: PUSH1 0x00
00001174: SWAP1
00001175: SLOAD
00001176: SWAP1
00001177: PUSH2 0x0100
0000117a: EXP
0000117b: SWAP1
0000117c: DIV
0000117d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001192: AND
00001193: PUSH1 0x03
00001195: PUSH1 0x00
00001197: SWAP1
00001198: SLOAD
00001199: SWAP1
0000119a: PUSH2 0x0100
0000119d: EXP
0000119e: SWAP1
0000119f: DIV
000011a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011b5: AND
000011b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011cb: AND
000011cc: PUSH4 0x70a08231
000011d1: ADDRESS
000011d2: PUSH1 0x00
000011d4: PUSH1 0x40
000011d6: MLOAD
000011d7: PUSH1 0x20
000011d9: ADD
000011da: MSTORE
000011db: PUSH1 0x40
000011dd: MLOAD
000011de: DUP3
000011df: PUSH4 0xffffffff
000011e4: AND
000011e5: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00001203: MUL
00001204: DUP2
00001205: MSTORE
00001206: PUSH1 0x04
00001208: ADD
00001209: DUP1
0000120a: DUP3
0000120b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001220: AND
00001221: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001236: AND
00001237: DUP2
00001238: MSTORE
00001239: PUSH1 0x20
0000123b: ADD
0000123c: SWAP2
0000123d: POP
0000123e: POP
0000123f: PUSH1 0x20
00001241: PUSH1 0x40
00001243: MLOAD
00001244: DUP1
00001245: DUP4
00001246: SUB
00001247: DUP2
00001248: PUSH1 0x00
0000124a: DUP8
0000124b: DUP1
0000124c: EXTCODESIZE
0000124d: ISZERO
0000124e: ISZERO
0000124f: PUSH2 0x1257
00001252: JUMPI
00001253: PUSH1 0x00
00001255: DUP1
00001256: REVERT
00001257: JUMPDEST
00001258: PUSH2 0x02c6
0000125b: GAS
0000125c: SUB
0000125d: CALL
0000125e: ISZERO
0000125f: ISZERO
00001260: PUSH2 0x1268
00001263: JUMPI
00001264: PUSH1 0x00
00001266: DUP1
00001267: REVERT
00001268: JUMPDEST
00001269: POP
0000126a: POP
0000126b: POP
0000126c: PUSH1 0x40
0000126e: MLOAD
0000126f: DUP1
00001270: MLOAD
00001271: SWAP1
00001272: POP
00001273: PUSH1 0x00
00001275: PUSH1 0x40
00001277: MLOAD
00001278: PUSH1 0x20
0000127a: ADD
0000127b: MSTORE
0000127c: PUSH1 0x40
0000127e: MLOAD
0000127f: DUP4
00001280: PUSH4 0xffffffff
00001285: AND
00001286: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000012a4: MUL
000012a5: DUP2
000012a6: MSTORE
000012a7: PUSH1 0x04
000012a9: ADD
000012aa: DUP1
000012ab: DUP4
000012ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012c1: AND
000012c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012d7: AND
000012d8: DUP2
000012d9: MSTORE
000012da: PUSH1 0x20
000012dc: ADD
000012dd: DUP3
000012de: DUP2
000012df: MSTORE
000012e0: PUSH1 0x20
000012e2: ADD
000012e3: SWAP3
000012e4: POP
000012e5: POP
000012e6: POP
000012e7: PUSH1 0x20
000012e9: PUSH1 0x40
000012eb: MLOAD
000012ec: DUP1
000012ed: DUP4
000012ee: SUB
000012ef: DUP2
000012f0: PUSH1 0x00
000012f2: DUP8
000012f3: DUP1
000012f4: EXTCODESIZE
000012f5: ISZERO
000012f6: ISZERO
000012f7: PUSH2 0x12ff
000012fa: JUMPI
000012fb: PUSH1 0x00
000012fd: DUP1
000012fe: REVERT
000012ff: JUMPDEST
00001300: PUSH2 0x02c6
00001303: GAS
00001304: SUB
00001305: CALL
00001306: ISZERO
00001307: ISZERO
00001308: PUSH2 0x1310
0000130b: JUMPI
0000130c: PUSH1 0x00
0000130e: DUP1
0000130f: REVERT
00001310: JUMPDEST
00001311: POP
00001312: POP
00001313: POP
00001314: PUSH1 0x40
00001316: MLOAD
00001317: DUP1
00001318: MLOAD
00001319: SWAP1
0000131a: POP
0000131b: POP
0000131c: PUSH1 0x01
0000131e: PUSH1 0x0f
00001320: PUSH1 0x01
00001322: PUSH2 0x0100
00001325: EXP
00001326: DUP2
00001327: SLOAD
00001328: DUP2
00001329: PUSH1 0xff
0000132b: MUL
0000132c: NOT
0000132d: AND
0000132e: SWAP1
0000132f: DUP4
00001330: ISZERO
00001331: ISZERO
00001332: MUL
00001333: OR
00001334: SWAP1
00001335: SSTORE
00001336: POP
00001337: JUMP
00001338: JUMPDEST
00001339: PUSH1 0x0d
0000133b: SLOAD
0000133c: DUP2
0000133d: JUMP
0000133e: JUMPDEST
0000133f: PUSH1 0x0b
00001341: SLOAD
00001342: DUP2
00001343: JUMP
00001344: JUMPDEST
00001345: PUSH1 0x00
00001347: PUSH1 0x0e
00001349: SLOAD
0000134a: NUMBER
0000134b: LT
0000134c: ISZERO
0000134d: ISZERO
0000134e: ISZERO
0000134f: PUSH2 0x1357
00001352: JUMPI
00001353: PUSH1 0x00
00001355: DUP1
00001356: REVERT
00001357: JUMPDEST
00001358: PUSH1 0x00
0000135a: ISZERO
0000135b: ISZERO
0000135c: PUSH1 0x0f
0000135e: PUSH1 0x00
00001360: SWAP1
00001361: SLOAD
00001362: SWAP1
00001363: PUSH2 0x0100
00001366: EXP
00001367: SWAP1
00001368: DIV
00001369: PUSH1 0xff
0000136b: AND
0000136c: ISZERO
0000136d: ISZERO
0000136e: EQ
0000136f: ISZERO
00001370: ISZERO
00001371: PUSH2 0x1379
00001374: JUMPI
00001375: PUSH1 0x00
00001377: DUP1
00001378: REVERT
00001379: JUMPDEST
0000137a: PUSH1 0x00
0000137c: PUSH1 0x10
0000137e: PUSH1 0x00
00001380: CALLER
00001381: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001396: AND
00001397: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013ac: AND
000013ad: DUP2
000013ae: MSTORE
000013af: PUSH1 0x20
000013b1: ADD
000013b2: SWAP1
000013b3: DUP2
000013b4: MSTORE
000013b5: PUSH1 0x20
000013b7: ADD
000013b8: PUSH1 0x00
000013ba: KECCAK256
000013bb: SLOAD
000013bc: GT
000013bd: ISZERO
000013be: ISZERO
000013bf: PUSH2 0x13c7
000013c2: JUMPI
000013c3: PUSH1 0x00
000013c5: DUP1
000013c6: REVERT
000013c7: JUMPDEST
000013c8: PUSH1 0x10
000013ca: PUSH1 0x00
000013cc: CALLER
000013cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013e2: AND
000013e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013f8: AND
000013f9: DUP2
000013fa: MSTORE
000013fb: PUSH1 0x20
000013fd: ADD
000013fe: SWAP1
000013ff: DUP2
00001400: MSTORE
00001401: PUSH1 0x20
00001403: ADD
00001404: PUSH1 0x00
00001406: KECCAK256
00001407: SLOAD
00001408: SWAP1
00001409: POP
0000140a: PUSH1 0x00
0000140c: PUSH1 0x10
0000140e: PUSH1 0x00
00001410: CALLER
00001411: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001426: AND
00001427: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000143c: AND
0000143d: DUP2
0000143e: MSTORE
0000143f: PUSH1 0x20
00001441: ADD
00001442: SWAP1
00001443: DUP2
00001444: MSTORE
00001445: PUSH1 0x20
00001447: ADD
00001448: PUSH1 0x00
0000144a: KECCAK256
0000144b: DUP2
0000144c: SWAP1
0000144d: SSTORE
0000144e: POP
0000144f: CALLER
00001450: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001465: AND
00001466: PUSH2 0x08fc
00001469: DUP3
0000146a: SWAP1
0000146b: DUP2
0000146c: ISZERO
0000146d: MUL
0000146e: SWAP1
0000146f: PUSH1 0x40
00001471: MLOAD
00001472: PUSH1 0x00
00001474: PUSH1 0x40
00001476: MLOAD
00001477: DUP1
00001478: DUP4
00001479: SUB
0000147a: DUP2
0000147b: DUP6
0000147c: DUP9
0000147d: DUP9
0000147e: CALL
0000147f: SWAP4
00001480: POP
00001481: POP
00001482: POP
00001483: POP
00001484: ISZERO
00001485: ISZERO
00001486: PUSH2 0x148e
00001489: JUMPI
0000148a: PUSH1 0x00
0000148c: DUP1
0000148d: REVERT
0000148e: JUMPDEST
0000148f: PUSH2 0x14a3
00001492: DUP2
00001493: PUSH1 0x0c
00001495: SLOAD
00001496: PUSH2 0x1df1
00001499: SWAP1
0000149a: SWAP2
0000149b: SWAP1
0000149c: PUSH4 0xffffffff
000014a1: AND
000014a2: JUMP
000014a3: JUMPDEST
000014a4: PUSH1 0x0c
000014a6: DUP2
000014a7: SWAP1
000014a8: SSTORE
000014a9: POP
000014aa: CALLER
000014ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014c0: AND
000014c1: PUSH32 0xd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651
000014e2: DUP3
000014e3: PUSH1 0x40
000014e5: MLOAD
000014e6: DUP1
000014e7: DUP3
000014e8: DUP2
000014e9: MSTORE
000014ea: PUSH1 0x20
000014ec: ADD
000014ed: SWAP2
000014ee: POP
000014ef: POP
000014f0: PUSH1 0x40
000014f2: MLOAD
000014f3: DUP1
000014f4: SWAP2
000014f5: SUB
000014f6: SWAP1
000014f7: LOG2
000014f8: POP
000014f9: JUMP
000014fa: JUMPDEST
000014fb: PUSH1 0x0c
000014fd: SLOAD
000014fe: DUP2
000014ff: JUMP
00001500: JUMPDEST
00001501: PUSH1 0x00
00001503: DUP1
00001504: SWAP1
00001505: SLOAD
00001506: SWAP1
00001507: PUSH2 0x0100
0000150a: EXP
0000150b: SWAP1
0000150c: DIV
0000150d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001522: AND
00001523: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001538: AND
00001539: CALLER
0000153a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000154f: AND
00001550: EQ
00001551: ISZERO
00001552: ISZERO
00001553: PUSH2 0x155b
00001556: JUMPI
00001557: PUSH1 0x00
00001559: DUP1
0000155a: REVERT
0000155b: JUMPDEST
0000155c: PUSH1 0x00
0000155e: PUSH1 0x14
00001560: SWAP1
00001561: SLOAD
00001562: SWAP1
00001563: PUSH2 0x0100
00001566: EXP
00001567: SWAP1
00001568: DIV
00001569: PUSH1 0xff
0000156b: AND
0000156c: ISZERO
0000156d: ISZERO
0000156e: ISZERO
0000156f: PUSH2 0x1577
00001572: JUMPI
00001573: PUSH1 0x00
00001575: DUP1
00001576: REVERT
00001577: JUMPDEST
00001578: PUSH1 0x01
0000157a: PUSH1 0x00
0000157c: PUSH1 0x14
0000157e: PUSH2 0x0100
00001581: EXP
00001582: DUP2
00001583: SLOAD
00001584: DUP2
00001585: PUSH1 0xff
00001587: MUL
00001588: NOT
00001589: AND
0000158a: SWAP1
0000158b: DUP4
0000158c: ISZERO
0000158d: ISZERO
0000158e: MUL
0000158f: OR
00001590: SWAP1
00001591: SSTORE
00001592: POP
00001593: JUMP
00001594: JUMPDEST
00001595: PUSH1 0x00
00001597: DUP1
00001598: SWAP1
00001599: SLOAD
0000159a: SWAP1
0000159b: PUSH2 0x0100
0000159e: EXP
0000159f: SWAP1
000015a0: DIV
000015a1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015b6: AND
000015b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015cc: AND
000015cd: CALLER
000015ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015e3: AND
000015e4: EQ
000015e5: ISZERO
000015e6: ISZERO
000015e7: PUSH2 0x15ef
000015ea: JUMPI
000015eb: PUSH1 0x00
000015ed: DUP1
000015ee: REVERT
000015ef: JUMPDEST
000015f0: PUSH1 0x00
000015f2: DUP2
000015f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001608: AND
00001609: EQ
0000160a: ISZERO
0000160b: ISZERO
0000160c: ISZERO
0000160d: PUSH2 0x1615
00001610: JUMPI
00001611: PUSH1 0x00
00001613: DUP1
00001614: REVERT
00001615: JUMPDEST
00001616: DUP1
00001617: PUSH1 0x02
00001619: PUSH1 0x00
0000161b: PUSH2 0x0100
0000161e: EXP
0000161f: DUP2
00001620: SLOAD
00001621: DUP2
00001622: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001637: MUL
00001638: NOT
00001639: AND
0000163a: SWAP1
0000163b: DUP4
0000163c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001651: AND
00001652: MUL
00001653: OR
00001654: SWAP1
00001655: SSTORE
00001656: POP
00001657: POP
00001658: JUMP
00001659: JUMPDEST
0000165a: PUSH1 0x0a
0000165c: SLOAD
0000165d: DUP2
0000165e: JUMP
0000165f: JUMPDEST
00001660: PUSH1 0x00
00001662: DUP1
00001663: SWAP1
00001664: SLOAD
00001665: SWAP1
00001666: PUSH2 0x0100
00001669: EXP
0000166a: SWAP1
0000166b: DIV
0000166c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001681: AND
00001682: DUP2
00001683: JUMP
00001684: JUMPDEST
00001685: PUSH1 0x09
00001687: SLOAD
00001688: DUP2
00001689: JUMP
0000168a: JUMPDEST
0000168b: PUSH1 0x01
0000168d: PUSH1 0x00
0000168f: SWAP1
00001690: SLOAD
00001691: SWAP1
00001692: PUSH2 0x0100
00001695: EXP
00001696: SWAP1
00001697: DIV
00001698: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016ad: AND
000016ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016c3: AND
000016c4: CALLER
000016c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016da: AND
000016db: EQ
000016dc: ISZERO
000016dd: ISZERO
000016de: PUSH2 0x16e6
000016e1: JUMPI
000016e2: PUSH1 0x00
000016e4: DUP1
000016e5: REVERT
000016e6: JUMPDEST
000016e7: PUSH1 0x00
000016e9: DUP2
000016ea: GT
000016eb: ISZERO
000016ec: ISZERO
000016ed: PUSH2 0x16f5
000016f0: JUMPI
000016f1: PUSH1 0x00
000016f3: DUP1
000016f4: REVERT
000016f5: JUMPDEST
000016f6: DUP1
000016f7: PUSH1 0x06
000016f9: DUP2
000016fa: SWAP1
000016fb: SSTORE
000016fc: POP
000016fd: POP
000016fe: JUMP
000016ff: JUMPDEST
00001700: PUSH1 0x00
00001702: PUSH1 0x14
00001704: SWAP1
00001705: SLOAD
00001706: SWAP1
00001707: PUSH2 0x0100
0000170a: EXP
0000170b: SWAP1
0000170c: DIV
0000170d: PUSH1 0xff
0000170f: AND
00001710: DUP2
00001711: JUMP
00001712: JUMPDEST
00001713: PUSH1 0x02
00001715: PUSH1 0x00
00001717: SWAP1
00001718: SLOAD
00001719: SWAP1
0000171a: PUSH2 0x0100
0000171d: EXP
0000171e: SWAP1
0000171f: DIV
00001720: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001735: AND
00001736: DUP2
00001737: JUMP
00001738: JUMPDEST
00001739: PUSH1 0x10
0000173b: PUSH1 0x20
0000173d: MSTORE
0000173e: DUP1
0000173f: PUSH1 0x00
00001741: MSTORE
00001742: PUSH1 0x40
00001744: PUSH1 0x00
00001746: KECCAK256
00001747: PUSH1 0x00
00001749: SWAP2
0000174a: POP
0000174b: SWAP1
0000174c: POP
0000174d: SLOAD
0000174e: DUP2
0000174f: JUMP
00001750: JUMPDEST
00001751: PUSH1 0x00
00001753: DUP1
00001754: SWAP1
00001755: SLOAD
00001756: SWAP1
00001757: PUSH2 0x0100
0000175a: EXP
0000175b: SWAP1
0000175c: DIV
0000175d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001772: AND
00001773: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001788: AND
00001789: CALLER
0000178a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000179f: AND
000017a0: EQ
000017a1: ISZERO
000017a2: ISZERO
000017a3: PUSH2 0x17ab
000017a6: JUMPI
000017a7: PUSH1 0x00
000017a9: DUP1
000017aa: REVERT
000017ab: JUMPDEST
000017ac: PUSH1 0x00
000017ae: PUSH1 0x14
000017b0: SWAP1
000017b1: SLOAD
000017b2: SWAP1
000017b3: PUSH2 0x0100
000017b6: EXP
000017b7: SWAP1
000017b8: DIV
000017b9: PUSH1 0xff
000017bb: AND
000017bc: ISZERO
000017bd: ISZERO
000017be: PUSH2 0x17c6
000017c1: JUMPI
000017c2: PUSH1 0x00
000017c4: DUP1
000017c5: REVERT
000017c6: JUMPDEST
000017c7: PUSH1 0x00
000017c9: DUP1
000017ca: PUSH1 0x14
000017cc: PUSH2 0x0100
000017cf: EXP
000017d0: DUP2
000017d1: SLOAD
000017d2: DUP2
000017d3: PUSH1 0xff
000017d5: MUL
000017d6: NOT
000017d7: AND
000017d8: SWAP1
000017d9: DUP4
000017da: ISZERO
000017db: ISZERO
000017dc: MUL
000017dd: OR
000017de: SWAP1
000017df: SSTORE
000017e0: POP
000017e1: JUMP
000017e2: JUMPDEST
000017e3: PUSH1 0x00
000017e5: DUP1
000017e6: SWAP1
000017e7: SLOAD
000017e8: SWAP1
000017e9: PUSH2 0x0100
000017ec: EXP
000017ed: SWAP1
000017ee: DIV
000017ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001804: AND
00001805: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000181a: AND
0000181b: CALLER
0000181c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001831: AND
00001832: EQ
00001833: ISZERO
00001834: ISZERO
00001835: PUSH2 0x183d
00001838: JUMPI
00001839: PUSH1 0x00
0000183b: DUP1
0000183c: REVERT
0000183d: JUMPDEST
0000183e: PUSH1 0x00
00001840: DUP2
00001841: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001856: AND
00001857: EQ
00001858: ISZERO
00001859: ISZERO
0000185a: ISZERO
0000185b: PUSH2 0x1863
0000185e: JUMPI
0000185f: PUSH1 0x00
00001861: DUP1
00001862: REVERT
00001863: JUMPDEST
00001864: DUP1
00001865: PUSH1 0x05
00001867: PUSH1 0x00
00001869: PUSH2 0x0100
0000186c: EXP
0000186d: DUP2
0000186e: SLOAD
0000186f: DUP2
00001870: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001885: MUL
00001886: NOT
00001887: AND
00001888: SWAP1
00001889: DUP4
0000188a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000189f: AND
000018a0: MUL
000018a1: OR
000018a2: SWAP1
000018a3: SSTORE
000018a4: POP
000018a5: POP
000018a6: JUMP
000018a7: JUMPDEST
000018a8: PUSH1 0x05
000018aa: PUSH1 0x00
000018ac: SWAP1
000018ad: SLOAD
000018ae: SWAP1
000018af: PUSH2 0x0100
000018b2: EXP
000018b3: SWAP1
000018b4: DIV
000018b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018ca: AND
000018cb: DUP2
000018cc: JUMP
000018cd: JUMPDEST
000018ce: PUSH1 0x01
000018d0: PUSH1 0x00
000018d2: SWAP1
000018d3: SLOAD
000018d4: SWAP1
000018d5: PUSH2 0x0100
000018d8: EXP
000018d9: SWAP1
000018da: DIV
000018db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018f0: AND
000018f1: DUP2
000018f2: JUMP
000018f3: JUMPDEST
000018f4: PUSH1 0x00
000018f6: DUP1
000018f7: SWAP1
000018f8: SLOAD
000018f9: SWAP1
000018fa: PUSH2 0x0100
000018fd: EXP
000018fe: SWAP1
000018ff: DIV
00001900: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001915: AND
00001916: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000192b: AND
0000192c: CALLER
0000192d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001942: AND
00001943: EQ
00001944: ISZERO
00001945: ISZERO
00001946: PUSH2 0x194e
00001949: JUMPI
0000194a: PUSH1 0x00
0000194c: DUP1
0000194d: REVERT
0000194e: JUMPDEST
0000194f: PUSH1 0x00
00001951: DUP2
00001952: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001967: AND
00001968: EQ
00001969: ISZERO
0000196a: ISZERO
0000196b: ISZERO
0000196c: PUSH2 0x1974
0000196f: JUMPI
00001970: PUSH1 0x00
00001972: DUP1
00001973: REVERT
00001974: JUMPDEST
00001975: DUP1
00001976: PUSH1 0x01
00001978: PUSH1 0x00
0000197a: PUSH2 0x0100
0000197d: EXP
0000197e: DUP2
0000197f: SLOAD
00001980: DUP2
00001981: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001996: MUL
00001997: NOT
00001998: AND
00001999: SWAP1
0000199a: DUP4
0000199b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019b0: AND
000019b1: MUL
000019b2: OR
000019b3: SWAP1
000019b4: SSTORE
000019b5: POP
000019b6: POP
000019b7: JUMP
000019b8: JUMPDEST
000019b9: PUSH20 0x949c9b8dff9b264cad57f69cd98eca1338f05b39
000019ce: DUP2
000019cf: JUMP
000019d0: JUMPDEST
000019d1: PUSH1 0x0f
000019d3: PUSH1 0x01
000019d5: SWAP1
000019d6: SLOAD
000019d7: SWAP1
000019d8: PUSH2 0x0100
000019db: EXP
000019dc: SWAP1
000019dd: DIV
000019de: PUSH1 0xff
000019e0: AND
000019e1: DUP2
000019e2: JUMP
000019e3: JUMPDEST
000019e4: PUSH1 0x00
000019e6: DUP1
000019e7: SWAP1
000019e8: SLOAD
000019e9: SWAP1
000019ea: PUSH2 0x0100
000019ed: EXP
000019ee: SWAP1
000019ef: DIV
000019f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a05: AND
00001a06: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a1b: AND
00001a1c: CALLER
00001a1d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a32: AND
00001a33: EQ
00001a34: ISZERO
00001a35: ISZERO
00001a36: PUSH2 0x1a3e
00001a39: JUMPI
00001a3a: PUSH1 0x00
00001a3c: DUP1
00001a3d: REVERT
00001a3e: JUMPDEST
00001a3f: PUSH1 0x0e
00001a41: SLOAD
00001a42: NUMBER
00001a43: LT
00001a44: ISZERO
00001a45: ISZERO
00001a46: ISZERO
00001a47: PUSH2 0x1a4f
00001a4a: JUMPI
00001a4b: PUSH1 0x00
00001a4d: DUP1
00001a4e: REVERT
00001a4f: JUMPDEST
00001a50: PUSH2 0x1a58
00001a53: DUP2
00001a54: PUSH2 0x1e0f
00001a57: JUMP
00001a58: JUMPDEST
00001a59: POP
00001a5a: JUMP
00001a5b: JUMPDEST
00001a5c: PUSH1 0x08
00001a5e: SLOAD
00001a5f: DUP2
00001a60: JUMP
00001a61: JUMPDEST
00001a62: PUSH1 0x03
00001a64: PUSH1 0x00
00001a66: SWAP1
00001a67: SLOAD
00001a68: SWAP1
00001a69: PUSH2 0x0100
00001a6c: EXP
00001a6d: SWAP1
00001a6e: DIV
00001a6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a84: AND
00001a85: DUP2
00001a86: JUMP
00001a87: JUMPDEST
00001a88: PUSH1 0x00
00001a8a: DUP1
00001a8b: DUP3
00001a8c: DUP5
00001a8d: MUL
00001a8e: SWAP1
00001a8f: POP
00001a90: PUSH1 0x00
00001a92: DUP5
00001a93: EQ
00001a94: DUP1
00001a95: PUSH2 0x1aa8
00001a98: JUMPI
00001a99: POP
00001a9a: DUP3
00001a9b: DUP5
00001a9c: DUP3
00001a9d: DUP2
00001a9e: ISZERO
00001a9f: ISZERO
00001aa0: PUSH2 0x1aa5
00001aa3: JUMPI
00001aa4: INVALID
00001aa5: JUMPDEST
00001aa6: DIV
00001aa7: EQ
00001aa8: JUMPDEST
00001aa9: ISZERO
00001aaa: ISZERO
00001aab: PUSH2 0x1ab0
00001aae: JUMPI
00001aaf: INVALID
00001ab0: JUMPDEST
00001ab1: DUP1
00001ab2: SWAP2
00001ab3: POP
00001ab4: POP
00001ab5: SWAP3
00001ab6: SWAP2
00001ab7: POP
00001ab8: POP
00001ab9: JUMP
00001aba: JUMPDEST
00001abb: PUSH1 0x00
00001abd: DUP1
00001abe: DUP3
00001abf: DUP5
00001ac0: DUP2
00001ac1: ISZERO
00001ac2: ISZERO
00001ac3: PUSH2 0x1ac8
00001ac6: JUMPI
00001ac7: INVALID
00001ac8: JUMPDEST
00001ac9: DIV
00001aca: SWAP1
00001acb: POP
00001acc: DUP1
00001acd: SWAP2
00001ace: POP
00001acf: POP
00001ad0: SWAP3
00001ad1: SWAP2
00001ad2: POP
00001ad3: POP
00001ad4: JUMP
00001ad5: JUMPDEST
00001ad6: PUSH1 0x00
00001ad8: PUSH10 0x010f0cf064dd59200000
00001ae3: CALLVALUE
00001ae4: LT
00001ae5: ISZERO
00001ae6: ISZERO
00001ae7: PUSH2 0x1b18
00001aea: JUMPI
00001aeb: PUSH2 0x1b11
00001aee: PUSH1 0x64
00001af0: PUSH2 0x1b03
00001af3: PUSH1 0x07
00001af5: DUP6
00001af6: PUSH2 0x1a87
00001af9: SWAP1
00001afa: SWAP2
00001afb: SWAP1
00001afc: PUSH4 0xffffffff
00001b01: AND
00001b02: JUMP
00001b03: JUMPDEST
00001b04: PUSH2 0x1aba
00001b07: SWAP1
00001b08: SWAP2
00001b09: SWAP1
00001b0a: PUSH4 0xffffffff
00001b0f: AND
00001b10: JUMP
00001b11: JUMPDEST
00001b12: SWAP1
00001b13: POP
00001b14: PUSH2 0x1c5e
00001b17: JUMP
00001b18: JUMPDEST
00001b19: PUSH9 0x6c6b935b8bbd400000
00001b23: CALLVALUE
00001b24: LT
00001b25: ISZERO
00001b26: ISZERO
00001b27: PUSH2 0x1b58
00001b2a: JUMPI
00001b2b: PUSH2 0x1b51
00001b2e: PUSH1 0x64
00001b30: PUSH2 0x1b43
00001b33: PUSH1 0x06
00001b35: DUP6
00001b36: PUSH2 0x1a87
00001b39: SWAP1
00001b3a: SWAP2
00001b3b: SWAP1
00001b3c: PUSH4 0xffffffff
00001b41: AND
00001b42: JUMP
00001b43: JUMPDEST
00001b44: PUSH2 0x1aba
00001b47: SWAP1
00001b48: SWAP2
00001b49: SWAP1
00001b4a: PUSH4 0xffffffff
00001b4f: AND
00001b50: JUMP
00001b51: JUMPDEST
00001b52: SWAP1
00001b53: POP
00001b54: PUSH2 0x1c5e
00001b57: JUMP
00001b58: JUMPDEST
00001b59: PUSH9 0x3635c9adc5dea00000
00001b63: CALLVALUE
00001b64: LT
00001b65: ISZERO
00001b66: ISZERO
00001b67: PUSH2 0x1b99
00001b6a: JUMPI
00001b6b: PUSH2 0x1b92
00001b6e: PUSH2 0x03e8
00001b71: PUSH2 0x1b84
00001b74: PUSH1 0x37
00001b76: DUP6
00001b77: PUSH2 0x1a87
00001b7a: SWAP1
00001b7b: SWAP2
00001b7c: SWAP1
00001b7d: PUSH4 0xffffffff
00001b82: AND
00001b83: JUMP
00001b84: JUMPDEST
00001b85: PUSH2 0x1aba
00001b88: SWAP1
00001b89: SWAP2
00001b8a: SWAP1
00001b8b: PUSH4 0xffffffff
00001b90: AND
00001b91: JUMP
00001b92: JUMPDEST
00001b93: SWAP1
00001b94: POP
00001b95: PUSH2 0x1c5e
00001b98: JUMP
00001b99: JUMPDEST
00001b9a: PUSH9 0x1b1ae4d6e2ef500000
00001ba4: CALLVALUE
00001ba5: LT
00001ba6: ISZERO
00001ba7: ISZERO
00001ba8: PUSH2 0x1bd9
00001bab: JUMPI
00001bac: PUSH2 0x1bd2
00001baf: PUSH1 0x64
00001bb1: PUSH2 0x1bc4
00001bb4: PUSH1 0x05
00001bb6: DUP6
00001bb7: PUSH2 0x1a87
00001bba: SWAP1
00001bbb: SWAP2
00001bbc: SWAP1
00001bbd: PUSH4 0xffffffff
00001bc2: AND
00001bc3: JUMP
00001bc4: JUMPDEST
00001bc5: PUSH2 0x1aba
00001bc8: SWAP1
00001bc9: SWAP2
00001bca: SWAP1
00001bcb: PUSH4 0xffffffff
00001bd0: AND
00001bd1: JUMP
00001bd2: JUMPDEST
00001bd3: SWAP1
00001bd4: POP
00001bd5: PUSH2 0x1c5e
00001bd8: JUMP
00001bd9: JUMPDEST
00001bda: PUSH9 0x0d8d726b7177a80000
00001be4: CALLVALUE
00001be5: LT
00001be6: ISZERO
00001be7: ISZERO
00001be8: PUSH2 0x1c19
00001beb: JUMPI
00001bec: PUSH2 0x1c12
00001bef: PUSH1 0x64
00001bf1: PUSH2 0x1c04
00001bf4: PUSH1 0x04
00001bf6: DUP6
00001bf7: PUSH2 0x1a87
00001bfa: SWAP1
00001bfb: SWAP2
00001bfc: SWAP1
00001bfd: PUSH4 0xffffffff
00001c02: AND
00001c03: JUMP
00001c04: JUMPDEST
00001c05: PUSH2 0x1aba
00001c08: SWAP1
00001c09: SWAP2
00001c0a: SWAP1
00001c0b: PUSH4 0xffffffff
00001c10: AND
00001c11: JUMP
00001c12: JUMPDEST
00001c13: SWAP1
00001c14: POP
00001c15: PUSH2 0x1c5e
00001c18: JUMP
00001c19: JUMPDEST
00001c1a: PUSH9 0x056bc75e2d63100000
00001c24: CALLVALUE
00001c25: LT
00001c26: ISZERO
00001c27: ISZERO
00001c28: PUSH2 0x1c59
00001c2b: JUMPI
00001c2c: PUSH2 0x1c52
00001c2f: PUSH1 0x64
00001c31: PUSH2 0x1c44
00001c34: PUSH1 0x03
00001c36: DUP6
00001c37: PUSH2 0x1a87
00001c3a: SWAP1
00001c3b: SWAP2
00001c3c: SWAP1
00001c3d: PUSH4 0xffffffff
00001c42: AND
00001c43: JUMP
00001c44: JUMPDEST
00001c45: PUSH2 0x1aba
00001c48: SWAP1
00001c49: SWAP2
00001c4a: SWAP1
00001c4b: PUSH4 0xffffffff
00001c50: AND
00001c51: JUMP
00001c52: JUMPDEST
00001c53: SWAP1
00001c54: POP
00001c55: PUSH2 0x1c5e
00001c58: JUMP
00001c59: JUMPDEST
00001c5a: PUSH1 0x00
00001c5c: SWAP1
00001c5d: POP
00001c5e: JUMPDEST
00001c5f: SWAP2
00001c60: SWAP1
00001c61: POP
00001c62: JUMP
00001c63: JUMPDEST
00001c64: PUSH1 0x00
00001c66: PUSH10 0x010f0cf064dd59200000
00001c71: CALLVALUE
00001c72: LT
00001c73: ISZERO
00001c74: ISZERO
00001c75: PUSH2 0x1ca6
00001c78: JUMPI
00001c79: PUSH2 0x1c9f
00001c7c: PUSH1 0x64
00001c7e: PUSH2 0x1c91
00001c81: PUSH1 0x14
00001c83: DUP6
00001c84: PUSH2 0x1a87
00001c87: SWAP1
00001c88: SWAP2
00001c89: SWAP1
00001c8a: PUSH4 0xffffffff
00001c8f: AND
00001c90: JUMP
00001c91: JUMPDEST
00001c92: PUSH2 0x1aba
00001c95: SWAP1
00001c96: SWAP2
00001c97: SWAP1
00001c98: PUSH4 0xffffffff
00001c9d: AND
00001c9e: JUMP
00001c9f: JUMPDEST
00001ca0: SWAP1
00001ca1: POP
00001ca2: PUSH2 0x1dec
00001ca5: JUMP
00001ca6: JUMPDEST
00001ca7: PUSH9 0x6c6b935b8bbd400000
00001cb1: CALLVALUE
00001cb2: LT
00001cb3: ISZERO
00001cb4: ISZERO
00001cb5: PUSH2 0x1ce6
00001cb8: JUMPI
00001cb9: PUSH2 0x1cdf
00001cbc: PUSH1 0x64
00001cbe: PUSH2 0x1cd1
00001cc1: PUSH1 0x0f
00001cc3: DUP6
00001cc4: PUSH2 0x1a87
00001cc7: SWAP1
00001cc8: SWAP2
00001cc9: SWAP1
00001cca: PUSH4 0xffffffff
00001ccf: AND
00001cd0: JUMP
00001cd1: JUMPDEST
00001cd2: PUSH2 0x1aba
00001cd5: SWAP1
00001cd6: SWAP2
00001cd7: SWAP1
00001cd8: PUSH4 0xffffffff
00001cdd: AND
00001cde: JUMP
00001cdf: JUMPDEST
00001ce0: SWAP1
00001ce1: POP
00001ce2: PUSH2 0x1dec
00001ce5: JUMP
00001ce6: JUMPDEST
00001ce7: PUSH9 0x3635c9adc5dea00000
00001cf1: CALLVALUE
00001cf2: LT
00001cf3: ISZERO
00001cf4: ISZERO
00001cf5: PUSH2 0x1d27
00001cf8: JUMPI
00001cf9: PUSH2 0x1d20
00001cfc: PUSH2 0x03e8
00001cff: PUSH2 0x1d12
00001d02: PUSH1 0x7d
00001d04: DUP6
00001d05: PUSH2 0x1a87
00001d08: SWAP1
00001d09: SWAP2
00001d0a: SWAP1
00001d0b: PUSH4 0xffffffff
00001d10: AND
00001d11: JUMP
00001d12: JUMPDEST
00001d13: PUSH2 0x1aba
00001d16: SWAP1
00001d17: SWAP2
00001d18: SWAP1
00001d19: PUSH4 0xffffffff
00001d1e: AND
00001d1f: JUMP
00001d20: JUMPDEST
00001d21: SWAP1
00001d22: POP
00001d23: PUSH2 0x1dec
00001d26: JUMP
00001d27: JUMPDEST
00001d28: PUSH9 0x1b1ae4d6e2ef500000
00001d32: CALLVALUE
00001d33: LT
00001d34: ISZERO
00001d35: ISZERO
00001d36: PUSH2 0x1d67
00001d39: JUMPI
00001d3a: PUSH2 0x1d60
00001d3d: PUSH1 0x64
00001d3f: PUSH2 0x1d52
00001d42: PUSH1 0x0a
00001d44: DUP6
00001d45: PUSH2 0x1a87
00001d48: SWAP1
00001d49: SWAP2
00001d4a: SWAP1
00001d4b: PUSH4 0xffffffff
00001d50: AND
00001d51: JUMP
00001d52: JUMPDEST
00001d53: PUSH2 0x1aba
00001d56: SWAP1
00001d57: SWAP2
00001d58: SWAP1
00001d59: PUSH4 0xffffffff
00001d5e: AND
00001d5f: JUMP
00001d60: JUMPDEST
00001d61: SWAP1
00001d62: POP
00001d63: PUSH2 0x1dec
00001d66: JUMP
00001d67: JUMPDEST
00001d68: PUSH9 0x0d8d726b7177a80000
00001d72: CALLVALUE
00001d73: LT
00001d74: ISZERO
00001d75: ISZERO
00001d76: PUSH2 0x1da7
00001d79: JUMPI
00001d7a: PUSH2 0x1da0
00001d7d: PUSH1 0x64
00001d7f: PUSH2 0x1d92
00001d82: PUSH1 0x07
00001d84: DUP6
00001d85: PUSH2 0x1a87
00001d88: SWAP1
00001d89: SWAP2
00001d8a: SWAP1
00001d8b: PUSH4 0xffffffff
00001d90: AND
00001d91: JUMP
00001d92: JUMPDEST
00001d93: PUSH2 0x1aba
00001d96: SWAP1
00001d97: SWAP2
00001d98: SWAP1
00001d99: PUSH4 0xffffffff
00001d9e: AND
00001d9f: JUMP
00001da0: JUMPDEST
00001da1: SWAP1
00001da2: POP
00001da3: PUSH2 0x1dec
00001da6: JUMP
00001da7: JUMPDEST
00001da8: PUSH9 0x056bc75e2d63100000
00001db2: CALLVALUE
00001db3: LT
00001db4: ISZERO
00001db5: ISZERO
00001db6: PUSH2 0x1de7
00001db9: JUMPI
00001dba: PUSH2 0x1de0
00001dbd: PUSH1 0x64
00001dbf: PUSH2 0x1dd2
00001dc2: PUSH1 0x05
00001dc4: DUP6
00001dc5: PUSH2 0x1a87
00001dc8: SWAP1
00001dc9: SWAP2
00001dca: SWAP1
00001dcb: PUSH4 0xffffffff
00001dd0: AND
00001dd1: JUMP
00001dd2: JUMPDEST
00001dd3: PUSH2 0x1aba
00001dd6: SWAP1
00001dd7: SWAP2
00001dd8: SWAP1
00001dd9: PUSH4 0xffffffff
00001dde: AND
00001ddf: JUMP
00001de0: JUMPDEST
00001de1: SWAP1
00001de2: POP
00001de3: PUSH2 0x1dec
00001de6: JUMP
00001de7: JUMPDEST
00001de8: PUSH1 0x00
00001dea: SWAP1
00001deb: POP
00001dec: JUMPDEST
00001ded: SWAP2
00001dee: SWAP1
00001def: POP
00001df0: JUMP
00001df1: JUMPDEST
00001df2: PUSH1 0x00
00001df4: DUP1
00001df5: DUP3
00001df6: DUP5
00001df7: ADD
00001df8: SWAP1
00001df9: POP
00001dfa: DUP4
00001dfb: DUP2
00001dfc: LT
00001dfd: ISZERO
00001dfe: ISZERO
00001dff: ISZERO
00001e00: PUSH2 0x1e05
00001e03: JUMPI
00001e04: INVALID
00001e05: JUMPDEST
00001e06: DUP1
00001e07: SWAP2
00001e08: POP
00001e09: POP
00001e0a: SWAP3
00001e0b: SWAP2
00001e0c: POP
00001e0d: POP
00001e0e: JUMP
00001e0f: JUMPDEST
00001e10: PUSH1 0x00
00001e12: DUP1
00001e13: SWAP1
00001e14: SLOAD
00001e15: SWAP1
00001e16: PUSH2 0x0100
00001e19: EXP
00001e1a: SWAP1
00001e1b: DIV
00001e1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e31: AND
00001e32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e47: AND
00001e48: CALLER
00001e49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e5e: AND
00001e5f: EQ
00001e60: ISZERO
00001e61: ISZERO
00001e62: PUSH2 0x1e6a
00001e65: JUMPI
00001e66: PUSH1 0x00
00001e68: DUP1
00001e69: REVERT
00001e6a: JUMPDEST
00001e6b: PUSH1 0x00
00001e6d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e82: AND
00001e83: DUP2
00001e84: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e99: AND
00001e9a: EQ
00001e9b: ISZERO
00001e9c: ISZERO
00001e9d: PUSH2 0x1ee1
00001ea0: JUMPI
00001ea1: DUP1
00001ea2: PUSH1 0x00
00001ea4: DUP1
00001ea5: PUSH2 0x0100
00001ea8: EXP
00001ea9: DUP2
00001eaa: SLOAD
00001eab: DUP2
00001eac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ec1: MUL
00001ec2: NOT
00001ec3: AND
00001ec4: SWAP1
00001ec5: DUP4
00001ec6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001edb: AND
00001edc: MUL
00001edd: OR
00001ede: SWAP1
00001edf: SSTORE
00001ee0: POP
00001ee1: JUMPDEST
00001ee2: POP
00001ee3: JUMP
00001ee4: STOP
00001ee5: LOG1
00001ee6: PUSH6 0x627a7a723058
00001eed: KECCAK256
00001eee: CALLDATASIZE
00001eef: ADDMOD
00001ef0: SWAP1
00001ef1: PUSH26 0xe299d7b64d08740fb8ce38154a6ade2b327e1590827c893046ad
00001f0c: EQ
00001f0d: SWAP11
00001f0e: STOP
00001f0f: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
medium oracle codex Centralized, unbounded price oracle can arbitrarily change token pricing 75 no
view
evidence_json
{
    "evidence": "`receiveEthPrice`/`receiveBtcPrice` only validate `> 0`, and `doPurchase` directly uses `ethUsdRate` to compute tokens.",
    "locations": [
        "contracts/Contract.sol:602",
        "contracts/Contract.sol:607",
        "contracts/Contract.sol:627"
    ],
    "recommendation": "Use a decentralized oracle or multi-sig-controlled updater with a timelock; add sanity bounds and rate-change limits; consider using a time-weighted average or requiring a minimum update interval.",
    "exploit_scenario": "If the `ethPriceProvider` (or owner who can replace it) is compromised, it can set `ethUsdRate` to an extreme value right before purchases. This lets a malicious buyer obtain far more tokens per ETH than intended (or block sales by setting a near-zero rate), impacting caps and allocations without any on-chain safeguards."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xe25a7b3c03e95b2e1d5d84ce4d8da068448a30a481b47f6bf5e5e0b647e84cd9
call_targets: 0xb3b33f59174f2ef62167770e4c9cabaa3879eb5d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xe25a7b3c03e95b2e1d5d84ce4d8da068448a30a481b47f6bf5e5e0b647e84cd9",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb3b33f59174f2ef62167770e4c9cabaa3879eb5d"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x083c6323",
            "selector": "0x083c6323",
            "calldata_variants": [
                "0x083c6323",
                "0x083c63230000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2b9edee9",
            "selector": "0x2b9edee9",
            "calldata_variants": [
                "0x2b9edee9",
                "0x2b9edee90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2be86e01",
            "selector": "0x2be86e01",
            "calldata_variants": [
                "0x2be86e01",
                "0x2be86e010000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3535ab2a",
            "selector": "0x3535ab2a",
            "calldata_variants": [
                "0x3535ab2a",
                "0x3535ab2a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38af3eed",
            "selector": "0x38af3eed",
            "calldata_variants": [
                "0x38af3eed",
                "0x38af3eed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3b478fc5",
            "selector": "0x3b478fc5",
            "calldata_variants": [
                "0x3b478fc5",
                "0x3b478fc50000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 632,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2763,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3436,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 8,
    "guards_detected": [
        {
            "pc": 4124,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4240,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5433,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5581,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5828,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6025,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6171,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6444,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6684,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7752,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 8
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xe25a7b3c03e95b2e1d5d84ce4d8da068448a30a481b47f6bf5e5e0b647e84cd9
call_targets: 0xb3b33f59174f2ef62167770e4c9cabaa3879eb5d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xe25a7b3c03e95b2e1d5d84ce4d8da068448a30a481b47f6bf5e5e0b647e84cd9",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb3b33f59174f2ef62167770e4c9cabaa3879eb5d"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x083c6323",
            "selector": "0x083c6323",
            "calldata_variants": [
                "0x083c6323",
                "0x083c63230000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2b9edee9",
            "selector": "0x2b9edee9",
            "calldata_variants": [
                "0x2b9edee9",
                "0x2b9edee90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2be86e01",
            "selector": "0x2be86e01",
            "calldata_variants": [
                "0x2be86e01",
                "0x2be86e010000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3535ab2a",
            "selector": "0x3535ab2a",
            "calldata_variants": [
                "0x3535ab2a",
                "0x3535ab2a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38af3eed",
            "selector": "0x38af3eed",
            "calldata_variants": [
                "0x38af3eed",
                "0x38af3eed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3b478fc5",
            "selector": "0x3b478fc5",
            "calldata_variants": [
                "0x3b478fc5",
                "0x3b478fc50000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 632,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2763,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3436,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 8,
    "guards_detected": [
        {
            "pc": 4124,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4240,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5433,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5581,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5828,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6025,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6171,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6444,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6684,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7752,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 6
}