019be3d6-8519-73c1-9e7a-74e01936c865
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 |
|---|---|---|---|---|
| 41170 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 41171 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 41172 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 41173 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 41174 | capability.graph | complete | 1 / 3 | 2 months ago |
| 41175 | detector.run | complete | 1 / 3 | 2 months ago |
| 41176 | validation.fork | complete | 1 / 3 | 2 months ago |
| 41446 | report.consolidate | complete | 1 / 6 | 2 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode analysis shows two CALL sites with computed target/value and possible ETH transfer. Dynamic validation observed a constant target (self) in one trace, so risk depends on whether the target can vary in other paths.","findings":[{"severity":"medium","category":"reentrancy","title":"Computed CALL with ETH value may reach untrusted target","exploit_scenario":"If the CALL target/value are derived from user-controlled calldata or mutable storage, an attacker can trigger an external call with ETH to an arbitrary address and reenter before state is finalized, or redirect funds. The only observed validation trace showed the target constant to the contract itself (0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4), which would reduce risk, but bytecode-only evidence cannot confirm the target is always constant.","recommendation":"Constrain CALL target/value to trusted addresses (immutable/whitelist), add reentrancy protection around any state changes before/after the call, and check CALL success/returndata so failures cannot be ignored.","evidence":"CALL sites at pc 1670 and 1942 have target/value marked computed and returndata_checked=null; detector flags untrusted CALL + ETH value transfer possible; validation saw constant target but not confirmed.","locations":["pc:0x686","pc:0x796"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-a_tr5ixv
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019be4ab-6ad9-7c63-9986-3ac1ff5885d4
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.
Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.
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.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
thinking
**Reading BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-a_tr5ixv succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-a_tr5ixv succeeded in 14ms:
{
"analysis_artifact": {
"address": "0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4",
"artifact_hash": "0xd6c02e41ddacff46fa57e8f2817a8bf367f26b91db62b4ddc1bc84b7ffef2c76",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 12,
"hash": "0x3b678a566ed99b991171254f620dfebf3d843a8bbeff65936fc04155ae4fa07a",
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"CALLDATASIZE",
"LT",
"PUSH2",
thinking
**Mapping suspicious PC addresses**
I'm identifying locations in the large file related to highlighted program counters by searching for "pc": 1670 and 1942 with context, aiming to examine call site details around these points.
exec
/bin/bash -lc "rg -n \"\\\"pc\\\": 1670|\\\"pc\\\": 1942|call:1670|call:1942\" BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 26ms:
5940: "pc": 1670,
5947: "pc": 1942,
13863: "to": "call:1670",
13867: "from": "call:1670",
13873: "to": "call:1942",
13877: "from": "call:1942",
16173: "id": "call:1670",
16175: "pc": 1670,
16179: "id": "call:1942",
16181: "pc": 1942,
16329: "pc": 1670,
16336: "pc": 1942,
16374: "pc": 1670,
16381: "pc": 1942,
thinking
**Planning call graph edge extraction**
I'm aiming to gather evidence for call graph edges by extracting code snippets with line numbers and context using ripgrep or sed.
exec
/bin/bash -lc "sed -n '5900,6020p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 7ms:
"PUSH5",
"OP_22",
"SLT",
"SHA3",
"SUB",
"OP_9A",
"OP_BA",
"OP_C9",
"OP_4B",
"OP_27",
"OP_5E",
"OP_B1",
"OP_B7",
"OP_D6",
"OP_4A",
"CALLDATALOAD",
"OP_F9",
"OP_CD",
"NUMBER",
"CHAINID",
thinking
**Searching for basic block by start_pc**
exec
/bin/bash -lc "rg -n \"start_pc\":\\ 16.. BYTECODE_BUNDLE.json | head" in /tmp/codex-a_tr5ixv succeeded in 13ms:
thinking
**Adjusting search pattern with escapes**
exec
/bin/bash -lc "rg -n \"\\\"start_pc\\\": 16\" BYTECODE_BUNDLE.json | head" in /tmp/codex-a_tr5ixv succeeded in 10ms:
204: "start_pc": 167
2038: "start_pc": 1685
13992: "start_pc": 167,
14769: "start_pc": 1685,
thinking
**Investigating opcode context around specific start_pc**
I'm searching for "1670" with context in the basic block listing to locate opcodes around the needed start_pc near 1660–1670. This will help clarify the correct start_pc placement.
exec
/bin/bash -lc 'rg -n "1670" -C 2 BYTECODE_BUNDLE.json | head -n 40' in /tmp/codex-a_tr5ixv succeeded in 26ms:
5938- {
5939- "opcode": "CALL",
5940: "pc": 1670,
5941- "returndata_checked": null,
5942- "target_expression_category": "computed",
--
13861- {
13862- "from": "bb:1576",
13863: "to": "call:1670",
13864- "type": "contains"
13865- },
13866- {
13867: "from": "call:1670",
13868- "to": "sink:call",
13869- "type": "capability"
--
16171- },
16172- {
16173: "id": "call:1670",
16174- "opcode": "CALL",
thinking
**Searching for block details by ID**
exec
/bin/bash -lc 'rg -n "bb:1576" -C 2 BYTECODE_BUNDLE.json' in /tmp/codex-a_tr5ixv succeeded in 31ms:
6653- },
6654- {
6655: "from": "bb:1576",
6656- "to": "bb:1718",
6657- "type": "control_flow"
6658- },
6659- {
6660: "from": "bb:1576",
6661- "to": "bb:1685",
6662- "type": "control_flow_fallthrough"
--
12780- },
12781- {
12782: "from": "bb:1576",
12783- "to": "bb:1718",
12784- "type": "control_flow"
12785- },
12786- {
12787: "from": "bb:1576",
12788- "to": "bb:1685",
thinking
**Locating opcodes for specific block**
I'm checking around line 14740 to find opcodes for block 1576 in the basic_blocks list, aiming to identify the call details.
exec
/bin/bash -lc "sed -n '14740,14790p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 9ms:
"id": "bb:1501",
"start_pc": 1501,
"type": "basic_block"
},
{
"end_pc": 1544,
"hash": "0x15dc8651e5ecd7f26e87bb24d695aa733a51cb60e3d01e0e9911393e71e97fc8",
"id": "bb:1521",
"start_pc": 1521,
"type": "basic_block"
},
{
"end_pc": 1575,
"hash": "0xfaf595e2596bab0cf760e6bfd133e479c90c1fb451a3727a5e82a9531e8d8286",
"id": "bb:1545",
"start_pc": 1545,
"type": "basic_block"
},
{
"end_pc": 1684,
thinking
**Identifying opcode location**
The earlier section includes opcodes with start_pc and end_pc, so I'll search there for start_pc around 1576 to find relevant opcodes near pc 1670.
exec
/bin/bash -lc "rg -n \"\\\"start_pc\\\": 1576\" -C 3 BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 11ms:
2003- "PUSH2",
2004- "JUMPI"
2005- ],
2006: "start_pc": 1576
2007- },
2008- {
2009- "end_pc": 1717,
--
14759- "end_pc": 1684,
14760- "hash": "0x998c8f219902aaebf418c67633fb4c88c6396ea494af299b3166afce11f76711",
14761- "id": "bb:1576",
14762: "start_pc": 1576,
14763- "type": "basic_block"
14764- },
14765- {
thinking
**Identifying opcode block lines**
I'm focusing on extracting code between lines 1960 and 2020 to capture the block containing opcodes around line 1990.
exec
/bin/bash -lc "sed -n '1960,2035p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 25ms:
"ADD",
"OP_8A",
"OP_90",
"MSTORE",
"OP_81",
"ADD",
"OP_83",
"OP_90",
"MSTORE",
"PUSH1",
"ADD",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"OP_A1",
"PUSH1",
"MLOAD",
thinking
**Analyzing call and returndata checks**
I'm examining a CALL opcode followed by RETURNDATASIZE and conditional jump patterns that might indicate a return data check, but the semantics are unclear and detectors show no returndata_checked. The call target and value are computed dynamically, so next I'll locate and analyze related opcodes around program counters 1870–1980 to clarify how these are set.
exec
/bin/bash -lc "rg -n \"\\\"start_pc\\\": 19\" BYTECODE_BUNDLE.json | head -n 20" in /tmp/codex-a_tr5ixv succeeded in 7ms:
241: "start_pc": 194
2296: "start_pc": 1957
2307: "start_pc": 1990
2322: "start_pc": 1995
14013: "start_pc": 194,
14853: "start_pc": 1957,
14860: "start_pc": 1990,
14867: "start_pc": 1995,
thinking
**Exploring call location near opcode 1942**
I'm searching for opcode blocks and call instructions around PC 1942 to locate the relevant start_pc range and better understand the code execution flow nearby.
exec
/bin/bash -lc "sed -n '2200,2315p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 6ms:
"start_pc": 1833
},
{
"end_pc": 1956,
"hash": "0x27e3113cb29d10e055cef0ce1606473cfded9bff97b5a61129ee591076011c31",
"opcodes": [
"JUMPDEST",
"PUSH32",
"CALLER",
"PUSH1",
"OP_80",
"MLOAD",
"PUSH1",
"PUSH1",
"PUSH1",
"SHL",
"SUB",
"OP_90",
"OP_92",
"AND",
thinking
**Analyzing internal self-call for reentrancy**
The call at this block appears to be a CALL to the contract's own address, indicating a potential internal self-call that could trigger fallback or reentrancy if value is transferred and state updates follow. No delegatecall is involved, so reentrancy risk hinges on this self-call pattern.
thinking
**Clarifying self-call implications and access control**
The self-call uses CALL with nonzero value and call data possibly forwarding CALLER, likely enabling internal logic like fallback or ETH handling. This pattern can bypass "onlySelf" guards by setting msg.sender to the contract itself, posing a subtle reentrancy or access control risk if user-supplied data triggers privileged calls. No upgradeability or delegatecall adds confidence, but missing explicit guard detection means access control needs manual review.
exec
/bin/bash -lc 'rg -n "storage" BYTECODE_BUNDLE.json | head' in /tmp/codex-a_tr5ixv succeeded in 6ms:
7746: "storage": {
7940: "storage": {
8134: "storage": {
8328: "storage": {
8522: "storage": {
8716: "storage": {
8910: "storage": {
9104: "storage": {
9298: "storage": {
9492: "storage": {
thinking
**Inspecting storage slot entries**
I'm focusing on the storage entries around line 7700 to gather evidence about fallback or payable functions by examining storage slots, callsites, and detectors.
exec
/bin/bash -lc "sed -n '7700,7765p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 12ms:
{
"entry_pc": 1901074598,
"selector": "0x5ce37975"
},
{
"entry_pc": 2042253463,
"selector": "0x715018a6"
},
{
"entry_pc": null,
"selector": "0x79ba5097"
},
{
"entry_pc": 773487949,
"selector": "0x211f0036"
},
{
"entry_pc": 773717264,
"selector": "0x2e1a7d4d"
},
thinking
**Searching for functions with call sinks**
I'm focusing on identifying functions that have call sinks by searching for `"call":` values greater than zero, targeting functions like 0x96fafd9d for deeper inspection. Next, I'll pinpoint function selectors involved in calls and callsites.
exec
/bin/bash -lc "rg -n \"\\\"call\\\": [1-9]\" BYTECODE_BUNDLE.json | head -n 20" in /tmp/codex-a_tr5ixv succeeded in 12ms:
7741: "call": 2,
7935: "call": 2,
8129: "call": 2,
8323: "call": 2,
8517: "call": 2,
8711: "call": 2,
8905: "call": 2,
9099: "call": 2,
9293: "call": 2,
9487: "call": 2,
9681: "call": 2,
9875: "call": 2,
10069: "call": 2,
10263: "call": 2,
10457: "call": 2,
10651: "call": 2,
10845: "call": 2,
11039: "call": 2,
11233: "call": 2,
11427: "call": 2,
thinking
**Analyzing call patterns and potential risks**
Noticing many functions share two call sinks with constant targets equal to the contract itself suggests internal calls, possibly fallback or multicall patterns; though the presence of computed call targets hints at potential untrusted external calls needing further evidence to confirm risk.
thinking
**Highlighting uncertain dynamic call risks and missing revert checks**
The bytecode shows CALL with computed targets but observed constant targets during validation, making untrusted call risk uncertain; no clear reentrancy guard or explicit return-data checks on call success were detected, indicating a potential low-medium severity risk if call failures are ignored or reentrancy occurs.
exec
/bin/bash -lc 'rg -n "selectors" BYTECODE_BUNDLE.json | head' in /tmp/codex-a_tr5ixv succeeded in 8ms:
11809: "selectors": [
exec
/bin/bash -lc "sed -n '11809,11880p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 8ms:
"selectors": [
"0x96fafd9d",
"0xa677f982",
"0xd902dbc0",
"0xda26f12b",
"0xe30c3978",
"0xf2fde38b",
"0x7f847904",
"0x8456cb59",
"0x8a65d874",
"0x8da5cb5b",
"0x9695e195",
"0x51297ac5",
"0x5c975abb",
"0x5ce37975",
"0x715018a6",
"0x79ba5097",
"0x211f0036",
"0x2e1a7d4d",
"0x2e1dfd10",
thinking
**Analyzing function and detector details**
The selectors show 21 functions but only 2 detectors, indicating few findings. I’m focusing on identifying which functions use the external call by inspecting call graph edges and function details, while noting possible data repetition across functions that share similar sink and storage info.
thinking
**Detailing potential untrusted external calls**
The artifact shows multiple functions making CALL operations with computed targets and values, likely to itself or token contracts, posing medium-risk untrusted external call scenarios with possible reentrancy or authorization bypass. Evidence includes CALL opcodes at specific PCs, dynamic call target validation flagged as constant but unconfirmed, no reentrancy guards detected, and call data built using contract caller; findings will carefully note uncertainties and severity.
exec
/bin/bash -lc 'rg -n "fn:0x.*call:1670" BYTECODE_BUNDLE.json' in /tmp/codex-a_tr5ixv exited 1 in 16ms:
thinking
**Investigating edge usage**
I'm focusing on the "capability_edges" and inspecting code around line 13850 to understand how edges are used in calls.
exec
/bin/bash -lc "sed -n '13840,13880p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 20ms:
},
{
"from": "fn:0x2e1a7d4d",
"to": "bb:773717264",
"type": "entry"
},
{
"from": "fn:0x2e1dfd10",
"to": "bb:866629009",
"type": "entry"
},
{
"from": "fn:0x33a7b591",
"to": "bb:1061922874",
"type": "entry"
},
{
"from": "fn:0x3f4ba83a",
"to": "bb:0",
"type": "entry"
thinking
**Assessing call and success check logic**
Edges call to key blocks are identified, but mapping which functions reach them is complex; I'll focus on call sites and possible ETH transfer without clear guards, rating severity medium. Also, I’m decoding EVM opcodes to verify if there's a proper call success check after CALL but found the mapping inconclusive so far.
thinking
```json
{
"no_findings": false,
"summary": "Bytecode shows two CALL sites with computed target/value and possible ETH transfer; dynamic validation observed constant target (self), so risk depends on whether target can vary.",
"findings": [
{
"severity": "medium",
"category": "reentrancy",
"title": "Computed CALL with ETH value may reach untrusted target",
"exploit_scenario": "If the CALL target/value are derived from user-controlled calldata or mutable storage, an attacker can trigger an external call with ETH to an arbitrary address and reenter before state is finalized, or redirect funds. The only observed validation trace showed target constant to the contract itself (0x2c11...), which would reduce risk, but bytecode alone cannot confirm the target is always constant.",
"recommendation": "Constrain the CALL target/value to trusted addresses (e.g., immutable/whitelist), add reentrancy protection around any state changes before/after the call, and check the CALL success/returndata so failures cannot be ignored.",
"evidence": "Two CALL sites at pc 1670 and 1942 with target/value marked computed and returndata_checked=null; detector flags untrusted CALL + ETH value transfer possible; dynamic validation observed constant target 0x2c11... but not confirmed.",
"locations": ["pc:0x686", "pc:0x796"]
}
]
}
```
codex
{"no_findings":false,"summary":"Bytecode analysis shows two CALL sites with computed target/value and possible ETH transfer. Dynamic validation observed a constant target (self) in one trace, so risk depends on whether the target can vary in other paths.","findings":[{"severity":"medium","category":"reentrancy","title":"Computed CALL with ETH value may reach untrusted target","exploit_scenario":"If the CALL target/value are derived from user-controlled calldata or mutable storage, an attacker can trigger an external call with ETH to an arbitrary address and reenter before state is finalized, or redirect funds. The only observed validation trace showed the target constant to the contract itself (0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4), which would reduce risk, but bytecode-only evidence cannot confirm the target is always constant.","recommendation":"Constrain CALL target/value to trusted addresses (immutable/whitelist), add reentrancy protection around any state changes before/after the call, and check CALL success/returndata so failures cannot be ignored.","evidence":"CALL sites at pc 1670 and 1942 have target/value marked computed and returndata_checked=null; detector flags untrusted CALL + ETH value transfer possible; validation saw constant target but not confirmed.","locations":["pc:0x686","pc:0x796"]}]}
tokens used
37,152
{
"codex": {
"ran_at": "2026-01-22T07:50:00.650809+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 10772,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode analysis shows two CALL sites with computed target/value and possible ETH transfer. Dynamic validation observed a constant target (self) in one trace, so risk depends on whether the target can vary in other paths.",
"raw_final": {
"summary": "Bytecode analysis shows two CALL sites with computed target/value and possible ETH transfer. Dynamic validation observed a constant target (self) in one trace, so risk depends on whether the target can vary in other paths.",
"findings": [
{
"title": "Computed CALL with ETH value may reach untrusted target",
"category": "reentrancy",
"evidence": "CALL sites at pc 1670 and 1942 have target/value marked computed and returndata_checked=null; detector flags untrusted CALL + ETH value transfer possible; validation saw constant target but not confirmed.",
"severity": "medium",
"locations": [
"pc:0x686",
"pc:0x796"
],
"recommendation": "Constrain CALL target/value to trusted addresses (immutable/whitelist), add reentrancy protection around any state changes before/after the call, and check CALL success/returndata so failures cannot be ignored.",
"exploit_scenario": "If the CALL target/value are derived from user-controlled calldata or mutable storage, an attacker can trigger an external call with ETH to an arbitrary address and reenter before state is finalized, or redirect funds. The only observed validation trace showed the target constant to the contract itself (0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4), which would reduce risk, but bytecode-only evidence cannot confirm the target is always constant."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x012a 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x7f847904 00000019: GT 0000001a: PUSH2 0x00ab 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x96fafd9d 00000024: GT 00000025: PUSH2 0x006f 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x96fafd9d 0000002f: EQ 00000030: PUSH2 0x03c5 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xa677f982 0000003a: EQ 0000003b: PUSH2 0x03e2 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xd902dbc0 00000045: EQ 00000046: PUSH2 0x0402 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xda26f12b 00000050: EQ 00000051: PUSH2 0x0422 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xe30c3978 0000005b: EQ 0000005c: PUSH2 0x0438 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xf2fde38b 00000066: EQ 00000067: PUSH2 0x0456 0000006a: JUMPI 0000006b: PUSH1 0x00 0000006d: DUP1 0000006e: REVERT 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0x7f847904 00000076: EQ 00000077: PUSH2 0x02b6 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0x8456cb59 00000081: EQ 00000082: PUSH2 0x02c9 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0x8a65d874 0000008c: EQ 0000008d: PUSH2 0x02de 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0x8da5cb5b 00000097: EQ 00000098: PUSH2 0x0354 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0x9695e195 000000a2: EQ 000000a3: PUSH2 0x0386 000000a6: JUMPI 000000a7: PUSH1 0x00 000000a9: DUP1 000000aa: REVERT 000000ab: JUMPDEST 000000ac: DUP1 000000ad: PUSH4 0x51297ac5 000000b2: GT 000000b3: PUSH2 0x00f2 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x51297ac5 000000bd: EQ 000000be: PUSH2 0x01fb 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x5c975abb 000000c8: EQ 000000c9: PUSH2 0x021b 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0x5ce37975 000000d3: EQ 000000d4: PUSH2 0x0245 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0x715018a6 000000de: EQ 000000df: PUSH2 0x028c 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0x79ba5097 000000e9: EQ 000000ea: PUSH2 0x02a1 000000ed: JUMPI 000000ee: PUSH1 0x00 000000f0: DUP1 000000f1: REVERT 000000f2: JUMPDEST 000000f3: DUP1 000000f4: PUSH4 0x211f0036 000000f9: EQ 000000fa: PUSH2 0x012f 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0x2e1a7d4d 00000104: EQ 00000105: PUSH2 0x0151 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x2e1dfd10 0000010f: EQ 00000110: PUSH2 0x0171 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x33a7b591 0000011a: EQ 0000011b: PUSH2 0x01ab 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x3f4ba83a 00000125: EQ 00000126: PUSH2 0x01e6 00000129: JUMPI 0000012a: JUMPDEST 0000012b: PUSH1 0x00 0000012d: DUP1 0000012e: REVERT 0000012f: JUMPDEST 00000130: CALLVALUE 00000131: DUP1 00000132: ISZERO 00000133: PUSH2 0x013b 00000136: JUMPI 00000137: PUSH1 0x00 00000139: DUP1 0000013a: REVERT 0000013b: JUMPDEST 0000013c: POP 0000013d: PUSH2 0x014f 00000140: PUSH2 0x014a 00000143: CALLDATASIZE 00000144: PUSH1 0x04 00000146: PUSH2 0x1204 00000149: JUMP 0000014a: JUMPDEST 0000014b: PUSH2 0x0476 0000014e: JUMP 0000014f: JUMPDEST 00000150: STOP 00000151: JUMPDEST 00000152: CALLVALUE 00000153: DUP1 00000154: ISZERO 00000155: PUSH2 0x015d 00000158: JUMPI 00000159: PUSH1 0x00 0000015b: DUP1 0000015c: REVERT 0000015d: JUMPDEST 0000015e: POP 0000015f: PUSH2 0x014f 00000162: PUSH2 0x016c 00000165: CALLDATASIZE 00000166: PUSH1 0x04 00000168: PUSH2 0x124f 0000016b: JUMP 0000016c: JUMPDEST 0000016d: PUSH2 0x06e7 00000170: JUMP 00000171: JUMPDEST 00000172: CALLVALUE 00000173: DUP1 00000174: ISZERO 00000175: PUSH2 0x017d 00000178: JUMPI 00000179: PUSH1 0x00 0000017b: DUP1 0000017c: REVERT 0000017d: JUMPDEST 0000017e: POP 0000017f: PUSH1 0x06 00000181: SLOAD 00000182: PUSH1 0x07 00000184: SLOAD 00000185: PUSH2 0x018f 00000188: SWAP2 00000189: PUSH1 0xff 0000018b: AND 0000018c: SWAP1 0000018d: DUP3 0000018e: JUMP 0000018f: JUMPDEST 00000190: PUSH1 0x40 00000192: DUP1 00000193: MLOAD 00000194: SWAP3 00000195: ISZERO 00000196: ISZERO 00000197: DUP4 00000198: MSTORE 00000199: PUSH1 0x20 0000019b: DUP4 0000019c: ADD 0000019d: SWAP2 0000019e: SWAP1 0000019f: SWAP2 000001a0: MSTORE 000001a1: ADD 000001a2: JUMPDEST 000001a3: PUSH1 0x40 000001a5: MLOAD 000001a6: DUP1 000001a7: SWAP2 000001a8: SUB 000001a9: SWAP1 000001aa: RETURN 000001ab: JUMPDEST 000001ac: CALLVALUE 000001ad: DUP1 000001ae: ISZERO 000001af: PUSH2 0x01b7 000001b2: JUMPI 000001b3: PUSH1 0x00 000001b5: DUP1 000001b6: REVERT 000001b7: JUMPDEST 000001b8: POP 000001b9: PUSH2 0x01d8 000001bc: PUSH2 0x01c6 000001bf: CALLDATASIZE 000001c0: PUSH1 0x04 000001c2: PUSH2 0x1268 000001c5: JUMP 000001c6: JUMPDEST 000001c7: PUSH1 0x0b 000001c9: PUSH1 0x20 000001cb: MSTORE 000001cc: PUSH1 0x00 000001ce: SWAP1 000001cf: DUP2 000001d0: MSTORE 000001d1: PUSH1 0x40 000001d3: SWAP1 000001d4: KECCAK256 000001d5: SLOAD 000001d6: DUP2 000001d7: JUMP 000001d8: JUMPDEST 000001d9: PUSH1 0x40 000001db: MLOAD 000001dc: SWAP1 000001dd: DUP2 000001de: MSTORE 000001df: PUSH1 0x20 000001e1: ADD 000001e2: PUSH2 0x01a2 000001e5: JUMP 000001e6: JUMPDEST 000001e7: CALLVALUE 000001e8: DUP1 000001e9: ISZERO 000001ea: PUSH2 0x01f2 000001ed: JUMPI 000001ee: PUSH1 0x00 000001f0: DUP1 000001f1: REVERT 000001f2: JUMPDEST 000001f3: POP 000001f4: PUSH2 0x014f 000001f7: PUSH2 0x07f1 000001fa: JUMP 000001fb: JUMPDEST 000001fc: CALLVALUE 000001fd: DUP1 000001fe: ISZERO 000001ff: PUSH2 0x0207 00000202: JUMPI 00000203: PUSH1 0x00 00000205: DUP1 00000206: REVERT 00000207: JUMPDEST 00000208: POP 00000209: PUSH2 0x014f 0000020c: PUSH2 0x0216 0000020f: CALLDATASIZE 00000210: PUSH1 0x04 00000212: PUSH2 0x1291 00000215: JUMP 00000216: JUMPDEST 00000217: PUSH2 0x0803 0000021a: JUMP 0000021b: JUMPDEST 0000021c: CALLVALUE 0000021d: DUP1 0000021e: ISZERO 0000021f: PUSH2 0x0227 00000222: JUMPI 00000223: PUSH1 0x00 00000225: DUP1 00000226: REVERT 00000227: JUMPDEST 00000228: POP 00000229: PUSH1 0x01 0000022b: SLOAD 0000022c: PUSH1 0x01 0000022e: PUSH1 0xa0 00000230: SHL 00000231: SWAP1 00000232: DIV 00000233: PUSH1 0xff 00000235: AND 00000236: PUSH1 0x40 00000238: MLOAD 00000239: SWAP1 0000023a: ISZERO 0000023b: ISZERO 0000023c: DUP2 0000023d: MSTORE 0000023e: PUSH1 0x20 00000240: ADD 00000241: PUSH2 0x01a2 00000244: JUMP 00000245: JUMPDEST 00000246: CALLVALUE 00000247: DUP1 00000248: ISZERO 00000249: PUSH2 0x0251 0000024c: JUMPI 0000024d: PUSH1 0x00 0000024f: DUP1 00000250: REVERT 00000251: JUMPDEST 00000252: POP 00000253: PUSH2 0x0265 00000256: PUSH2 0x0260 00000259: CALLDATASIZE 0000025a: PUSH1 0x04 0000025c: PUSH2 0x124f 0000025f: JUMP 00000260: JUMPDEST 00000261: PUSH2 0x0855 00000264: JUMP 00000265: JUMPDEST 00000266: PUSH1 0x40 00000268: DUP1 00000269: MLOAD 0000026a: PUSH1 0x01 0000026c: PUSH1 0x01 0000026e: PUSH1 0x40 00000270: SHL 00000271: SUB 00000272: SWAP1 00000273: SWAP4 00000274: AND 00000275: DUP4 00000276: MSTORE 00000277: PUSH1 0x01 00000279: PUSH1 0x01 0000027b: PUSH1 0xa0 0000027d: SHL 0000027e: SUB 0000027f: SWAP1 00000280: SWAP2 00000281: AND 00000282: PUSH1 0x20 00000284: DUP4 00000285: ADD 00000286: MSTORE 00000287: ADD 00000288: PUSH2 0x01a2 0000028b: JUMP 0000028c: JUMPDEST 0000028d: CALLVALUE 0000028e: DUP1 0000028f: ISZERO 00000290: PUSH2 0x0298 00000293: JUMPI 00000294: PUSH1 0x00 00000296: DUP1 00000297: REVERT 00000298: JUMPDEST 00000299: POP 0000029a: PUSH2 0x014f 0000029d: PUSH2 0x0890 000002a0: JUMP 000002a1: JUMPDEST 000002a2: CALLVALUE 000002a3: DUP1 000002a4: ISZERO 000002a5: PUSH2 0x02ad 000002a8: JUMPI 000002a9: PUSH1 0x00 000002ab: DUP1 000002ac: REVERT 000002ad: JUMPDEST 000002ae: POP 000002af: PUSH2 0x014f 000002b2: PUSH2 0x08a2 000002b5: JUMP 000002b6: JUMPDEST 000002b7: PUSH2 0x014f 000002ba: PUSH2 0x02c4 000002bd: CALLDATASIZE 000002be: PUSH1 0x04 000002c0: PUSH2 0x12c5 000002c3: JUMP 000002c4: JUMPDEST 000002c5: PUSH2 0x08eb 000002c8: JUMP 000002c9: JUMPDEST 000002ca: CALLVALUE 000002cb: DUP1 000002cc: ISZERO 000002cd: PUSH2 0x02d5 000002d0: JUMPI 000002d1: PUSH1 0x00 000002d3: DUP1 000002d4: REVERT 000002d5: JUMPDEST 000002d6: POP 000002d7: PUSH2 0x014f 000002da: PUSH2 0x0ec7 000002dd: JUMP 000002de: JUMPDEST 000002df: CALLVALUE 000002e0: DUP1 000002e1: ISZERO 000002e2: PUSH2 0x02ea 000002e5: JUMPI 000002e6: PUSH1 0x00 000002e8: DUP1 000002e9: REVERT 000002ea: JUMPDEST 000002eb: POP 000002ec: PUSH2 0x032a 000002ef: PUSH2 0x02f9 000002f2: CALLDATASIZE 000002f3: PUSH1 0x04 000002f5: PUSH2 0x1268 000002f8: JUMP 000002f9: JUMPDEST 000002fa: PUSH1 0x0a 000002fc: PUSH1 0x20 000002fe: MSTORE 000002ff: PUSH1 0x00 00000301: SWAP1 00000302: DUP2 00000303: MSTORE 00000304: PUSH1 0x40 00000306: SWAP1 00000307: KECCAK256 00000308: SLOAD 00000309: PUSH1 0x01 0000030b: PUSH1 0x01 0000030d: PUSH1 0x40 0000030f: SHL 00000310: SUB 00000311: DUP1 00000312: DUP3 00000313: AND 00000314: SWAP2 00000315: PUSH1 0x01 00000317: PUSH1 0x40 00000319: SHL 0000031a: DUP2 0000031b: DIV 0000031c: DUP3 0000031d: AND 0000031e: SWAP2 0000031f: PUSH1 0x01 00000321: PUSH1 0x80 00000323: SHL 00000324: SWAP1 00000325: SWAP2 00000326: DIV 00000327: AND 00000328: DUP4 00000329: JUMP 0000032a: JUMPDEST 0000032b: PUSH1 0x40 0000032d: DUP1 0000032e: MLOAD 0000032f: PUSH1 0x01 00000331: PUSH1 0x01 00000333: PUSH1 0x40 00000335: SHL 00000336: SUB 00000337: SWAP5 00000338: DUP6 00000339: AND 0000033a: DUP2 0000033b: MSTORE 0000033c: SWAP3 0000033d: DUP5 0000033e: AND 0000033f: PUSH1 0x20 00000341: DUP5 00000342: ADD 00000343: MSTORE 00000344: SWAP3 00000345: AND 00000346: SWAP2 00000347: DUP2 00000348: ADD 00000349: SWAP2 0000034a: SWAP1 0000034b: SWAP2 0000034c: MSTORE 0000034d: PUSH1 0x60 0000034f: ADD 00000350: PUSH2 0x01a2 00000353: JUMP 00000354: JUMPDEST 00000355: CALLVALUE 00000356: DUP1 00000357: ISZERO 00000358: PUSH2 0x0360 0000035b: JUMPI 0000035c: PUSH1 0x00 0000035e: DUP1 0000035f: REVERT 00000360: JUMPDEST 00000361: POP 00000362: PUSH1 0x00 00000364: SLOAD 00000365: PUSH1 0x01 00000367: PUSH1 0x01 00000369: PUSH1 0xa0 0000036b: SHL 0000036c: SUB 0000036d: AND 0000036e: JUMPDEST 0000036f: PUSH1 0x40 00000371: MLOAD 00000372: PUSH1 0x01 00000374: PUSH1 0x01 00000376: PUSH1 0xa0 00000378: SHL 00000379: SUB 0000037a: SWAP1 0000037b: SWAP2 0000037c: AND 0000037d: DUP2 0000037e: MSTORE 0000037f: PUSH1 0x20 00000381: ADD 00000382: PUSH2 0x01a2 00000385: JUMP 00000386: JUMPDEST 00000387: CALLVALUE 00000388: DUP1 00000389: ISZERO 0000038a: PUSH2 0x0392 0000038d: JUMPI 0000038e: PUSH1 0x00 00000390: DUP1 00000391: REVERT 00000392: JUMPDEST 00000393: POP 00000394: PUSH1 0x03 00000396: SLOAD 00000397: PUSH1 0x04 00000399: SLOAD 0000039a: PUSH1 0x05 0000039c: SLOAD 0000039d: PUSH2 0x03a8 000003a0: SWAP3 000003a1: PUSH1 0xff 000003a3: AND 000003a4: SWAP2 000003a5: SWAP1 000003a6: DUP4 000003a7: JUMP 000003a8: JUMPDEST 000003a9: PUSH1 0x40 000003ab: DUP1 000003ac: MLOAD 000003ad: SWAP4 000003ae: ISZERO 000003af: ISZERO 000003b0: DUP5 000003b1: MSTORE 000003b2: PUSH1 0x20 000003b4: DUP5 000003b5: ADD 000003b6: SWAP3 000003b7: SWAP1 000003b8: SWAP3 000003b9: MSTORE 000003ba: SWAP1 000003bb: DUP3 000003bc: ADD 000003bd: MSTORE 000003be: PUSH1 0x60 000003c0: ADD 000003c1: PUSH2 0x01a2 000003c4: JUMP 000003c5: JUMPDEST 000003c6: CALLVALUE 000003c7: DUP1 000003c8: ISZERO 000003c9: PUSH2 0x03d1 000003cc: JUMPI 000003cd: PUSH1 0x00 000003cf: DUP1 000003d0: REVERT 000003d1: JUMPDEST 000003d2: POP 000003d3: PUSH2 0x01d8 000003d6: PUSH9 0x6c6b935b8bbd400000 000003e0: DUP2 000003e1: JUMP 000003e2: JUMPDEST 000003e3: CALLVALUE 000003e4: DUP1 000003e5: ISZERO 000003e6: PUSH2 0x03ee 000003e9: JUMPI 000003ea: PUSH1 0x00 000003ec: DUP1 000003ed: REVERT 000003ee: JUMPDEST 000003ef: POP 000003f0: PUSH2 0x0265 000003f3: PUSH2 0x03fd 000003f6: CALLDATASIZE 000003f7: PUSH1 0x04 000003f9: PUSH2 0x124f 000003fc: JUMP 000003fd: JUMPDEST 000003fe: PUSH2 0x0ed7 00000401: JUMP 00000402: JUMPDEST 00000403: CALLVALUE 00000404: DUP1 00000405: ISZERO 00000406: PUSH2 0x040e 00000409: JUMPI 0000040a: PUSH1 0x00 0000040c: DUP1 0000040d: REVERT 0000040e: JUMPDEST 0000040f: POP 00000410: PUSH2 0x014f 00000413: PUSH2 0x041d 00000416: CALLDATASIZE 00000417: PUSH1 0x04 00000419: PUSH2 0x133a 0000041c: JUMP 0000041d: JUMPDEST 0000041e: PUSH2 0x0ee7 00000421: JUMP 00000422: JUMPDEST 00000423: CALLVALUE 00000424: DUP1 00000425: ISZERO 00000426: PUSH2 0x042e 00000429: JUMPI 0000042a: PUSH1 0x00 0000042c: DUP1 0000042d: REVERT 0000042e: JUMPDEST 0000042f: POP 00000430: PUSH2 0x01d8 00000433: PUSH1 0x02 00000435: SLOAD 00000436: DUP2 00000437: JUMP 00000438: JUMPDEST 00000439: CALLVALUE 0000043a: DUP1 0000043b: ISZERO 0000043c: PUSH2 0x0444 0000043f: JUMPI 00000440: PUSH1 0x00 00000442: DUP1 00000443: REVERT 00000444: JUMPDEST 00000445: POP 00000446: PUSH1 0x01 00000448: SLOAD 00000449: PUSH1 0x01 0000044b: PUSH1 0x01 0000044d: PUSH1 0xa0 0000044f: SHL 00000450: SUB 00000451: AND 00000452: PUSH2 0x036e 00000455: JUMP 00000456: JUMPDEST 00000457: CALLVALUE 00000458: DUP1 00000459: ISZERO 0000045a: PUSH2 0x0462 0000045d: JUMPI 0000045e: PUSH1 0x00 00000460: DUP1 00000461: REVERT 00000462: JUMPDEST 00000463: POP 00000464: PUSH2 0x014f 00000467: PUSH2 0x0471 0000046a: CALLDATASIZE 0000046b: PUSH1 0x04 0000046d: PUSH2 0x1268 00000470: JUMP 00000471: JUMPDEST 00000472: PUSH2 0x0f2e 00000475: JUMP 00000476: JUMPDEST 00000477: PUSH2 0x047e 0000047a: PUSH2 0x0f9f 0000047d: JUMP 0000047e: JUMPDEST 0000047f: PUSH1 0x06 00000481: SLOAD 00000482: PUSH1 0xff 00000484: AND 00000485: ISZERO 00000486: DUP1 00000487: PUSH2 0x0490 0000048a: JUMPI 0000048b: POP 0000048c: PUSH1 0x07 0000048e: SLOAD 0000048f: ISZERO 00000490: JUMPDEST 00000491: DUP1 00000492: PUSH2 0x049b 00000495: JUMPI 00000496: POP 00000497: PUSH1 0x05 00000499: SLOAD 0000049a: ISZERO 0000049b: JUMPDEST 0000049c: ISZERO 0000049d: PUSH2 0x04b9 000004a0: JUMPI 000004a1: PUSH1 0x40 000004a3: MLOAD 000004a4: PUSH4 0x48b5b615 000004a9: PUSH1 0xe0 000004ab: SHL 000004ac: DUP2 000004ad: MSTORE 000004ae: PUSH1 0x04 000004b0: ADD 000004b1: PUSH1 0x40 000004b3: MLOAD 000004b4: DUP1 000004b5: SWAP2 000004b6: SUB 000004b7: SWAP1 000004b8: REVERT 000004b9: JUMPDEST 000004ba: PUSH1 0x00 000004bc: CALLER 000004bd: PUSH1 0x40 000004bf: DUP1 000004c0: MLOAD 000004c1: PUSH1 0x01 000004c3: PUSH1 0x01 000004c5: PUSH1 0xa0 000004c7: SHL 000004c8: SUB 000004c9: SWAP1 000004ca: SWAP3 000004cb: AND 000004cc: PUSH1 0x20 000004ce: DUP4 000004cf: ADD 000004d0: MSTORE 000004d1: DUP2 000004d2: ADD 000004d3: DUP6 000004d4: SWAP1 000004d5: MSTORE 000004d6: PUSH1 0x60 000004d8: ADD 000004d9: PUSH1 0x40 000004db: DUP1 000004dc: MLOAD 000004dd: PUSH1 0x1f 000004df: NOT 000004e0: DUP2 000004e1: DUP5 000004e2: SUB 000004e3: ADD 000004e4: DUP2 000004e5: MSTORE 000004e6: DUP3 000004e7: DUP3 000004e8: MSTORE 000004e9: DUP1 000004ea: MLOAD 000004eb: PUSH1 0x20 000004ed: SWAP2 000004ee: DUP3 000004ef: ADD 000004f0: KECCAK256 000004f1: SWAP1 000004f2: DUP4 000004f3: ADD 000004f4: MSTORE 000004f5: ADD 000004f6: PUSH1 0x40 000004f8: MLOAD 000004f9: PUSH1 0x20 000004fb: DUP2 000004fc: DUP4 000004fd: SUB 000004fe: SUB 000004ff: DUP2 00000500: MSTORE 00000501: SWAP1 00000502: PUSH1 0x40 00000504: MSTORE 00000505: DUP1 00000506: MLOAD 00000507: SWAP1 00000508: PUSH1 0x20 0000050a: ADD 0000050b: KECCAK256 0000050c: SWAP1 0000050d: POP 0000050e: PUSH2 0x054e 00000511: DUP4 00000512: DUP4 00000513: DUP1 00000514: DUP1 00000515: PUSH1 0x20 00000517: MUL 00000518: PUSH1 0x20 0000051a: ADD 0000051b: PUSH1 0x40 0000051d: MLOAD 0000051e: SWAP1 0000051f: DUP2 00000520: ADD 00000521: PUSH1 0x40 00000523: MSTORE 00000524: DUP1 00000525: SWAP4 00000526: SWAP3 00000527: SWAP2 00000528: SWAP1 00000529: DUP2 0000052a: DUP2 0000052b: MSTORE 0000052c: PUSH1 0x20 0000052e: ADD 0000052f: DUP4 00000530: DUP4 00000531: PUSH1 0x20 00000533: MUL 00000534: DUP1 00000535: DUP3 00000536: DUP5 00000537: CALLDATACOPY 00000538: PUSH1 0x00 0000053a: SWAP3 0000053b: ADD 0000053c: SWAP2 0000053d: SWAP1 0000053e: SWAP2 0000053f: MSTORE 00000540: POP 00000541: POP 00000542: PUSH1 0x07 00000544: SLOAD 00000545: SWAP2 00000546: POP 00000547: DUP5 00000548: SWAP1 00000549: POP 0000054a: PUSH2 0x0fca 0000054d: JUMP 0000054e: JUMPDEST 0000054f: PUSH2 0x056b 00000552: JUMPI 00000553: PUSH1 0x40 00000555: MLOAD 00000556: PUSH4 0x09bde339 0000055b: PUSH1 0xe0 0000055d: SHL 0000055e: DUP2 0000055f: MSTORE 00000560: PUSH1 0x04 00000562: ADD 00000563: PUSH1 0x40 00000565: MLOAD 00000566: DUP1 00000567: SWAP2 00000568: SUB 00000569: SWAP1 0000056a: REVERT 0000056b: JUMPDEST 0000056c: CALLER 0000056d: PUSH1 0x00 0000056f: SWAP1 00000570: DUP2 00000571: MSTORE 00000572: PUSH1 0x0b 00000574: PUSH1 0x20 00000576: MSTORE 00000577: PUSH1 0x40 00000579: SWAP1 0000057a: KECCAK256 0000057b: SLOAD 0000057c: ISZERO 0000057d: PUSH2 0x0599 00000580: JUMPI 00000581: PUSH1 0x40 00000583: MLOAD 00000584: PUSH4 0x19ea2647 00000589: PUSH1 0xe3 0000058b: SHL 0000058c: DUP2 0000058d: MSTORE 0000058e: PUSH1 0x04 00000590: ADD 00000591: PUSH1 0x40 00000593: MLOAD 00000594: DUP1 00000595: SWAP2 00000596: SUB 00000597: SWAP1 00000598: REVERT 00000599: JUMPDEST 0000059a: CALLER 0000059b: PUSH1 0x00 0000059d: SWAP1 0000059e: DUP2 0000059f: MSTORE 000005a0: PUSH1 0x0a 000005a2: PUSH1 0x20 000005a4: MSTORE 000005a5: PUSH1 0x40 000005a7: DUP2 000005a8: KECCAK256 000005a9: DUP1 000005aa: SLOAD 000005ab: SWAP1 000005ac: SWAP2 000005ad: SWAP1 000005ae: PUSH1 0x01 000005b0: PUSH1 0x01 000005b2: PUSH1 0x40 000005b4: SHL 000005b5: SUB 000005b6: PUSH1 0x01 000005b8: PUSH1 0x80 000005ba: SHL 000005bb: DUP3 000005bc: DIV 000005bd: DUP2 000005be: AND 000005bf: SWAP2 000005c0: PUSH2 0x05d3 000005c3: SWAP2 000005c4: PUSH1 0x01 000005c6: PUSH1 0x40 000005c8: SHL 000005c9: DUP3 000005ca: DIV 000005cb: DUP2 000005cc: AND 000005cd: SWAP2 000005ce: AND 000005cf: PUSH2 0x1362 000005d2: JUMP 000005d3: JUMPDEST 000005d4: PUSH2 0x05dd 000005d7: SWAP2 000005d8: SWAP1 000005d9: PUSH2 0x1362 000005dc: JUMP 000005dd: JUMPDEST 000005de: PUSH1 0x01 000005e0: PUSH1 0x01 000005e2: PUSH1 0x40 000005e4: SHL 000005e5: SUB 000005e6: AND 000005e7: SWAP1 000005e8: POP 000005e9: DUP1 000005ea: DUP7 000005eb: GT 000005ec: ISZERO 000005ed: PUSH2 0x0609 000005f0: JUMPI 000005f1: PUSH1 0x40 000005f3: MLOAD 000005f4: PUSH4 0x7809ca4b 000005f9: PUSH1 0xe0 000005fb: SHL 000005fc: DUP2 000005fd: MSTORE 000005fe: PUSH1 0x04 00000600: ADD 00000601: PUSH1 0x40 00000603: MLOAD 00000604: DUP1 00000605: SWAP2 00000606: SUB 00000607: SWAP1 00000608: REVERT 00000609: JUMPDEST 0000060a: CALLER 0000060b: PUSH1 0x00 0000060d: SWAP1 0000060e: DUP2 0000060f: MSTORE 00000610: PUSH1 0x0b 00000612: PUSH1 0x20 00000614: MSTORE 00000615: PUSH1 0x40 00000617: DUP2 00000618: KECCAK256 00000619: DUP8 0000061a: SWAP1 0000061b: SSTORE 0000061c: PUSH1 0x05 0000061e: SLOAD 0000061f: PUSH2 0x0628 00000622: SWAP1 00000623: DUP9 00000624: PUSH2 0x1389 00000627: JUMP 00000628: JUMPDEST 00000629: SWAP1 0000062a: POP 0000062b: PUSH32 0x17c1d890f3ffba4991a771a0b55802a1eff3159d0cce950fb68d1360530393d9 0000064c: CALLER 0000064d: PUSH1 0x40 0000064f: DUP1 00000650: MLOAD 00000651: PUSH1 0x01 00000653: PUSH1 0x01 00000655: PUSH1 0xa0 00000657: SHL 00000658: SUB 00000659: SWAP1 0000065a: SWAP3 0000065b: AND 0000065c: DUP3 0000065d: MSTORE 0000065e: PUSH1 0x20 00000660: DUP3 00000661: ADD 00000662: DUP11 00000663: SWAP1 00000664: MSTORE 00000665: DUP2 00000666: ADD 00000667: DUP4 00000668: SWAP1 00000669: MSTORE 0000066a: PUSH1 0x60 0000066c: ADD 0000066d: PUSH1 0x40 0000066f: MLOAD 00000670: DUP1 00000671: SWAP2 00000672: SUB 00000673: SWAP1 00000674: LOG1 00000675: PUSH1 0x40 00000677: MLOAD 00000678: PUSH1 0x00 0000067a: SWAP1 0000067b: CALLER 0000067c: SWAP1 0000067d: DUP4 0000067e: SWAP1 0000067f: DUP4 00000680: DUP2 00000681: DUP2 00000682: DUP2 00000683: DUP6 00000684: DUP8 00000685: GAS 00000686: CALL 00000687: SWAP3 00000688: POP 00000689: POP 0000068a: POP 0000068b: RETURNDATASIZE 0000068c: DUP1 0000068d: PUSH1 0x00 0000068f: DUP2 00000690: EQ 00000691: PUSH2 0x06b6 00000694: JUMPI 00000695: PUSH1 0x40 00000697: MLOAD 00000698: SWAP2 00000699: POP 0000069a: PUSH1 0x1f 0000069c: NOT 0000069d: PUSH1 0x3f 0000069f: RETURNDATASIZE 000006a0: ADD 000006a1: AND 000006a2: DUP3 000006a3: ADD 000006a4: PUSH1 0x40 000006a6: MSTORE 000006a7: RETURNDATASIZE 000006a8: DUP3 000006a9: MSTORE 000006aa: RETURNDATASIZE 000006ab: PUSH1 0x00 000006ad: PUSH1 0x20 000006af: DUP5 000006b0: ADD 000006b1: RETURNDATACOPY 000006b2: PUSH2 0x06bb 000006b5: JUMP 000006b6: JUMPDEST 000006b7: PUSH1 0x60 000006b9: SWAP2 000006ba: POP 000006bb: JUMPDEST 000006bc: POP 000006bd: POP 000006be: SWAP1 000006bf: POP 000006c0: DUP1 000006c1: PUSH2 0x06dd 000006c4: JUMPI 000006c5: PUSH1 0x40 000006c7: MLOAD 000006c8: PUSH4 0xf6a9b88f 000006cd: PUSH1 0xe0 000006cf: SHL 000006d0: DUP2 000006d1: MSTORE 000006d2: PUSH1 0x04 000006d4: ADD 000006d5: PUSH1 0x40 000006d7: MLOAD 000006d8: DUP1 000006d9: SWAP2 000006da: SUB 000006db: SWAP1 000006dc: REVERT 000006dd: JUMPDEST 000006de: POP 000006df: POP 000006e0: POP 000006e1: POP 000006e2: POP 000006e3: POP 000006e4: POP 000006e5: POP 000006e6: JUMP 000006e7: JUMPDEST 000006e8: PUSH2 0x06ef 000006eb: PUSH2 0x0fe0 000006ee: JUMP 000006ef: JUMPDEST 000006f0: DUP1 000006f1: PUSH1 0x02 000006f3: PUSH1 0x00 000006f5: DUP3 000006f6: DUP3 000006f7: SLOAD 000006f8: PUSH2 0x0701 000006fb: SWAP2 000006fc: SWAP1 000006fd: PUSH2 0x13a0 00000700: JUMP 00000701: JUMPDEST 00000702: SWAP1 00000703: SWAP2 00000704: SSTORE 00000705: POP 00000706: POP 00000707: PUSH1 0x02 00000709: SLOAD 0000070a: PUSH9 0x6c6b935b8bbd400000 00000714: LT 00000715: DUP1 00000716: ISZERO 00000717: PUSH2 0x0723 0000071a: JUMPI 0000071b: POP 0000071c: PUSH4 0x66acca40 00000721: TIMESTAMP 00000722: LT 00000723: JUMPDEST 00000724: ISZERO 00000725: PUSH2 0x0741 00000728: JUMPI 00000729: PUSH1 0x40 0000072b: MLOAD 0000072c: PUSH4 0x0b02de47 00000731: PUSH1 0xe3 00000733: SHL 00000734: DUP2 00000735: MSTORE 00000736: PUSH1 0x04 00000738: ADD 00000739: PUSH1 0x40 0000073b: MLOAD 0000073c: DUP1 0000073d: SWAP2 0000073e: SUB 0000073f: SWAP1 00000740: REVERT 00000741: JUMPDEST 00000742: PUSH32 0xddc398b321237a8d40ac914388309c2f52a08c134e4dc4ce61e32f57cb7d80f1 00000763: CALLER 00000764: PUSH1 0x40 00000766: DUP1 00000767: MLOAD 00000768: PUSH1 0x01 0000076a: PUSH1 0x01 0000076c: PUSH1 0xa0 0000076e: SHL 0000076f: SUB 00000770: SWAP1 00000771: SWAP3 00000772: AND 00000773: DUP3 00000774: MSTORE 00000775: PUSH1 0x20 00000777: DUP3 00000778: ADD 00000779: DUP5 0000077a: SWAP1 0000077b: MSTORE 0000077c: ADD 0000077d: PUSH1 0x40 0000077f: MLOAD 00000780: DUP1 00000781: SWAP2 00000782: SUB 00000783: SWAP1 00000784: LOG1 00000785: PUSH1 0x40 00000787: MLOAD 00000788: PUSH1 0x00 0000078a: SWAP1 0000078b: CALLER 0000078c: SWAP1 0000078d: DUP4 0000078e: SWAP1 0000078f: DUP4 00000790: DUP2 00000791: DUP2 00000792: DUP2 00000793: DUP6 00000794: DUP8 00000795: GAS 00000796: CALL 00000797: SWAP3 00000798: POP 00000799: POP 0000079a: POP 0000079b: RETURNDATASIZE 0000079c: DUP1 0000079d: PUSH1 0x00 0000079f: DUP2 000007a0: EQ 000007a1: PUSH2 0x07c6 000007a4: JUMPI 000007a5: PUSH1 0x40 000007a7: MLOAD 000007a8: SWAP2 000007a9: POP 000007aa: PUSH1 0x1f 000007ac: NOT 000007ad: PUSH1 0x3f 000007af: RETURNDATASIZE 000007b0: ADD 000007b1: AND 000007b2: DUP3 000007b3: ADD 000007b4: PUSH1 0x40 000007b6: MSTORE 000007b7: RETURNDATASIZE 000007b8: DUP3 000007b9: MSTORE 000007ba: RETURNDATASIZE 000007bb: PUSH1 0x00 000007bd: PUSH1 0x20 000007bf: DUP5 000007c0: ADD 000007c1: RETURNDATACOPY 000007c2: PUSH2 0x07cb 000007c5: JUMP 000007c6: JUMPDEST 000007c7: PUSH1 0x60 000007c9: SWAP2 000007ca: POP 000007cb: JUMPDEST 000007cc: POP 000007cd: POP 000007ce: SWAP1 000007cf: POP 000007d0: DUP1 000007d1: PUSH2 0x07ed 000007d4: JUMPI 000007d5: PUSH1 0x40 000007d7: MLOAD 000007d8: PUSH4 0xf6a9b88f 000007dd: PUSH1 0xe0 000007df: SHL 000007e0: DUP2 000007e1: MSTORE 000007e2: PUSH1 0x04 000007e4: ADD 000007e5: PUSH1 0x40 000007e7: MLOAD 000007e8: DUP1 000007e9: SWAP2 000007ea: SUB 000007eb: SWAP1 000007ec: REVERT 000007ed: JUMPDEST 000007ee: POP 000007ef: POP 000007f0: JUMP 000007f1: JUMPDEST 000007f2: PUSH2 0x07f9 000007f5: PUSH2 0x0fe0 000007f8: JUMP 000007f9: JUMPDEST 000007fa: PUSH2 0x0801 000007fd: PUSH2 0x100d 00000800: JUMP 00000801: JUMPDEST 00000802: JUMP 00000803: JUMPDEST 00000804: PUSH2 0x080b 00000807: PUSH2 0x0fe0 0000080a: JUMP 0000080b: JUMPDEST 0000080c: DUP1 0000080d: PUSH1 0x06 0000080f: PUSH2 0x0818 00000812: DUP3 00000813: DUP3 00000814: PUSH2 0x13c1 00000817: JUMP 00000818: JUMPDEST 00000819: SWAP1 0000081a: POP 0000081b: POP 0000081c: PUSH32 0x50082b757c6e0e65b6af717287bfa4309f68d901e96f180bfe457e67be23a1e8 0000083d: DUP2 0000083e: PUSH1 0x40 00000840: MLOAD 00000841: PUSH2 0x084a 00000844: SWAP2 00000845: SWAP1 00000846: PUSH2 0x13ea 00000849: JUMP 0000084a: JUMPDEST 0000084b: PUSH1 0x40 0000084d: MLOAD 0000084e: DUP1 0000084f: SWAP2 00000850: SUB 00000851: SWAP1 00000852: LOG1 00000853: POP 00000854: JUMP 00000855: JUMPDEST 00000856: PUSH1 0x08 00000858: DUP2 00000859: DUP2 0000085a: SLOAD 0000085b: DUP2 0000085c: LT 0000085d: PUSH2 0x0865 00000860: JUMPI 00000861: PUSH1 0x00 00000863: DUP1 00000864: REVERT 00000865: JUMPDEST 00000866: PUSH1 0x00 00000868: SWAP2 00000869: DUP3 0000086a: MSTORE 0000086b: PUSH1 0x20 0000086d: SWAP1 0000086e: SWAP2 0000086f: KECCAK256 00000870: ADD 00000871: SLOAD 00000872: PUSH1 0x01 00000874: PUSH1 0x01 00000876: PUSH1 0x40 00000878: SHL 00000879: SUB 0000087a: DUP2 0000087b: AND 0000087c: SWAP2 0000087d: POP 0000087e: PUSH1 0x01 00000880: PUSH1 0x40 00000882: SHL 00000883: SWAP1 00000884: DIV 00000885: PUSH1 0x01 00000887: PUSH1 0x01 00000889: PUSH1 0xa0 0000088b: SHL 0000088c: SUB 0000088d: AND 0000088e: DUP3 0000088f: JUMP 00000890: JUMPDEST 00000891: PUSH2 0x0898 00000894: PUSH2 0x0fe0 00000897: JUMP 00000898: JUMPDEST 00000899: PUSH2 0x0801 0000089c: PUSH1 0x00 0000089e: PUSH2 0x1062 000008a1: JUMP 000008a2: JUMPDEST 000008a3: PUSH1 0x01 000008a5: SLOAD 000008a6: CALLER 000008a7: SWAP1 000008a8: PUSH1 0x01 000008aa: PUSH1 0x01 000008ac: PUSH1 0xa0 000008ae: SHL 000008af: SUB 000008b0: AND 000008b1: DUP2 000008b2: EQ 000008b3: PUSH2 0x08df 000008b6: JUMPI 000008b7: PUSH1 0x40 000008b9: MLOAD 000008ba: PUSH4 0x118cdaa7 000008bf: PUSH1 0xe0 000008c1: SHL 000008c2: DUP2 000008c3: MSTORE 000008c4: PUSH1 0x01 000008c6: PUSH1 0x01 000008c8: PUSH1 0xa0 000008ca: SHL 000008cb: SUB 000008cc: DUP3 000008cd: AND 000008ce: PUSH1 0x04 000008d0: DUP3 000008d1: ADD 000008d2: MSTORE 000008d3: PUSH1 0x24 000008d5: ADD 000008d6: JUMPDEST 000008d7: PUSH1 0x40 000008d9: MLOAD 000008da: DUP1 000008db: SWAP2 000008dc: SUB 000008dd: SWAP1 000008de: REVERT 000008df: JUMPDEST 000008e0: PUSH2 0x08e8 000008e3: DUP2 000008e4: PUSH2 0x1062 000008e7: JUMP 000008e8: JUMPDEST 000008e9: POP 000008ea: JUMP 000008eb: JUMPDEST 000008ec: PUSH2 0x08f3 000008ef: PUSH2 0x0f9f 000008f2: JUMP 000008f3: JUMPDEST 000008f4: PUSH1 0x03 000008f6: SLOAD 000008f7: PUSH1 0xff 000008f9: AND 000008fa: ISZERO 000008fb: DUP1 000008fc: PUSH2 0x0905 000008ff: JUMPI 00000900: POP 00000901: PUSH1 0x04 00000903: SLOAD 00000904: ISZERO 00000905: JUMPDEST 00000906: DUP1 00000907: PUSH2 0x0910 0000090a: JUMPI 0000090b: POP 0000090c: PUSH1 0x05 0000090e: SLOAD 0000090f: ISZERO 00000910: JUMPDEST 00000911: ISZERO 00000912: PUSH2 0x092e 00000915: JUMPI 00000916: PUSH1 0x40 00000918: MLOAD 00000919: PUSH4 0x050d584d 0000091e: PUSH1 0xe2 00000920: SHL 00000921: DUP2 00000922: MSTORE 00000923: PUSH1 0x04 00000925: ADD 00000926: PUSH1 0x40 00000928: MLOAD 00000929: DUP1 0000092a: SWAP2 0000092b: SUB 0000092c: SWAP1 0000092d: REVERT 0000092e: JUMPDEST 0000092f: PUSH1 0x00 00000931: DUP5 00000932: PUSH1 0x01 00000934: PUSH1 0x01 00000936: PUSH1 0x40 00000938: SHL 00000939: SUB 0000093a: AND 0000093b: GT 0000093c: DUP1 0000093d: PUSH2 0x094f 00000940: JUMPI 00000941: POP 00000942: PUSH1 0x00 00000944: DUP4 00000945: PUSH1 0x01 00000947: PUSH1 0x01 00000949: PUSH1 0x40 0000094b: SHL 0000094c: SUB 0000094d: AND 0000094e: GT 0000094f: JUMPDEST 00000950: ISZERO 00000951: PUSH2 0x0a1c 00000954: JUMPI 00000955: PUSH1 0x00 00000957: CALLER 00000958: PUSH1 0x40 0000095a: DUP1 0000095b: MLOAD 0000095c: PUSH1 0x01 0000095e: PUSH1 0x01 00000960: PUSH1 0xa0 00000962: SHL 00000963: SUB 00000964: SWAP1 00000965: SWAP3 00000966: AND 00000967: PUSH1 0x20 00000969: DUP4 0000096a: ADD 0000096b: MSTORE 0000096c: PUSH1 0x01 0000096e: PUSH1 0x01 00000970: PUSH1 0x40 00000972: SHL 00000973: SUB 00000974: DUP1 00000975: DUP9 00000976: AND 00000977: SWAP2 00000978: DUP4 00000979: ADD 0000097a: SWAP2 0000097b: SWAP1 0000097c: SWAP2 0000097d: MSTORE 0000097e: DUP6 0000097f: AND 00000980: PUSH1 0x60 00000982: DUP3 00000983: ADD 00000984: MSTORE 00000985: PUSH1 0x80 00000987: ADD 00000988: PUSH1 0x40 0000098a: DUP1 0000098b: MLOAD 0000098c: PUSH1 0x1f 0000098e: NOT 0000098f: DUP2 00000990: DUP5 00000991: SUB 00000992: ADD 00000993: DUP2 00000994: MSTORE 00000995: DUP3 00000996: DUP3 00000997: MSTORE 00000998: DUP1 00000999: MLOAD 0000099a: PUSH1 0x20 0000099c: SWAP2 0000099d: DUP3 0000099e: ADD 0000099f: KECCAK256 000009a0: SWAP1 000009a1: DUP4 000009a2: ADD 000009a3: MSTORE 000009a4: ADD 000009a5: PUSH1 0x40 000009a7: MLOAD 000009a8: PUSH1 0x20 000009aa: DUP2 000009ab: DUP4 000009ac: SUB 000009ad: SUB 000009ae: DUP2 000009af: MSTORE 000009b0: SWAP1 000009b1: PUSH1 0x40 000009b3: MSTORE 000009b4: DUP1 000009b5: MLOAD 000009b6: SWAP1 000009b7: PUSH1 0x20 000009b9: ADD 000009ba: KECCAK256 000009bb: SWAP1 000009bc: POP 000009bd: PUSH2 0x09fd 000009c0: DUP4 000009c1: DUP4 000009c2: DUP1 000009c3: DUP1 000009c4: PUSH1 0x20 000009c6: MUL 000009c7: PUSH1 0x20 000009c9: ADD 000009ca: PUSH1 0x40 000009cc: MLOAD 000009cd: SWAP1 000009ce: DUP2 000009cf: ADD 000009d0: PUSH1 0x40 000009d2: MSTORE 000009d3: DUP1 000009d4: SWAP4 000009d5: SWAP3 000009d6: SWAP2 000009d7: SWAP1 000009d8: DUP2 000009d9: DUP2 000009da: MSTORE 000009db: PUSH1 0x20 000009dd: ADD 000009de: DUP4 000009df: DUP4 000009e0: PUSH1 0x20 000009e2: MUL 000009e3: DUP1 000009e4: DUP3 000009e5: DUP5 000009e6: CALLDATACOPY 000009e7: PUSH1 0x00 000009e9: SWAP3 000009ea: ADD 000009eb: SWAP2 000009ec: SWAP1 000009ed: SWAP2 000009ee: MSTORE 000009ef: POP 000009f0: POP 000009f1: PUSH1 0x04 000009f3: SLOAD 000009f4: SWAP2 000009f5: POP 000009f6: DUP5 000009f7: SWAP1 000009f8: POP 000009f9: PUSH2 0x0fca 000009fc: JUMP 000009fd: JUMPDEST 000009fe: PUSH2 0x0a1a 00000a01: JUMPI 00000a02: PUSH1 0x40 00000a04: MLOAD 00000a05: PUSH4 0x09bde339 00000a0a: PUSH1 0xe0 00000a0c: SHL 00000a0d: DUP2 00000a0e: MSTORE 00000a0f: PUSH1 0x04 00000a11: ADD 00000a12: PUSH1 0x40 00000a14: MLOAD 00000a15: DUP1 00000a16: SWAP2 00000a17: SUB 00000a18: SWAP1 00000a19: REVERT 00000a1a: JUMPDEST 00000a1b: POP 00000a1c: JUMPDEST 00000a1d: PUSH1 0x05 00000a1f: SLOAD 00000a20: CALLVALUE 00000a21: SWAP1 00000a22: PUSH2 0x0a35 00000a25: SWAP1 00000a26: PUSH1 0x01 00000a28: PUSH1 0x01 00000a2a: PUSH1 0x40 00000a2c: SHL 00000a2d: SUB 00000a2e: DUP9 00000a2f: AND 00000a30: SWAP1 00000a31: PUSH2 0x1389 00000a34: JUMP 00000a35: JUMPDEST 00000a36: EQ 00000a37: ISZERO 00000a38: DUP1 00000a39: PUSH2 0x0a49 00000a3c: JUMPI 00000a3d: POP 00000a3e: PUSH1 0x01 00000a40: PUSH1 0x01 00000a42: PUSH1 0x40 00000a44: SHL 00000a45: SUB 00000a46: DUP6 00000a47: AND 00000a48: ISZERO 00000a49: JUMPDEST 00000a4a: ISZERO 00000a4b: PUSH2 0x0a67 00000a4e: JUMPI 00000a4f: PUSH1 0x40 00000a51: MLOAD 00000a52: PUSH4 0x356680b7 00000a57: PUSH1 0xe0 00000a59: SHL 00000a5a: DUP2 00000a5b: MSTORE 00000a5c: PUSH1 0x04 00000a5e: ADD 00000a5f: PUSH1 0x40 00000a61: MLOAD 00000a62: DUP1 00000a63: SWAP2 00000a64: SUB 00000a65: SWAP1 00000a66: REVERT 00000a67: JUMPDEST 00000a68: CALLER 00000a69: PUSH1 0x00 00000a6b: SWAP1 00000a6c: DUP2 00000a6d: MSTORE 00000a6e: PUSH1 0x0a 00000a70: PUSH1 0x20 00000a72: MSTORE 00000a73: PUSH1 0x40 00000a75: DUP2 00000a76: KECCAK256 00000a77: DUP1 00000a78: SLOAD 00000a79: SWAP1 00000a7a: SWAP2 00000a7b: DUP8 00000a7c: SWAP2 00000a7d: PUSH1 0x01 00000a7f: PUSH1 0x01 00000a81: PUSH1 0x40 00000a83: SHL 00000a84: SUB 00000a85: SWAP1 00000a86: DUP2 00000a87: AND 00000a88: SWAP1 00000a89: DUP9 00000a8a: AND 00000a8b: GT 00000a8c: PUSH2 0x0a96 00000a8f: JUMPI 00000a90: PUSH1 0x00 00000a92: PUSH2 0x0aab 00000a95: JUMP 00000a96: JUMPDEST 00000a97: DUP3 00000a98: SLOAD 00000a99: PUSH2 0x0aab 00000a9c: SWAP1 00000a9d: PUSH1 0x01 00000a9f: PUSH1 0x01 00000aa1: PUSH1 0x40 00000aa3: SHL 00000aa4: SUB 00000aa5: AND 00000aa6: DUP9 00000aa7: PUSH2 0x140f 00000aaa: JUMP 00000aab: JUMPDEST 00000aac: DUP4 00000aad: SLOAD 00000aae: SWAP1 00000aaf: SWAP2 00000ab0: POP 00000ab1: PUSH1 0x00 00000ab3: SWAP1 00000ab4: PUSH1 0x01 00000ab6: PUSH1 0x01 00000ab8: PUSH1 0x40 00000aba: SHL 00000abb: SUB 00000abc: PUSH1 0x01 00000abe: PUSH1 0x40 00000ac0: SHL 00000ac1: SWAP1 00000ac2: SWAP2 00000ac3: DIV 00000ac4: DUP2 00000ac5: AND 00000ac6: SWAP1 00000ac7: DUP9 00000ac8: AND 00000ac9: GT 00000aca: PUSH2 0x0ad4 00000acd: JUMPI 00000ace: PUSH1 0x00 00000ad0: PUSH2 0x0af0 00000ad3: JUMP 00000ad4: JUMPDEST 00000ad5: DUP4 00000ad6: SLOAD 00000ad7: PUSH2 0x0af0 00000ada: SWAP1 00000adb: PUSH1 0x01 00000add: PUSH1 0x40 00000adf: SHL 00000ae0: SWAP1 00000ae1: DIV 00000ae2: PUSH1 0x01 00000ae4: PUSH1 0x01 00000ae6: PUSH1 0x40 00000ae8: SHL 00000ae9: SUB 00000aea: AND 00000aeb: DUP9 00000aec: PUSH2 0x140f 00000aef: JUMP 00000af0: JUMPDEST 00000af1: SWAP1 00000af2: POP 00000af3: PUSH1 0x00 00000af5: DUP1 00000af6: DUP1 00000af7: PUSH1 0x01 00000af9: PUSH1 0x01 00000afb: PUSH1 0x40 00000afd: SHL 00000afe: SUB 00000aff: DUP6 00000b00: AND 00000b01: ISZERO 00000b02: PUSH2 0x0b7a 00000b05: JUMPI 00000b06: DUP12 00000b07: PUSH1 0x01 00000b09: PUSH1 0x01 00000b0b: PUSH1 0x40 00000b0d: SHL 00000b0e: SUB 00000b0f: AND 00000b10: DUP6 00000b11: PUSH1 0x01 00000b13: PUSH1 0x01 00000b15: PUSH1 0x40 00000b17: SHL 00000b18: SUB 00000b19: AND 00000b1a: LT 00000b1b: PUSH2 0x0b28 00000b1e: JUMPI 00000b1f: PUSH1 0x00 00000b21: SWAP12 00000b22: SWAP3 00000b23: POP 00000b24: PUSH2 0x0b38 00000b27: JUMP 00000b28: JUMPDEST 00000b29: DUP5 00000b2a: SWAP3 00000b2b: POP 00000b2c: PUSH2 0x0b35 00000b2f: DUP4 00000b30: DUP14 00000b31: PUSH2 0x140f 00000b34: JUMP 00000b35: JUMPDEST 00000b36: SWAP12 00000b37: POP 00000b38: JUMPDEST 00000b39: DUP7 00000b3a: SLOAD 00000b3b: DUP4 00000b3c: SWAP1 00000b3d: DUP9 00000b3e: SWAP1 00000b3f: PUSH1 0x00 00000b41: SWAP1 00000b42: PUSH2 0x0b55 00000b45: SWAP1 00000b46: DUP5 00000b47: SWAP1 00000b48: PUSH1 0x01 00000b4a: PUSH1 0x01 00000b4c: PUSH1 0x40 00000b4e: SHL 00000b4f: SUB 00000b50: AND 00000b51: PUSH2 0x1362 00000b54: JUMP 00000b55: JUMPDEST 00000b56: SWAP3 00000b57: POP 00000b58: PUSH2 0x0100 00000b5b: EXP 00000b5c: DUP2 00000b5d: SLOAD 00000b5e: DUP2 00000b5f: PUSH1 0x01 00000b61: PUSH1 0x01 00000b63: PUSH1 0x40 00000b65: SHL 00000b66: SUB 00000b67: MUL 00000b68: NOT 00000b69: AND 00000b6a: SWAP1 00000b6b: DUP4 00000b6c: PUSH1 0x01 00000b6e: PUSH1 0x01 00000b70: PUSH1 0x40 00000b72: SHL 00000b73: SUB 00000b74: AND 00000b75: MUL 00000b76: OR 00000b77: SWAP1 00000b78: SSTORE 00000b79: POP 00000b7a: JUMPDEST 00000b7b: PUSH1 0x00 00000b7d: DUP5 00000b7e: PUSH1 0x01 00000b80: PUSH1 0x01 00000b82: PUSH1 0x40 00000b84: SHL 00000b85: SUB 00000b86: AND 00000b87: GT 00000b88: DUP1 00000b89: ISZERO 00000b8a: PUSH2 0x0b9c 00000b8d: JUMPI 00000b8e: POP 00000b8f: PUSH1 0x00 00000b91: DUP13 00000b92: PUSH1 0x01 00000b94: PUSH1 0x01 00000b96: PUSH1 0x40 00000b98: SHL 00000b99: SUB 00000b9a: AND 00000b9b: GT 00000b9c: JUMPDEST 00000b9d: ISZERO 00000b9e: PUSH2 0x0d3b 00000ba1: JUMPI 00000ba2: PUSH1 0x08 00000ba4: SLOAD 00000ba5: PUSH1 0x00 00000ba7: DUP2 00000ba8: PUSH2 0x0bb2 00000bab: JUMPI 00000bac: PUSH1 0x00 00000bae: PUSH2 0x0be5 00000bb1: JUMP 00000bb2: JUMPDEST 00000bb3: PUSH1 0x08 00000bb5: PUSH2 0x0bbf 00000bb8: PUSH1 0x01 00000bba: DUP5 00000bbb: PUSH2 0x142f 00000bbe: JUMP 00000bbf: JUMPDEST 00000bc0: DUP2 00000bc1: SLOAD 00000bc2: DUP2 00000bc3: LT 00000bc4: PUSH2 0x0bcf 00000bc7: JUMPI 00000bc8: PUSH2 0x0bcf 00000bcb: PUSH2 0x1442 00000bce: JUMP 00000bcf: JUMPDEST 00000bd0: PUSH1 0x00 00000bd2: SWAP2 00000bd3: DUP3 00000bd4: MSTORE 00000bd5: PUSH1 0x20 00000bd7: SWAP1 00000bd8: SWAP2 00000bd9: KECCAK256 00000bda: ADD 00000bdb: SLOAD 00000bdc: PUSH1 0x01 00000bde: PUSH1 0x01 00000be0: PUSH1 0x40 00000be2: SHL 00000be3: SUB 00000be4: AND 00000be5: JUMPDEST 00000be6: SWAP1 00000be7: POP 00000be8: DUP14 00000be9: PUSH1 0x01 00000beb: PUSH1 0x01 00000bed: PUSH1 0x40 00000bef: SHL 00000bf0: SUB 00000bf1: AND 00000bf2: DUP7 00000bf3: PUSH1 0x01 00000bf5: PUSH1 0x01 00000bf7: PUSH1 0x40 00000bf9: SHL 00000bfa: SUB 00000bfb: AND 00000bfc: LT 00000bfd: PUSH2 0x0c5f 00000c00: JUMPI 00000c01: DUP9 00000c02: SLOAD 00000c03: DUP15 00000c04: SWAP1 00000c05: DUP11 00000c06: SWAP1 00000c07: PUSH1 0x08 00000c09: SWAP1 00000c0a: PUSH2 0x0c24 00000c0d: SWAP1 00000c0e: DUP5 00000c0f: SWAP1 00000c10: PUSH1 0x01 00000c12: PUSH1 0x40 00000c14: SHL 00000c15: SWAP1 00000c16: DIV 00000c17: PUSH1 0x01 00000c19: PUSH1 0x01 00000c1b: PUSH1 0x40 00000c1d: SHL 00000c1e: SUB 00000c1f: AND 00000c20: PUSH2 0x1362 00000c23: JUMP 00000c24: JUMPDEST 00000c25: SWAP3 00000c26: POP 00000c27: PUSH2 0x0100 00000c2a: EXP 00000c2b: DUP2 00000c2c: SLOAD 00000c2d: DUP2 00000c2e: PUSH1 0x01 00000c30: PUSH1 0x01 00000c32: PUSH1 0x40 00000c34: SHL 00000c35: SUB 00000c36: MUL 00000c37: NOT 00000c38: AND 00000c39: SWAP1 00000c3a: DUP4 00000c3b: PUSH1 0x01 00000c3d: PUSH1 0x01 00000c3f: PUSH1 0x40 00000c41: SHL 00000c42: SUB 00000c43: AND 00000c44: MUL 00000c45: OR 00000c46: SWAP1 00000c47: SSTORE 00000c48: POP 00000c49: DUP14 00000c4a: DUP2 00000c4b: PUSH2 0x0c54 00000c4e: SWAP2 00000c4f: SWAP1 00000c50: PUSH2 0x1362 00000c53: JUMP 00000c54: JUMPDEST 00000c55: SWAP4 00000c56: POP 00000c57: PUSH1 0x00 00000c59: SWAP14 00000c5a: POP 00000c5b: PUSH2 0x0cc2 00000c5e: JUMP 00000c5f: JUMPDEST 00000c60: DUP9 00000c61: SLOAD 00000c62: DUP7 00000c63: SWAP1 00000c64: DUP11 00000c65: SWAP1 00000c66: PUSH1 0x08 00000c68: SWAP1 00000c69: PUSH2 0x0c83 00000c6c: SWAP1 00000c6d: DUP5 00000c6e: SWAP1 00000c6f: PUSH1 0x01 00000c71: PUSH1 0x40 00000c73: SHL 00000c74: SWAP1 00000c75: DIV 00000c76: PUSH1 0x01 00000c78: PUSH1 0x01 00000c7a: PUSH1 0x40 00000c7c: SHL 00000c7d: SUB 00000c7e: AND 00000c7f: PUSH2 0x1362 00000c82: JUMP 00000c83: JUMPDEST 00000c84: SWAP3 00000c85: POP 00000c86: PUSH2 0x0100 00000c89: EXP 00000c8a: DUP2 00000c8b: SLOAD 00000c8c: DUP2 00000c8d: PUSH1 0x01 00000c8f: PUSH1 0x01 00000c91: PUSH1 0x40 00000c93: SHL 00000c94: SUB 00000c95: MUL 00000c96: NOT 00000c97: AND 00000c98: SWAP1 00000c99: DUP4 00000c9a: PUSH1 0x01 00000c9c: PUSH1 0x01 00000c9e: PUSH1 0x40 00000ca0: SHL 00000ca1: SUB 00000ca2: AND 00000ca3: MUL 00000ca4: OR 00000ca5: SWAP1 00000ca6: SSTORE 00000ca7: POP 00000ca8: DUP6 00000ca9: DUP2 00000caa: PUSH2 0x0cb3 00000cad: SWAP2 00000cae: SWAP1 00000caf: PUSH2 0x1362 00000cb2: JUMP 00000cb3: JUMPDEST 00000cb4: SWAP4 00000cb5: POP 00000cb6: PUSH2 0x0cbf 00000cb9: DUP7 00000cba: DUP16 00000cbb: PUSH2 0x140f 00000cbe: JUMP 00000cbf: JUMPDEST 00000cc0: SWAP14 00000cc1: POP 00000cc2: JUMPDEST 00000cc3: PUSH1 0x08 00000cc5: PUSH1 0x40 00000cc7: MLOAD 00000cc8: DUP1 00000cc9: PUSH1 0x40 00000ccb: ADD 00000ccc: PUSH1 0x40 00000cce: MSTORE 00000ccf: DUP1 00000cd0: DUP7 00000cd1: PUSH1 0x01 00000cd3: PUSH1 0x01 00000cd5: PUSH1 0x40 00000cd7: SHL 00000cd8: SUB 00000cd9: AND 00000cda: DUP2 00000cdb: MSTORE 00000cdc: PUSH1 0x20 00000cde: ADD 00000cdf: PUSH2 0x0ce5 00000ce2: CALLER 00000ce3: SWAP1 00000ce4: JUMP 00000ce5: JUMPDEST 00000ce6: PUSH1 0x01 00000ce8: PUSH1 0x01 00000cea: PUSH1 0xa0 00000cec: SHL 00000ced: SUB 00000cee: SWAP1 00000cef: DUP2 00000cf0: AND 00000cf1: SWAP1 00000cf2: SWAP2 00000cf3: MSTORE 00000cf4: DUP3 00000cf5: SLOAD 00000cf6: PUSH1 0x01 00000cf8: DUP2 00000cf9: ADD 00000cfa: DUP5 00000cfb: SSTORE 00000cfc: PUSH1 0x00 00000cfe: SWAP4 00000cff: DUP5 00000d00: MSTORE 00000d01: PUSH1 0x20 00000d03: SWAP4 00000d04: DUP5 00000d05: SWAP1 00000d06: KECCAK256 00000d07: DUP4 00000d08: MLOAD 00000d09: SWAP2 00000d0a: ADD 00000d0b: DUP1 00000d0c: SLOAD 00000d0d: SWAP5 00000d0e: SWAP1 00000d0f: SWAP4 00000d10: ADD 00000d11: MLOAD 00000d12: SWAP1 00000d13: SWAP2 00000d14: AND 00000d15: PUSH1 0x01 00000d17: PUSH1 0x40 00000d19: SHL 00000d1a: MUL 00000d1b: PUSH1 0x01 00000d1d: PUSH1 0x01 00000d1f: PUSH1 0xe0 00000d21: SHL 00000d22: SUB 00000d23: NOT 00000d24: SWAP1 00000d25: SWAP4 00000d26: AND 00000d27: PUSH1 0x01 00000d29: PUSH1 0x01 00000d2b: PUSH1 0x40 00000d2d: SHL 00000d2e: SUB 00000d2f: SWAP1 00000d30: SWAP2 00000d31: AND 00000d32: OR 00000d33: SWAP2 00000d34: SWAP1 00000d35: SWAP2 00000d36: OR 00000d37: SWAP1 00000d38: SSTORE 00000d39: POP 00000d3a: POP 00000d3b: JUMPDEST 00000d3c: PUSH1 0x01 00000d3e: PUSH1 0x01 00000d40: PUSH1 0x40 00000d42: SHL 00000d43: SUB 00000d44: DUP13 00000d45: AND 00000d46: ISZERO 00000d47: PUSH2 0x0e60 00000d4a: JUMPI 00000d4b: PUSH1 0x09 00000d4d: SLOAD 00000d4e: PUSH1 0x00 00000d50: DUP2 00000d51: PUSH2 0x0d5b 00000d54: JUMPI 00000d55: PUSH1 0x00 00000d57: PUSH2 0x0d8e 00000d5a: JUMP 00000d5b: JUMPDEST 00000d5c: PUSH1 0x09 00000d5e: PUSH2 0x0d68 00000d61: PUSH1 0x01 00000d63: DUP5 00000d64: PUSH2 0x142f 00000d67: JUMP 00000d68: JUMPDEST 00000d69: DUP2 00000d6a: SLOAD 00000d6b: DUP2 00000d6c: LT 00000d6d: PUSH2 0x0d78 00000d70: JUMPI 00000d71: PUSH2 0x0d78 00000d74: PUSH2 0x1442 00000d77: JUMP 00000d78: JUMPDEST 00000d79: PUSH1 0x00 00000d7b: SWAP2 00000d7c: DUP3 00000d7d: MSTORE 00000d7e: PUSH1 0x20 00000d80: SWAP1 00000d81: SWAP2 00000d82: KECCAK256 00000d83: ADD 00000d84: SLOAD 00000d85: PUSH1 0x01 00000d87: PUSH1 0x01 00000d89: PUSH1 0x40 00000d8b: SHL 00000d8c: SUB 00000d8d: AND 00000d8e: JUMPDEST 00000d8f: DUP10 00000d90: SLOAD 00000d91: SWAP1 00000d92: SWAP2 00000d93: POP 00000d94: DUP15 00000d95: SWAP1 00000d96: DUP11 00000d97: SWAP1 00000d98: PUSH1 0x10 00000d9a: SWAP1 00000d9b: PUSH2 0x0db5 00000d9e: SWAP1 00000d9f: DUP5 00000da0: SWAP1 00000da1: PUSH1 0x01 00000da3: PUSH1 0x80 00000da5: SHL 00000da6: SWAP1 00000da7: DIV 00000da8: PUSH1 0x01 00000daa: PUSH1 0x01 00000dac: PUSH1 0x40 00000dae: SHL 00000daf: SUB 00000db0: AND 00000db1: PUSH2 0x1362 00000db4: JUMP 00000db5: JUMPDEST 00000db6: SWAP3 00000db7: POP 00000db8: PUSH2 0x0100 00000dbb: EXP 00000dbc: DUP2 00000dbd: SLOAD 00000dbe: DUP2 00000dbf: PUSH1 0x01 00000dc1: PUSH1 0x01 00000dc3: PUSH1 0x40 00000dc5: SHL 00000dc6: SUB 00000dc7: MUL 00000dc8: NOT 00000dc9: AND 00000dca: SWAP1 00000dcb: DUP4 00000dcc: PUSH1 0x01 00000dce: PUSH1 0x01 00000dd0: PUSH1 0x40 00000dd2: SHL 00000dd3: SUB 00000dd4: AND 00000dd5: MUL 00000dd6: OR 00000dd7: SWAP1 00000dd8: SSTORE 00000dd9: POP 00000dda: DUP14 00000ddb: DUP2 00000ddc: PUSH2 0x0de5 00000ddf: SWAP2 00000de0: SWAP1 00000de1: PUSH2 0x1362 00000de4: JUMP 00000de5: JUMPDEST 00000de6: SWAP3 00000de7: POP 00000de8: PUSH1 0x09 00000dea: PUSH1 0x40 00000dec: MLOAD 00000ded: DUP1 00000dee: PUSH1 0x40 00000df0: ADD 00000df1: PUSH1 0x40 00000df3: MSTORE 00000df4: DUP1 00000df5: DUP6 00000df6: PUSH1 0x01 00000df8: PUSH1 0x01 00000dfa: PUSH1 0x40 00000dfc: SHL 00000dfd: SUB 00000dfe: AND 00000dff: DUP2 00000e00: MSTORE 00000e01: PUSH1 0x20 00000e03: ADD 00000e04: PUSH2 0x0e0a 00000e07: CALLER 00000e08: SWAP1 00000e09: JUMP 00000e0a: JUMPDEST 00000e0b: PUSH1 0x01 00000e0d: PUSH1 0x01 00000e0f: PUSH1 0xa0 00000e11: SHL 00000e12: SUB 00000e13: SWAP1 00000e14: DUP2 00000e15: AND 00000e16: SWAP1 00000e17: SWAP2 00000e18: MSTORE 00000e19: DUP3 00000e1a: SLOAD 00000e1b: PUSH1 0x01 00000e1d: DUP2 00000e1e: ADD 00000e1f: DUP5 00000e20: SSTORE 00000e21: PUSH1 0x00 00000e23: SWAP4 00000e24: DUP5 00000e25: MSTORE 00000e26: PUSH1 0x20 00000e28: SWAP4 00000e29: DUP5 00000e2a: SWAP1 00000e2b: KECCAK256 00000e2c: DUP4 00000e2d: MLOAD 00000e2e: SWAP2 00000e2f: ADD 00000e30: DUP1 00000e31: SLOAD 00000e32: SWAP5 00000e33: SWAP1 00000e34: SWAP4 00000e35: ADD 00000e36: MLOAD 00000e37: SWAP1 00000e38: SWAP2 00000e39: AND 00000e3a: PUSH1 0x01 00000e3c: PUSH1 0x40 00000e3e: SHL 00000e3f: MUL 00000e40: PUSH1 0x01 00000e42: PUSH1 0x01 00000e44: PUSH1 0xe0 00000e46: SHL 00000e47: SUB 00000e48: NOT 00000e49: SWAP1 00000e4a: SWAP4 00000e4b: AND 00000e4c: PUSH1 0x01 00000e4e: PUSH1 0x01 00000e50: PUSH1 0x40 00000e52: SHL 00000e53: SUB 00000e54: SWAP1 00000e55: SWAP2 00000e56: AND 00000e57: OR 00000e58: SWAP2 00000e59: SWAP1 00000e5a: SWAP2 00000e5b: OR 00000e5c: SWAP1 00000e5d: SSTORE 00000e5e: POP 00000e5f: POP 00000e60: JUMPDEST 00000e61: PUSH1 0x40 00000e63: DUP1 00000e64: MLOAD 00000e65: CALLER 00000e66: DUP2 00000e67: MSTORE 00000e68: PUSH1 0x01 00000e6a: PUSH1 0x01 00000e6c: PUSH1 0x40 00000e6e: SHL 00000e6f: SUB 00000e70: DUP9 00000e71: DUP2 00000e72: AND 00000e73: PUSH1 0x20 00000e75: DUP4 00000e76: ADD 00000e77: MSTORE 00000e78: DUP6 00000e79: DUP2 00000e7a: AND 00000e7b: DUP3 00000e7c: DUP5 00000e7d: ADD 00000e7e: MSTORE 00000e7f: DUP5 00000e80: DUP2 00000e81: AND 00000e82: PUSH1 0x60 00000e84: DUP4 00000e85: ADD 00000e86: MSTORE 00000e87: DUP4 00000e88: AND 00000e89: PUSH1 0x80 00000e8b: DUP3 00000e8c: ADD 00000e8d: MSTORE 00000e8e: SWAP1 00000e8f: MLOAD 00000e90: PUSH32 0x9b8c9c4dfbab92505e97732f84b1c09ac1c8d23f47bea99d108b5ba3033c0681 00000eb1: SWAP2 00000eb2: DUP2 00000eb3: SWAP1 00000eb4: SUB 00000eb5: PUSH1 0xa0 00000eb7: ADD 00000eb8: SWAP1 00000eb9: LOG1 00000eba: POP 00000ebb: POP 00000ebc: POP 00000ebd: POP 00000ebe: POP 00000ebf: POP 00000ec0: POP 00000ec1: POP 00000ec2: POP 00000ec3: POP 00000ec4: POP 00000ec5: POP 00000ec6: JUMP 00000ec7: JUMPDEST 00000ec8: PUSH2 0x0ecf 00000ecb: PUSH2 0x0fe0 00000ece: JUMP 00000ecf: JUMPDEST 00000ed0: PUSH2 0x0801 00000ed3: PUSH2 0x107b 00000ed6: JUMP 00000ed7: JUMPDEST 00000ed8: PUSH1 0x09 00000eda: DUP2 00000edb: DUP2 00000edc: SLOAD 00000edd: DUP2 00000ede: LT 00000edf: PUSH2 0x0865 00000ee2: JUMPI 00000ee3: PUSH1 0x00 00000ee5: DUP1 00000ee6: REVERT 00000ee7: JUMPDEST 00000ee8: PUSH2 0x0eef 00000eeb: PUSH2 0x0fe0 00000eee: JUMP 00000eef: JUMPDEST 00000ef0: DUP1 00000ef1: PUSH1 0x03 00000ef3: PUSH2 0x0efc 00000ef6: DUP3 00000ef7: DUP3 00000ef8: PUSH2 0x1458 00000efb: JUMP 00000efc: JUMPDEST 00000efd: SWAP1 00000efe: POP 00000eff: POP 00000f00: PUSH32 0x4b0b17dddbf9d8af5f8f8ddbdc282235c36851ca1f51e4db9013a63a237f7366 00000f21: DUP2 00000f22: PUSH1 0x40 00000f24: MLOAD 00000f25: PUSH2 0x084a 00000f28: SWAP2 00000f29: SWAP1 00000f2a: PUSH2 0x148b 00000f2d: JUMP 00000f2e: JUMPDEST 00000f2f: PUSH2 0x0f36 00000f32: PUSH2 0x0fe0 00000f35: JUMP 00000f36: JUMPDEST 00000f37: PUSH1 0x01 00000f39: DUP1 00000f3a: SLOAD 00000f3b: PUSH1 0x01 00000f3d: PUSH1 0x01 00000f3f: PUSH1 0xa0 00000f41: SHL 00000f42: SUB 00000f43: DUP4 00000f44: AND 00000f45: PUSH1 0x01 00000f47: PUSH1 0x01 00000f49: PUSH1 0xa0 00000f4b: SHL 00000f4c: SUB 00000f4d: NOT 00000f4e: SWAP1 00000f4f: SWAP2 00000f50: AND 00000f51: DUP2 00000f52: OR 00000f53: SWAP1 00000f54: SWAP2 00000f55: SSTORE 00000f56: PUSH2 0x0f67 00000f59: PUSH1 0x00 00000f5b: SLOAD 00000f5c: PUSH1 0x01 00000f5e: PUSH1 0x01 00000f60: PUSH1 0xa0 00000f62: SHL 00000f63: SUB 00000f64: AND 00000f65: SWAP1 00000f66: JUMP 00000f67: JUMPDEST 00000f68: PUSH1 0x01 00000f6a: PUSH1 0x01 00000f6c: PUSH1 0xa0 00000f6e: SHL 00000f6f: SUB 00000f70: AND 00000f71: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700 00000f92: PUSH1 0x40 00000f94: MLOAD 00000f95: PUSH1 0x40 00000f97: MLOAD 00000f98: DUP1 00000f99: SWAP2 00000f9a: SUB 00000f9b: SWAP1 00000f9c: LOG3 00000f9d: POP 00000f9e: JUMP 00000f9f: JUMPDEST 00000fa0: PUSH1 0x01 00000fa2: SLOAD 00000fa3: PUSH1 0x01 00000fa5: PUSH1 0xa0 00000fa7: SHL 00000fa8: SWAP1 00000fa9: DIV 00000faa: PUSH1 0xff 00000fac: AND 00000fad: ISZERO 00000fae: PUSH2 0x0801 00000fb1: JUMPI 00000fb2: PUSH1 0x40 00000fb4: MLOAD 00000fb5: PUSH4 0xd93c0665 00000fba: PUSH1 0xe0 00000fbc: SHL 00000fbd: DUP2 00000fbe: MSTORE 00000fbf: PUSH1 0x04 00000fc1: ADD 00000fc2: PUSH1 0x40 00000fc4: MLOAD 00000fc5: DUP1 00000fc6: SWAP2 00000fc7: SUB 00000fc8: SWAP1 00000fc9: REVERT 00000fca: JUMPDEST 00000fcb: PUSH1 0x00 00000fcd: DUP3 00000fce: PUSH2 0x0fd7 00000fd1: DUP6 00000fd2: DUP5 00000fd3: PUSH2 0x10be 00000fd6: JUMP 00000fd7: JUMPDEST 00000fd8: EQ 00000fd9: SWAP5 00000fda: SWAP4 00000fdb: POP 00000fdc: POP 00000fdd: POP 00000fde: POP 00000fdf: JUMP 00000fe0: JUMPDEST 00000fe1: PUSH1 0x00 00000fe3: SLOAD 00000fe4: PUSH1 0x01 00000fe6: PUSH1 0x01 00000fe8: PUSH1 0xa0 00000fea: SHL 00000feb: SUB 00000fec: AND 00000fed: CALLER 00000fee: EQ 00000fef: PUSH2 0x0801 00000ff2: JUMPI 00000ff3: PUSH1 0x40 00000ff5: MLOAD 00000ff6: PUSH4 0x118cdaa7 00000ffb: PUSH1 0xe0 00000ffd: SHL 00000ffe: DUP2 00000fff: MSTORE 00001000: CALLER 00001001: PUSH1 0x04 00001003: DUP3 00001004: ADD 00001005: MSTORE 00001006: PUSH1 0x24 00001008: ADD 00001009: PUSH2 0x08d6 0000100c: JUMP 0000100d: JUMPDEST 0000100e: PUSH2 0x1015 00001011: PUSH2 0x110d 00001014: JUMP 00001015: JUMPDEST 00001016: PUSH1 0x01 00001018: DUP1 00001019: SLOAD 0000101a: PUSH1 0xff 0000101c: PUSH1 0xa0 0000101e: SHL 0000101f: NOT 00001020: AND 00001021: SWAP1 00001022: SSTORE 00001023: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 00001044: CALLER 00001045: JUMPDEST 00001046: PUSH1 0x40 00001048: MLOAD 00001049: PUSH1 0x01 0000104b: PUSH1 0x01 0000104d: PUSH1 0xa0 0000104f: SHL 00001050: SUB 00001051: SWAP1 00001052: SWAP2 00001053: AND 00001054: DUP2 00001055: MSTORE 00001056: PUSH1 0x20 00001058: ADD 00001059: PUSH1 0x40 0000105b: MLOAD 0000105c: DUP1 0000105d: SWAP2 0000105e: SUB 0000105f: SWAP1 00001060: LOG1 00001061: JUMP 00001062: JUMPDEST 00001063: PUSH1 0x01 00001065: DUP1 00001066: SLOAD 00001067: PUSH1 0x01 00001069: PUSH1 0x01 0000106b: PUSH1 0xa0 0000106d: SHL 0000106e: SUB 0000106f: NOT 00001070: AND 00001071: SWAP1 00001072: SSTORE 00001073: PUSH2 0x08e8 00001076: DUP2 00001077: PUSH2 0x1137 0000107a: JUMP 0000107b: JUMPDEST 0000107c: PUSH2 0x1083 0000107f: PUSH2 0x0f9f 00001082: JUMP 00001083: JUMPDEST 00001084: PUSH1 0x01 00001086: DUP1 00001087: SLOAD 00001088: PUSH1 0xff 0000108a: PUSH1 0xa0 0000108c: SHL 0000108d: NOT 0000108e: AND 0000108f: PUSH1 0x01 00001091: PUSH1 0xa0 00001093: SHL 00001094: OR 00001095: SWAP1 00001096: SSTORE 00001097: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 000010b8: PUSH2 0x1045 000010bb: CALLER 000010bc: SWAP1 000010bd: JUMP 000010be: JUMPDEST 000010bf: PUSH1 0x00 000010c1: DUP2 000010c2: DUP2 000010c3: JUMPDEST 000010c4: DUP5 000010c5: MLOAD 000010c6: DUP2 000010c7: LT 000010c8: ISZERO 000010c9: PUSH2 0x1103 000010cc: JUMPI 000010cd: PUSH2 0x10ef 000010d0: DUP3 000010d1: DUP7 000010d2: DUP4 000010d3: DUP2 000010d4: MLOAD 000010d5: DUP2 000010d6: LT 000010d7: PUSH2 0x10e2 000010da: JUMPI 000010db: PUSH2 0x10e2 000010de: PUSH2 0x1442 000010e1: JUMP 000010e2: JUMPDEST 000010e3: PUSH1 0x20 000010e5: MUL 000010e6: PUSH1 0x20 000010e8: ADD 000010e9: ADD 000010ea: MLOAD 000010eb: PUSH2 0x1187 000010ee: JUMP 000010ef: JUMPDEST 000010f0: SWAP2 000010f1: POP 000010f2: DUP1 000010f3: PUSH2 0x10fb 000010f6: DUP2 000010f7: PUSH2 0x14ba 000010fa: JUMP 000010fb: JUMPDEST 000010fc: SWAP2 000010fd: POP 000010fe: POP 000010ff: PUSH2 0x10c3 00001102: JUMP 00001103: JUMPDEST 00001104: POP 00001105: SWAP1 00001106: POP 00001107: JUMPDEST 00001108: SWAP3 00001109: SWAP2 0000110a: POP 0000110b: POP 0000110c: JUMP 0000110d: JUMPDEST 0000110e: PUSH1 0x01 00001110: SLOAD 00001111: PUSH1 0x01 00001113: PUSH1 0xa0 00001115: SHL 00001116: SWAP1 00001117: DIV 00001118: PUSH1 0xff 0000111a: AND 0000111b: PUSH2 0x0801 0000111e: JUMPI 0000111f: PUSH1 0x40 00001121: MLOAD 00001122: PUSH4 0x8dfc202b 00001127: PUSH1 0xe0 00001129: SHL 0000112a: DUP2 0000112b: MSTORE 0000112c: PUSH1 0x04 0000112e: ADD 0000112f: PUSH1 0x40 00001131: MLOAD 00001132: DUP1 00001133: SWAP2 00001134: SUB 00001135: SWAP1 00001136: REVERT 00001137: JUMPDEST 00001138: PUSH1 0x00 0000113a: DUP1 0000113b: SLOAD 0000113c: PUSH1 0x01 0000113e: PUSH1 0x01 00001140: PUSH1 0xa0 00001142: SHL 00001143: SUB 00001144: DUP4 00001145: DUP2 00001146: AND 00001147: PUSH1 0x01 00001149: PUSH1 0x01 0000114b: PUSH1 0xa0 0000114d: SHL 0000114e: SUB 0000114f: NOT 00001150: DUP4 00001151: AND 00001152: DUP2 00001153: OR 00001154: DUP5 00001155: SSTORE 00001156: PUSH1 0x40 00001158: MLOAD 00001159: SWAP2 0000115a: SWAP1 0000115b: SWAP3 0000115c: AND 0000115d: SWAP3 0000115e: DUP4 0000115f: SWAP2 00001160: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001181: SWAP2 00001182: SWAP1 00001183: LOG3 00001184: POP 00001185: POP 00001186: JUMP 00001187: JUMPDEST 00001188: PUSH1 0x00 0000118a: DUP2 0000118b: DUP4 0000118c: LT 0000118d: PUSH2 0x11a3 00001190: JUMPI 00001191: PUSH1 0x00 00001193: DUP3 00001194: DUP2 00001195: MSTORE 00001196: PUSH1 0x20 00001198: DUP5 00001199: SWAP1 0000119a: MSTORE 0000119b: PUSH1 0x40 0000119d: SWAP1 0000119e: KECCAK256 0000119f: PUSH2 0x11b2 000011a2: JUMP 000011a3: JUMPDEST 000011a4: PUSH1 0x00 000011a6: DUP4 000011a7: DUP2 000011a8: MSTORE 000011a9: PUSH1 0x20 000011ab: DUP4 000011ac: SWAP1 000011ad: MSTORE 000011ae: PUSH1 0x40 000011b0: SWAP1 000011b1: KECCAK256 000011b2: JUMPDEST 000011b3: SWAP4 000011b4: SWAP3 000011b5: POP 000011b6: POP 000011b7: POP 000011b8: JUMP 000011b9: JUMPDEST 000011ba: PUSH1 0x00 000011bc: DUP1 000011bd: DUP4 000011be: PUSH1 0x1f 000011c0: DUP5 000011c1: ADD 000011c2: SLT 000011c3: PUSH2 0x11cb 000011c6: JUMPI 000011c7: PUSH1 0x00 000011c9: DUP1 000011ca: REVERT 000011cb: JUMPDEST 000011cc: POP 000011cd: DUP2 000011ce: CALLDATALOAD 000011cf: PUSH1 0x01 000011d1: PUSH1 0x01 000011d3: PUSH1 0x40 000011d5: SHL 000011d6: SUB 000011d7: DUP2 000011d8: GT 000011d9: ISZERO 000011da: PUSH2 0x11e2 000011dd: JUMPI 000011de: PUSH1 0x00 000011e0: DUP1 000011e1: REVERT 000011e2: JUMPDEST 000011e3: PUSH1 0x20 000011e5: DUP4 000011e6: ADD 000011e7: SWAP2 000011e8: POP 000011e9: DUP4 000011ea: PUSH1 0x20 000011ec: DUP3 000011ed: PUSH1 0x05 000011ef: SHL 000011f0: DUP6 000011f1: ADD 000011f2: ADD 000011f3: GT 000011f4: ISZERO 000011f5: PUSH2 0x11fd 000011f8: JUMPI 000011f9: PUSH1 0x00 000011fb: DUP1 000011fc: REVERT 000011fd: JUMPDEST 000011fe: SWAP3 000011ff: POP 00001200: SWAP3 00001201: SWAP1 00001202: POP 00001203: JUMP 00001204: JUMPDEST 00001205: PUSH1 0x00 00001207: DUP1 00001208: PUSH1 0x00 0000120a: PUSH1 0x40 0000120c: DUP5 0000120d: DUP7 0000120e: SUB 0000120f: SLT 00001210: ISZERO 00001211: PUSH2 0x1219 00001214: JUMPI 00001215: PUSH1 0x00 00001217: DUP1 00001218: REVERT 00001219: JUMPDEST 0000121a: DUP4 0000121b: CALLDATALOAD 0000121c: SWAP3 0000121d: POP 0000121e: PUSH1 0x20 00001220: DUP5 00001221: ADD 00001222: CALLDATALOAD 00001223: PUSH1 0x01 00001225: PUSH1 0x01 00001227: PUSH1 0x40 00001229: SHL 0000122a: SUB 0000122b: DUP2 0000122c: GT 0000122d: ISZERO 0000122e: PUSH2 0x1236 00001231: JUMPI 00001232: PUSH1 0x00 00001234: DUP1 00001235: REVERT 00001236: JUMPDEST 00001237: PUSH2 0x1242 0000123a: DUP7 0000123b: DUP3 0000123c: DUP8 0000123d: ADD 0000123e: PUSH2 0x11b9 00001241: JUMP 00001242: JUMPDEST 00001243: SWAP5 00001244: SWAP8 00001245: SWAP1 00001246: SWAP7 00001247: POP 00001248: SWAP4 00001249: SWAP5 0000124a: POP 0000124b: POP 0000124c: POP 0000124d: POP 0000124e: JUMP 0000124f: JUMPDEST 00001250: PUSH1 0x00 00001252: PUSH1 0x20 00001254: DUP3 00001255: DUP5 00001256: SUB 00001257: SLT 00001258: ISZERO 00001259: PUSH2 0x1261 0000125c: JUMPI 0000125d: PUSH1 0x00 0000125f: DUP1 00001260: REVERT 00001261: JUMPDEST 00001262: POP 00001263: CALLDATALOAD 00001264: SWAP2 00001265: SWAP1 00001266: POP 00001267: JUMP 00001268: JUMPDEST 00001269: PUSH1 0x00 0000126b: PUSH1 0x20 0000126d: DUP3 0000126e: DUP5 0000126f: SUB 00001270: SLT 00001271: ISZERO 00001272: PUSH2 0x127a 00001275: JUMPI 00001276: PUSH1 0x00 00001278: DUP1 00001279: REVERT 0000127a: JUMPDEST 0000127b: DUP2 0000127c: CALLDATALOAD 0000127d: PUSH1 0x01 0000127f: PUSH1 0x01 00001281: PUSH1 0xa0 00001283: SHL 00001284: SUB 00001285: DUP2 00001286: AND 00001287: DUP2 00001288: EQ 00001289: PUSH2 0x11b2 0000128c: JUMPI 0000128d: PUSH1 0x00 0000128f: DUP1 00001290: REVERT 00001291: JUMPDEST 00001292: PUSH1 0x00 00001294: PUSH1 0x40 00001296: DUP3 00001297: DUP5 00001298: SUB 00001299: SLT 0000129a: ISZERO 0000129b: PUSH2 0x12a3 0000129e: JUMPI 0000129f: PUSH1 0x00 000012a1: DUP1 000012a2: REVERT 000012a3: JUMPDEST 000012a4: POP 000012a5: SWAP2 000012a6: SWAP1 000012a7: POP 000012a8: JUMP 000012a9: JUMPDEST 000012aa: DUP1 000012ab: CALLDATALOAD 000012ac: PUSH1 0x01 000012ae: PUSH1 0x01 000012b0: PUSH1 0x40 000012b2: SHL 000012b3: SUB 000012b4: DUP2 000012b5: AND 000012b6: DUP2 000012b7: EQ 000012b8: PUSH2 0x12c0 000012bb: JUMPI 000012bc: PUSH1 0x00 000012be: DUP1 000012bf: REVERT 000012c0: JUMPDEST 000012c1: SWAP2 000012c2: SWAP1 000012c3: POP 000012c4: JUMP 000012c5: JUMPDEST 000012c6: PUSH1 0x00 000012c8: DUP1 000012c9: PUSH1 0x00 000012cb: DUP1 000012cc: PUSH1 0x00 000012ce: PUSH1 0x80 000012d0: DUP7 000012d1: DUP9 000012d2: SUB 000012d3: SLT 000012d4: ISZERO 000012d5: PUSH2 0x12dd 000012d8: JUMPI 000012d9: PUSH1 0x00 000012db: DUP1 000012dc: REVERT 000012dd: JUMPDEST 000012de: PUSH2 0x12e6 000012e1: DUP7 000012e2: PUSH2 0x12a9 000012e5: JUMP 000012e6: JUMPDEST 000012e7: SWAP5 000012e8: POP 000012e9: PUSH2 0x12f4 000012ec: PUSH1 0x20 000012ee: DUP8 000012ef: ADD 000012f0: PUSH2 0x12a9 000012f3: JUMP 000012f4: JUMPDEST 000012f5: SWAP4 000012f6: POP 000012f7: PUSH2 0x1302 000012fa: PUSH1 0x40 000012fc: DUP8 000012fd: ADD 000012fe: PUSH2 0x12a9 00001301: JUMP 00001302: JUMPDEST 00001303: SWAP3 00001304: POP 00001305: PUSH1 0x60 00001307: DUP7 00001308: ADD 00001309: CALLDATALOAD 0000130a: PUSH1 0x01 0000130c: PUSH1 0x01 0000130e: PUSH1 0x40 00001310: SHL 00001311: SUB 00001312: DUP2 00001313: GT 00001314: ISZERO 00001315: PUSH2 0x131d 00001318: JUMPI 00001319: PUSH1 0x00 0000131b: DUP1 0000131c: REVERT 0000131d: JUMPDEST 0000131e: PUSH2 0x1329 00001321: DUP9 00001322: DUP3 00001323: DUP10 00001324: ADD 00001325: PUSH2 0x11b9 00001328: JUMP 00001329: JUMPDEST 0000132a: SWAP7 0000132b: SWAP10 0000132c: SWAP6 0000132d: SWAP9 0000132e: POP 0000132f: SWAP4 00001330: SWAP7 00001331: POP 00001332: SWAP3 00001333: SWAP5 00001334: SWAP4 00001335: SWAP3 00001336: POP 00001337: POP 00001338: POP 00001339: JUMP 0000133a: JUMPDEST 0000133b: PUSH1 0x00 0000133d: PUSH1 0x60 0000133f: DUP3 00001340: DUP5 00001341: SUB 00001342: SLT 00001343: ISZERO 00001344: PUSH2 0x12a3 00001347: JUMPI 00001348: PUSH1 0x00 0000134a: DUP1 0000134b: REVERT 0000134c: JUMPDEST 0000134d: PUSH4 0x4e487b71 00001352: PUSH1 0xe0 00001354: SHL 00001355: PUSH1 0x00 00001357: MSTORE 00001358: PUSH1 0x11 0000135a: PUSH1 0x04 0000135c: MSTORE 0000135d: PUSH1 0x24 0000135f: PUSH1 0x00 00001361: REVERT 00001362: JUMPDEST 00001363: PUSH1 0x01 00001365: PUSH1 0x01 00001367: PUSH1 0x40 00001369: SHL 0000136a: SUB 0000136b: DUP2 0000136c: DUP2 0000136d: AND 0000136e: DUP4 0000136f: DUP3 00001370: AND 00001371: ADD 00001372: SWAP1 00001373: DUP1 00001374: DUP3 00001375: GT 00001376: ISZERO 00001377: PUSH2 0x1382 0000137a: JUMPI 0000137b: PUSH2 0x1382 0000137e: PUSH2 0x134c 00001381: JUMP 00001382: JUMPDEST 00001383: POP 00001384: SWAP3 00001385: SWAP2 00001386: POP 00001387: POP 00001388: JUMP 00001389: JUMPDEST 0000138a: DUP1 0000138b: DUP3 0000138c: MUL 0000138d: DUP2 0000138e: ISZERO 0000138f: DUP3 00001390: DUP3 00001391: DIV 00001392: DUP5 00001393: EQ 00001394: OR 00001395: PUSH2 0x1107 00001398: JUMPI 00001399: PUSH2 0x1107 0000139c: PUSH2 0x134c 0000139f: JUMP 000013a0: JUMPDEST 000013a1: DUP1 000013a2: DUP3 000013a3: ADD 000013a4: DUP1 000013a5: DUP3 000013a6: GT 000013a7: ISZERO 000013a8: PUSH2 0x1107 000013ab: JUMPI 000013ac: PUSH2 0x1107 000013af: PUSH2 0x134c 000013b2: JUMP 000013b3: JUMPDEST 000013b4: DUP1 000013b5: ISZERO 000013b6: ISZERO 000013b7: DUP2 000013b8: EQ 000013b9: PUSH2 0x08e8 000013bc: JUMPI 000013bd: PUSH1 0x00 000013bf: DUP1 000013c0: REVERT 000013c1: JUMPDEST 000013c2: DUP2 000013c3: CALLDATALOAD 000013c4: PUSH2 0x13cc 000013c7: DUP2 000013c8: PUSH2 0x13b3 000013cb: JUMP 000013cc: JUMPDEST 000013cd: DUP2 000013ce: SLOAD 000013cf: PUSH1 0xff 000013d1: NOT 000013d2: AND 000013d3: PUSH1 0xff 000013d5: DUP3 000013d6: ISZERO 000013d7: ISZERO 000013d8: AND 000013d9: OR 000013da: DUP3 000013db: SSTORE 000013dc: POP 000013dd: PUSH1 0x20 000013df: DUP3 000013e0: ADD 000013e1: CALLDATALOAD 000013e2: PUSH1 0x01 000013e4: DUP3 000013e5: ADD 000013e6: SSTORE 000013e7: POP 000013e8: POP 000013e9: JUMP 000013ea: JUMPDEST 000013eb: PUSH1 0x40 000013ed: DUP2 000013ee: ADD 000013ef: DUP3 000013f0: CALLDATALOAD 000013f1: PUSH2 0x13f9 000013f4: DUP2 000013f5: PUSH2 0x13b3 000013f8: JUMP 000013f9: JUMPDEST 000013fa: DUP1 000013fb: ISZERO 000013fc: ISZERO 000013fd: DUP4 000013fe: MSTORE 000013ff: POP 00001400: PUSH1 0x20 00001402: DUP4 00001403: ADD 00001404: CALLDATALOAD 00001405: PUSH1 0x20 00001407: DUP4 00001408: ADD 00001409: MSTORE 0000140a: SWAP3 0000140b: SWAP2 0000140c: POP 0000140d: POP 0000140e: JUMP 0000140f: JUMPDEST 00001410: PUSH1 0x01 00001412: PUSH1 0x01 00001414: PUSH1 0x40 00001416: SHL 00001417: SUB 00001418: DUP3 00001419: DUP2 0000141a: AND 0000141b: DUP3 0000141c: DUP3 0000141d: AND 0000141e: SUB 0000141f: SWAP1 00001420: DUP1 00001421: DUP3 00001422: GT 00001423: ISZERO 00001424: PUSH2 0x1382 00001427: JUMPI 00001428: PUSH2 0x1382 0000142b: PUSH2 0x134c 0000142e: JUMP 0000142f: JUMPDEST 00001430: DUP2 00001431: DUP2 00001432: SUB 00001433: DUP2 00001434: DUP2 00001435: GT 00001436: ISZERO 00001437: PUSH2 0x1107 0000143a: JUMPI 0000143b: PUSH2 0x1107 0000143e: PUSH2 0x134c 00001441: JUMP 00001442: JUMPDEST 00001443: PUSH4 0x4e487b71 00001448: PUSH1 0xe0 0000144a: SHL 0000144b: PUSH1 0x00 0000144d: MSTORE 0000144e: PUSH1 0x32 00001450: PUSH1 0x04 00001452: MSTORE 00001453: PUSH1 0x24 00001455: PUSH1 0x00 00001457: REVERT 00001458: JUMPDEST 00001459: DUP2 0000145a: CALLDATALOAD 0000145b: PUSH2 0x1463 0000145e: DUP2 0000145f: PUSH2 0x13b3 00001462: JUMP 00001463: JUMPDEST 00001464: DUP2 00001465: SLOAD 00001466: PUSH1 0xff 00001468: NOT 00001469: AND 0000146a: PUSH1 0xff 0000146c: DUP3 0000146d: ISZERO 0000146e: ISZERO 0000146f: AND 00001470: OR 00001471: DUP3 00001472: SSTORE 00001473: POP 00001474: PUSH1 0x20 00001476: DUP3 00001477: ADD 00001478: CALLDATALOAD 00001479: PUSH1 0x01 0000147b: DUP3 0000147c: ADD 0000147d: SSTORE 0000147e: PUSH1 0x40 00001480: DUP3 00001481: ADD 00001482: CALLDATALOAD 00001483: PUSH1 0x02 00001485: DUP3 00001486: ADD 00001487: SSTORE 00001488: POP 00001489: POP 0000148a: JUMP 0000148b: JUMPDEST 0000148c: PUSH1 0x60 0000148e: DUP2 0000148f: ADD 00001490: DUP3 00001491: CALLDATALOAD 00001492: PUSH2 0x149a 00001495: DUP2 00001496: PUSH2 0x13b3 00001499: JUMP 0000149a: JUMPDEST 0000149b: DUP1 0000149c: ISZERO 0000149d: ISZERO 0000149e: DUP4 0000149f: MSTORE 000014a0: POP 000014a1: PUSH1 0x20 000014a3: DUP4 000014a4: ADD 000014a5: CALLDATALOAD 000014a6: PUSH1 0x20 000014a8: DUP4 000014a9: ADD 000014aa: MSTORE 000014ab: PUSH1 0x40 000014ad: DUP4 000014ae: ADD 000014af: CALLDATALOAD 000014b0: PUSH1 0x40 000014b2: DUP4 000014b3: ADD 000014b4: MSTORE 000014b5: SWAP3 000014b6: SWAP2 000014b7: POP 000014b8: POP 000014b9: JUMP 000014ba: JUMPDEST 000014bb: PUSH1 0x00 000014bd: PUSH1 0x01 000014bf: DUP3 000014c0: ADD 000014c1: PUSH2 0x14cc 000014c4: JUMPI 000014c5: PUSH2 0x14cc 000014c8: PUSH2 0x134c 000014cb: JUMP 000014cc: JUMPDEST 000014cd: POP 000014ce: PUSH1 0x01 000014d0: ADD 000014d1: SWAP1 000014d2: JUMP 000014d3: INVALID 000014d4: LOG2 000014d5: PUSH5 0x6970667358 000014db: UNKNOWN(0x22) 000014dc: SLT 000014dd: KECCAK256 000014de: SUB 000014df: SWAP11 000014e0: UNKNOWN(0xBA) 000014e1: UNKNOWN(0xC9) 000014e2: UNKNOWN(0x4B) 000014e3: UNKNOWN(0x27) 000014e4: MCOPY 000014e5: UNKNOWN(0xB1) 000014e6: UNKNOWN(0xB7) 000014e7: UNKNOWN(0xD6) 000014e8: BLOBBASEFEE 000014e9: CALLDATALOAD 000014ea: UNKNOWN(0xF9) 000014eb: UNKNOWN(0xCD) 000014ec: NUMBER 000014ed: CHAINID 000014ee: UNKNOWN(0xE4) 000014ef: UNKNOWN(0x26) 000014f0: PUSH17 0x0be9fd7fe1e864e5be7b33b0f364736f6c 00001502: PUSH4 0x43000814 00001507: STOP 00001508: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x474f4de87e76591811007e1b65534419dccbfd3f2f8957ce5d77d49823016892
call_targets:
0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x474f4de87e76591811007e1b65534419dccbfd3f2f8957ce5d77d49823016892",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4"
],
"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": "0x96fafd9d",
"selector": "0x96fafd9d",
"calldata_variants": [
"0x96fafd9d",
"0x96fafd9d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa677f982",
"selector": "0xa677f982",
"calldata_variants": [
"0xa677f982",
"0xa677f9820000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd902dbc0",
"selector": "0xd902dbc0",
"calldata_variants": [
"0xd902dbc0",
"0xd902dbc00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda26f12b",
"selector": "0xda26f12b",
"calldata_variants": [
"0xda26f12b",
"0xda26f12b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30c3978",
"selector": "0xe30c3978",
"calldata_variants": [
"0xe30c3978",
"0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7f847904",
"selector": "0x7f847904",
"calldata_variants": [
"0x7f847904",
"0x7f8479040000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8456cb59",
"selector": "0x8456cb59",
"calldata_variants": [
"0x8456cb59",
"0x8456cb590000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1670,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1942,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x474f4de87e76591811007e1b65534419dccbfd3f2f8957ce5d77d49823016892
call_targets:
0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x474f4de87e76591811007e1b65534419dccbfd3f2f8957ce5d77d49823016892",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4"
],
"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": "0x96fafd9d",
"selector": "0x96fafd9d",
"calldata_variants": [
"0x96fafd9d",
"0x96fafd9d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa677f982",
"selector": "0xa677f982",
"calldata_variants": [
"0xa677f982",
"0xa677f9820000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd902dbc0",
"selector": "0xd902dbc0",
"calldata_variants": [
"0xd902dbc0",
"0xd902dbc00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda26f12b",
"selector": "0xda26f12b",
"calldata_variants": [
"0xda26f12b",
"0xda26f12b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30c3978",
"selector": "0xe30c3978",
"calldata_variants": [
"0xe30c3978",
"0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7f847904",
"selector": "0x7f847904",
"calldata_variants": [
"0x7f847904",
"0x7f8479040000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8456cb59",
"selector": "0x8456cb59",
"calldata_variants": [
"0x8456cb59",
"0x8456cb590000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1670,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1942,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| medium | reentrancy | codex | Computed CALL with ETH value may reach untrusted target | 75 | no | — |
viewevidence_json{
"evidence": "CALL sites at pc 1670 and 1942 have target/value marked computed and returndata_checked=null; detector flags untrusted CALL + ETH value transfer possible; validation saw constant target but not confirmed.",
"locations": [
"pc:0x686",
"pc:0x796"
],
"recommendation": "Constrain CALL target/value to trusted addresses (immutable/whitelist), add reentrancy protection around any state changes before/after the call, and check CALL success/returndata so failures cannot be ignored.",
"exploit_scenario": "If the CALL target/value are derived from user-controlled calldata or mutable storage, an attacker can trigger an external call with ETH to an arbitrary address and reenter before state is finalized, or redirect funds. The only observed validation trace showed the target constant to the contract itself (0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4), which would reduce risk, but bytecode-only evidence cannot confirm the target is always constant."
}
|