019bab3b-ab0b-7271-88f2-a566c8ee7df8
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| 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 |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"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"]}]}
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
{
"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
}
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)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | oracle | codex | Centralized, unbounded price oracle can arbitrarily change token pricing | 75 | no | — |
viewevidence_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 |
viewtrace_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 |
viewtrace_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 | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 6
}
|