019c0ea9-0907-7184-aaf7-3f9385a0e75c
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 |
|---|---|---|---|---|
| 41970 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 41971 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 41972 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 41973 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 41974 | capability.graph | complete | 1 / 3 | 2 months ago |
| 41975 | detector.run | complete | 1 / 3 | 2 months ago |
| 41976 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42378 | report.consolidate | complete | 1 / 6 | 2 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode shows multiple CALLs with computed target/value (including ETH value transfers) and a CALLCODE instruction in an apparently unreachable tail section; access control and reentrancy protections are unclear from bytecode-only analysis.","findings":[{"severity":"medium","category":"other","title":"Potentially user-influenced external CALLs with ETH value","exploit_scenario":"If any externally callable function allows a user to influence the call target and/or value (via calldata or mutable storage), an attacker could force the contract to call arbitrary contracts or transfer ETH, potentially triggering reentrancy or unintended fund movements. This is uncertain because a validation trace observed a constant target (self) for one path, but the bytecode analysis still classifies these callsites as computed-target/value with no detected guards.","recommendation":"Confirm which functions reach these CALL sites and enforce strict access control or target allowlists. If user input affects target/value, add validation and consider reentrancy protection around value-bearing calls. Ensure call success is checked and failures revert consistently.","evidence":"detector_findings[0]/[1] report 11 CALL sites with computed target/value and no guards detected; callsites list shows CALL at pcs 3308, 4406, 4841, 5506, 5586, 5755, 7174, 7314, 7433, 7988. Validation trace notes constant_target=self but not confirmed, so exposure is uncertain.","locations":["pc:0xcec","pc:0x1136","pc:0x12e9","pc:0x1582","pc:0x15d2","pc:0x167b","pc:0x1c06","pc:0x1c92","pc:0x1d09","pc:0x1f34"]},{"severity":"low","category":"other","title":"CALLCODE present in unreachable tail code (if reachable, executes in caller storage)","exploit_scenario":"If control flow could reach the CALLCODE at pc 8127, a computed target would execute in the caller’s storage context, enabling arbitrary storage writes and fund theft. CFG shows no incoming edges to the CALLCODE block, suggesting it is likely unreachable metadata, but reachability is uncertain in bytecode-only analysis.","recommendation":"Verify the tail section is truly unreachable. If any path can reach it, remove the CALLCODE or replace with safer patterns under strict access control.","evidence":"Basic block at start_pc 8092 contains CALLCODE with computed target/value (callsites list: pc 8127). CFG has zero incoming edges to bb:8092, indicating likely unreachable code.","locations":["pc:0x1fbf"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-aisphg45
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f4e-3aa2-70c2-85f8-7581f919f500
--------
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
exec
/bin/bash -lc ls in /tmp/codex-aisphg45 succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-aisphg45 succeeded in 8ms:
{
"analysis_artifact": {
"address": "0xeba02cfc36c01acbe10f6bcb909b76749e54956a",
"artifact_hash": "0xc6b58b7eddb9bd8c65bfe36f5552388593b5a55e03bad3f8c62b21c4fed4f8de",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 12,
"hash": "0x07e7c3ea33014c182f15c30c4172f6859f69a18a6d3425e1e670540ee5856d46",
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"CALLDATASIZE",
"LT",
"PUSH2",
exec
/bin/bash -lc 'rg -n "storage|slot|proxy|delegatecall|DELEGATECALL|callcode|CALLCODE|selfdestruct" BYTECODE_BUNDLE.json' in /tmp/codex-aisphg45 succeeded in 15ms:
7475: "CALLCODE",
7566: "opcode": "CALLCODE",
9645: "delegatecall": 0,
9646: "selfdestruct": 0,
9649: "storage": {
9651: "slots": [
9655: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
9660: "slot": "0x000000000000000000000000000000000000000000000000000000000000002b"
9665: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
9670: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
9675: "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
9680: "slot": "0x0000000000000000000000000000000000000000000000000000000000000028"
9685: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
9690: "slot": "0x0000000000000000000000000000000000000000000000000000000000000026"
9695: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
9700: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
9705: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
9710: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
9715: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
9720: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
exec
/bin/bash -lc 'rg -n "CALLCODE" -n BYTECODE_BUNDLE.json' in /tmp/codex-aisphg45 succeeded in 7ms:
7475: "CALLCODE",
7566: "opcode": "CALLCODE",
24781: "opcode": "CALLCODE",
exec
/bin/bash -lc "sed -n '7440,7605p' BYTECODE_BUNDLE.json" in /tmp/codex-aisphg45 succeeded in 8ms:
},
{
"end_pc": 8027,
"hash": "0x8bc5e8c5e7afdbdd040937f38fc3f16b12fdb7973d7a9711729e7beb203b2c39",
"opcodes": [
"STOP"
],
"start_pc": 8027
},
{
"end_pc": 8091,
"hash": "0xa50f325bf7465a4446057d3a75b9ca7b03aa9f77c8d2362a3b3421c4c48af19e",
"opcodes": [
"GASLIMIT",
"PUSH8",
"PUSH22",
"PUSH6",
"PUSH22",
"STOP"
],
exec
/bin/bash -lc "python - <<'PY'
import json
import re
from pathlib import Path
path = Path('BYTECODE_BUNDLE.json')
data = json.loads(path.read_text())
blocks = data['analysis_artifact']['artifact_json']['basic_blocks']
print('blocks', len(blocks))
# find blocks with CALL or CALLCODE
for b in blocks:
ops = b.get('opcodes', [])
if 'CALL' in ops or 'CALLCODE' in ops or 'DELEGATECALL' in ops:
print('block', b['start_pc'], b['end_pc'], ops)
PY" in /tmp/codex-aisphg45 succeeded in 47ms:
blocks 384
block 3305 3315 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 4403 4413 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 4804 4853 ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH1', 'MLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_90', 'OP_91', 'AND', 'OP_91', 'ADDRESS', 'BALANCE', 'OP_80', 'ISZERO', 'PUSH2', 'MUL', 'OP_92', 'OP_90', 'OP_91', 'OP_81', 'OP_81', 'OP_81', 'OP_85', 'OP_88', 'OP_88', 'CALL', 'OP_93', 'POP', 'POP', 'POP', 'POP', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 5482 5518 ['PUSH1', 'MLOAD', 'CALLER', 'OP_90', 'CALLVALUE', 'OP_85', 'OP_90', 'SUB', 'OP_80', 'ISZERO', 'PUSH2', 'MUL', 'OP_91', 'PUSH1', 'OP_81', 'OP_81', 'OP_81', 'OP_85', 'OP_88', 'OP_88', 'CALL', 'OP_93', 'POP', 'POP', 'POP', 'POP', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 5568 5591 ['JUMPDEST', 'PUSH1', 'MLOAD', 'OP_81', 'ISZERO', 'OP_90', 'OP_92', 'MUL', 'OP_91', 'PUSH1', 'OP_81', 'OP_81', 'OP_81', 'OP_85', 'OP_88', 'OP_88', 'CALL', 'POP', 'POP', 'POP', 'POP', 'POP']
block 5752 5762 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 7171 7181 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 7311 7321 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 7430 7440 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 7985 7995 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 8092 8133 ['OP_A1', 'PUSH6', 'SHA3', 'OP_85', 'LT', 'PUSH11', 'OP_B3', 'OP_BA', 'PUSH9', 'CALLCODE', 'MSIZE', 'OP_CC', 'BALANCE', 'SLT', 'OP_89', 'STOP']
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
import itertools
path = Path('BYTECODE_BUNDLE.json')
data = json.loads(path.read_text())
blocks = data['analysis_artifact']['artifact_json']['basic_blocks']
# map start_pc to block
for b in blocks:
if 'SSTORE' in b.get('opcodes', []):
print('SSTORE block', b['start_pc'], b['end_pc'], b['opcodes'])
PY" in /tmp/codex-aisphg45 succeeded in 47ms:
SSTORE block 1823 1827 ['JUMPDEST', 'PUSH1', 'SSTORE', 'JUMP']
SSTORE block 1938 1984 ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH20', 'NOT', 'AND', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_92', 'OP_90', 'OP_92', 'AND', 'OP_91', 'OP_90', 'OP_91', 'OR', 'OP_90', 'SSTORE', 'JUMP']
SSTORE block 2193 2197 ['JUMPDEST', 'PUSH1', 'SSTORE', 'JUMP']
SSTORE block 2631 2701 ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH21', 'NOT', 'AND', 'OP_81', 'SSTORE', 'PUSH1', 'MLOAD', 'PUSH32', 'OP_91', 'OP_90', 'OP_A1', 'JUMP']
SSTORE block 3065 3139 ['JUMPDEST', 'PUSH1', 'OP_83', 'OP_81', 'MSTORE', 'PUSH1', 'PUSH1', 'MSTORE', 'PUSH1', 'OP_80', 'OP_82', 'SHA3', 'OP_80', 'SLOAD', 'PUSH1', 'NOT', 'AND', 'PUSH1', 'OR', 'OP_90', 'SSTORE', 'MLOAD', 'OP_84', 'OP_91', 'PUSH32', 'OP_91', 'OP_A2', 'PUSH1', 'OP_90', 'OP_91', 'ADD', 'OP_90', 'PUSH2', 'JUMP']
SSTORE block 3435 3481 ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH20', 'NOT', 'AND', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_92', 'OP_90', 'OP_92', 'AND', 'OP_91', 'OP_90', 'OP_91', 'OR', 'OP_90', 'SSTORE', 'JUMP']
SSTORE block 3567 3651 ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH1', 'MLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_90', 'OP_91', 'AND', 'OP_91', 'PUSH32', 'OP_91', 'OP_A2', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH20', 'NOT', 'AND', 'OP_90', 'SSTORE', 'JUMP']
SSTORE block 3941 4017 ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH21', 'NOT', 'AND', 'PUSH1', 'PUSH1', 'EXP', 'OR', 'OP_81', 'SSTORE', 'PUSH1', 'MLOAD', 'PUSH32', 'OP_91', 'OP_90', 'OP_A1', 'JUMP']
SSTORE block 5304 5379 ['JUMPDEST', 'OP_80', 'OP_85', 'SSTORE', 'TIMESTAMP', 'PUSH1', 'OP_86', 'ADD', 'OP_81', 'OP_90', 'SSTORE', 'PUSH1', 'OP_80', 'MLOAD', 'OP_92', 'OP_83', 'MSTORE', 'PUSH1', 'OP_83', 'ADD', 'OP_91', 'OP_90', 'OP_91', 'MSTORE', 'OP_80', 'MLOAD', 'OP_8A', 'OP_92', 'PUSH32', 'OP_92', 'OP_90', 'OP_82', 'OP_90', 'SUB', 'ADD', 'OP_90', 'OP_A2', 'PUSH2', 'JUMP']
SSTORE block 5380 5472 ['JUMPDEST', 'PUSH1', 'OP_88', 'OP_81', 'MSTORE', 'PUSH1', 'PUSH1', 'OP_90', 'OP_81', 'MSTORE', 'PUSH1', 'OP_80', 'OP_83', 'SHA3', 'OP_83', 'OP_81', 'SSTORE', 'PUSH1', 'ADD', 'OP_83', 'OP_90', 'SSTORE', 'PUSH1', 'OP_82', 'MSTORE', 'OP_91', 'OP_82', 'OP_90', 'SHA3', 'OP_80', 'SLOAD', 'PUSH1', 'NOT', 'AND', 'OP_90', 'SSTORE', 'OP_81', 'MLOAD', 'OP_85', 'OP_81', 'MSTORE', 'OP_91', 'MLOAD', 'OP_8A', 'OP_92', 'PUSH32', 'OP_92', 'OP_90', 'OP_82', 'OP_90', 'SUB', 'ADD', 'OP_90', 'OP_A2']
SSTORE block 5882 5928 ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH20', 'NOT', 'AND', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_92', 'OP_90', 'OP_92', 'AND', 'OP_91', 'OP_90', 'OP_91', 'OR', 'OP_90', 'SSTORE', 'JUMP']
SSTORE block 6168 6249 ['JUMPDEST', 'OP_83', 'OP_81', 'SSTORE', 'TIMESTAMP', 'PUSH1', 'OP_82', 'ADD', 'OP_81', 'OP_90', 'SSTORE', 'PUSH1', 'OP_80', 'MLOAD', 'OP_86', 'OP_81', 'MSTORE', 'PUSH1', 'OP_81', 'ADD', 'OP_92', 'OP_90', 'OP_92', 'MSTORE', 'OP_80', 'MLOAD', 'OP_85', 'OP_92', 'PUSH32', 'OP_92', 'OP_90', 'OP_82', 'OP_90', 'SUB', 'ADD', 'OP_90', 'OP_A2', 'PUSH1', 'OP_90', 'OP_91', 'ADD', 'OP_90', 'PUSH2', 'JUMP']
SSTORE block 6345 6391 ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH20', 'NOT', 'AND', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_92', 'OP_90', 'OP_92', 'AND', 'OP_91', 'OP_90', 'OP_91', 'OR', 'OP_90', 'SSTORE', 'JUMP']
SSTORE block 6605 6709 ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH1', 'MLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_91', 'OP_82', 'AND', 'OP_92', 'OP_91', 'OP_84', 'AND', 'OP_91', 'PUSH32', 'OP_91', 'OP_A3', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH20', 'NOT', 'AND', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_92', 'OP_90', 'OP_92', 'AND', 'OP_91', 'OP_90', 'OP_91', 'OR', 'OP_90', 'SSTORE', 'JUMP']
SSTORE block 6983 7057 ['JUMPDEST', 'PUSH1', 'OP_82', 'OP_81', 'MSTORE', 'PUSH1', 'PUSH1', 'OP_90', 'OP_81', 'MSTORE', 'PUSH1', 'OP_91', 'OP_82', 'OP_90', 'SHA3', 'OP_83', 'OP_90', 'SSTORE', 'OP_81', 'MLOAD', 'OP_83', 'OP_81', 'MSTORE', 'OP_91', 'MLOAD', 'OP_84', 'OP_92', 'PUSH32', 'OP_92', 'OP_90', 'OP_82', 'OP_90', 'SUB', 'ADD', 'OP_90', 'OP_A2', 'POP', 'POP', 'JUMP']
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
data = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
blocks = data['analysis_artifact']['artifact_json']['basic_blocks']
# map id by start_pc
start_to_id = {}
for b in blocks:
if 'start_pc' in b:
start_to_id[b['start_pc']] = f\"bb:{b['start_pc']}\"
# find bb id for 8092
bbid = start_to_id.get(8092)
print('bbid', bbid)
# check cfg edges to it
edges = data['analysis_artifact']['artifact_json']['cfg_edges']
inc = [e for e in edges if e['to'] == bbid]
print('incoming edges', len(inc))
if inc:
print(inc[:10])
PY" in /tmp/codex-aisphg45 succeeded in 45ms:
bbid bb:8092
incoming edges 0
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
data = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
print(data.keys())
PY" in /tmp/codex-aisphg45 succeeded in 35ms:
dict_keys(['analysis_artifact', 'analysis_run', 'artifact', 'capability_graph', 'detector_findings', 'heuristics_summary'])
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
data = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
for k in ['analysis_run','artifact','capability_graph']:
print('==', k)
if k in data:
if isinstance(data[k], dict):
print(list(data[k].keys())[:20])
else:
print(type(data[k]))
PY" in /tmp/codex-aisphg45 succeeded in 35ms:
== analysis_run
['address', 'block_number', 'chain_id', 'child_links', 'created_at', 'id', 'parent_links', 'status', 'updated_at']
== artifact
['codehash', 'compiler_json', 'implementation_address', 'is_proxy', 'runtime_bytecode', 'verified_source']
== capability_graph
['address', 'block_number', 'chain_id', 'codehash', 'created_at', 'graph_hash', 'graph_json', 'id', 'updated_at', 'version']
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
data = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
cg = data['capability_graph']['graph_json']
print(cg.keys())
print('functions', len(cg.get('functions', [])))
print('callsites', len(cg.get('callsites', [])))
print('storage slots', len(cg.get('storage', {}).get('slots', [])))
PY" in /tmp/codex-aisphg45 exited 1 in 27ms:
File "<stdin>", line 5
cg = data['capability_graph']['graph_json']
IndentationError: unexpected indent
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
data = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
cg = data['capability_graph']['graph_json']
print(cg.keys())
print('functions', len(cg.get('functions', [])))
print('callsites', len(cg.get('callsites', [])))
print('storage slots', len(cg.get('storage', {}).get('slots', [])))
PY" in /tmp/codex-aisphg45 succeeded in 83ms:
dict_keys(['edges', 'nodes', 'version'])
functions 0
callsites 0
storage slots 0
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
data = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
callsites = data['analysis_artifact']['artifact_json']['callsites']
for cs in callsites:
print(cs)
PY" in /tmp/codex-aisphg45 succeeded in 38ms:
{'opcode': 'CALL', 'pc': 3308, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 4406, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 4841, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 5506, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 5586, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 5755, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 7174, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 7314, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 7433, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 7988, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALLCODE', 'pc': 8127, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
data = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
blocks = data['analysis_artifact']['artifact_json']['basic_blocks']
for b in blocks:
ops = b.get('opcodes', [])
if 'CALLER' in ops and 'EQ' in ops:
print('block', b['start_pc'], b['end_pc'], ops)
PY" in /tmp/codex-aisphg45 succeeded in 46ms:
block 454 468 ['POP', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ']
block 1589 1607 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 1743 1761 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 1858 1876 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 1985 2003 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 2452 2470 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 2707 2730 ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'OP_81', 'OP_90', 'OP_81', 'OP_90', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 3163 3181 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 3487 3505 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 3763 3781 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 4155 4167 ['POP', 'CALLER', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_84', 'AND', 'EQ']
block 4724 4742 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 5179 5201 ['JUMPDEST', 'OP_91', 'POP', 'PUSH1', 'OP_90', 'POP', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_87', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 5610 5628 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 5934 5957 ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'OP_81', 'OP_90', 'OP_81', 'OP_90', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 6265 6283 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
block 6392 6410 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
data = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
blocks = data['analysis_artifact']['artifact_json']['basic_blocks']
edges = data['analysis_artifact']['artifact_json']['cfg_edges']
# map bb id to block
id_to_block = {}
for b in blocks:
if 'start_pc' in b:
id_to_block[f\"bb:{b['start_pc']}\"] = b
# list call blocks
call_blocks = [b for b in blocks if 'CALL' in b.get('opcodes', [])]
# function to get preds
from collections import defaultdict
preds = defaultdict(list)
for e in edges:
preds[e['to']].append(e['from'])
for b in call_blocks:
bbid = f\"bb:{b['start_pc']}\"
p = preds.get(bbid, [])
print('call block', b['start_pc'], 'preds', [int(x.split(':')[1]) for x in p])
for pid in p:
pb = id_to_block.get(pid)
if pb and 'CALLER' in pb.get('opcodes', []) and 'EQ' in pb.get('opcodes', []):
print(' pred has CALLER EQ', pb['start_pc'])
PY" in /tmp/codex-aisphg45 succeeded in 48ms:
call block 3305 preds [3243]
call block 4403 preds [4292]
call block 4804 preds [4724]
pred has CALLER EQ 4724
call block 5482 preds [5473]
call block 5568 preds []
call block 5752 preds [5690]
call block 7171 preds [7068]
call block 7311 preds [7213]
call block 7430 preds [7353]
call block 7985 preds [7878]
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
data = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
blocks = {b['start_pc']: b for b in data['analysis_artifact']['artifact_json']['basic_blocks'] if 'start_pc' in b}
# call blocks and their preds
edges = data['analysis_artifact']['artifact_json']['cfg_edges']
from collections import defaultdict
preds = defaultdict(list)
for e in edges:
preds[e['to']].append(e['from'])
call_block_starts = [b['start_pc'] for b in data['analysis_artifact']['artifact_json']['basic_blocks'] if 'CALL' in b.get('opcodes', [])]
for start in call_block_starts:
bbid = f\"bb:{start}\"
p = preds.get(bbid, [])
print('\\ncall block', start)
for pid in p:
pstart = int(pid.split(':')[1])
pb = blocks.get(pstart)
print(' pred', pstart, pb.get('opcodes'))
PY" in /tmp/codex-aisphg45 succeeded in 41ms:
call block 3305
pred 3243 ['JUMPDEST', 'OP_80', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'PUSH4', 'PUSH1', 'MLOAD', 'OP_81', 'PUSH4', 'AND', 'PUSH1', 'PUSH1', 'EXP', 'MUL', 'OP_81', 'MSTORE', 'PUSH1', 'ADD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'PUSH1', 'OP_87', 'OP_80', 'EXTCODESIZE', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
call block 4403
pred 4292 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'OP_80', 'MLOAD', 'PUSH32', 'OP_81', 'MSTORE', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_88', 'OP_81', 'AND', 'PUSH1', 'OP_83', 'ADD', 'MSTORE', 'PUSH1', 'PUSH1', 'OP_83', 'ADD', 'MSTORE', 'OP_91', 'MLOAD', 'OP_91', 'OP_90', 'OP_92', 'AND', 'OP_91', 'PUSH4', 'OP_91', 'PUSH1', 'OP_80', 'OP_83', 'ADD', 'OP_92', 'PUSH1', 'OP_92', 'OP_91', 'OP_90', 'OP_82', 'OP_90', 'SUB', 'ADD', 'OP_81', 'PUSH1', 'OP_87', 'OP_80', 'EXTCODESIZE', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
call block 4804
pred 4724 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']
call block 5482
pred 5473 ['JUMPDEST', 'OP_82', 'CALLVALUE', 'GT', 'ISZERO', 'PUSH2', 'JUMPI']
call block 5568
call block 5752
pred 5690 ['JUMPDEST', 'OP_80', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'PUSH4', 'PUSH1', 'MLOAD', 'OP_81', 'PUSH4', 'AND', 'PUSH1', 'PUSH1', 'EXP', 'MUL', 'OP_81', 'MSTORE', 'PUSH1', 'ADD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'PUSH1', 'OP_87', 'OP_80', 'EXTCODESIZE', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
call block 7171
pred 7068 ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'OP_80', 'MLOAD', 'PUSH32', 'OP_81', 'MSTORE', 'OP_90', 'MLOAD', 'PUSH1', 'OP_92', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'AND', 'OP_91', 'PUSH4', 'OP_91', 'OP_83', 'OP_91', 'PUSH4', 'OP_91', 'PUSH1', 'OP_80', 'OP_83', 'ADD', 'OP_92', 'PUSH1', 'OP_92', 'OP_91', 'OP_90', 'OP_82', 'OP_90', 'SUB', 'ADD', 'OP_81', 'OP_89', 'OP_87', 'OP_80', 'EXTCODESIZE', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
exec
/bin/bash -lc "python - <<'PY'
print(hex(8127))
print(hex(3308))
print(hex(4406))
print(hex(4841))
print(hex(5506))
print(hex(5586))
print(hex(5755))
print(hex(7174))
print(hex(7314))
print(hex(7433))
print(hex(7988))
PY" in /tmp/codex-aisphg45 succeeded in 45ms:
0x1fbf
0xcec
0x1136
0x12e9
0x1582
0x15d2
0x167b
0x1c06
0x1c92
0x1d09
0x1f34
codex
{"no_findings":false,"summary":"Bytecode shows multiple CALLs with computed target/value (including ETH value transfers) and a CALLCODE instruction in an apparently unreachable tail section; access control and reentrancy protections are unclear from bytecode-only analysis.","findings":[{"severity":"medium","category":"other","title":"Potentially user-influenced external CALLs with ETH value","exploit_scenario":"If any externally callable function allows a user to influence the call target and/or value (via calldata or mutable storage), an attacker could force the contract to call arbitrary contracts or transfer ETH, potentially triggering reentrancy or unintended fund movements. This is uncertain because a validation trace observed a constant target (self) for one path, but the bytecode analysis still classifies these callsites as computed-target/value with no detected guards.","recommendation":"Confirm which functions reach these CALL sites and enforce strict access control or target allowlists. If user input affects target/value, add validation and consider reentrancy protection around value-bearing calls. Ensure call success is checked and failures revert consistently.","evidence":"detector_findings[0]/[1] report 11 CALL sites with computed target/value and no guards detected; callsites list shows CALL at pcs 3308, 4406, 4841, 5506, 5586, 5755, 7174, 7314, 7433, 7988. Validation trace notes constant_target=self but not confirmed, so exposure is uncertain.","locations":["pc:0xcec","pc:0x1136","pc:0x12e9","pc:0x1582","pc:0x15d2","pc:0x167b","pc:0x1c06","pc:0x1c92","pc:0x1d09","pc:0x1f34"]},{"severity":"low","category":"other","title":"CALLCODE present in unreachable tail code (if reachable, executes in caller storage)","exploit_scenario":"If control flow could reach the CALLCODE at pc 8127, a computed target would execute in the caller’s storage context, enabling arbitrary storage writes and fund theft. CFG shows no incoming edges to the CALLCODE block, suggesting it is likely unreachable metadata, but reachability is uncertain in bytecode-only analysis.","recommendation":"Verify the tail section is truly unreachable. If any path can reach it, remove the CALLCODE or replace with safer patterns under strict access control.","evidence":"Basic block at start_pc 8092 contains CALLCODE with computed target/value (callsites list: pc 8127). CFG has zero incoming edges to bb:8092, indicating likely unreachable code.","locations":["pc:0x1fbf"]}]}
tokens used
54,545
{
"codex": {
"ran_at": "2026-01-30T14:32:06.562537+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 16272,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode shows multiple CALLs with computed target/value (including ETH value transfers) and a CALLCODE instruction in an apparently unreachable tail section; access control and reentrancy protections are unclear from bytecode-only analysis.",
"raw_final": {
"summary": "Bytecode shows multiple CALLs with computed target/value (including ETH value transfers) and a CALLCODE instruction in an apparently unreachable tail section; access control and reentrancy protections are unclear from bytecode-only analysis.",
"findings": [
{
"title": "Potentially user-influenced external CALLs with ETH value",
"category": "other",
"evidence": "detector_findings[0]/[1] report 11 CALL sites with computed target/value and no guards detected; callsites list shows CALL at pcs 3308, 4406, 4841, 5506, 5586, 5755, 7174, 7314, 7433, 7988. Validation trace notes constant_target=self but not confirmed, so exposure is uncertain.",
"severity": "medium",
"locations": [
"pc:0xcec",
"pc:0x1136",
"pc:0x12e9",
"pc:0x1582",
"pc:0x15d2",
"pc:0x167b",
"pc:0x1c06",
"pc:0x1c92",
"pc:0x1d09",
"pc:0x1f34"
],
"recommendation": "Confirm which functions reach these CALL sites and enforce strict access control or target allowlists. If user input affects target/value, add validation and consider reentrancy protection around value-bearing calls. Ensure call success is checked and failures revert consistently.",
"exploit_scenario": "If any externally callable function allows a user to influence the call target and/or value (via calldata or mutable storage), an attacker could force the contract to call arbitrary contracts or transfer ETH, potentially triggering reentrancy or unintended fund movements. This is uncertain because a validation trace observed a constant target (self) for one path, but the bytecode analysis still classifies these callsites as computed-target/value with no detected guards."
},
{
"title": "CALLCODE present in unreachable tail code (if reachable, executes in caller storage)",
"category": "other",
"evidence": "Basic block at start_pc 8092 contains CALLCODE with computed target/value (callsites list: pc 8127). CFG has zero incoming edges to bb:8092, indicating likely unreachable code.",
"severity": "low",
"locations": [
"pc:0x1fbf"
],
"recommendation": "Verify the tail section is truly unreachable. If any path can reach it, remove the CALLCODE or replace with safer patterns under strict access control.",
"exploit_scenario": "If control flow could reach the CALLCODE at pc 8127, a computed target would execute in the caller\u2019s storage context, enabling arbitrary storage writes and fund theft. CFG shows no incoming edges to the CALLCODE block, suggesting it is likely unreachable metadata, but reachability is uncertain in bytecode-only analysis."
}
],
"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 0x01be 0000000c: JUMPI 0000000d: PUSH4 0xffffffff 00000012: PUSH1 0xe0 00000014: PUSH1 0x02 00000016: EXP 00000017: PUSH1 0x00 00000019: CALLDATALOAD 0000001a: DIV 0000001b: AND 0000001c: PUSH4 0x0bfd3439 00000021: DUP2 00000022: EQ 00000023: PUSH2 0x0253 00000026: JUMPI 00000027: DUP1 00000028: PUSH4 0x17449224 0000002d: EQ 0000002e: PUSH2 0x027a 00000031: JUMPI 00000032: DUP1 00000033: PUSH4 0x197f4ba0 00000038: EQ 00000039: PUSH2 0x02a1 0000003c: JUMPI 0000003d: DUP1 0000003e: PUSH4 0x1bc84a94 00000043: EQ 00000044: PUSH2 0x02b9 00000047: JUMPI 00000048: DUP1 00000049: PUSH4 0x1bff28cb 0000004e: EQ 0000004f: PUSH2 0x02ea 00000052: JUMPI 00000053: DUP1 00000054: PUSH4 0x1e7bef65 00000059: EQ 0000005a: PUSH2 0x02ff 0000005d: JUMPI 0000005e: DUP1 0000005f: PUSH4 0x203d4f20 00000064: EQ 00000065: PUSH2 0x0320 00000068: JUMPI 00000069: DUP1 0000006a: PUSH4 0x28ec06aa 0000006f: EQ 00000070: PUSH2 0x0338 00000073: JUMPI 00000074: DUP1 00000075: PUSH4 0x29b3d523 0000007a: EQ 0000007b: PUSH2 0x0350 0000007e: JUMPI 0000007f: DUP1 00000080: PUSH4 0x2f181be2 00000085: EQ 00000086: PUSH2 0x037c 00000089: JUMPI 0000008a: DUP1 0000008b: PUSH4 0x34d17861 00000090: EQ 00000091: PUSH2 0x0391 00000094: JUMPI 00000095: DUP1 00000096: PUSH4 0x37554982 0000009b: EQ 0000009c: PUSH2 0x03a6 0000009f: JUMPI 000000a0: DUP1 000000a1: PUSH4 0x3f4ba83a 000000a6: EQ 000000a7: PUSH2 0x03d7 000000aa: JUMPI 000000ab: DUP1 000000ac: PUSH4 0x4868cd5a 000000b1: EQ 000000b2: PUSH2 0x03ec 000000b5: JUMPI 000000b6: DUP1 000000b7: PUSH4 0x5165a8d4 000000bc: EQ 000000bd: PUSH2 0x0391 000000c0: JUMPI 000000c1: DUP1 000000c2: PUSH4 0x5513bb7d 000000c7: EQ 000000c8: PUSH2 0x0401 000000cb: JUMPI 000000cc: DUP1 000000cd: PUSH4 0x5c975abb 000000d2: EQ 000000d3: PUSH2 0x0421 000000d6: JUMPI 000000d7: DUP1 000000d8: PUSH4 0x6c2e6478 000000dd: EQ 000000de: PUSH2 0x0436 000000e1: JUMPI 000000e2: DUP1 000000e3: PUSH4 0x6e30f640 000000e8: EQ 000000e9: PUSH2 0x0457 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0x715018a6 000000f3: EQ 000000f4: PUSH2 0x046c 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0x75eb8825 000000fe: EQ 000000ff: PUSH2 0x0481 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x8456cb59 00000109: EQ 0000010a: PUSH2 0x0499 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x8da5cb5b 00000114: EQ 00000115: PUSH2 0x04ae 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x8f4ffcb1 0000011f: EQ 00000120: PUSH2 0x04c3 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x965a8a0f 0000012a: EQ 0000012b: PUSH2 0x04fb 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x9e6d239a 00000135: EQ 00000136: PUSH2 0x0510 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0x9f727c27 00000140: EQ 00000141: PUSH2 0x0528 00000144: JUMPI 00000145: DUP1 00000146: PUSH4 0xa5524e11 0000014b: EQ 0000014c: PUSH2 0x053d 0000014f: JUMPI 00000150: DUP1 00000151: PUSH4 0xae161f4e 00000156: EQ 00000157: PUSH2 0x0554 0000015a: JUMPI 0000015b: DUP1 0000015c: PUSH4 0xb6432fa3 00000161: EQ 00000162: PUSH2 0x037c 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0xc1856aad 0000016c: EQ 0000016d: PUSH2 0x0569 00000170: JUMPI 00000171: DUP1 00000172: PUSH4 0xd0bc7e56 00000177: EQ 00000178: PUSH2 0x058a 0000017b: JUMPI 0000017c: DUP1 0000017d: PUSH4 0xd7941474 00000182: EQ 00000183: PUSH2 0x059f 00000186: JUMPI 00000187: DUP1 00000188: PUSH4 0xdcb177c2 0000018d: EQ 0000018e: PUSH2 0x05c3 00000191: JUMPI 00000192: DUP1 00000193: PUSH4 0xdd6eff87 00000198: EQ 00000199: PUSH2 0x05d8 0000019c: JUMPI 0000019d: DUP1 0000019e: PUSH4 0xed8248d7 000001a3: EQ 000001a4: PUSH2 0x0391 000001a7: JUMPI 000001a8: DUP1 000001a9: PUSH4 0xf2fde38b 000001ae: EQ 000001af: PUSH2 0x05f9 000001b2: JUMPI 000001b3: DUP1 000001b4: PUSH4 0xf6a56281 000001b9: EQ 000001ba: PUSH2 0x061a 000001bd: JUMPI 000001be: JUMPDEST 000001bf: CALLVALUE 000001c0: ISZERO 000001c1: DUP1 000001c2: PUSH2 0x01d5 000001c5: JUMPI 000001c6: POP 000001c7: PUSH1 0x00 000001c9: SLOAD 000001ca: PUSH1 0x01 000001cc: PUSH1 0xa0 000001ce: PUSH1 0x02 000001d0: EXP 000001d1: SUB 000001d2: AND 000001d3: CALLER 000001d4: EQ 000001d5: JUMPDEST 000001d6: ISZERO 000001d7: ISZERO 000001d8: PUSH2 0x0251 000001db: JUMPI 000001dc: PUSH1 0x40 000001de: DUP1 000001df: MLOAD 000001e0: PUSH1 0xe5 000001e2: PUSH1 0x02 000001e4: EXP 000001e5: PUSH3 0x461bcd 000001e9: MUL 000001ea: DUP2 000001eb: MSTORE 000001ec: PUSH1 0x20 000001ee: PUSH1 0x04 000001f0: DUP3 000001f1: ADD 000001f2: MSTORE 000001f3: PUSH1 0x34 000001f5: PUSH1 0x24 000001f7: DUP3 000001f8: ADD 000001f9: MSTORE 000001fa: PUSH32 0x4e6f2045746865722069732061636365707465642066726f6d206f6e6573206f 0000021b: PUSH1 0x44 0000021d: DUP3 0000021e: ADD 0000021f: MSTORE 00000220: PUSH32 0x74686572207468616e20746865206f776e65722e000000000000000000000000 00000241: PUSH1 0x64 00000243: DUP3 00000244: ADD 00000245: MSTORE 00000246: SWAP1 00000247: MLOAD 00000248: SWAP1 00000249: DUP2 0000024a: SWAP1 0000024b: SUB 0000024c: PUSH1 0x84 0000024e: ADD 0000024f: SWAP1 00000250: REVERT 00000251: JUMPDEST 00000252: STOP 00000253: JUMPDEST 00000254: CALLVALUE 00000255: DUP1 00000256: ISZERO 00000257: PUSH2 0x025f 0000025a: JUMPI 0000025b: PUSH1 0x00 0000025d: DUP1 0000025e: REVERT 0000025f: JUMPDEST 00000260: POP 00000261: PUSH2 0x0268 00000264: PUSH2 0x062f 00000267: JUMP 00000268: JUMPDEST 00000269: PUSH1 0x40 0000026b: DUP1 0000026c: MLOAD 0000026d: SWAP2 0000026e: DUP3 0000026f: MSTORE 00000270: MLOAD 00000271: SWAP1 00000272: DUP2 00000273: SWAP1 00000274: SUB 00000275: PUSH1 0x20 00000277: ADD 00000278: SWAP1 00000279: RETURN 0000027a: JUMPDEST 0000027b: CALLVALUE 0000027c: DUP1 0000027d: ISZERO 0000027e: PUSH2 0x0286 00000281: JUMPI 00000282: PUSH1 0x00 00000284: DUP1 00000285: REVERT 00000286: JUMPDEST 00000287: POP 00000288: PUSH2 0x0251 0000028b: PUSH1 0x04 0000028d: CALLDATALOAD 0000028e: PUSH1 0x24 00000290: CALLDATALOAD 00000291: PUSH1 0x44 00000293: CALLDATALOAD 00000294: PUSH1 0x64 00000296: CALLDATALOAD 00000297: PUSH1 0x84 00000299: CALLDATALOAD 0000029a: PUSH1 0xa4 0000029c: CALLDATALOAD 0000029d: PUSH2 0x0635 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 0x0251 000002b2: PUSH1 0x04 000002b4: CALLDATALOAD 000002b5: PUSH2 0x06cf 000002b8: JUMP 000002b9: JUMPDEST 000002ba: CALLVALUE 000002bb: DUP1 000002bc: ISZERO 000002bd: PUSH2 0x02c5 000002c0: JUMPI 000002c1: PUSH1 0x00 000002c3: DUP1 000002c4: REVERT 000002c5: JUMPDEST 000002c6: POP 000002c7: PUSH2 0x02ce 000002ca: PUSH2 0x0724 000002cd: JUMP 000002ce: JUMPDEST 000002cf: PUSH1 0x40 000002d1: DUP1 000002d2: MLOAD 000002d3: PUSH1 0x01 000002d5: PUSH1 0xa0 000002d7: PUSH1 0x02 000002d9: EXP 000002da: SUB 000002db: SWAP1 000002dc: SWAP3 000002dd: AND 000002de: DUP3 000002df: MSTORE 000002e0: MLOAD 000002e1: SWAP1 000002e2: DUP2 000002e3: SWAP1 000002e4: SUB 000002e5: PUSH1 0x20 000002e7: ADD 000002e8: SWAP1 000002e9: RETURN 000002ea: JUMPDEST 000002eb: CALLVALUE 000002ec: DUP1 000002ed: ISZERO 000002ee: PUSH2 0x02f6 000002f1: JUMPI 000002f2: PUSH1 0x00 000002f4: DUP1 000002f5: REVERT 000002f6: JUMPDEST 000002f7: POP 000002f8: PUSH2 0x02ce 000002fb: PUSH2 0x0733 000002fe: JUMP 000002ff: JUMPDEST 00000300: CALLVALUE 00000301: DUP1 00000302: ISZERO 00000303: PUSH2 0x030b 00000306: JUMPI 00000307: PUSH1 0x00 00000309: DUP1 0000030a: REVERT 0000030b: JUMPDEST 0000030c: POP 0000030d: PUSH2 0x0251 00000310: PUSH1 0x01 00000312: PUSH1 0xa0 00000314: PUSH1 0x02 00000316: EXP 00000317: SUB 00000318: PUSH1 0x04 0000031a: CALLDATALOAD 0000031b: AND 0000031c: PUSH2 0x0742 0000031f: JUMP 00000320: JUMPDEST 00000321: CALLVALUE 00000322: DUP1 00000323: ISZERO 00000324: PUSH2 0x032c 00000327: JUMPI 00000328: PUSH1 0x00 0000032a: DUP1 0000032b: REVERT 0000032c: JUMPDEST 0000032d: POP 0000032e: PUSH2 0x0251 00000331: PUSH1 0x04 00000333: CALLDATALOAD 00000334: PUSH2 0x07c1 00000337: JUMP 00000338: JUMPDEST 00000339: CALLVALUE 0000033a: DUP1 0000033b: ISZERO 0000033c: PUSH2 0x0344 0000033f: JUMPI 00000340: PUSH1 0x00 00000342: DUP1 00000343: REVERT 00000344: JUMPDEST 00000345: POP 00000346: PUSH2 0x0268 00000349: PUSH1 0x04 0000034b: CALLDATALOAD 0000034c: PUSH2 0x0896 0000034f: JUMP 00000350: JUMPDEST 00000351: CALLVALUE 00000352: DUP1 00000353: ISZERO 00000354: PUSH2 0x035c 00000357: JUMPI 00000358: PUSH1 0x00 0000035a: DUP1 0000035b: REVERT 0000035c: JUMPDEST 0000035d: POP 0000035e: PUSH2 0x0368 00000361: PUSH1 0x04 00000363: CALLDATALOAD 00000364: PUSH2 0x095c 00000367: JUMP 00000368: JUMPDEST 00000369: PUSH1 0x40 0000036b: DUP1 0000036c: MLOAD 0000036d: SWAP2 0000036e: ISZERO 0000036f: ISZERO 00000370: DUP3 00000371: MSTORE 00000372: MLOAD 00000373: SWAP1 00000374: DUP2 00000375: SWAP1 00000376: SUB 00000377: PUSH1 0x20 00000379: ADD 0000037a: SWAP1 0000037b: RETURN 0000037c: JUMPDEST 0000037d: CALLVALUE 0000037e: DUP1 0000037f: ISZERO 00000380: PUSH2 0x0388 00000383: JUMPI 00000384: PUSH1 0x00 00000386: DUP1 00000387: REVERT 00000388: JUMPDEST 00000389: POP 0000038a: PUSH2 0x0268 0000038d: PUSH2 0x0971 00000390: JUMP 00000391: JUMPDEST 00000392: CALLVALUE 00000393: DUP1 00000394: ISZERO 00000395: PUSH2 0x039d 00000398: JUMPI 00000399: PUSH1 0x00 0000039b: DUP1 0000039c: REVERT 0000039d: JUMPDEST 0000039e: POP 0000039f: PUSH2 0x0268 000003a2: PUSH2 0x0976 000003a5: JUMP 000003a6: JUMPDEST 000003a7: CALLVALUE 000003a8: DUP1 000003a9: ISZERO 000003aa: PUSH2 0x03b2 000003ad: JUMPI 000003ae: PUSH1 0x00 000003b0: DUP1 000003b1: REVERT 000003b2: JUMPDEST 000003b3: POP 000003b4: PUSH2 0x03be 000003b7: PUSH1 0x04 000003b9: CALLDATALOAD 000003ba: PUSH2 0x097b 000003bd: JUMP 000003be: JUMPDEST 000003bf: PUSH1 0x40 000003c1: DUP1 000003c2: MLOAD 000003c3: SWAP3 000003c4: DUP4 000003c5: MSTORE 000003c6: PUSH1 0x20 000003c8: DUP4 000003c9: ADD 000003ca: SWAP2 000003cb: SWAP1 000003cc: SWAP2 000003cd: MSTORE 000003ce: DUP1 000003cf: MLOAD 000003d0: SWAP2 000003d1: DUP3 000003d2: SWAP1 000003d3: SUB 000003d4: ADD 000003d5: SWAP1 000003d6: RETURN 000003d7: JUMPDEST 000003d8: CALLVALUE 000003d9: DUP1 000003da: ISZERO 000003db: PUSH2 0x03e3 000003de: JUMPI 000003df: PUSH1 0x00 000003e1: DUP1 000003e2: REVERT 000003e3: JUMPDEST 000003e4: POP 000003e5: PUSH2 0x0251 000003e8: PUSH2 0x0994 000003eb: JUMP 000003ec: JUMPDEST 000003ed: CALLVALUE 000003ee: DUP1 000003ef: ISZERO 000003f0: PUSH2 0x03f8 000003f3: JUMPI 000003f4: PUSH1 0x00 000003f6: DUP1 000003f7: REVERT 000003f8: JUMPDEST 000003f9: POP 000003fa: PUSH2 0x0268 000003fd: PUSH2 0x0a8e 00000400: JUMP 00000401: JUMPDEST 00000402: CALLVALUE 00000403: DUP1 00000404: ISZERO 00000405: PUSH2 0x040d 00000408: JUMPI 00000409: PUSH1 0x00 0000040b: DUP1 0000040c: REVERT 0000040d: JUMPDEST 0000040e: POP 0000040f: PUSH2 0x0251 00000412: PUSH1 0x04 00000414: DUP1 00000415: CALLDATALOAD 00000416: PUSH1 0x24 00000418: DUP2 00000419: ADD 0000041a: SWAP2 0000041b: ADD 0000041c: CALLDATALOAD 0000041d: PUSH2 0x0a93 00000420: JUMP 00000421: JUMPDEST 00000422: CALLVALUE 00000423: DUP1 00000424: ISZERO 00000425: PUSH2 0x042d 00000428: JUMPI 00000429: PUSH1 0x00 0000042b: DUP1 0000042c: REVERT 0000042d: JUMPDEST 0000042e: POP 0000042f: PUSH2 0x0368 00000432: PUSH2 0x0c4b 00000435: JUMP 00000436: JUMPDEST 00000437: CALLVALUE 00000438: DUP1 00000439: ISZERO 0000043a: PUSH2 0x0442 0000043d: JUMPI 0000043e: PUSH1 0x00 00000440: DUP1 00000441: REVERT 00000442: JUMPDEST 00000443: POP 00000444: PUSH2 0x0251 00000447: PUSH1 0x01 00000449: PUSH1 0xa0 0000044b: PUSH1 0x02 0000044d: EXP 0000044e: SUB 0000044f: PUSH1 0x04 00000451: CALLDATALOAD 00000452: AND 00000453: PUSH2 0x0c5b 00000456: JUMP 00000457: JUMPDEST 00000458: CALLVALUE 00000459: DUP1 0000045a: ISZERO 0000045b: PUSH2 0x0463 0000045e: JUMPI 0000045f: PUSH1 0x00 00000461: DUP1 00000462: REVERT 00000463: JUMPDEST 00000464: POP 00000465: PUSH2 0x0268 00000468: PUSH2 0x0d9a 0000046b: JUMP 0000046c: JUMPDEST 0000046d: CALLVALUE 0000046e: DUP1 0000046f: ISZERO 00000470: PUSH2 0x0478 00000473: JUMPI 00000474: PUSH1 0x00 00000476: DUP1 00000477: REVERT 00000478: JUMPDEST 00000479: POP 0000047a: PUSH2 0x0251 0000047d: PUSH2 0x0d9f 00000480: JUMP 00000481: JUMPDEST 00000482: CALLVALUE 00000483: DUP1 00000484: ISZERO 00000485: PUSH2 0x048d 00000488: JUMPI 00000489: PUSH1 0x00 0000048b: DUP1 0000048c: REVERT 0000048d: JUMPDEST 0000048e: POP 0000048f: PUSH2 0x03be 00000492: PUSH1 0x04 00000494: CALLDATALOAD 00000495: PUSH2 0x0e44 00000498: JUMP 00000499: JUMPDEST 0000049a: CALLVALUE 0000049b: DUP1 0000049c: ISZERO 0000049d: PUSH2 0x04a5 000004a0: JUMPI 000004a1: PUSH1 0x00 000004a3: DUP1 000004a4: REVERT 000004a5: JUMPDEST 000004a6: POP 000004a7: PUSH2 0x0251 000004aa: PUSH2 0x0eb3 000004ad: JUMP 000004ae: JUMPDEST 000004af: CALLVALUE 000004b0: DUP1 000004b1: ISZERO 000004b2: PUSH2 0x04ba 000004b5: JUMPI 000004b6: PUSH1 0x00 000004b8: DUP1 000004b9: REVERT 000004ba: JUMPDEST 000004bb: POP 000004bc: PUSH2 0x02ce 000004bf: PUSH2 0x0fb2 000004c2: JUMP 000004c3: JUMPDEST 000004c4: CALLVALUE 000004c5: DUP1 000004c6: ISZERO 000004c7: PUSH2 0x04cf 000004ca: JUMPI 000004cb: PUSH1 0x00 000004cd: DUP1 000004ce: REVERT 000004cf: JUMPDEST 000004d0: POP 000004d1: PUSH2 0x0251 000004d4: PUSH1 0x04 000004d6: DUP1 000004d7: CALLDATALOAD 000004d8: PUSH1 0x01 000004da: PUSH1 0xa0 000004dc: PUSH1 0x02 000004de: EXP 000004df: SUB 000004e0: SWAP1 000004e1: DUP2 000004e2: AND 000004e3: SWAP2 000004e4: PUSH1 0x24 000004e6: DUP1 000004e7: CALLDATALOAD 000004e8: SWAP3 000004e9: PUSH1 0x44 000004eb: CALLDATALOAD 000004ec: AND 000004ed: SWAP2 000004ee: PUSH1 0x64 000004f0: CALLDATALOAD 000004f1: SWAP2 000004f2: DUP3 000004f3: ADD 000004f4: SWAP2 000004f5: ADD 000004f6: CALLDATALOAD 000004f7: PUSH2 0x0fc1 000004fa: JUMP 000004fb: JUMPDEST 000004fc: CALLVALUE 000004fd: DUP1 000004fe: ISZERO 000004ff: PUSH2 0x0507 00000502: JUMPI 00000503: PUSH1 0x00 00000505: DUP1 00000506: REVERT 00000507: JUMPDEST 00000508: POP 00000509: PUSH2 0x02ce 0000050c: PUSH2 0x11fa 0000050f: JUMP 00000510: JUMPDEST 00000511: CALLVALUE 00000512: DUP1 00000513: ISZERO 00000514: PUSH2 0x051c 00000517: JUMPI 00000518: PUSH1 0x00 0000051a: DUP1 0000051b: REVERT 0000051c: JUMPDEST 0000051d: POP 0000051e: PUSH2 0x0268 00000521: PUSH1 0x04 00000523: CALLDATALOAD 00000524: PUSH2 0x1209 00000527: JUMP 00000528: JUMPDEST 00000529: CALLVALUE 0000052a: DUP1 0000052b: ISZERO 0000052c: PUSH2 0x0534 0000052f: JUMPI 00000530: PUSH1 0x00 00000532: DUP1 00000533: REVERT 00000534: JUMPDEST 00000535: POP 00000536: PUSH2 0x0251 00000539: PUSH2 0x1274 0000053c: JUMP 0000053d: JUMPDEST 0000053e: PUSH2 0x03be 00000541: PUSH1 0x04 00000543: CALLDATALOAD 00000544: PUSH1 0x01 00000546: PUSH1 0xa0 00000548: PUSH1 0x02 0000054a: EXP 0000054b: SUB 0000054c: PUSH1 0x24 0000054e: CALLDATALOAD 0000054f: AND 00000550: PUSH2 0x1302 00000553: JUMP 00000554: JUMPDEST 00000555: CALLVALUE 00000556: DUP1 00000557: ISZERO 00000558: PUSH2 0x0560 0000055b: JUMPI 0000055c: PUSH1 0x00 0000055e: DUP1 0000055f: REVERT 00000560: JUMPDEST 00000561: POP 00000562: PUSH2 0x0268 00000565: PUSH2 0x15e4 00000568: JUMP 00000569: JUMPDEST 0000056a: CALLVALUE 0000056b: DUP1 0000056c: ISZERO 0000056d: PUSH2 0x0575 00000570: JUMPI 00000571: PUSH1 0x00 00000573: DUP1 00000574: REVERT 00000575: JUMPDEST 00000576: POP 00000577: PUSH2 0x0251 0000057a: PUSH1 0x01 0000057c: PUSH1 0xa0 0000057e: PUSH1 0x02 00000580: EXP 00000581: SUB 00000582: PUSH1 0x04 00000584: CALLDATALOAD 00000585: AND 00000586: PUSH2 0x15ea 00000589: JUMP 0000058a: JUMPDEST 0000058b: CALLVALUE 0000058c: DUP1 0000058d: ISZERO 0000058e: PUSH2 0x0596 00000591: JUMPI 00000592: PUSH1 0x00 00000594: DUP1 00000595: REVERT 00000596: JUMPDEST 00000597: POP 00000598: PUSH2 0x0268 0000059b: PUSH2 0x1729 0000059e: JUMP 0000059f: JUMPDEST 000005a0: CALLVALUE 000005a1: DUP1 000005a2: ISZERO 000005a3: PUSH2 0x05ab 000005a6: JUMPI 000005a7: PUSH1 0x00 000005a9: DUP1 000005aa: REVERT 000005ab: JUMPDEST 000005ac: POP 000005ad: PUSH2 0x0251 000005b0: PUSH1 0x24 000005b2: PUSH1 0x04 000005b4: DUP1 000005b5: CALLDATALOAD 000005b6: DUP3 000005b7: DUP2 000005b8: ADD 000005b9: SWAP3 000005ba: SWAP2 000005bb: ADD 000005bc: CALLDATALOAD 000005bd: SWAP1 000005be: CALLDATALOAD 000005bf: PUSH2 0x172e 000005c2: JUMP 000005c3: JUMPDEST 000005c4: CALLVALUE 000005c5: DUP1 000005c6: ISZERO 000005c7: PUSH2 0x05cf 000005ca: JUMPI 000005cb: PUSH1 0x00 000005cd: DUP1 000005ce: REVERT 000005cf: JUMPDEST 000005d0: POP 000005d1: PUSH2 0x02ce 000005d4: PUSH2 0x186a 000005d7: JUMP 000005d8: JUMPDEST 000005d9: CALLVALUE 000005da: DUP1 000005db: ISZERO 000005dc: PUSH2 0x05e4 000005df: JUMPI 000005e0: PUSH1 0x00 000005e2: DUP1 000005e3: REVERT 000005e4: JUMPDEST 000005e5: POP 000005e6: PUSH2 0x0251 000005e9: PUSH1 0x01 000005eb: PUSH1 0xa0 000005ed: PUSH1 0x02 000005ef: EXP 000005f0: SUB 000005f1: PUSH1 0x04 000005f3: CALLDATALOAD 000005f4: AND 000005f5: PUSH2 0x1879 000005f8: JUMP 000005f9: JUMPDEST 000005fa: CALLVALUE 000005fb: DUP1 000005fc: ISZERO 000005fd: PUSH2 0x0605 00000600: JUMPI 00000601: PUSH1 0x00 00000603: DUP1 00000604: REVERT 00000605: JUMPDEST 00000606: POP 00000607: PUSH2 0x0251 0000060a: PUSH1 0x01 0000060c: PUSH1 0xa0 0000060e: PUSH1 0x02 00000610: EXP 00000611: SUB 00000612: PUSH1 0x04 00000614: CALLDATALOAD 00000615: AND 00000616: PUSH2 0x18f8 00000619: JUMP 0000061a: JUMPDEST 0000061b: CALLVALUE 0000061c: DUP1 0000061d: ISZERO 0000061e: PUSH2 0x0626 00000621: JUMPI 00000622: PUSH1 0x00 00000624: DUP1 00000625: REVERT 00000626: JUMPDEST 00000627: POP 00000628: PUSH2 0x0268 0000062b: PUSH2 0x1a36 0000062e: JUMP 0000062f: JUMPDEST 00000630: PUSH1 0x2b 00000632: SLOAD 00000633: DUP2 00000634: JUMP 00000635: JUMPDEST 00000636: PUSH1 0x00 00000638: SLOAD 00000639: PUSH1 0x01 0000063b: PUSH1 0xa0 0000063d: PUSH1 0x02 0000063f: EXP 00000640: SUB 00000641: AND 00000642: CALLER 00000643: EQ 00000644: PUSH2 0x0685 00000647: JUMPI 00000648: PUSH1 0x40 0000064a: DUP1 0000064b: MLOAD 0000064c: PUSH1 0xe5 0000064e: PUSH1 0x02 00000650: EXP 00000651: PUSH3 0x461bcd 00000655: MUL 00000656: DUP2 00000657: MSTORE 00000658: PUSH1 0x20 0000065a: PUSH1 0x04 0000065c: DUP3 0000065d: ADD 0000065e: MSTORE 0000065f: PUSH1 0x15 00000661: PUSH1 0x24 00000663: DUP3 00000664: ADD 00000665: MSTORE 00000666: PUSH1 0x00 00000668: DUP1 00000669: MLOAD 0000066a: PUSH1 0x20 0000066c: PUSH2 0x1f7c 0000066f: DUP4 00000670: CODECOPY 00000671: DUP2 00000672: MLOAD 00000673: SWAP2 00000674: MSTORE 00000675: PUSH1 0x44 00000677: DUP3 00000678: ADD 00000679: MSTORE 0000067a: SWAP1 0000067b: MLOAD 0000067c: SWAP1 0000067d: DUP2 0000067e: SWAP1 0000067f: SUB 00000680: PUSH1 0x64 00000682: ADD 00000683: SWAP1 00000684: REVERT 00000685: JUMPDEST 00000686: PUSH2 0x0690 00000689: PUSH1 0x00 0000068b: DUP8 0000068c: PUSH2 0x1a3b 0000068f: JUMP 00000690: JUMPDEST 00000691: PUSH2 0x069b 00000694: PUSH1 0x01 00000696: DUP7 00000697: PUSH2 0x1a3b 0000069a: JUMP 0000069b: JUMPDEST 0000069c: PUSH2 0x06a6 0000069f: PUSH1 0x02 000006a1: DUP6 000006a2: PUSH2 0x1a3b 000006a5: JUMP 000006a6: JUMPDEST 000006a7: PUSH2 0x06b1 000006aa: PUSH1 0x03 000006ac: DUP5 000006ad: PUSH2 0x1a3b 000006b0: JUMP 000006b1: JUMPDEST 000006b2: PUSH2 0x06bc 000006b5: PUSH1 0x04 000006b7: DUP4 000006b8: PUSH2 0x1a3b 000006bb: JUMP 000006bc: JUMPDEST 000006bd: PUSH2 0x06c7 000006c0: PUSH1 0x05 000006c2: DUP3 000006c3: PUSH2 0x1a3b 000006c6: JUMP 000006c7: JUMPDEST 000006c8: POP 000006c9: POP 000006ca: POP 000006cb: POP 000006cc: POP 000006cd: POP 000006ce: JUMP 000006cf: JUMPDEST 000006d0: PUSH1 0x00 000006d2: SLOAD 000006d3: PUSH1 0x01 000006d5: PUSH1 0xa0 000006d7: PUSH1 0x02 000006d9: EXP 000006da: SUB 000006db: AND 000006dc: CALLER 000006dd: EQ 000006de: PUSH2 0x071f 000006e1: JUMPI 000006e2: PUSH1 0x40 000006e4: DUP1 000006e5: MLOAD 000006e6: PUSH1 0xe5 000006e8: PUSH1 0x02 000006ea: EXP 000006eb: PUSH3 0x461bcd 000006ef: MUL 000006f0: DUP2 000006f1: MSTORE 000006f2: PUSH1 0x20 000006f4: PUSH1 0x04 000006f6: DUP3 000006f7: ADD 000006f8: MSTORE 000006f9: PUSH1 0x15 000006fb: PUSH1 0x24 000006fd: DUP3 000006fe: ADD 000006ff: MSTORE 00000700: PUSH1 0x00 00000702: DUP1 00000703: MLOAD 00000704: PUSH1 0x20 00000706: PUSH2 0x1f7c 00000709: DUP4 0000070a: CODECOPY 0000070b: DUP2 0000070c: MLOAD 0000070d: SWAP2 0000070e: MSTORE 0000070f: PUSH1 0x44 00000711: DUP3 00000712: ADD 00000713: MSTORE 00000714: SWAP1 00000715: MLOAD 00000716: SWAP1 00000717: DUP2 00000718: SWAP1 00000719: SUB 0000071a: PUSH1 0x64 0000071c: ADD 0000071d: SWAP1 0000071e: REVERT 0000071f: JUMPDEST 00000720: PUSH1 0x03 00000722: SSTORE 00000723: JUMP 00000724: JUMPDEST 00000725: PUSH1 0x01 00000727: SLOAD 00000728: PUSH1 0x01 0000072a: PUSH1 0xa0 0000072c: PUSH1 0x02 0000072e: EXP 0000072f: SUB 00000730: AND 00000731: DUP2 00000732: JUMP 00000733: JUMPDEST 00000734: PUSH1 0x28 00000736: SLOAD 00000737: PUSH1 0x01 00000739: PUSH1 0xa0 0000073b: PUSH1 0x02 0000073d: EXP 0000073e: SUB 0000073f: AND 00000740: DUP2 00000741: JUMP 00000742: JUMPDEST 00000743: PUSH1 0x00 00000745: SLOAD 00000746: PUSH1 0x01 00000748: PUSH1 0xa0 0000074a: PUSH1 0x02 0000074c: EXP 0000074d: SUB 0000074e: AND 0000074f: CALLER 00000750: EQ 00000751: PUSH2 0x0792 00000754: JUMPI 00000755: PUSH1 0x40 00000757: DUP1 00000758: MLOAD 00000759: PUSH1 0xe5 0000075b: PUSH1 0x02 0000075d: EXP 0000075e: PUSH3 0x461bcd 00000762: MUL 00000763: DUP2 00000764: MSTORE 00000765: PUSH1 0x20 00000767: PUSH1 0x04 00000769: DUP3 0000076a: ADD 0000076b: MSTORE 0000076c: PUSH1 0x15 0000076e: PUSH1 0x24 00000770: DUP3 00000771: ADD 00000772: MSTORE 00000773: PUSH1 0x00 00000775: DUP1 00000776: MLOAD 00000777: PUSH1 0x20 00000779: PUSH2 0x1f7c 0000077c: DUP4 0000077d: CODECOPY 0000077e: DUP2 0000077f: MLOAD 00000780: SWAP2 00000781: MSTORE 00000782: PUSH1 0x44 00000784: DUP3 00000785: ADD 00000786: MSTORE 00000787: SWAP1 00000788: MLOAD 00000789: SWAP1 0000078a: DUP2 0000078b: SWAP1 0000078c: SUB 0000078d: PUSH1 0x64 0000078f: ADD 00000790: SWAP1 00000791: REVERT 00000792: JUMPDEST 00000793: PUSH1 0x26 00000795: DUP1 00000796: SLOAD 00000797: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007ac: NOT 000007ad: AND 000007ae: PUSH1 0x01 000007b0: PUSH1 0xa0 000007b2: PUSH1 0x02 000007b4: EXP 000007b5: SUB 000007b6: SWAP3 000007b7: SWAP1 000007b8: SWAP3 000007b9: AND 000007ba: SWAP2 000007bb: SWAP1 000007bc: SWAP2 000007bd: OR 000007be: SWAP1 000007bf: SSTORE 000007c0: JUMP 000007c1: JUMPDEST 000007c2: PUSH1 0x00 000007c4: SLOAD 000007c5: PUSH1 0x01 000007c7: PUSH1 0xa0 000007c9: PUSH1 0x02 000007cb: EXP 000007cc: SUB 000007cd: AND 000007ce: CALLER 000007cf: EQ 000007d0: PUSH2 0x0811 000007d3: JUMPI 000007d4: PUSH1 0x40 000007d6: DUP1 000007d7: MLOAD 000007d8: PUSH1 0xe5 000007da: PUSH1 0x02 000007dc: EXP 000007dd: PUSH3 0x461bcd 000007e1: MUL 000007e2: DUP2 000007e3: MSTORE 000007e4: PUSH1 0x20 000007e6: PUSH1 0x04 000007e8: DUP3 000007e9: ADD 000007ea: MSTORE 000007eb: PUSH1 0x15 000007ed: PUSH1 0x24 000007ef: DUP3 000007f0: ADD 000007f1: MSTORE 000007f2: PUSH1 0x00 000007f4: DUP1 000007f5: MLOAD 000007f6: PUSH1 0x20 000007f8: PUSH2 0x1f7c 000007fb: DUP4 000007fc: CODECOPY 000007fd: DUP2 000007fe: MLOAD 000007ff: SWAP2 00000800: MSTORE 00000801: PUSH1 0x44 00000803: DUP3 00000804: ADD 00000805: MSTORE 00000806: SWAP1 00000807: MLOAD 00000808: SWAP1 00000809: DUP2 0000080a: SWAP1 0000080b: SUB 0000080c: PUSH1 0x64 0000080e: ADD 0000080f: SWAP1 00000810: REVERT 00000811: JUMPDEST 00000812: PUSH2 0x2904 00000815: DUP2 00000816: LT 00000817: ISZERO 00000818: PUSH2 0x0891 0000081b: JUMPI 0000081c: PUSH1 0x40 0000081e: DUP1 0000081f: MLOAD 00000820: PUSH1 0xe5 00000822: PUSH1 0x02 00000824: EXP 00000825: PUSH3 0x461bcd 00000829: MUL 0000082a: DUP2 0000082b: MSTORE 0000082c: PUSH1 0x20 0000082e: PUSH1 0x04 00000830: DUP3 00000831: ADD 00000832: MSTORE 00000833: PUSH1 0x3b 00000835: PUSH1 0x24 00000837: DUP3 00000838: ADD 00000839: MSTORE 0000083a: PUSH32 0x546865206e657874206567672070726963652073686f756c6420626520617420 0000085b: PUSH1 0x44 0000085d: DUP3 0000085e: ADD 0000085f: MSTORE 00000860: PUSH32 0x6c656173742031303525206f66207468652070726576696f75732e0000000000 00000881: PUSH1 0x64 00000883: DUP3 00000884: ADD 00000885: MSTORE 00000886: SWAP1 00000887: MLOAD 00000888: SWAP1 00000889: DUP2 0000088a: SWAP1 0000088b: SUB 0000088c: PUSH1 0x84 0000088e: ADD 0000088f: SWAP1 00000890: REVERT 00000891: JUMPDEST 00000892: PUSH1 0x2b 00000894: SSTORE 00000895: JUMP 00000896: JUMPDEST 00000897: PUSH1 0x00 00000899: DUP1 0000089a: DUP3 0000089b: LT 0000089c: ISZERO 0000089d: PUSH2 0x08f0 000008a0: JUMPI 000008a1: PUSH1 0x40 000008a3: DUP1 000008a4: MLOAD 000008a5: PUSH1 0xe5 000008a7: PUSH1 0x02 000008a9: EXP 000008aa: PUSH3 0x461bcd 000008ae: MUL 000008af: DUP2 000008b0: MSTORE 000008b1: PUSH1 0x20 000008b3: PUSH1 0x04 000008b5: DUP3 000008b6: ADD 000008b7: MSTORE 000008b8: PUSH1 0x10 000008ba: PUSH1 0x24 000008bc: DUP3 000008bd: ADD 000008be: MSTORE 000008bf: PUSH32 0x52616e6b20697320746f6f206c6f772e00000000000000000000000000000000 000008e0: PUSH1 0x44 000008e2: DUP3 000008e3: ADD 000008e4: MSTORE 000008e5: SWAP1 000008e6: MLOAD 000008e7: SWAP1 000008e8: DUP2 000008e9: SWAP1 000008ea: SUB 000008eb: PUSH1 0x64 000008ed: ADD 000008ee: SWAP1 000008ef: REVERT 000008f0: JUMPDEST 000008f1: PUSH1 0x05 000008f3: DUP3 000008f4: GT 000008f5: ISZERO 000008f6: PUSH2 0x0949 000008f9: JUMPI 000008fa: PUSH1 0x40 000008fc: DUP1 000008fd: MLOAD 000008fe: PUSH1 0xe5 00000900: PUSH1 0x02 00000902: EXP 00000903: PUSH3 0x461bcd 00000907: MUL 00000908: DUP2 00000909: MSTORE 0000090a: PUSH1 0x20 0000090c: PUSH1 0x04 0000090e: DUP3 0000090f: ADD 00000910: MSTORE 00000911: PUSH1 0x11 00000913: PUSH1 0x24 00000915: DUP3 00000916: ADD 00000917: MSTORE 00000918: PUSH32 0x52616e6b20697320746f6f20686967682e000000000000000000000000000000 00000939: PUSH1 0x44 0000093b: DUP3 0000093c: ADD 0000093d: MSTORE 0000093e: SWAP1 0000093f: MLOAD 00000940: SWAP1 00000941: DUP2 00000942: SWAP1 00000943: SUB 00000944: PUSH1 0x64 00000946: ADD 00000947: SWAP1 00000948: REVERT 00000949: JUMPDEST 0000094a: POP 0000094b: PUSH1 0x00 0000094d: SWAP1 0000094e: DUP2 0000094f: MSTORE 00000950: PUSH1 0x02 00000952: PUSH1 0x20 00000954: MSTORE 00000955: PUSH1 0x40 00000957: SWAP1 00000958: KECCAK256 00000959: SLOAD 0000095a: SWAP1 0000095b: JUMP 0000095c: JUMPDEST 0000095d: PUSH1 0x2a 0000095f: PUSH1 0x20 00000961: MSTORE 00000962: PUSH1 0x00 00000964: SWAP1 00000965: DUP2 00000966: MSTORE 00000967: PUSH1 0x40 00000969: SWAP1 0000096a: KECCAK256 0000096b: SLOAD 0000096c: PUSH1 0xff 0000096e: AND 0000096f: DUP2 00000970: JUMP 00000971: JUMPDEST 00000972: PUSH1 0x00 00000974: DUP2 00000975: JUMP 00000976: JUMPDEST 00000977: PUSH1 0x05 00000979: DUP2 0000097a: JUMP 0000097b: JUMPDEST 0000097c: PUSH1 0x29 0000097e: PUSH1 0x20 00000980: MSTORE 00000981: PUSH1 0x00 00000983: SWAP1 00000984: DUP2 00000985: MSTORE 00000986: PUSH1 0x40 00000988: SWAP1 00000989: KECCAK256 0000098a: DUP1 0000098b: SLOAD 0000098c: PUSH1 0x01 0000098e: SWAP1 0000098f: SWAP2 00000990: ADD 00000991: SLOAD 00000992: DUP3 00000993: JUMP 00000994: JUMPDEST 00000995: PUSH1 0x00 00000997: SLOAD 00000998: PUSH1 0x01 0000099a: PUSH1 0xa0 0000099c: PUSH1 0x02 0000099e: EXP 0000099f: SUB 000009a0: AND 000009a1: CALLER 000009a2: EQ 000009a3: PUSH2 0x09e4 000009a6: JUMPI 000009a7: PUSH1 0x40 000009a9: DUP1 000009aa: MLOAD 000009ab: PUSH1 0xe5 000009ad: PUSH1 0x02 000009af: EXP 000009b0: PUSH3 0x461bcd 000009b4: MUL 000009b5: DUP2 000009b6: MSTORE 000009b7: PUSH1 0x20 000009b9: PUSH1 0x04 000009bb: DUP3 000009bc: ADD 000009bd: MSTORE 000009be: PUSH1 0x15 000009c0: PUSH1 0x24 000009c2: DUP3 000009c3: ADD 000009c4: MSTORE 000009c5: PUSH1 0x00 000009c7: DUP1 000009c8: MLOAD 000009c9: PUSH1 0x20 000009cb: PUSH2 0x1f7c 000009ce: DUP4 000009cf: CODECOPY 000009d0: DUP2 000009d1: MLOAD 000009d2: SWAP2 000009d3: MSTORE 000009d4: PUSH1 0x44 000009d6: DUP3 000009d7: ADD 000009d8: MSTORE 000009d9: SWAP1 000009da: MLOAD 000009db: SWAP1 000009dc: DUP2 000009dd: SWAP1 000009de: SUB 000009df: PUSH1 0x64 000009e1: ADD 000009e2: SWAP1 000009e3: REVERT 000009e4: JUMPDEST 000009e5: PUSH1 0x00 000009e7: SLOAD 000009e8: PUSH1 0xa0 000009ea: PUSH1 0x02 000009ec: EXP 000009ed: SWAP1 000009ee: DIV 000009ef: PUSH1 0xff 000009f1: AND 000009f2: ISZERO 000009f3: ISZERO 000009f4: PUSH2 0x0a47 000009f7: JUMPI 000009f8: PUSH1 0x40 000009fa: DUP1 000009fb: MLOAD 000009fc: PUSH1 0xe5 000009fe: PUSH1 0x02 00000a00: EXP 00000a01: PUSH3 0x461bcd 00000a05: MUL 00000a06: DUP2 00000a07: MSTORE 00000a08: PUSH1 0x20 00000a0a: PUSH1 0x04 00000a0c: DUP3 00000a0d: ADD 00000a0e: MSTORE 00000a0f: PUSH1 0x1b 00000a11: PUSH1 0x24 00000a13: DUP3 00000a14: ADD 00000a15: MSTORE 00000a16: PUSH32 0x54686520636f6e7472616374206973206e6f74207061757365642e0000000000 00000a37: PUSH1 0x44 00000a39: DUP3 00000a3a: ADD 00000a3b: MSTORE 00000a3c: SWAP1 00000a3d: MLOAD 00000a3e: SWAP1 00000a3f: DUP2 00000a40: SWAP1 00000a41: SUB 00000a42: PUSH1 0x64 00000a44: ADD 00000a45: SWAP1 00000a46: REVERT 00000a47: JUMPDEST 00000a48: PUSH1 0x00 00000a4a: DUP1 00000a4b: SLOAD 00000a4c: PUSH21 0xff0000000000000000000000000000000000000000 00000a62: NOT 00000a63: AND 00000a64: DUP2 00000a65: SSTORE 00000a66: PUSH1 0x40 00000a68: MLOAD 00000a69: PUSH32 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33 00000a8a: SWAP2 00000a8b: SWAP1 00000a8c: LOG1 00000a8d: JUMP 00000a8e: JUMPDEST 00000a8f: PUSH1 0x01 00000a91: DUP2 00000a92: JUMP 00000a93: JUMPDEST 00000a94: PUSH1 0x00 00000a96: DUP1 00000a97: SLOAD 00000a98: DUP2 00000a99: SWAP1 00000a9a: DUP2 00000a9b: SWAP1 00000a9c: PUSH1 0x01 00000a9e: PUSH1 0xa0 00000aa0: PUSH1 0x02 00000aa2: EXP 00000aa3: SUB 00000aa4: AND 00000aa5: CALLER 00000aa6: EQ 00000aa7: PUSH2 0x0ae8 00000aaa: JUMPI 00000aab: PUSH1 0x40 00000aad: DUP1 00000aae: MLOAD 00000aaf: PUSH1 0xe5 00000ab1: PUSH1 0x02 00000ab3: EXP 00000ab4: PUSH3 0x461bcd 00000ab8: MUL 00000ab9: DUP2 00000aba: MSTORE 00000abb: PUSH1 0x20 00000abd: PUSH1 0x04 00000abf: DUP3 00000ac0: ADD 00000ac1: MSTORE 00000ac2: PUSH1 0x15 00000ac4: PUSH1 0x24 00000ac6: DUP3 00000ac7: ADD 00000ac8: MSTORE 00000ac9: PUSH1 0x00 00000acb: DUP1 00000acc: MLOAD 00000acd: PUSH1 0x20 00000acf: PUSH2 0x1f7c 00000ad2: DUP4 00000ad3: CODECOPY 00000ad4: DUP2 00000ad5: MLOAD 00000ad6: SWAP2 00000ad7: MSTORE 00000ad8: PUSH1 0x44 00000ada: DUP3 00000adb: ADD 00000adc: MSTORE 00000add: SWAP1 00000ade: MLOAD 00000adf: SWAP1 00000ae0: DUP2 00000ae1: SWAP1 00000ae2: SUB 00000ae3: PUSH1 0x64 00000ae5: ADD 00000ae6: SWAP1 00000ae7: REVERT 00000ae8: JUMPDEST 00000ae9: PUSH1 0x00 00000aeb: SWAP2 00000aec: POP 00000aed: JUMPDEST 00000aee: DUP4 00000aef: DUP3 00000af0: LT 00000af1: ISZERO 00000af2: PUSH2 0x0c44 00000af5: JUMPI 00000af6: DUP5 00000af7: DUP5 00000af8: DUP4 00000af9: DUP2 00000afa: DUP2 00000afb: LT 00000afc: PUSH2 0x0b01 00000aff: JUMPI 00000b00: INVALID 00000b01: JUMPDEST 00000b02: SWAP1 00000b03: POP 00000b04: PUSH1 0x20 00000b06: MUL 00000b07: ADD 00000b08: CALLDATALOAD 00000b09: SWAP3 00000b0a: POP 00000b0b: PUSH1 0x29 00000b0d: PUSH1 0x00 00000b0f: DUP5 00000b10: DUP2 00000b11: MSTORE 00000b12: PUSH1 0x20 00000b14: ADD 00000b15: SWAP1 00000b16: DUP2 00000b17: MSTORE 00000b18: PUSH1 0x20 00000b1a: ADD 00000b1b: PUSH1 0x00 00000b1d: KECCAK256 00000b1e: SWAP1 00000b1f: POP 00000b20: PUSH2 0x0b28 00000b23: DUP2 00000b24: PUSH2 0x1b92 00000b27: JUMP 00000b28: JUMPDEST 00000b29: ISZERO 00000b2a: ISZERO 00000b2b: PUSH2 0x0b6c 00000b2e: JUMPI 00000b2f: PUSH1 0x40 00000b31: DUP1 00000b32: MLOAD 00000b33: PUSH1 0xe5 00000b35: PUSH1 0x02 00000b37: EXP 00000b38: PUSH3 0x461bcd 00000b3c: MUL 00000b3d: DUP2 00000b3e: MSTORE 00000b3f: PUSH1 0x20 00000b41: PUSH1 0x04 00000b43: DUP3 00000b44: ADD 00000b45: DUP2 00000b46: SWAP1 00000b47: MSTORE 00000b48: PUSH1 0x24 00000b4a: DUP3 00000b4b: ADD 00000b4c: MSTORE 00000b4d: PUSH1 0x00 00000b4f: DUP1 00000b50: MLOAD 00000b51: PUSH1 0x20 00000b53: PUSH2 0x1f5c 00000b56: DUP4 00000b57: CODECOPY 00000b58: DUP2 00000b59: MLOAD 00000b5a: SWAP2 00000b5b: MSTORE 00000b5c: PUSH1 0x44 00000b5e: DUP3 00000b5f: ADD 00000b60: MSTORE 00000b61: SWAP1 00000b62: MLOAD 00000b63: SWAP1 00000b64: DUP2 00000b65: SWAP1 00000b66: SUB 00000b67: PUSH1 0x64 00000b69: ADD 00000b6a: SWAP1 00000b6b: REVERT 00000b6c: JUMPDEST 00000b6d: PUSH1 0x00 00000b6f: DUP4 00000b70: DUP2 00000b71: MSTORE 00000b72: PUSH1 0x2a 00000b74: PUSH1 0x20 00000b76: MSTORE 00000b77: PUSH1 0x40 00000b79: SWAP1 00000b7a: KECCAK256 00000b7b: SLOAD 00000b7c: PUSH1 0xff 00000b7e: AND 00000b7f: ISZERO 00000b80: PUSH2 0x0bf9 00000b83: JUMPI 00000b84: PUSH1 0x40 00000b86: DUP1 00000b87: MLOAD 00000b88: PUSH1 0xe5 00000b8a: PUSH1 0x02 00000b8c: EXP 00000b8d: PUSH3 0x461bcd 00000b91: MUL 00000b92: DUP2 00000b93: MSTORE 00000b94: PUSH1 0x20 00000b96: PUSH1 0x04 00000b98: DUP3 00000b99: ADD 00000b9a: MSTORE 00000b9b: PUSH1 0x2d 00000b9d: PUSH1 0x24 00000b9f: DUP3 00000ba0: ADD 00000ba1: MSTORE 00000ba2: PUSH32 0x4567672073616c65206d757374206e6f74206265207375626d69747465642066 00000bc3: PUSH1 0x44 00000bc5: DUP3 00000bc6: ADD 00000bc7: MSTORE 00000bc8: PUSH32 0x6f7220636c6f7365207965742e00000000000000000000000000000000000000 00000be9: PUSH1 0x64 00000beb: DUP3 00000bec: ADD 00000bed: MSTORE 00000bee: SWAP1 00000bef: MLOAD 00000bf0: SWAP1 00000bf1: DUP2 00000bf2: SWAP1 00000bf3: SUB 00000bf4: PUSH1 0x84 00000bf6: ADD 00000bf7: SWAP1 00000bf8: REVERT 00000bf9: JUMPDEST 00000bfa: PUSH1 0x00 00000bfc: DUP4 00000bfd: DUP2 00000bfe: MSTORE 00000bff: PUSH1 0x2a 00000c01: PUSH1 0x20 00000c03: MSTORE 00000c04: PUSH1 0x40 00000c06: DUP1 00000c07: DUP3 00000c08: KECCAK256 00000c09: DUP1 00000c0a: SLOAD 00000c0b: PUSH1 0xff 00000c0d: NOT 00000c0e: AND 00000c0f: PUSH1 0x01 00000c11: OR 00000c12: SWAP1 00000c13: SSTORE 00000c14: MLOAD 00000c15: DUP5 00000c16: SWAP2 00000c17: PUSH32 0xbf5e89964d71104d51ffd5132b84817c7262a4edb5c02701cc8b69b9c3d04036 00000c38: SWAP2 00000c39: LOG2 00000c3a: PUSH1 0x01 00000c3c: SWAP1 00000c3d: SWAP2 00000c3e: ADD 00000c3f: SWAP1 00000c40: PUSH2 0x0aed 00000c43: JUMP 00000c44: JUMPDEST 00000c45: POP 00000c46: POP 00000c47: POP 00000c48: POP 00000c49: POP 00000c4a: JUMP 00000c4b: JUMPDEST 00000c4c: PUSH1 0x00 00000c4e: SLOAD 00000c4f: PUSH1 0xa0 00000c51: PUSH1 0x02 00000c53: EXP 00000c54: SWAP1 00000c55: DIV 00000c56: PUSH1 0xff 00000c58: AND 00000c59: DUP2 00000c5a: JUMP 00000c5b: JUMPDEST 00000c5c: PUSH1 0x00 00000c5e: SLOAD 00000c5f: PUSH1 0x01 00000c61: PUSH1 0xa0 00000c63: PUSH1 0x02 00000c65: EXP 00000c66: SUB 00000c67: AND 00000c68: CALLER 00000c69: EQ 00000c6a: PUSH2 0x0cab 00000c6d: JUMPI 00000c6e: PUSH1 0x40 00000c70: DUP1 00000c71: MLOAD 00000c72: PUSH1 0xe5 00000c74: PUSH1 0x02 00000c76: EXP 00000c77: PUSH3 0x461bcd 00000c7b: MUL 00000c7c: DUP2 00000c7d: MSTORE 00000c7e: PUSH1 0x20 00000c80: PUSH1 0x04 00000c82: DUP3 00000c83: ADD 00000c84: MSTORE 00000c85: PUSH1 0x15 00000c87: PUSH1 0x24 00000c89: DUP3 00000c8a: ADD 00000c8b: MSTORE 00000c8c: PUSH1 0x00 00000c8e: DUP1 00000c8f: MLOAD 00000c90: PUSH1 0x20 00000c92: PUSH2 0x1f7c 00000c95: DUP4 00000c96: CODECOPY 00000c97: DUP2 00000c98: MLOAD 00000c99: SWAP2 00000c9a: MSTORE 00000c9b: PUSH1 0x44 00000c9d: DUP3 00000c9e: ADD 00000c9f: MSTORE 00000ca0: SWAP1 00000ca1: MLOAD 00000ca2: SWAP1 00000ca3: DUP2 00000ca4: SWAP1 00000ca5: SUB 00000ca6: PUSH1 0x64 00000ca8: ADD 00000ca9: SWAP1 00000caa: REVERT 00000cab: JUMPDEST 00000cac: DUP1 00000cad: PUSH1 0x01 00000caf: PUSH1 0xa0 00000cb1: PUSH1 0x02 00000cb3: EXP 00000cb4: SUB 00000cb5: AND 00000cb6: PUSH4 0xd19524a7 00000cbb: PUSH1 0x40 00000cbd: MLOAD 00000cbe: DUP2 00000cbf: PUSH4 0xffffffff 00000cc4: AND 00000cc5: PUSH1 0xe0 00000cc7: PUSH1 0x02 00000cc9: EXP 00000cca: MUL 00000ccb: DUP2 00000ccc: MSTORE 00000ccd: PUSH1 0x04 00000ccf: ADD 00000cd0: PUSH1 0x20 00000cd2: PUSH1 0x40 00000cd4: MLOAD 00000cd5: DUP1 00000cd6: DUP4 00000cd7: SUB 00000cd8: DUP2 00000cd9: PUSH1 0x00 00000cdb: DUP8 00000cdc: DUP1 00000cdd: EXTCODESIZE 00000cde: ISZERO 00000cdf: DUP1 00000ce0: ISZERO 00000ce1: PUSH2 0x0ce9 00000ce4: JUMPI 00000ce5: PUSH1 0x00 00000ce7: DUP1 00000ce8: REVERT 00000ce9: JUMPDEST 00000cea: POP 00000ceb: GAS 00000cec: CALL 00000ced: ISZERO 00000cee: DUP1 00000cef: ISZERO 00000cf0: PUSH2 0x0cfd 00000cf3: JUMPI 00000cf4: RETURNDATASIZE 00000cf5: PUSH1 0x00 00000cf7: DUP1 00000cf8: RETURNDATACOPY 00000cf9: RETURNDATASIZE 00000cfa: PUSH1 0x00 00000cfc: REVERT 00000cfd: JUMPDEST 00000cfe: POP 00000cff: POP 00000d00: POP 00000d01: POP 00000d02: PUSH1 0x40 00000d04: MLOAD 00000d05: RETURNDATASIZE 00000d06: PUSH1 0x20 00000d08: DUP2 00000d09: LT 00000d0a: ISZERO 00000d0b: PUSH2 0x0d13 00000d0e: JUMPI 00000d0f: PUSH1 0x00 00000d11: DUP1 00000d12: REVERT 00000d13: JUMPDEST 00000d14: POP 00000d15: MLOAD 00000d16: ISZERO 00000d17: ISZERO 00000d18: PUSH2 0x0d6b 00000d1b: JUMPI 00000d1c: PUSH1 0x40 00000d1e: DUP1 00000d1f: MLOAD 00000d20: PUSH1 0xe5 00000d22: PUSH1 0x02 00000d24: EXP 00000d25: PUSH3 0x461bcd 00000d29: MUL 00000d2a: DUP2 00000d2b: MSTORE 00000d2c: PUSH1 0x20 00000d2e: PUSH1 0x04 00000d30: DUP3 00000d31: ADD 00000d32: MSTORE 00000d33: PUSH1 0x1b 00000d35: PUSH1 0x24 00000d37: DUP3 00000d38: ADD 00000d39: MSTORE 00000d3a: PUSH32 0x496e76616c696420616666696c696174652072656769737472792e0000000000 00000d5b: PUSH1 0x44 00000d5d: DUP3 00000d5e: ADD 00000d5f: MSTORE 00000d60: SWAP1 00000d61: MLOAD 00000d62: SWAP1 00000d63: DUP2 00000d64: SWAP1 00000d65: SUB 00000d66: PUSH1 0x64 00000d68: ADD 00000d69: SWAP1 00000d6a: REVERT 00000d6b: JUMPDEST 00000d6c: PUSH1 0x01 00000d6e: DUP1 00000d6f: SLOAD 00000d70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d85: NOT 00000d86: AND 00000d87: PUSH1 0x01 00000d89: PUSH1 0xa0 00000d8b: PUSH1 0x02 00000d8d: EXP 00000d8e: SUB 00000d8f: SWAP3 00000d90: SWAP1 00000d91: SWAP3 00000d92: AND 00000d93: SWAP2 00000d94: SWAP1 00000d95: SWAP2 00000d96: OR 00000d97: SWAP1 00000d98: SSTORE 00000d99: JUMP 00000d9a: JUMPDEST 00000d9b: PUSH1 0x02 00000d9d: DUP2 00000d9e: JUMP 00000d9f: JUMPDEST 00000da0: PUSH1 0x00 00000da2: SLOAD 00000da3: PUSH1 0x01 00000da5: PUSH1 0xa0 00000da7: PUSH1 0x02 00000da9: EXP 00000daa: SUB 00000dab: AND 00000dac: CALLER 00000dad: EQ 00000dae: PUSH2 0x0def 00000db1: JUMPI 00000db2: PUSH1 0x40 00000db4: DUP1 00000db5: MLOAD 00000db6: PUSH1 0xe5 00000db8: PUSH1 0x02 00000dba: EXP 00000dbb: PUSH3 0x461bcd 00000dbf: MUL 00000dc0: DUP2 00000dc1: MSTORE 00000dc2: PUSH1 0x20 00000dc4: PUSH1 0x04 00000dc6: DUP3 00000dc7: ADD 00000dc8: MSTORE 00000dc9: PUSH1 0x15 00000dcb: PUSH1 0x24 00000dcd: DUP3 00000dce: ADD 00000dcf: MSTORE 00000dd0: PUSH1 0x00 00000dd2: DUP1 00000dd3: MLOAD 00000dd4: PUSH1 0x20 00000dd6: PUSH2 0x1f7c 00000dd9: DUP4 00000dda: CODECOPY 00000ddb: DUP2 00000ddc: MLOAD 00000ddd: SWAP2 00000dde: MSTORE 00000ddf: PUSH1 0x44 00000de1: DUP3 00000de2: ADD 00000de3: MSTORE 00000de4: SWAP1 00000de5: MLOAD 00000de6: SWAP1 00000de7: DUP2 00000de8: SWAP1 00000de9: SUB 00000dea: PUSH1 0x64 00000dec: ADD 00000ded: SWAP1 00000dee: REVERT 00000def: JUMPDEST 00000df0: PUSH1 0x00 00000df2: DUP1 00000df3: SLOAD 00000df4: PUSH1 0x40 00000df6: MLOAD 00000df7: PUSH1 0x01 00000df9: PUSH1 0xa0 00000dfb: PUSH1 0x02 00000dfd: EXP 00000dfe: SUB 00000dff: SWAP1 00000e00: SWAP2 00000e01: AND 00000e02: SWAP2 00000e03: PUSH32 0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820 00000e24: SWAP2 00000e25: LOG2 00000e26: PUSH1 0x00 00000e28: DUP1 00000e29: SLOAD 00000e2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e3f: NOT 00000e40: AND 00000e41: SWAP1 00000e42: SSTORE 00000e43: JUMP 00000e44: JUMPDEST 00000e45: PUSH1 0x00 00000e47: DUP2 00000e48: DUP2 00000e49: MSTORE 00000e4a: PUSH1 0x29 00000e4c: PUSH1 0x20 00000e4e: MSTORE 00000e4f: PUSH1 0x40 00000e51: DUP2 00000e52: KECCAK256 00000e53: DUP2 00000e54: SWAP1 00000e55: PUSH2 0x0e5d 00000e58: DUP2 00000e59: PUSH2 0x1b92 00000e5c: JUMP 00000e5d: JUMPDEST 00000e5e: ISZERO 00000e5f: ISZERO 00000e60: PUSH2 0x0ea1 00000e63: JUMPI 00000e64: PUSH1 0x40 00000e66: DUP1 00000e67: MLOAD 00000e68: PUSH1 0xe5 00000e6a: PUSH1 0x02 00000e6c: EXP 00000e6d: PUSH3 0x461bcd 00000e71: MUL 00000e72: DUP2 00000e73: MSTORE 00000e74: PUSH1 0x20 00000e76: PUSH1 0x04 00000e78: DUP3 00000e79: ADD 00000e7a: DUP2 00000e7b: SWAP1 00000e7c: MSTORE 00000e7d: PUSH1 0x24 00000e7f: DUP3 00000e80: ADD 00000e81: MSTORE 00000e82: PUSH1 0x00 00000e84: DUP1 00000e85: MLOAD 00000e86: PUSH1 0x20 00000e88: PUSH2 0x1f5c 00000e8b: DUP4 00000e8c: CODECOPY 00000e8d: DUP2 00000e8e: MLOAD 00000e8f: SWAP2 00000e90: MSTORE 00000e91: PUSH1 0x44 00000e93: DUP3 00000e94: ADD 00000e95: MSTORE 00000e96: SWAP1 00000e97: MLOAD 00000e98: SWAP1 00000e99: DUP2 00000e9a: SWAP1 00000e9b: SUB 00000e9c: PUSH1 0x64 00000e9e: ADD 00000e9f: SWAP1 00000ea0: REVERT 00000ea1: JUMPDEST 00000ea2: DUP1 00000ea3: SLOAD 00000ea4: PUSH1 0x01 00000ea6: DUP3 00000ea7: ADD 00000ea8: SLOAD 00000ea9: SWAP1 00000eaa: SWAP4 00000eab: POP 00000eac: SWAP2 00000ead: POP 00000eae: POP 00000eaf: SWAP2 00000eb0: POP 00000eb1: SWAP2 00000eb2: JUMP 00000eb3: JUMPDEST 00000eb4: PUSH1 0x00 00000eb6: SLOAD 00000eb7: PUSH1 0x01 00000eb9: PUSH1 0xa0 00000ebb: PUSH1 0x02 00000ebd: EXP 00000ebe: SUB 00000ebf: AND 00000ec0: CALLER 00000ec1: EQ 00000ec2: PUSH2 0x0f03 00000ec5: JUMPI 00000ec6: PUSH1 0x40 00000ec8: DUP1 00000ec9: MLOAD 00000eca: PUSH1 0xe5 00000ecc: PUSH1 0x02 00000ece: EXP 00000ecf: PUSH3 0x461bcd 00000ed3: MUL 00000ed4: DUP2 00000ed5: MSTORE 00000ed6: PUSH1 0x20 00000ed8: PUSH1 0x04 00000eda: DUP3 00000edb: ADD 00000edc: MSTORE 00000edd: PUSH1 0x15 00000edf: PUSH1 0x24 00000ee1: DUP3 00000ee2: ADD 00000ee3: MSTORE 00000ee4: PUSH1 0x00 00000ee6: DUP1 00000ee7: MLOAD 00000ee8: PUSH1 0x20 00000eea: PUSH2 0x1f7c 00000eed: DUP4 00000eee: CODECOPY 00000eef: DUP2 00000ef0: MLOAD 00000ef1: SWAP2 00000ef2: MSTORE 00000ef3: PUSH1 0x44 00000ef5: DUP3 00000ef6: ADD 00000ef7: MSTORE 00000ef8: SWAP1 00000ef9: MLOAD 00000efa: SWAP1 00000efb: DUP2 00000efc: SWAP1 00000efd: SUB 00000efe: PUSH1 0x64 00000f00: ADD 00000f01: SWAP1 00000f02: REVERT 00000f03: JUMPDEST 00000f04: PUSH1 0x00 00000f06: SLOAD 00000f07: PUSH1 0xa0 00000f09: PUSH1 0x02 00000f0b: EXP 00000f0c: SWAP1 00000f0d: DIV 00000f0e: PUSH1 0xff 00000f10: AND 00000f11: ISZERO 00000f12: PUSH2 0x0f65 00000f15: JUMPI 00000f16: PUSH1 0x40 00000f18: DUP1 00000f19: MLOAD 00000f1a: PUSH1 0xe5 00000f1c: PUSH1 0x02 00000f1e: EXP 00000f1f: PUSH3 0x461bcd 00000f23: MUL 00000f24: DUP2 00000f25: MSTORE 00000f26: PUSH1 0x20 00000f28: PUSH1 0x04 00000f2a: DUP3 00000f2b: ADD 00000f2c: MSTORE 00000f2d: PUSH1 0x17 00000f2f: PUSH1 0x24 00000f31: DUP3 00000f32: ADD 00000f33: MSTORE 00000f34: PUSH32 0x54686520636f6e7472616374206973207061757365642e000000000000000000 00000f55: PUSH1 0x44 00000f57: DUP3 00000f58: ADD 00000f59: MSTORE 00000f5a: SWAP1 00000f5b: MLOAD 00000f5c: SWAP1 00000f5d: DUP2 00000f5e: SWAP1 00000f5f: SUB 00000f60: PUSH1 0x64 00000f62: ADD 00000f63: SWAP1 00000f64: REVERT 00000f65: JUMPDEST 00000f66: PUSH1 0x00 00000f68: DUP1 00000f69: SLOAD 00000f6a: PUSH21 0xff0000000000000000000000000000000000000000 00000f80: NOT 00000f81: AND 00000f82: PUSH1 0xa0 00000f84: PUSH1 0x02 00000f86: EXP 00000f87: OR 00000f88: DUP2 00000f89: SSTORE 00000f8a: PUSH1 0x40 00000f8c: MLOAD 00000f8d: PUSH32 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625 00000fae: SWAP2 00000faf: SWAP1 00000fb0: LOG1 00000fb1: JUMP 00000fb2: JUMPDEST 00000fb3: PUSH1 0x00 00000fb5: SLOAD 00000fb6: PUSH1 0x01 00000fb8: PUSH1 0xa0 00000fba: PUSH1 0x02 00000fbc: EXP 00000fbd: SUB 00000fbe: AND 00000fbf: DUP2 00000fc0: JUMP 00000fc1: JUMPDEST 00000fc2: PUSH1 0x00 00000fc4: SLOAD 00000fc5: PUSH1 0xa0 00000fc7: PUSH1 0x02 00000fc9: EXP 00000fca: SWAP1 00000fcb: DIV 00000fcc: PUSH1 0xff 00000fce: AND 00000fcf: ISZERO 00000fd0: PUSH2 0x1023 00000fd3: JUMPI 00000fd4: PUSH1 0x40 00000fd6: DUP1 00000fd7: MLOAD 00000fd8: PUSH1 0xe5 00000fda: PUSH1 0x02 00000fdc: EXP 00000fdd: PUSH3 0x461bcd 00000fe1: MUL 00000fe2: DUP2 00000fe3: MSTORE 00000fe4: PUSH1 0x20 00000fe6: PUSH1 0x04 00000fe8: DUP3 00000fe9: ADD 00000fea: MSTORE 00000feb: PUSH1 0x17 00000fed: PUSH1 0x24 00000fef: DUP3 00000ff0: ADD 00000ff1: MSTORE 00000ff2: PUSH32 0x54686520636f6e7472616374206973207061757365642e000000000000000000 00001013: PUSH1 0x44 00001015: DUP3 00001016: ADD 00001017: MSTORE 00001018: SWAP1 00001019: MLOAD 0000101a: SWAP1 0000101b: DUP2 0000101c: SWAP1 0000101d: SUB 0000101e: PUSH1 0x64 00001020: ADD 00001021: SWAP1 00001022: REVERT 00001023: JUMPDEST 00001024: PUSH1 0x28 00001026: SLOAD 00001027: PUSH1 0x01 00001029: PUSH1 0xa0 0000102b: PUSH1 0x02 0000102d: EXP 0000102e: SUB 0000102f: DUP5 00001030: DUP2 00001031: AND 00001032: SWAP2 00001033: AND 00001034: EQ 00001035: DUP1 00001036: ISZERO 00001037: PUSH2 0x1048 0000103a: JUMPI 0000103b: POP 0000103c: CALLER 0000103d: PUSH1 0x01 0000103f: PUSH1 0xa0 00001041: PUSH1 0x02 00001043: EXP 00001044: SUB 00001045: DUP5 00001046: AND 00001047: EQ 00001048: JUMPDEST 00001049: ISZERO 0000104a: ISZERO 0000104b: PUSH2 0x10c4 0000104e: JUMPI 0000104f: PUSH1 0x40 00001051: DUP1 00001052: MLOAD 00001053: PUSH1 0xe5 00001055: PUSH1 0x02 00001057: EXP 00001058: PUSH3 0x461bcd 0000105c: MUL 0000105d: DUP2 0000105e: MSTORE 0000105f: PUSH1 0x20 00001061: PUSH1 0x04 00001063: DUP3 00001064: ADD 00001065: MSTORE 00001066: PUSH1 0x27 00001068: PUSH1 0x24 0000106a: DUP3 0000106b: ADD 0000106c: MSTORE 0000106d: PUSH32 0x4f6e6c79207468652065676720636f696e20636f6e7472616374206973206163 0000108e: PUSH1 0x44 00001090: DUP3 00001091: ADD 00001092: MSTORE 00001093: PUSH32 0x6365707465642e00000000000000000000000000000000000000000000000000 000010b4: PUSH1 0x64 000010b6: DUP3 000010b7: ADD 000010b8: MSTORE 000010b9: SWAP1 000010ba: MLOAD 000010bb: SWAP1 000010bc: DUP2 000010bd: SWAP1 000010be: SUB 000010bf: PUSH1 0x84 000010c1: ADD 000010c2: SWAP1 000010c3: REVERT 000010c4: JUMPDEST 000010c5: PUSH1 0x28 000010c7: SLOAD 000010c8: PUSH1 0x40 000010ca: DUP1 000010cb: MLOAD 000010cc: PUSH32 0x79cc679000000000000000000000000000000000000000000000000000000000 000010ed: DUP2 000010ee: MSTORE 000010ef: PUSH1 0x01 000010f1: PUSH1 0xa0 000010f3: PUSH1 0x02 000010f5: EXP 000010f6: SUB 000010f7: DUP9 000010f8: DUP2 000010f9: AND 000010fa: PUSH1 0x04 000010fc: DUP4 000010fd: ADD 000010fe: MSTORE 000010ff: PUSH1 0x05 00001101: PUSH1 0x24 00001103: DUP4 00001104: ADD 00001105: MSTORE 00001106: SWAP2 00001107: MLOAD 00001108: SWAP2 00001109: SWAP1 0000110a: SWAP3 0000110b: AND 0000110c: SWAP2 0000110d: PUSH4 0x79cc6790 00001112: SWAP2 00001113: PUSH1 0x44 00001115: DUP1 00001116: DUP4 00001117: ADD 00001118: SWAP3 00001119: PUSH1 0x20 0000111b: SWAP3 0000111c: SWAP2 0000111d: SWAP1 0000111e: DUP3 0000111f: SWAP1 00001120: SUB 00001121: ADD 00001122: DUP2 00001123: PUSH1 0x00 00001125: DUP8 00001126: DUP1 00001127: EXTCODESIZE 00001128: ISZERO 00001129: DUP1 0000112a: ISZERO 0000112b: PUSH2 0x1133 0000112e: JUMPI 0000112f: PUSH1 0x00 00001131: DUP1 00001132: REVERT 00001133: JUMPDEST 00001134: POP 00001135: GAS 00001136: CALL 00001137: ISZERO 00001138: DUP1 00001139: ISZERO 0000113a: PUSH2 0x1147 0000113d: JUMPI 0000113e: RETURNDATASIZE 0000113f: PUSH1 0x00 00001141: DUP1 00001142: RETURNDATACOPY 00001143: RETURNDATASIZE 00001144: PUSH1 0x00 00001146: REVERT 00001147: JUMPDEST 00001148: POP 00001149: POP 0000114a: POP 0000114b: POP 0000114c: PUSH1 0x40 0000114e: MLOAD 0000114f: RETURNDATASIZE 00001150: PUSH1 0x20 00001152: DUP2 00001153: LT 00001154: ISZERO 00001155: PUSH2 0x115d 00001158: JUMPI 00001159: PUSH1 0x00 0000115b: DUP1 0000115c: REVERT 0000115d: JUMPDEST 0000115e: POP 0000115f: MLOAD 00001160: ISZERO 00001161: ISZERO 00001162: PUSH2 0x11b5 00001165: JUMPI 00001166: PUSH1 0x40 00001168: DUP1 00001169: MLOAD 0000116a: PUSH1 0xe5 0000116c: PUSH1 0x02 0000116e: EXP 0000116f: PUSH3 0x461bcd 00001173: MUL 00001174: DUP2 00001175: MSTORE 00001176: PUSH1 0x20 00001178: PUSH1 0x04 0000117a: DUP3 0000117b: ADD 0000117c: MSTORE 0000117d: PUSH1 0x19 0000117f: PUSH1 0x24 00001181: DUP3 00001182: ADD 00001183: MSTORE 00001184: PUSH32 0x4275726e696e672065676720636f696e73206661696c65642e00000000000000 000011a5: PUSH1 0x44 000011a7: DUP3 000011a8: ADD 000011a9: MSTORE 000011aa: SWAP1 000011ab: MLOAD 000011ac: SWAP1 000011ad: DUP2 000011ae: SWAP1 000011af: SUB 000011b0: PUSH1 0x64 000011b2: ADD 000011b3: SWAP1 000011b4: REVERT 000011b5: JUMPDEST 000011b6: PUSH2 0x11be 000011b9: DUP6 000011ba: PUSH2 0x1b9c 000011bd: JUMP 000011be: JUMPDEST 000011bf: POP 000011c0: PUSH1 0x40 000011c2: MLOAD 000011c3: PUSH1 0x01 000011c5: PUSH1 0xa0 000011c7: PUSH1 0x02 000011c9: EXP 000011ca: SUB 000011cb: DUP7 000011cc: AND 000011cd: SWAP1 000011ce: PUSH32 0xfa22aee9a544b2e293f1a9e0d8d3934ada708bc2ef7683e5bc786dd440fd91af 000011ef: SWAP1 000011f0: PUSH1 0x00 000011f2: SWAP1 000011f3: LOG2 000011f4: POP 000011f5: POP 000011f6: POP 000011f7: POP 000011f8: POP 000011f9: JUMP 000011fa: JUMPDEST 000011fb: PUSH1 0x27 000011fd: SLOAD 000011fe: PUSH1 0x01 00001200: PUSH1 0xa0 00001202: PUSH1 0x02 00001204: EXP 00001205: SUB 00001206: AND 00001207: DUP2 00001208: JUMP 00001209: JUMPDEST 0000120a: PUSH1 0x00 0000120c: DUP2 0000120d: DUP2 0000120e: MSTORE 0000120f: PUSH1 0x29 00001211: PUSH1 0x20 00001213: MSTORE 00001214: PUSH1 0x40 00001216: DUP2 00001217: KECCAK256 00001218: PUSH2 0x1220 0000121b: DUP2 0000121c: PUSH2 0x1b92 0000121f: JUMP 00001220: JUMPDEST 00001221: ISZERO 00001222: ISZERO 00001223: PUSH2 0x1264 00001226: JUMPI 00001227: PUSH1 0x40 00001229: DUP1 0000122a: MLOAD 0000122b: PUSH1 0xe5 0000122d: PUSH1 0x02 0000122f: EXP 00001230: PUSH3 0x461bcd 00001234: MUL 00001235: DUP2 00001236: MSTORE 00001237: PUSH1 0x20 00001239: PUSH1 0x04 0000123b: DUP3 0000123c: ADD 0000123d: DUP2 0000123e: SWAP1 0000123f: MSTORE 00001240: PUSH1 0x24 00001242: DUP3 00001243: ADD 00001244: MSTORE 00001245: PUSH1 0x00 00001247: DUP1 00001248: MLOAD 00001249: PUSH1 0x20 0000124b: PUSH2 0x1f5c 0000124e: DUP4 0000124f: CODECOPY 00001250: DUP2 00001251: MLOAD 00001252: SWAP2 00001253: MSTORE 00001254: PUSH1 0x44 00001256: DUP3 00001257: ADD 00001258: MSTORE 00001259: SWAP1 0000125a: MLOAD 0000125b: SWAP1 0000125c: DUP2 0000125d: SWAP1 0000125e: SUB 0000125f: PUSH1 0x64 00001261: ADD 00001262: SWAP1 00001263: REVERT 00001264: JUMPDEST 00001265: PUSH2 0x126d 00001268: DUP2 00001269: PUSH2 0x1d39 0000126c: JUMP 0000126d: JUMPDEST 0000126e: SWAP4 0000126f: SWAP3 00001270: POP 00001271: POP 00001272: POP 00001273: JUMP 00001274: JUMPDEST 00001275: PUSH1 0x00 00001277: SLOAD 00001278: PUSH1 0x01 0000127a: PUSH1 0xa0 0000127c: PUSH1 0x02 0000127e: EXP 0000127f: SUB 00001280: AND 00001281: CALLER 00001282: EQ 00001283: PUSH2 0x12c4 00001286: JUMPI 00001287: PUSH1 0x40 00001289: DUP1 0000128a: MLOAD 0000128b: PUSH1 0xe5 0000128d: PUSH1 0x02 0000128f: EXP 00001290: PUSH3 0x461bcd 00001294: MUL 00001295: DUP2 00001296: MSTORE 00001297: PUSH1 0x20 00001299: PUSH1 0x04 0000129b: DUP3 0000129c: ADD 0000129d: MSTORE 0000129e: PUSH1 0x15 000012a0: PUSH1 0x24 000012a2: DUP3 000012a3: ADD 000012a4: MSTORE 000012a5: PUSH1 0x00 000012a7: DUP1 000012a8: MLOAD 000012a9: PUSH1 0x20 000012ab: PUSH2 0x1f7c 000012ae: DUP4 000012af: CODECOPY 000012b0: DUP2 000012b1: MLOAD 000012b2: SWAP2 000012b3: MSTORE 000012b4: PUSH1 0x44 000012b6: DUP3 000012b7: ADD 000012b8: MSTORE 000012b9: SWAP1 000012ba: MLOAD 000012bb: SWAP1 000012bc: DUP2 000012bd: SWAP1 000012be: SUB 000012bf: PUSH1 0x64 000012c1: ADD 000012c2: SWAP1 000012c3: REVERT 000012c4: JUMPDEST 000012c5: PUSH1 0x00 000012c7: DUP1 000012c8: SLOAD 000012c9: PUSH1 0x40 000012cb: MLOAD 000012cc: PUSH1 0x01 000012ce: PUSH1 0xa0 000012d0: PUSH1 0x02 000012d2: EXP 000012d3: SUB 000012d4: SWAP1 000012d5: SWAP2 000012d6: AND 000012d7: SWAP2 000012d8: ADDRESS 000012d9: BALANCE 000012da: DUP1 000012db: ISZERO 000012dc: PUSH2 0x08fc 000012df: MUL 000012e0: SWAP3 000012e1: SWAP1 000012e2: SWAP2 000012e3: DUP2 000012e4: DUP2 000012e5: DUP2 000012e6: DUP6 000012e7: DUP9 000012e8: DUP9 000012e9: CALL 000012ea: SWAP4 000012eb: POP 000012ec: POP 000012ed: POP 000012ee: POP 000012ef: ISZERO 000012f0: DUP1 000012f1: ISZERO 000012f2: PUSH2 0x12ff 000012f5: JUMPI 000012f6: RETURNDATASIZE 000012f7: PUSH1 0x00 000012f9: DUP1 000012fa: RETURNDATACOPY 000012fb: RETURNDATASIZE 000012fc: PUSH1 0x00 000012fe: REVERT 000012ff: JUMPDEST 00001300: POP 00001301: JUMP 00001302: JUMPDEST 00001303: PUSH1 0x00 00001305: DUP1 00001306: PUSH1 0x00 00001308: DUP1 00001309: PUSH1 0x00 0000130b: DUP1 0000130c: PUSH1 0x00 0000130e: PUSH1 0x14 00001310: SWAP1 00001311: SLOAD 00001312: SWAP1 00001313: PUSH2 0x0100 00001316: EXP 00001317: SWAP1 00001318: DIV 00001319: PUSH1 0xff 0000131b: AND 0000131c: ISZERO 0000131d: ISZERO 0000131e: ISZERO 0000131f: PUSH2 0x1372 00001322: JUMPI 00001323: PUSH1 0x40 00001325: DUP1 00001326: MLOAD 00001327: PUSH1 0xe5 00001329: PUSH1 0x02 0000132b: EXP 0000132c: PUSH3 0x461bcd 00001330: MUL 00001331: DUP2 00001332: MSTORE 00001333: PUSH1 0x20 00001335: PUSH1 0x04 00001337: DUP3 00001338: ADD 00001339: MSTORE 0000133a: PUSH1 0x17 0000133c: PUSH1 0x24 0000133e: DUP3 0000133f: ADD 00001340: MSTORE 00001341: PUSH32 0x54686520636f6e7472616374206973207061757365642e000000000000000000 00001362: PUSH1 0x44 00001364: DUP3 00001365: ADD 00001366: MSTORE 00001367: SWAP1 00001368: MLOAD 00001369: SWAP1 0000136a: DUP2 0000136b: SWAP1 0000136c: SUB 0000136d: PUSH1 0x64 0000136f: ADD 00001370: SWAP1 00001371: REVERT 00001372: JUMPDEST 00001373: PUSH1 0x00 00001375: DUP9 00001376: DUP2 00001377: MSTORE 00001378: PUSH1 0x29 0000137a: PUSH1 0x20 0000137c: MSTORE 0000137d: PUSH1 0x40 0000137f: SWAP1 00001380: KECCAK256 00001381: SWAP4 00001382: POP 00001383: PUSH2 0x138b 00001386: DUP5 00001387: PUSH2 0x1b92 0000138a: JUMP 0000138b: JUMPDEST 0000138c: ISZERO 0000138d: ISZERO 0000138e: PUSH2 0x13cf 00001391: JUMPI 00001392: PUSH1 0x40 00001394: DUP1 00001395: MLOAD 00001396: PUSH1 0xe5 00001398: PUSH1 0x02 0000139a: EXP 0000139b: PUSH3 0x461bcd 0000139f: MUL 000013a0: DUP2 000013a1: MSTORE 000013a2: PUSH1 0x20 000013a4: PUSH1 0x04 000013a6: DUP3 000013a7: ADD 000013a8: DUP2 000013a9: SWAP1 000013aa: MSTORE 000013ab: PUSH1 0x24 000013ad: DUP3 000013ae: ADD 000013af: MSTORE 000013b0: PUSH1 0x00 000013b2: DUP1 000013b3: MLOAD 000013b4: PUSH1 0x20 000013b6: PUSH2 0x1f5c 000013b9: DUP4 000013ba: CODECOPY 000013bb: DUP2 000013bc: MLOAD 000013bd: SWAP2 000013be: MSTORE 000013bf: PUSH1 0x44 000013c1: DUP3 000013c2: ADD 000013c3: MSTORE 000013c4: SWAP1 000013c5: MLOAD 000013c6: SWAP1 000013c7: DUP2 000013c8: SWAP1 000013c9: SUB 000013ca: PUSH1 0x64 000013cc: ADD 000013cd: SWAP1 000013ce: REVERT 000013cf: JUMPDEST 000013d0: PUSH2 0x13d8 000013d3: DUP5 000013d4: PUSH2 0x1d39 000013d7: JUMP 000013d8: JUMPDEST 000013d9: SWAP3 000013da: POP 000013db: CALLVALUE 000013dc: DUP4 000013dd: GT 000013de: ISZERO 000013df: PUSH2 0x1432 000013e2: JUMPI 000013e3: PUSH1 0x40 000013e5: DUP1 000013e6: MLOAD 000013e7: PUSH1 0xe5 000013e9: PUSH1 0x02 000013eb: EXP 000013ec: PUSH3 0x461bcd 000013f0: MUL 000013f1: DUP2 000013f2: MSTORE 000013f3: PUSH1 0x20 000013f5: PUSH1 0x04 000013f7: DUP3 000013f8: ADD 000013f9: MSTORE 000013fa: PUSH1 0x15 000013fc: PUSH1 0x24 000013fe: DUP3 000013ff: ADD 00001400: MSTORE 00001401: PUSH32 0x496e73756666696369656e74207061796d656e742e0000000000000000000000 00001422: PUSH1 0x44 00001424: DUP3 00001425: ADD 00001426: MSTORE 00001427: SWAP1 00001428: MLOAD 00001429: SWAP1 0000142a: DUP2 0000142b: SWAP1 0000142c: SUB 0000142d: PUSH1 0x64 0000142f: ADD 00001430: SWAP1 00001431: REVERT 00001432: JUMPDEST 00001433: PUSH2 0x143b 00001436: CALLER 00001437: PUSH2 0x1b9c 0000143a: JUMP 0000143b: JUMPDEST 0000143c: SWAP2 0000143d: POP 0000143e: PUSH1 0x00 00001440: SWAP1 00001441: POP 00001442: PUSH1 0x01 00001444: PUSH1 0xa0 00001446: PUSH1 0x02 00001448: EXP 00001449: SUB 0000144a: DUP8 0000144b: AND 0000144c: CALLER 0000144d: EQ 0000144e: PUSH2 0x1454 00001451: JUMPI 00001452: POP 00001453: DUP6 00001454: JUMPDEST 00001455: PUSH1 0x40 00001457: DUP1 00001458: MLOAD 00001459: DUP5 0000145a: DUP2 0000145b: MSTORE 0000145c: SWAP1 0000145d: MLOAD 0000145e: PUSH1 0x01 00001460: PUSH1 0xa0 00001462: PUSH1 0x02 00001464: EXP 00001465: SUB 00001466: DUP4 00001467: AND 00001468: SWAP2 00001469: CALLER 0000146a: SWAP2 0000146b: DUP12 0000146c: SWAP2 0000146d: PUSH32 0x2132e244e3c403323dcdc6ab686745c3b6435a28e866d63da7485a34bb0d07c9 0000148e: SWAP2 0000148f: SWAP1 00001490: DUP2 00001491: SWAP1 00001492: SUB 00001493: PUSH1 0x20 00001495: ADD 00001496: SWAP1 00001497: LOG4 00001498: PUSH1 0x00 0000149a: DUP9 0000149b: DUP2 0000149c: MSTORE 0000149d: PUSH1 0x2a 0000149f: PUSH1 0x20 000014a1: MSTORE 000014a2: PUSH1 0x40 000014a4: SWAP1 000014a5: KECCAK256 000014a6: SLOAD 000014a7: PUSH1 0xff 000014a9: AND 000014aa: ISZERO 000014ab: ISZERO 000014ac: PUSH2 0x1504 000014af: JUMPI 000014b0: PUSH2 0x14b8 000014b3: DUP4 000014b4: PUSH2 0x1d74 000014b7: JUMP 000014b8: JUMPDEST 000014b9: DUP1 000014ba: DUP6 000014bb: SSTORE 000014bc: TIMESTAMP 000014bd: PUSH1 0x01 000014bf: DUP7 000014c0: ADD 000014c1: DUP2 000014c2: SWAP1 000014c3: SSTORE 000014c4: PUSH1 0x40 000014c6: DUP1 000014c7: MLOAD 000014c8: SWAP3 000014c9: DUP4 000014ca: MSTORE 000014cb: PUSH1 0x20 000014cd: DUP4 000014ce: ADD 000014cf: SWAP2 000014d0: SWAP1 000014d1: SWAP2 000014d2: MSTORE 000014d3: DUP1 000014d4: MLOAD 000014d5: DUP11 000014d6: SWAP3 000014d7: PUSH32 0xa1cd90ce96b065801c3c8f2bd0d0ca0f8a29b00961445eaa26fb9a341d179f26 000014f8: SWAP3 000014f9: SWAP1 000014fa: DUP3 000014fb: SWAP1 000014fc: SUB 000014fd: ADD 000014fe: SWAP1 000014ff: LOG2 00001500: PUSH2 0x1561 00001503: JUMP 00001504: JUMPDEST 00001505: PUSH1 0x00 00001507: DUP9 00001508: DUP2 00001509: MSTORE 0000150a: PUSH1 0x29 0000150c: PUSH1 0x20 0000150e: SWAP1 0000150f: DUP2 00001510: MSTORE 00001511: PUSH1 0x40 00001513: DUP1 00001514: DUP4 00001515: KECCAK256 00001516: DUP4 00001517: DUP2 00001518: SSTORE 00001519: PUSH1 0x01 0000151b: ADD 0000151c: DUP4 0000151d: SWAP1 0000151e: SSTORE 0000151f: PUSH1 0x2a 00001521: DUP3 00001522: MSTORE 00001523: SWAP2 00001524: DUP3 00001525: SWAP1 00001526: KECCAK256 00001527: DUP1 00001528: SLOAD 00001529: PUSH1 0xff 0000152b: NOT 0000152c: AND 0000152d: SWAP1 0000152e: SSTORE 0000152f: DUP2 00001530: MLOAD 00001531: DUP6 00001532: DUP2 00001533: MSTORE 00001534: SWAP2 00001535: MLOAD 00001536: DUP11 00001537: SWAP3 00001538: PUSH32 0x6eb84e2c77d1609e6a2944eb7e3de1e751cf9881a9645ec64407ff39cae98bb9 00001559: SWAP3 0000155a: SWAP1 0000155b: DUP3 0000155c: SWAP1 0000155d: SUB 0000155e: ADD 0000155f: SWAP1 00001560: LOG2 00001561: JUMPDEST 00001562: DUP3 00001563: CALLVALUE 00001564: GT 00001565: ISZERO 00001566: PUSH2 0x159a 00001569: JUMPI 0000156a: PUSH1 0x40 0000156c: MLOAD 0000156d: CALLER 0000156e: SWAP1 0000156f: CALLVALUE 00001570: DUP6 00001571: SWAP1 00001572: SUB 00001573: DUP1 00001574: ISZERO 00001575: PUSH2 0x08fc 00001578: MUL 00001579: SWAP2 0000157a: PUSH1 0x00 0000157c: DUP2 0000157d: DUP2 0000157e: DUP2 0000157f: DUP6 00001580: DUP9 00001581: DUP9 00001582: CALL 00001583: SWAP4 00001584: POP 00001585: POP 00001586: POP 00001587: POP 00001588: ISZERO 00001589: DUP1 0000158a: ISZERO 0000158b: PUSH2 0x1598 0000158e: JUMPI 0000158f: RETURNDATASIZE 00001590: PUSH1 0x00 00001592: DUP1 00001593: RETURNDATACOPY 00001594: RETURNDATASIZE 00001595: PUSH1 0x00 00001597: REVERT 00001598: JUMPDEST 00001599: POP 0000159a: JUMPDEST 0000159b: PUSH1 0x01 0000159d: PUSH1 0xa0 0000159f: PUSH1 0x02 000015a1: EXP 000015a2: SUB 000015a3: DUP2 000015a4: AND 000015a5: ISZERO 000015a6: PUSH2 0x15d8 000015a9: JUMPI 000015aa: DUP1 000015ab: PUSH1 0x01 000015ad: PUSH1 0xa0 000015af: PUSH1 0x02 000015b1: EXP 000015b2: SUB 000015b3: AND 000015b4: PUSH2 0x08fc 000015b7: PUSH2 0x15c0 000015ba: DUP4 000015bb: DUP7 000015bc: PUSH2 0x1d97 000015bf: JUMP 000015c0: JUMPDEST 000015c1: PUSH1 0x40 000015c3: MLOAD 000015c4: DUP2 000015c5: ISZERO 000015c6: SWAP1 000015c7: SWAP3 000015c8: MUL 000015c9: SWAP2 000015ca: PUSH1 0x00 000015cc: DUP2 000015cd: DUP2 000015ce: DUP2 000015cf: DUP6 000015d0: DUP9 000015d1: DUP9 000015d2: CALL 000015d3: POP 000015d4: POP 000015d5: POP 000015d6: POP 000015d7: POP 000015d8: JUMPDEST 000015d9: POP 000015da: SWAP7 000015db: SWAP1 000015dc: SWAP6 000015dd: POP 000015de: SWAP4 000015df: POP 000015e0: POP 000015e1: POP 000015e2: POP 000015e3: JUMP 000015e4: JUMPDEST 000015e5: PUSH1 0x03 000015e7: SLOAD 000015e8: DUP2 000015e9: JUMP 000015ea: JUMPDEST 000015eb: PUSH1 0x00 000015ed: SLOAD 000015ee: PUSH1 0x01 000015f0: PUSH1 0xa0 000015f2: PUSH1 0x02 000015f4: EXP 000015f5: SUB 000015f6: AND 000015f7: CALLER 000015f8: EQ 000015f9: PUSH2 0x163a 000015fc: JUMPI 000015fd: PUSH1 0x40 000015ff: DUP1 00001600: MLOAD 00001601: PUSH1 0xe5 00001603: PUSH1 0x02 00001605: EXP 00001606: PUSH3 0x461bcd 0000160a: MUL 0000160b: DUP2 0000160c: MSTORE 0000160d: PUSH1 0x20 0000160f: PUSH1 0x04 00001611: DUP3 00001612: ADD 00001613: MSTORE 00001614: PUSH1 0x15 00001616: PUSH1 0x24 00001618: DUP3 00001619: ADD 0000161a: MSTORE 0000161b: PUSH1 0x00 0000161d: DUP1 0000161e: MLOAD 0000161f: PUSH1 0x20 00001621: PUSH2 0x1f7c 00001624: DUP4 00001625: CODECOPY 00001626: DUP2 00001627: MLOAD 00001628: SWAP2 00001629: MSTORE 0000162a: PUSH1 0x44 0000162c: DUP3 0000162d: ADD 0000162e: MSTORE 0000162f: SWAP1 00001630: MLOAD 00001631: SWAP1 00001632: DUP2 00001633: SWAP1 00001634: SUB 00001635: PUSH1 0x64 00001637: ADD 00001638: SWAP1 00001639: REVERT 0000163a: JUMPDEST 0000163b: DUP1 0000163c: PUSH1 0x01 0000163e: PUSH1 0xa0 00001640: PUSH1 0x02 00001642: EXP 00001643: SUB 00001644: AND 00001645: PUSH4 0xc8b5189b 0000164a: PUSH1 0x40 0000164c: MLOAD 0000164d: DUP2 0000164e: PUSH4 0xffffffff 00001653: AND 00001654: PUSH1 0xe0 00001656: PUSH1 0x02 00001658: EXP 00001659: MUL 0000165a: DUP2 0000165b: MSTORE 0000165c: PUSH1 0x04 0000165e: ADD 0000165f: PUSH1 0x20 00001661: PUSH1 0x40 00001663: MLOAD 00001664: DUP1 00001665: DUP4 00001666: SUB 00001667: DUP2 00001668: PUSH1 0x00 0000166a: DUP8 0000166b: DUP1 0000166c: EXTCODESIZE 0000166d: ISZERO 0000166e: DUP1 0000166f: ISZERO 00001670: PUSH2 0x1678 00001673: JUMPI 00001674: PUSH1 0x00 00001676: DUP1 00001677: REVERT 00001678: JUMPDEST 00001679: POP 0000167a: GAS 0000167b: CALL 0000167c: ISZERO 0000167d: DUP1 0000167e: ISZERO 0000167f: PUSH2 0x168c 00001682: JUMPI 00001683: RETURNDATASIZE 00001684: PUSH1 0x00 00001686: DUP1 00001687: RETURNDATACOPY 00001688: RETURNDATASIZE 00001689: PUSH1 0x00 0000168b: REVERT 0000168c: JUMPDEST 0000168d: POP 0000168e: POP 0000168f: POP 00001690: POP 00001691: PUSH1 0x40 00001693: MLOAD 00001694: RETURNDATASIZE 00001695: PUSH1 0x20 00001697: DUP2 00001698: LT 00001699: ISZERO 0000169a: PUSH2 0x16a2 0000169d: JUMPI 0000169e: PUSH1 0x00 000016a0: DUP1 000016a1: REVERT 000016a2: JUMPDEST 000016a3: POP 000016a4: MLOAD 000016a5: ISZERO 000016a6: ISZERO 000016a7: PUSH2 0x16fa 000016aa: JUMPI 000016ab: PUSH1 0x40 000016ad: DUP1 000016ae: MLOAD 000016af: PUSH1 0xe5 000016b1: PUSH1 0x02 000016b3: EXP 000016b4: PUSH3 0x461bcd 000016b8: MUL 000016b9: DUP2 000016ba: MSTORE 000016bb: PUSH1 0x20 000016bd: PUSH1 0x04 000016bf: DUP3 000016c0: ADD 000016c1: MSTORE 000016c2: PUSH1 0x16 000016c4: PUSH1 0x24 000016c6: DUP3 000016c7: ADD 000016c8: MSTORE 000016c9: PUSH32 0x496e76616c6964206567672067656e6520706f6f6c2e00000000000000000000 000016ea: PUSH1 0x44 000016ec: DUP3 000016ed: ADD 000016ee: MSTORE 000016ef: SWAP1 000016f0: MLOAD 000016f1: SWAP1 000016f2: DUP2 000016f3: SWAP1 000016f4: SUB 000016f5: PUSH1 0x64 000016f7: ADD 000016f8: SWAP1 000016f9: REVERT 000016fa: JUMPDEST 000016fb: PUSH1 0x27 000016fd: DUP1 000016fe: SLOAD 000016ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001714: NOT 00001715: AND 00001716: PUSH1 0x01 00001718: PUSH1 0xa0 0000171a: PUSH1 0x02 0000171c: EXP 0000171d: SUB 0000171e: SWAP3 0000171f: SWAP1 00001720: SWAP3 00001721: AND 00001722: SWAP2 00001723: SWAP1 00001724: SWAP2 00001725: OR 00001726: SWAP1 00001727: SSTORE 00001728: JUMP 00001729: JUMPDEST 0000172a: PUSH1 0x03 0000172c: DUP2 0000172d: JUMP 0000172e: JUMPDEST 0000172f: PUSH1 0x00 00001731: DUP1 00001732: SLOAD 00001733: DUP2 00001734: SWAP1 00001735: DUP2 00001736: SWAP1 00001737: PUSH1 0x01 00001739: PUSH1 0xa0 0000173b: PUSH1 0x02 0000173d: EXP 0000173e: SUB 0000173f: AND 00001740: CALLER 00001741: EQ 00001742: PUSH2 0x1783 00001745: JUMPI 00001746: PUSH1 0x40 00001748: DUP1 00001749: MLOAD 0000174a: PUSH1 0xe5 0000174c: PUSH1 0x02 0000174e: EXP 0000174f: PUSH3 0x461bcd 00001753: MUL 00001754: DUP2 00001755: MSTORE 00001756: PUSH1 0x20 00001758: PUSH1 0x04 0000175a: DUP3 0000175b: ADD 0000175c: MSTORE 0000175d: PUSH1 0x15 0000175f: PUSH1 0x24 00001761: DUP3 00001762: ADD 00001763: MSTORE 00001764: PUSH1 0x00 00001766: DUP1 00001767: MLOAD 00001768: PUSH1 0x20 0000176a: PUSH2 0x1f7c 0000176d: DUP4 0000176e: CODECOPY 0000176f: DUP2 00001770: MLOAD 00001771: SWAP2 00001772: MSTORE 00001773: PUSH1 0x44 00001775: DUP3 00001776: ADD 00001777: MSTORE 00001778: SWAP1 00001779: MLOAD 0000177a: SWAP1 0000177b: DUP2 0000177c: SWAP1 0000177d: SUB 0000177e: PUSH1 0x64 00001780: ADD 00001781: SWAP1 00001782: REVERT 00001783: JUMPDEST 00001784: PUSH1 0x00 00001786: SWAP2 00001787: POP 00001788: JUMPDEST 00001789: DUP5 0000178a: DUP3 0000178b: LT 0000178c: ISZERO 0000178d: PUSH2 0x06c7 00001790: JUMPI 00001791: DUP6 00001792: DUP6 00001793: DUP4 00001794: DUP2 00001795: DUP2 00001796: LT 00001797: PUSH2 0x179c 0000179a: JUMPI 0000179b: INVALID 0000179c: JUMPDEST 0000179d: SWAP1 0000179e: POP 0000179f: PUSH1 0x20 000017a1: MUL 000017a2: ADD 000017a3: CALLDATALOAD 000017a4: SWAP3 000017a5: POP 000017a6: PUSH1 0x29 000017a8: PUSH1 0x00 000017aa: DUP5 000017ab: DUP2 000017ac: MSTORE 000017ad: PUSH1 0x20 000017af: ADD 000017b0: SWAP1 000017b1: DUP2 000017b2: MSTORE 000017b3: PUSH1 0x20 000017b5: ADD 000017b6: PUSH1 0x00 000017b8: KECCAK256 000017b9: SWAP1 000017ba: POP 000017bb: PUSH2 0x17c3 000017be: DUP2 000017bf: PUSH2 0x1b92 000017c2: JUMP 000017c3: JUMPDEST 000017c4: ISZERO 000017c5: PUSH2 0x1818 000017c8: JUMPI 000017c9: PUSH1 0x40 000017cb: DUP1 000017cc: MLOAD 000017cd: PUSH1 0xe5 000017cf: PUSH1 0x02 000017d1: EXP 000017d2: PUSH3 0x461bcd 000017d6: MUL 000017d7: DUP2 000017d8: MSTORE 000017d9: PUSH1 0x20 000017db: PUSH1 0x04 000017dd: DUP3 000017de: ADD 000017df: DUP2 000017e0: SWAP1 000017e1: MSTORE 000017e2: PUSH1 0x24 000017e4: DUP3 000017e5: ADD 000017e6: MSTORE 000017e7: PUSH32 0x4567672073616c65206d757374206e6f74206265206f70656e6564207965742e 00001808: PUSH1 0x44 0000180a: DUP3 0000180b: ADD 0000180c: MSTORE 0000180d: SWAP1 0000180e: MLOAD 0000180f: SWAP1 00001810: DUP2 00001811: SWAP1 00001812: SUB 00001813: PUSH1 0x64 00001815: ADD 00001816: SWAP1 00001817: REVERT 00001818: JUMPDEST 00001819: DUP4 0000181a: DUP2 0000181b: SSTORE 0000181c: TIMESTAMP 0000181d: PUSH1 0x01 0000181f: DUP3 00001820: ADD 00001821: DUP2 00001822: SWAP1 00001823: SSTORE 00001824: PUSH1 0x40 00001826: DUP1 00001827: MLOAD 00001828: DUP7 00001829: DUP2 0000182a: MSTORE 0000182b: PUSH1 0x20 0000182d: DUP2 0000182e: ADD 0000182f: SWAP3 00001830: SWAP1 00001831: SWAP3 00001832: MSTORE 00001833: DUP1 00001834: MLOAD 00001835: DUP6 00001836: SWAP3 00001837: PUSH32 0xa1cd90ce96b065801c3c8f2bd0d0ca0f8a29b00961445eaa26fb9a341d179f26 00001858: SWAP3 00001859: SWAP1 0000185a: DUP3 0000185b: SWAP1 0000185c: SUB 0000185d: ADD 0000185e: SWAP1 0000185f: LOG2 00001860: PUSH1 0x01 00001862: SWAP1 00001863: SWAP2 00001864: ADD 00001865: SWAP1 00001866: PUSH2 0x1788 00001869: JUMP 0000186a: JUMPDEST 0000186b: PUSH1 0x26 0000186d: SLOAD 0000186e: PUSH1 0x01 00001870: PUSH1 0xa0 00001872: PUSH1 0x02 00001874: EXP 00001875: SUB 00001876: AND 00001877: DUP2 00001878: JUMP 00001879: JUMPDEST 0000187a: PUSH1 0x00 0000187c: SLOAD 0000187d: PUSH1 0x01 0000187f: PUSH1 0xa0 00001881: PUSH1 0x02 00001883: EXP 00001884: SUB 00001885: AND 00001886: CALLER 00001887: EQ 00001888: PUSH2 0x18c9 0000188b: JUMPI 0000188c: PUSH1 0x40 0000188e: DUP1 0000188f: MLOAD 00001890: PUSH1 0xe5 00001892: PUSH1 0x02 00001894: EXP 00001895: PUSH3 0x461bcd 00001899: MUL 0000189a: DUP2 0000189b: MSTORE 0000189c: PUSH1 0x20 0000189e: PUSH1 0x04 000018a0: DUP3 000018a1: ADD 000018a2: MSTORE 000018a3: PUSH1 0x15 000018a5: PUSH1 0x24 000018a7: DUP3 000018a8: ADD 000018a9: MSTORE 000018aa: PUSH1 0x00 000018ac: DUP1 000018ad: MLOAD 000018ae: PUSH1 0x20 000018b0: PUSH2 0x1f7c 000018b3: DUP4 000018b4: CODECOPY 000018b5: DUP2 000018b6: MLOAD 000018b7: SWAP2 000018b8: MSTORE 000018b9: PUSH1 0x44 000018bb: DUP3 000018bc: ADD 000018bd: MSTORE 000018be: SWAP1 000018bf: MLOAD 000018c0: SWAP1 000018c1: DUP2 000018c2: SWAP1 000018c3: SUB 000018c4: PUSH1 0x64 000018c6: ADD 000018c7: SWAP1 000018c8: REVERT 000018c9: JUMPDEST 000018ca: PUSH1 0x28 000018cc: DUP1 000018cd: SLOAD 000018ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018e3: NOT 000018e4: AND 000018e5: PUSH1 0x01 000018e7: PUSH1 0xa0 000018e9: PUSH1 0x02 000018eb: EXP 000018ec: SUB 000018ed: SWAP3 000018ee: SWAP1 000018ef: SWAP3 000018f0: AND 000018f1: SWAP2 000018f2: SWAP1 000018f3: SWAP2 000018f4: OR 000018f5: SWAP1 000018f6: SSTORE 000018f7: JUMP 000018f8: JUMPDEST 000018f9: PUSH1 0x00 000018fb: SLOAD 000018fc: PUSH1 0x01 000018fe: PUSH1 0xa0 00001900: PUSH1 0x02 00001902: EXP 00001903: SUB 00001904: AND 00001905: CALLER 00001906: EQ 00001907: PUSH2 0x1948 0000190a: JUMPI 0000190b: PUSH1 0x40 0000190d: DUP1 0000190e: MLOAD 0000190f: PUSH1 0xe5 00001911: PUSH1 0x02 00001913: EXP 00001914: PUSH3 0x461bcd 00001918: MUL 00001919: DUP2 0000191a: MSTORE 0000191b: PUSH1 0x20 0000191d: PUSH1 0x04 0000191f: DUP3 00001920: ADD 00001921: MSTORE 00001922: PUSH1 0x15 00001924: PUSH1 0x24 00001926: DUP3 00001927: ADD 00001928: MSTORE 00001929: PUSH1 0x00 0000192b: DUP1 0000192c: MLOAD 0000192d: PUSH1 0x20 0000192f: PUSH2 0x1f7c 00001932: DUP4 00001933: CODECOPY 00001934: DUP2 00001935: MLOAD 00001936: SWAP2 00001937: MSTORE 00001938: PUSH1 0x44 0000193a: DUP3 0000193b: ADD 0000193c: MSTORE 0000193d: SWAP1 0000193e: MLOAD 0000193f: SWAP1 00001940: DUP2 00001941: SWAP1 00001942: SUB 00001943: PUSH1 0x64 00001945: ADD 00001946: SWAP1 00001947: REVERT 00001948: JUMPDEST 00001949: PUSH1 0x01 0000194b: PUSH1 0xa0 0000194d: PUSH1 0x02 0000194f: EXP 00001950: SUB 00001951: DUP2 00001952: AND 00001953: ISZERO 00001954: ISZERO 00001955: PUSH2 0x19cd 00001958: JUMPI 00001959: PUSH1 0x40 0000195b: DUP1 0000195c: MLOAD 0000195d: PUSH1 0xe5 0000195f: PUSH1 0x02 00001961: EXP 00001962: PUSH3 0x461bcd 00001966: MUL 00001967: DUP2 00001968: MSTORE 00001969: PUSH1 0x20 0000196b: PUSH1 0x04 0000196d: DUP3 0000196e: ADD 0000196f: MSTORE 00001970: PUSH1 0x24 00001972: DUP1 00001973: DUP3 00001974: ADD 00001975: MSTORE 00001976: PUSH32 0x4e6577206f776e657227732061646472657373206d757374206e6f7420626520 00001997: PUSH1 0x44 00001999: DUP3 0000199a: ADD 0000199b: MSTORE 0000199c: PUSH32 0x3078302e00000000000000000000000000000000000000000000000000000000 000019bd: PUSH1 0x64 000019bf: DUP3 000019c0: ADD 000019c1: MSTORE 000019c2: SWAP1 000019c3: MLOAD 000019c4: SWAP1 000019c5: DUP2 000019c6: SWAP1 000019c7: SUB 000019c8: PUSH1 0x84 000019ca: ADD 000019cb: SWAP1 000019cc: REVERT 000019cd: JUMPDEST 000019ce: PUSH1 0x00 000019d0: DUP1 000019d1: SLOAD 000019d2: PUSH1 0x40 000019d4: MLOAD 000019d5: PUSH1 0x01 000019d7: PUSH1 0xa0 000019d9: PUSH1 0x02 000019db: EXP 000019dc: SUB 000019dd: SWAP2 000019de: DUP3 000019df: AND 000019e0: SWAP3 000019e1: SWAP2 000019e2: DUP5 000019e3: AND 000019e4: SWAP2 000019e5: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001a06: SWAP2 00001a07: LOG3 00001a08: PUSH1 0x00 00001a0a: DUP1 00001a0b: SLOAD 00001a0c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a21: NOT 00001a22: AND 00001a23: PUSH1 0x01 00001a25: PUSH1 0xa0 00001a27: PUSH1 0x02 00001a29: EXP 00001a2a: SUB 00001a2b: SWAP3 00001a2c: SWAP1 00001a2d: SWAP3 00001a2e: AND 00001a2f: SWAP2 00001a30: SWAP1 00001a31: SWAP2 00001a32: OR 00001a33: SWAP1 00001a34: SSTORE 00001a35: JUMP 00001a36: JUMPDEST 00001a37: PUSH1 0x04 00001a39: DUP2 00001a3a: JUMP 00001a3b: JUMPDEST 00001a3c: PUSH1 0x00 00001a3e: DUP3 00001a3f: LT 00001a40: ISZERO 00001a41: PUSH2 0x1a94 00001a44: JUMPI 00001a45: PUSH1 0x40 00001a47: DUP1 00001a48: MLOAD 00001a49: PUSH1 0xe5 00001a4b: PUSH1 0x02 00001a4d: EXP 00001a4e: PUSH3 0x461bcd 00001a52: MUL 00001a53: DUP2 00001a54: MSTORE 00001a55: PUSH1 0x20 00001a57: PUSH1 0x04 00001a59: DUP3 00001a5a: ADD 00001a5b: MSTORE 00001a5c: PUSH1 0x10 00001a5e: PUSH1 0x24 00001a60: DUP3 00001a61: ADD 00001a62: MSTORE 00001a63: PUSH32 0x52616e6b20697320746f6f206c6f772e00000000000000000000000000000000 00001a84: PUSH1 0x44 00001a86: DUP3 00001a87: ADD 00001a88: MSTORE 00001a89: SWAP1 00001a8a: MLOAD 00001a8b: SWAP1 00001a8c: DUP2 00001a8d: SWAP1 00001a8e: SUB 00001a8f: PUSH1 0x64 00001a91: ADD 00001a92: SWAP1 00001a93: REVERT 00001a94: JUMPDEST 00001a95: PUSH1 0x05 00001a97: DUP3 00001a98: GT 00001a99: ISZERO 00001a9a: PUSH2 0x1aed 00001a9d: JUMPI 00001a9e: PUSH1 0x40 00001aa0: DUP1 00001aa1: MLOAD 00001aa2: PUSH1 0xe5 00001aa4: PUSH1 0x02 00001aa6: EXP 00001aa7: PUSH3 0x461bcd 00001aab: MUL 00001aac: DUP2 00001aad: MSTORE 00001aae: PUSH1 0x20 00001ab0: PUSH1 0x04 00001ab2: DUP3 00001ab3: ADD 00001ab4: MSTORE 00001ab5: PUSH1 0x11 00001ab7: PUSH1 0x24 00001ab9: DUP3 00001aba: ADD 00001abb: MSTORE 00001abc: PUSH32 0x52616e6b20697320746f6f20686967682e000000000000000000000000000000 00001add: PUSH1 0x44 00001adf: DUP3 00001ae0: ADD 00001ae1: MSTORE 00001ae2: SWAP1 00001ae3: MLOAD 00001ae4: SWAP1 00001ae5: DUP2 00001ae6: SWAP1 00001ae7: SUB 00001ae8: PUSH1 0x64 00001aea: ADD 00001aeb: SWAP1 00001aec: REVERT 00001aed: JUMPDEST 00001aee: PUSH2 0x2710 00001af1: DUP2 00001af2: GT 00001af3: ISZERO 00001af4: PUSH2 0x1b47 00001af7: JUMPI 00001af8: PUSH1 0x40 00001afa: DUP1 00001afb: MLOAD 00001afc: PUSH1 0xe5 00001afe: PUSH1 0x02 00001b00: EXP 00001b01: PUSH3 0x461bcd 00001b05: MUL 00001b06: DUP2 00001b07: MSTORE 00001b08: PUSH1 0x20 00001b0a: PUSH1 0x04 00001b0c: DUP3 00001b0d: ADD 00001b0e: MSTORE 00001b0f: PUSH1 0x13 00001b11: PUSH1 0x24 00001b13: DUP3 00001b14: ADD 00001b15: MSTORE 00001b16: PUSH32 0x496e76616c69642070657263656e746167652e00000000000000000000000000 00001b37: PUSH1 0x44 00001b39: DUP3 00001b3a: ADD 00001b3b: MSTORE 00001b3c: SWAP1 00001b3d: MLOAD 00001b3e: SWAP1 00001b3f: DUP2 00001b40: SWAP1 00001b41: SUB 00001b42: PUSH1 0x64 00001b44: ADD 00001b45: SWAP1 00001b46: REVERT 00001b47: JUMPDEST 00001b48: PUSH1 0x00 00001b4a: DUP3 00001b4b: DUP2 00001b4c: MSTORE 00001b4d: PUSH1 0x02 00001b4f: PUSH1 0x20 00001b51: SWAP1 00001b52: DUP2 00001b53: MSTORE 00001b54: PUSH1 0x40 00001b56: SWAP2 00001b57: DUP3 00001b58: SWAP1 00001b59: KECCAK256 00001b5a: DUP4 00001b5b: SWAP1 00001b5c: SSTORE 00001b5d: DUP2 00001b5e: MLOAD 00001b5f: DUP4 00001b60: DUP2 00001b61: MSTORE 00001b62: SWAP2 00001b63: MLOAD 00001b64: DUP5 00001b65: SWAP3 00001b66: PUSH32 0xd968a3cc702265c3ab67356df15ca21d50167b011f198b963e2a868e04e3d5e0 00001b87: SWAP3 00001b88: SWAP1 00001b89: DUP3 00001b8a: SWAP1 00001b8b: SUB 00001b8c: ADD 00001b8d: SWAP1 00001b8e: LOG2 00001b8f: POP 00001b90: POP 00001b91: JUMP 00001b92: JUMPDEST 00001b93: PUSH1 0x01 00001b95: ADD 00001b96: SLOAD 00001b97: PUSH1 0x00 00001b99: LT 00001b9a: SWAP1 00001b9b: JUMP 00001b9c: JUMPDEST 00001b9d: PUSH1 0x26 00001b9f: SLOAD 00001ba0: PUSH1 0x40 00001ba2: DUP1 00001ba3: MLOAD 00001ba4: PUSH32 0xc69cd09d00000000000000000000000000000000000000000000000000000000 00001bc5: DUP2 00001bc6: MSTORE 00001bc7: SWAP1 00001bc8: MLOAD 00001bc9: PUSH1 0x00 00001bcb: SWAP3 00001bcc: PUSH1 0x01 00001bce: PUSH1 0xa0 00001bd0: PUSH1 0x02 00001bd2: EXP 00001bd3: SUB 00001bd4: AND 00001bd5: SWAP2 00001bd6: PUSH4 0xf3c0632b 00001bdb: SWAP2 00001bdc: DUP4 00001bdd: SWAP2 00001bde: PUSH4 0xc69cd09d 00001be3: SWAP2 00001be4: PUSH1 0x04 00001be6: DUP1 00001be7: DUP4 00001be8: ADD 00001be9: SWAP3 00001bea: PUSH1 0x20 00001bec: SWAP3 00001bed: SWAP2 00001bee: SWAP1 00001bef: DUP3 00001bf0: SWAP1 00001bf1: SUB 00001bf2: ADD 00001bf3: DUP2 00001bf4: DUP10 00001bf5: DUP8 00001bf6: DUP1 00001bf7: EXTCODESIZE 00001bf8: ISZERO 00001bf9: DUP1 00001bfa: ISZERO 00001bfb: PUSH2 0x1c03 00001bfe: JUMPI 00001bff: PUSH1 0x00 00001c01: DUP1 00001c02: REVERT 00001c03: JUMPDEST 00001c04: POP 00001c05: GAS 00001c06: CALL 00001c07: ISZERO 00001c08: DUP1 00001c09: ISZERO 00001c0a: PUSH2 0x1c17 00001c0d: JUMPI 00001c0e: RETURNDATASIZE 00001c0f: PUSH1 0x00 00001c11: DUP1 00001c12: RETURNDATACOPY 00001c13: RETURNDATASIZE 00001c14: PUSH1 0x00 00001c16: REVERT 00001c17: JUMPDEST 00001c18: POP 00001c19: POP 00001c1a: POP 00001c1b: POP 00001c1c: PUSH1 0x40 00001c1e: MLOAD 00001c1f: RETURNDATASIZE 00001c20: PUSH1 0x20 00001c22: DUP2 00001c23: LT 00001c24: ISZERO 00001c25: PUSH2 0x1c2d 00001c28: JUMPI 00001c29: PUSH1 0x00 00001c2b: DUP1 00001c2c: REVERT 00001c2d: JUMPDEST 00001c2e: POP 00001c2f: MLOAD 00001c30: PUSH1 0x27 00001c32: SLOAD 00001c33: PUSH1 0x40 00001c35: DUP1 00001c36: MLOAD 00001c37: PUSH32 0x21ffdd3000000000000000000000000000000000000000000000000000000000 00001c58: DUP2 00001c59: MSTORE 00001c5a: SWAP1 00001c5b: MLOAD 00001c5c: PUSH1 0x01 00001c5e: PUSH1 0xa0 00001c60: PUSH1 0x02 00001c62: EXP 00001c63: SUB 00001c64: SWAP1 00001c65: SWAP3 00001c66: AND 00001c67: SWAP2 00001c68: PUSH4 0x21ffdd30 00001c6d: SWAP2 00001c6e: PUSH1 0x04 00001c70: DUP1 00001c71: DUP3 00001c72: ADD 00001c73: SWAP3 00001c74: PUSH1 0x20 00001c76: SWAP3 00001c77: SWAP1 00001c78: SWAP2 00001c79: SWAP1 00001c7a: DUP3 00001c7b: SWAP1 00001c7c: SUB 00001c7d: ADD 00001c7e: DUP2 00001c7f: PUSH1 0x00 00001c81: DUP8 00001c82: DUP1 00001c83: EXTCODESIZE 00001c84: ISZERO 00001c85: DUP1 00001c86: ISZERO 00001c87: PUSH2 0x1c8f 00001c8a: JUMPI 00001c8b: PUSH1 0x00 00001c8d: DUP1 00001c8e: REVERT 00001c8f: JUMPDEST 00001c90: POP 00001c91: GAS 00001c92: CALL 00001c93: ISZERO 00001c94: DUP1 00001c95: ISZERO 00001c96: PUSH2 0x1ca3 00001c99: JUMPI 00001c9a: RETURNDATASIZE 00001c9b: PUSH1 0x00 00001c9d: DUP1 00001c9e: RETURNDATACOPY 00001c9f: RETURNDATASIZE 00001ca0: PUSH1 0x00 00001ca2: REVERT 00001ca3: JUMPDEST 00001ca4: POP 00001ca5: POP 00001ca6: POP 00001ca7: POP 00001ca8: PUSH1 0x40 00001caa: MLOAD 00001cab: RETURNDATASIZE 00001cac: PUSH1 0x20 00001cae: DUP2 00001caf: LT 00001cb0: ISZERO 00001cb1: PUSH2 0x1cb9 00001cb4: JUMPI 00001cb5: PUSH1 0x00 00001cb7: DUP1 00001cb8: REVERT 00001cb9: JUMPDEST 00001cba: POP 00001cbb: MLOAD 00001cbc: PUSH1 0x40 00001cbe: DUP1 00001cbf: MLOAD 00001cc0: PUSH1 0xe0 00001cc2: PUSH1 0x02 00001cc4: EXP 00001cc5: PUSH4 0xffffffff 00001cca: DUP7 00001ccb: AND 00001ccc: MUL 00001ccd: DUP2 00001cce: MSTORE 00001ccf: PUSH1 0x04 00001cd1: DUP2 00001cd2: ADD 00001cd3: SWAP3 00001cd4: SWAP1 00001cd5: SWAP3 00001cd6: MSTORE 00001cd7: PUSH1 0x01 00001cd9: PUSH1 0xa0 00001cdb: PUSH1 0x02 00001cdd: EXP 00001cde: SUB 00001cdf: DUP8 00001ce0: AND 00001ce1: PUSH1 0x24 00001ce3: DUP4 00001ce4: ADD 00001ce5: MSTORE 00001ce6: MLOAD 00001ce7: PUSH1 0x44 00001ce9: DUP1 00001cea: DUP4 00001ceb: ADD 00001cec: SWAP3 00001ced: PUSH1 0x20 00001cef: SWAP3 00001cf0: SWAP2 00001cf1: SWAP1 00001cf2: DUP3 00001cf3: SWAP1 00001cf4: SUB 00001cf5: ADD 00001cf6: DUP2 00001cf7: DUP6 00001cf8: DUP9 00001cf9: DUP1 00001cfa: EXTCODESIZE 00001cfb: ISZERO 00001cfc: DUP1 00001cfd: ISZERO 00001cfe: PUSH2 0x1d06 00001d01: JUMPI 00001d02: PUSH1 0x00 00001d04: DUP1 00001d05: REVERT 00001d06: JUMPDEST 00001d07: POP 00001d08: GAS 00001d09: CALL 00001d0a: ISZERO 00001d0b: DUP1 00001d0c: ISZERO 00001d0d: PUSH2 0x1d1a 00001d10: JUMPI 00001d11: RETURNDATASIZE 00001d12: PUSH1 0x00 00001d14: DUP1 00001d15: RETURNDATACOPY 00001d16: RETURNDATASIZE 00001d17: PUSH1 0x00 00001d19: REVERT 00001d1a: JUMPDEST 00001d1b: POP 00001d1c: POP 00001d1d: POP 00001d1e: POP 00001d1f: POP 00001d20: PUSH1 0x40 00001d22: MLOAD 00001d23: RETURNDATASIZE 00001d24: PUSH1 0x20 00001d26: DUP2 00001d27: LT 00001d28: ISZERO 00001d29: PUSH2 0x1d31 00001d2c: JUMPI 00001d2d: PUSH1 0x00 00001d2f: DUP1 00001d30: REVERT 00001d31: JUMPDEST 00001d32: POP 00001d33: MLOAD 00001d34: SWAP3 00001d35: SWAP2 00001d36: POP 00001d37: POP 00001d38: JUMP 00001d39: JUMPDEST 00001d3a: PUSH1 0x00 00001d3c: DUP1 00001d3d: PUSH2 0x1d64 00001d40: PUSH1 0x3c 00001d42: PUSH2 0x1d58 00001d45: DUP6 00001d46: PUSH1 0x01 00001d48: ADD 00001d49: SLOAD 00001d4a: TIMESTAMP 00001d4b: PUSH2 0x1dcd 00001d4e: SWAP1 00001d4f: SWAP2 00001d50: SWAP1 00001d51: PUSH4 0xffffffff 00001d56: AND 00001d57: JUMP 00001d58: JUMPDEST 00001d59: SWAP1 00001d5a: PUSH4 0xffffffff 00001d5f: PUSH2 0x1ddf 00001d62: AND 00001d63: JUMP 00001d64: JUMPDEST 00001d65: SWAP1 00001d66: POP 00001d67: PUSH2 0x126d 00001d6a: DUP4 00001d6b: PUSH1 0x00 00001d6d: ADD 00001d6e: SLOAD 00001d6f: DUP3 00001d70: PUSH2 0x1df4 00001d73: JUMP 00001d74: JUMPDEST 00001d75: PUSH1 0x00 00001d77: PUSH2 0x1d91 00001d7a: PUSH2 0x2710 00001d7d: PUSH2 0x1d58 00001d80: PUSH1 0x2b 00001d82: SLOAD 00001d83: DUP6 00001d84: PUSH2 0x1e9d 00001d87: SWAP1 00001d88: SWAP2 00001d89: SWAP1 00001d8a: PUSH4 0xffffffff 00001d8f: AND 00001d90: JUMP 00001d91: JUMPDEST 00001d92: SWAP3 00001d93: SWAP2 00001d94: POP 00001d95: POP 00001d96: JUMP 00001d97: JUMPDEST 00001d98: PUSH1 0x00 00001d9a: PUSH2 0x126d 00001d9d: PUSH2 0x2710 00001da0: PUSH2 0x1d58 00001da3: PUSH1 0x02 00001da5: PUSH1 0x00 00001da7: PUSH2 0x1daf 00001daa: DUP9 00001dab: PUSH2 0x1ec6 00001dae: JUMP 00001daf: JUMPDEST 00001db0: DUP2 00001db1: MSTORE 00001db2: PUSH1 0x20 00001db4: ADD 00001db5: SWAP1 00001db6: DUP2 00001db7: MSTORE 00001db8: PUSH1 0x20 00001dba: ADD 00001dbb: PUSH1 0x00 00001dbd: KECCAK256 00001dbe: SLOAD 00001dbf: DUP6 00001dc0: PUSH2 0x1e9d 00001dc3: SWAP1 00001dc4: SWAP2 00001dc5: SWAP1 00001dc6: PUSH4 0xffffffff 00001dcb: AND 00001dcc: JUMP 00001dcd: JUMPDEST 00001dce: PUSH1 0x00 00001dd0: DUP3 00001dd1: DUP3 00001dd2: GT 00001dd3: ISZERO 00001dd4: PUSH2 0x1dd9 00001dd7: JUMPI 00001dd8: INVALID 00001dd9: JUMPDEST 00001dda: POP 00001ddb: SWAP1 00001ddc: SUB 00001ddd: SWAP1 00001dde: JUMP 00001ddf: JUMPDEST 00001de0: PUSH1 0x00 00001de2: DUP2 00001de3: DUP4 00001de4: DUP2 00001de5: ISZERO 00001de6: ISZERO 00001de7: PUSH2 0x1dec 00001dea: JUMPI 00001deb: INVALID 00001dec: JUMPDEST 00001ded: DIV 00001dee: SWAP4 00001def: SWAP3 00001df0: POP 00001df1: POP 00001df2: POP 00001df3: JUMP 00001df4: JUMPDEST 00001df5: PUSH1 0x00 00001df7: DUP1 00001df8: DUP1 00001df9: PUSH3 0x020000 00001dfd: DUP5 00001dfe: DIV 00001dff: DUP2 00001e00: LT 00001e01: ISZERO 00001e02: PUSH2 0x1e0f 00001e05: JUMPI 00001e06: PUSH1 0x03 00001e08: SLOAD 00001e09: SWAP3 00001e0a: POP 00001e0b: PUSH2 0x1e95 00001e0e: JUMP 00001e0f: JUMPDEST 00001e10: POP 00001e11: DUP4 00001e12: SWAP1 00001e13: POP 00001e14: PUSH1 0x00 00001e16: JUMPDEST 00001e17: PUSH1 0x11 00001e19: DUP2 00001e1a: LT 00001e1b: ISZERO 00001e1c: PUSH2 0x1e7f 00001e1f: JUMPI 00001e20: PUSH1 0x00 00001e22: PUSH1 0x01 00001e24: PUSH1 0x02 00001e26: DUP4 00001e27: SWAP1 00001e28: EXP 00001e29: DUP7 00001e2a: DIV 00001e2b: AND 00001e2c: GT 00001e2d: ISZERO 00001e2e: PUSH2 0x1e77 00001e31: JUMPI 00001e32: PUSH2 0x1e74 00001e35: PUSH1 0x15 00001e37: DUP3 00001e38: PUSH1 0x11 00001e3a: DUP2 00001e3b: LT 00001e3c: PUSH2 0x1e41 00001e3f: JUMPI 00001e40: INVALID 00001e41: JUMPDEST 00001e42: ADD 00001e43: SLOAD 00001e44: PUSH1 0x0a 00001e46: EXP 00001e47: PUSH2 0x1d58 00001e4a: PUSH13 0x01000000000000000000000000 00001e58: DUP2 00001e59: PUSH1 0x04 00001e5b: DUP7 00001e5c: PUSH1 0x11 00001e5e: DUP2 00001e5f: LT 00001e60: PUSH2 0x1e65 00001e63: JUMPI 00001e64: INVALID 00001e65: JUMPDEST 00001e66: ADD 00001e67: SLOAD 00001e68: DUP8 00001e69: SWAP1 00001e6a: PUSH4 0xffffffff 00001e6f: PUSH2 0x1e9d 00001e72: AND 00001e73: JUMP 00001e74: JUMPDEST 00001e75: SWAP2 00001e76: POP 00001e77: JUMPDEST 00001e78: PUSH1 0x01 00001e7a: ADD 00001e7b: PUSH2 0x1e16 00001e7e: JUMP 00001e7f: JUMPDEST 00001e80: PUSH1 0x03 00001e82: SLOAD 00001e83: DUP3 00001e84: GT 00001e85: PUSH2 0x1e90 00001e88: JUMPI 00001e89: PUSH1 0x03 00001e8b: SLOAD 00001e8c: PUSH2 0x1e92 00001e8f: JUMP 00001e90: JUMPDEST 00001e91: DUP2 00001e92: JUMPDEST 00001e93: SWAP3 00001e94: POP 00001e95: JUMPDEST 00001e96: POP 00001e97: POP 00001e98: SWAP3 00001e99: SWAP2 00001e9a: POP 00001e9b: POP 00001e9c: JUMP 00001e9d: JUMPDEST 00001e9e: PUSH1 0x00 00001ea0: DUP3 00001ea1: ISZERO 00001ea2: ISZERO 00001ea3: PUSH2 0x1eae 00001ea6: JUMPI 00001ea7: POP 00001ea8: PUSH1 0x00 00001eaa: PUSH2 0x1d91 00001ead: JUMP 00001eae: JUMPDEST 00001eaf: POP 00001eb0: DUP2 00001eb1: DUP2 00001eb2: MUL 00001eb3: DUP2 00001eb4: DUP4 00001eb5: DUP3 00001eb6: DUP2 00001eb7: ISZERO 00001eb8: ISZERO 00001eb9: PUSH2 0x1ebe 00001ebc: JUMPI 00001ebd: INVALID 00001ebe: JUMPDEST 00001ebf: DIV 00001ec0: EQ 00001ec1: PUSH2 0x1d91 00001ec4: JUMPI 00001ec5: INVALID 00001ec6: JUMPDEST 00001ec7: PUSH1 0x01 00001ec9: SLOAD 00001eca: PUSH1 0x40 00001ecc: DUP1 00001ecd: MLOAD 00001ece: PUSH32 0x548c0ef400000000000000000000000000000000000000000000000000000000 00001eef: DUP2 00001ef0: MSTORE 00001ef1: PUSH1 0x01 00001ef3: PUSH1 0xa0 00001ef5: PUSH1 0x02 00001ef7: EXP 00001ef8: SUB 00001ef9: DUP5 00001efa: DUP2 00001efb: AND 00001efc: PUSH1 0x04 00001efe: DUP4 00001eff: ADD 00001f00: MSTORE 00001f01: SWAP2 00001f02: MLOAD 00001f03: PUSH1 0x00 00001f05: SWAP4 00001f06: SWAP3 00001f07: SWAP1 00001f08: SWAP3 00001f09: AND 00001f0a: SWAP2 00001f0b: PUSH4 0x548c0ef4 00001f10: SWAP2 00001f11: PUSH1 0x24 00001f13: DUP1 00001f14: DUP3 00001f15: ADD 00001f16: SWAP3 00001f17: PUSH1 0x20 00001f19: SWAP3 00001f1a: SWAP1 00001f1b: SWAP2 00001f1c: SWAP1 00001f1d: DUP3 00001f1e: SWAP1 00001f1f: SUB 00001f20: ADD 00001f21: DUP2 00001f22: DUP8 00001f23: DUP8 00001f24: DUP1 00001f25: EXTCODESIZE 00001f26: ISZERO 00001f27: DUP1 00001f28: ISZERO 00001f29: PUSH2 0x1f31 00001f2c: JUMPI 00001f2d: PUSH1 0x00 00001f2f: DUP1 00001f30: REVERT 00001f31: JUMPDEST 00001f32: POP 00001f33: GAS 00001f34: CALL 00001f35: ISZERO 00001f36: DUP1 00001f37: ISZERO 00001f38: PUSH2 0x1f45 00001f3b: JUMPI 00001f3c: RETURNDATASIZE 00001f3d: PUSH1 0x00 00001f3f: DUP1 00001f40: RETURNDATACOPY 00001f41: RETURNDATASIZE 00001f42: PUSH1 0x00 00001f44: REVERT 00001f45: JUMPDEST 00001f46: POP 00001f47: POP 00001f48: POP 00001f49: POP 00001f4a: PUSH1 0x40 00001f4c: MLOAD 00001f4d: RETURNDATASIZE 00001f4e: PUSH1 0x20 00001f50: DUP2 00001f51: LT 00001f52: ISZERO 00001f53: PUSH2 0x1d31 00001f56: JUMPI 00001f57: PUSH1 0x00 00001f59: DUP1 00001f5a: REVERT 00001f5b: STOP 00001f5c: GASLIMIT 00001f5d: PUSH8 0x672073616c65206d 00001f66: PUSH22 0x7374206265206f70656e656420616c72656164792e53 00001f7d: PUSH6 0x6e646572206d 00001f84: PUSH22 0x7374206265206f776e65722e00000000000000000000 00001f9b: STOP 00001f9c: LOG1 00001f9d: PUSH6 0x627a7a723058 00001fa4: KECCAK256 00001fa5: DUP6 00001fa6: LT 00001fa7: PUSH11 0x4fbef12d9dc86fdb4b2a56 00001fb3: UNKNOWN(0xB3) 00001fb4: UNKNOWN(0xBA) 00001fb5: PUSH9 0xaeac9261690300cef8 00001fbf: CALLCODE 00001fc0: MSIZE 00001fc1: UNKNOWN(0xCC) 00001fc2: BALANCE 00001fc3: SLT 00001fc4: DUP10 00001fc5: STOP 00001fc6: UNKNOWN(0x29)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xb67ee5381285321928ec7b1584b7eec786547afaeec2cd01e9fb7fbd298fff39
call_targets:
0xeba02cfc36c01acbe10f6bcb909b76749e54956a
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xb67ee5381285321928ec7b1584b7eec786547afaeec2cd01e9fb7fbd298fff39",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xeba02cfc36c01acbe10f6bcb909b76749e54956a"
],
"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": "0x0bfd3439",
"selector": "0x0bfd3439",
"calldata_variants": [
"0x0bfd3439",
"0x0bfd34390000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x17449224",
"selector": "0x17449224",
"calldata_variants": [
"0x17449224",
"0x174492240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x197f4ba0",
"selector": "0x197f4ba0",
"calldata_variants": [
"0x197f4ba0",
"0x197f4ba00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1bc84a94",
"selector": "0x1bc84a94",
"calldata_variants": [
"0x1bc84a94",
"0x1bc84a940000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1bff28cb",
"selector": "0x1bff28cb",
"calldata_variants": [
"0x1bff28cb",
"0x1bff28cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1e7bef65",
"selector": "0x1e7bef65",
"calldata_variants": [
"0x1e7bef65",
"0x1e7bef650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x203d4f20",
"selector": "0x203d4f20",
"calldata_variants": [
"0x203d4f20",
"0x203d4f200000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x28ec06aa",
"selector": "0x28ec06aa",
"calldata_variants": [
"0x28ec06aa",
"0x28ec06aa0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3308,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4406,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4841,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 11,
"guards_detected": [],
"untrusted_call_count": 11
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xb67ee5381285321928ec7b1584b7eec786547afaeec2cd01e9fb7fbd298fff39
call_targets:
0xeba02cfc36c01acbe10f6bcb909b76749e54956a
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xb67ee5381285321928ec7b1584b7eec786547afaeec2cd01e9fb7fbd298fff39",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xeba02cfc36c01acbe10f6bcb909b76749e54956a"
],
"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": "0x0bfd3439",
"selector": "0x0bfd3439",
"calldata_variants": [
"0x0bfd3439",
"0x0bfd34390000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x17449224",
"selector": "0x17449224",
"calldata_variants": [
"0x17449224",
"0x174492240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x197f4ba0",
"selector": "0x197f4ba0",
"calldata_variants": [
"0x197f4ba0",
"0x197f4ba00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1bc84a94",
"selector": "0x1bc84a94",
"calldata_variants": [
"0x1bc84a94",
"0x1bc84a940000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1bff28cb",
"selector": "0x1bff28cb",
"calldata_variants": [
"0x1bff28cb",
"0x1bff28cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1e7bef65",
"selector": "0x1e7bef65",
"calldata_variants": [
"0x1e7bef65",
"0x1e7bef650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x203d4f20",
"selector": "0x203d4f20",
"calldata_variants": [
"0x203d4f20",
"0x203d4f200000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x28ec06aa",
"selector": "0x28ec06aa",
"calldata_variants": [
"0x28ec06aa",
"0x28ec06aa0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3308,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4406,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4841,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 11,
"guards_detected": []
}
|
| medium | other | codex | Potentially user-influenced external CALLs with ETH value | 75 | no | — |
viewevidence_json{
"evidence": "detector_findings[0]/[1] report 11 CALL sites with computed target/value and no guards detected; callsites list shows CALL at pcs 3308, 4406, 4841, 5506, 5586, 5755, 7174, 7314, 7433, 7988. Validation trace notes constant_target=self but not confirmed, so exposure is uncertain.",
"locations": [
"pc:0xcec",
"pc:0x1136",
"pc:0x12e9",
"pc:0x1582",
"pc:0x15d2",
"pc:0x167b",
"pc:0x1c06",
"pc:0x1c92",
"pc:0x1d09",
"pc:0x1f34"
],
"recommendation": "Confirm which functions reach these CALL sites and enforce strict access control or target allowlists. If user input affects target/value, add validation and consider reentrancy protection around value-bearing calls. Ensure call success is checked and failures revert consistently.",
"exploit_scenario": "If any externally callable function allows a user to influence the call target and/or value (via calldata or mutable storage), an attacker could force the contract to call arbitrary contracts or transfer ETH, potentially triggering reentrancy or unintended fund movements. This is uncertain because a validation trace observed a constant target (self) for one path, but the bytecode analysis still classifies these callsites as computed-target/value with no detected guards."
}
|
| low | other | codex | CALLCODE present in unreachable tail code (if reachable, executes in caller storage) | 65 | no | — |
viewevidence_json{
"evidence": "Basic block at start_pc 8092 contains CALLCODE with computed target/value (callsites list: pc 8127). CFG has zero incoming edges to bb:8092, indicating likely unreachable code.",
"locations": [
"pc:0x1fbf"
],
"recommendation": "Verify the tail section is truly unreachable. If any path can reach it, remove the CALLCODE or replace with safer patterns under strict access control.",
"exploit_scenario": "If control flow could reach the CALLCODE at pc 8127, a computed target would execute in the caller\u2019s storage context, enabling arbitrary storage writes and fund theft. CFG shows no incoming edges to the CALLCODE block, suggesting it is likely unreachable metadata, but reachability is uncertain in bytecode-only analysis."
}
|
| 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": 9
}
|