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

Analysis Run

019c0eaa-46e2-714b-a04f-a45cdb834d69

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 30, 2026 11:29 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
42313 artifact.fetch complete 1 / 3 2 months ago
42314 proxy.resolve complete 1 / 3 2 months ago
42315 tool.cast_disasm complete 1 / 3 2 months ago
42316 analysis.bundle complete 1 / 3 2 months ago
42317 capability.graph complete 1 / 3 2 months ago
42318 detector.run complete 1 / 3 2 months ago
42319 validation.fork complete 1 / 3 2 months ago
42495 report.consolidate complete 1 / 6 2 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: no
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
External CALLs to computed targets (one with ETH value) are present without any detected reentrancy guard, creating a potential reentrancy/untrusted-call risk if state is updated after the call.
View stdout
{"no_findings":false,"summary":"External CALLs to computed targets (one with ETH value) are present without any detected reentrancy guard, creating a potential reentrancy/untrusted-call risk if state is updated after the call.","findings":[{"severity":"medium","category":"reentrancy","title":"External CALL with ETH value to computed target (reentrancy/untrusted-call risk)","exploit_scenario":"If a function forwards ETH to a user-supplied recipient and updates accounting after the external CALL, a malicious recipient contract could reenter (via fallback/receive) and invoke the same release/withdraw path multiple times before state is finalized. Bytecode-only analysis cannot confirm the exact state-update order; risk depends on surrounding logic.","recommendation":"Apply checks-effects-interactions: update any accounting/state before the external call, or use a pull-payment pattern. Add a reentrancy guard around the affected entrypoints. If only specific targets are intended, validate the recipient/token address before the call.","evidence":"CALL at pc 0x224f masks an address from the stack (PUSH1 0xa0; SHL; SUB; AND) and uses a computed value; callsite metadata shows target/value are computed. A second CALL at pc 0x2a87 uses full GAS with computed stack arguments. Detector flagged both as untrusted CALLs with possible ETH value; validation trace noted a constant target in one observed trace, so target variability is uncertain from bytecode alone.","locations":["pc:0x224f","pc:0x2a87"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-auyuxg94
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0fb7-6a93-7402-b0ed-93b846d2c3e4
--------
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-auyuxg94 succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-auyuxg94 succeeded in 10ms:
{
  "analysis_artifact": {
    "address": "0xeda4c4067bdd708bb75ac620e1e2215a747a1f39",
    "artifact_hash": "0xf6fc7f51ac5129ce2076470e9d74849d82267c83265672c1d0b90e7c7b98b2bc",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 12,
          "hash": "0x0b6eca42904daa282c46755cddac3ceb4b5fb559336310fd0951cd9ddd07694a",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATASIZE",
            "LT",
            "PUSH2",
exec
/bin/bash -lc 'rg -n "call:8783|call:10887" BYTECODE_BUNDLE.json' in /tmp/codex-auyuxg94 succeeded in 9ms:
35461:          "to": "call:8783",
35465:          "from": "call:8783",
35491:          "to": "call:10887",
35495:          "from": "call:10887",
40908:          "id": "call:8783",
40926:          "id": "call:10887",
exec
/bin/bash -lc "sed -n '35440,35520p' BYTECODE_BUNDLE.json" in /tmp/codex-auyuxg94 succeeded in 10ms:
          "from": "bb:5546",
          "to": "call:5549",
          "type": "contains"
        },
        {
          "from": "call:5549",
          "to": "sink:staticcall",
          "type": "capability"
        },
        {
          "from": "bb:5751",
          "to": "call:5754",
          "type": "contains"
        },
        {
          "from": "call:5754",
          "to": "sink:staticcall",
          "type": "capability"
        },
        {
exec
/bin/bash -lc 'rg -n "bb:8751|bb:10874" BYTECODE_BUNDLE.json' in /tmp/codex-auyuxg94 succeeded in 9ms:
16593:          "to": "bb:8751",
16607:          "from": "bb:8751",
16612:          "from": "bb:8751",
17057:          "from": "bb:10874",
17062:          "from": "bb:10874",
33666:          "to": "bb:8751",
33680:          "from": "bb:8751",
33685:          "from": "bb:8751",
34130:          "from": "bb:10874",
34135:          "from": "bb:10874",
35460:          "from": "bb:8751",
35490:          "from": "bb:10874",
38654:          "id": "bb:8751",
39221:          "id": "bb:10874",
exec
/bin/bash -lc "sed -n '38640,38720p' BYTECODE_BUNDLE.json" in /tmp/codex-auyuxg94 succeeded in 10ms:
          "id": "bb:8672",
          "start_pc": 8672,
          "type": "basic_block"
        },
        {
          "end_pc": 8750,
          "hash": "0x028cbd838e067a86b8c2b4d08ba6d05241416d51541141a7aa3a45a438da8be5",
          "id": "bb:8680",
          "start_pc": 8680,
          "type": "basic_block"
        },
        {
          "end_pc": 8795,
          "hash": "0xfe142d05918cf0e8b962dcc1b4d523cf37726060778c33250f110c4b436318c6",
          "id": "bb:8751",
          "start_pc": 8751,
          "type": "basic_block"
        },
        {
          "end_pc": 8804,
exec
/bin/bash -lc "python - <<'PY'
import json
import sys
from pathlib import Path
p=Path('BYTECODE_BUNDLE.json')
with p.open() as f:
    data=json.load(f)

# find basic block with start_pc 8751 and 10874 in analysis_artifact artifact_json basic_blocks
bbs = data['analysis_artifact']['artifact_json']['basic_blocks']
for sp in (8751,10874):
    blk = next((b for b in bbs if b.get('start_pc')==sp), None)
    print('block', sp, 'found', bool(blk))
    if blk:
        print('end_pc', blk['end_pc'])
        print('opcodes', blk['opcodes'])

PY" in /tmp/codex-auyuxg94 succeeded in 46ms:
block 8751 found True
end_pc 8795
opcodes ['JUMPDEST', 'PUSH1', 'MLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'OP_85', 'AND', 'OP_90', 'OP_82', 'ISZERO', 'PUSH2', 'MUL', 'OP_90', 'OP_83', 'OP_90', '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 10874 found True
end_pc 10901
opcodes ['JUMPDEST', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_87', 'GAS', 'CALL', 'OP_92', 'POP', 'POP', 'POP', 'RETURNDATASIZE', 'OP_80', 'PUSH1', 'OP_81', 'EQ', 'PUSH2', 'JUMPI']
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path

with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)

# edges in artifact_json maybe? find node edges in analysis_artifact artifact_json if there is 'edges'
artifact = data['analysis_artifact']['artifact_json']
# find edges
edges = artifact.get('edges', [])
# map containment edges from function to bb
contain = [e for e in edges if e.get('type')=='contains']
# create reverse map to function(s) containing bb
from_to = {}
for e in contain:
    from_to.setdefault(e['to'], []).append(e['from'])

for bb in ['bb:8751','bb:10874']:
    print(bb, 'contained by', from_to.get(bb))

# also check if there are function nodes in artifact_json? nodes with type function
fns = {n['id']:n for n in artifact.get('nodes', []) if n.get('type')=='function'}
print('function nodes count', len(fns))
# output selectors for functions containing these blocks
for bb in ['bb:8751','bb:10874']:
    fns_ids = from_to.get(bb, [])
    print('bb', bb, 'fns_ids', fns_ids)
    if fns_ids:
        for fid in fns_ids:
            fn = fns.get(fid)
            if fn:
                print(' ', fid, fn.get('selector'), fn.get('entry_pc'))

PY" in /tmp/codex-auyuxg94 succeeded in 39ms:
bb:8751 contained by None
bb:10874 contained by None
function nodes count 0
bb bb:8751 fns_ids []
bb bb:10874 fns_ids []
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
print(data.keys())
PY" in /tmp/codex-auyuxg94 succeeded in 42ms:
dict_keys(['analysis_artifact', 'analysis_run', 'artifact', 'capability_graph', 'detector_findings', 'heuristics_summary'])
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
cap = data['capability_graph']
print(cap.keys())
print('nodes', len(cap.get('nodes', [])), 'edges', len(cap.get('edges', [])))
# find functions nodes
fns=[n for n in cap['nodes'] if n.get('type')=='function']
print('function nodes', len(fns))
print('sample', fns[:5])
PY" in /tmp/codex-auyuxg94 exited 1 in 46ms:
dict_keys(['address', 'block_number', 'chain_id', 'codehash', 'created_at', 'graph_hash', 'graph_json', 'id', 'updated_at', 'version'])
nodes 0 edges 0
Traceback (most recent call last):
  File "<stdin>", line 8, in <module>
KeyError: 'nodes'
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
cap = data['capability_graph']['graph_json']
print(cap.keys())
print('nodes', len(cap.get('nodes', [])), 'edges', len(cap.get('edges', [])))
# find function nodes
fns=[n for n in cap['nodes'] if n.get('type')=='function']
print('function nodes', len(fns))
print('sample', fns[:5])
PY" in /tmp/codex-auyuxg94 succeeded in 36ms:
dict_keys(['edges', 'nodes', 'version'])
nodes 810 edges 884
function nodes 31
sample [{'entry_pc': 4190258143, 'id': 'fn:0xf9c243df', 'selector': '0xf9c243df', 'type': 'function'}, {'entry_pc': 4272867189, 'id': 'fn:0xfa7643f4', 'selector': '0xfa7643f4', 'type': 'function'}, {'entry_pc': 4293673438, 'id': 'fn:0xfeaec775', 'selector': '0xfeaec775', 'type': 'function'}, {'entry_pc': None, 'id': 'fn:0xffec41de', 'selector': '0xffec41de', 'type': 'function'}, {'entry_pc': 4099210651, 'id': 'fn:0xf2fde38b', 'selector': '0xf2fde38b', 'type': 'function'}]
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
cap = data['capability_graph']['graph_json']
edges = cap['edges']
contain = [e for e in edges if e.get('type')=='contains']
# build map to->from
from_to = {}
for e in contain:
    from_to.setdefault(e['to'], []).append(e['from'])

for bb in ['bb:8751','bb:10874']:
    print(bb, 'contained by', from_to.get(bb))

# map function nodes
def get_fn(fid):
    return next((n for n in cap['nodes'] if n.get('id')==fid), None)

for bb in ['bb:8751','bb:10874']:
    fns_ids = from_to.get(bb, [])
    print('bb', bb, 'fns', fns_ids)
    for fid in fns_ids or []:
        fn = get_fn(fid)
        if fn:
            print(' ', fid, fn.get('selector'), fn.get('entry_pc'))

PY" in /tmp/codex-auyuxg94 succeeded in 40ms:
bb:8751 contained by None
bb:10874 contained by None
bb bb:8751 fns []
bb bb:10874 fns []
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
cap = data['capability_graph']['graph_json']

edges = [e for e in cap['edges'] if e.get('from')=='bb:8751' or e.get('to')=='bb:8751']
print('edges for bb:8751', edges)

edges2 = [e for e in cap['edges'] if e.get('from')=='bb:10874' or e.get('to')=='bb:10874']
print('edges for bb:10874', edges2)

PY" in /tmp/codex-auyuxg94 succeeded in 41ms:
edges for bb:8751 [{'from': 'bb:8672', 'to': 'bb:8751', 'type': 'control_flow'}, {'from': 'bb:8751', 'to': 'bb:8805', 'type': 'control_flow'}, {'from': 'bb:8751', 'to': 'bb:8796', 'type': 'control_flow_fallthrough'}, {'from': 'bb:8751', 'to': 'call:8783', 'type': 'contains'}]
edges for bb:10874 [{'from': 'bb:10874', 'to': 'bb:10935', 'type': 'control_flow'}, {'from': 'bb:10874', 'to': 'bb:10902', 'type': 'control_flow_fallthrough'}, {'from': 'bb:10874', 'to': 'call:10887', 'type': 'contains'}]
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
cap = data['capability_graph']['graph_json']

# build map of which blocks are directly contained by functions (if any)
func_contains = [e for e in cap['edges'] if e.get('type')=='contains' and e['from'].startswith('fn:') and e['to'].startswith('bb:')]
print('function contains edges', len(func_contains))
print(func_contains[:5])
PY" in /tmp/codex-auyuxg94 succeeded in 47ms:
function contains edges 0
[]
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
artifact=data['analysis_artifact']['artifact_json']
print(artifact.keys())
PY" in /tmp/codex-auyuxg94 succeeded in 44ms:
dict_keys(['auth', 'basic_blocks', 'callsites', 'cfg_edges', 'cfg_hash', 'dispatcher_type', 'function_entries', 'functions', 'selectors', 'sinks', 'storage', 'version'])
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
callsites=data['analysis_artifact']['artifact_json']['callsites']
# find callsites with pc 8783, 10887
for pc in (8783,10887):
    cs = next((c for c in callsites if c.get('pc')==pc), None)
    print('pc', pc, 'callsite', cs)
PY" in /tmp/codex-auyuxg94 succeeded in 35ms:
pc 8783 callsite {'opcode': 'CALL', 'pc': 8783, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
pc 10887 callsite {'opcode': 'CALL', 'pc': 10887, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
storage=data['analysis_artifact']['artifact_json'].get('storage')
print(storage)
PY" in /tmp/codex-auyuxg94 succeeded in 38ms:
{'keccak_count': 38, 'reads': 107, 'slots': [{'op': 'SLOAD', 'pc': 681, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 797, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 870, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 1006, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 1071, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 1104, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 1216, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 1596, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 1693, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 1748, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 1821, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000100'}, {'op': 'SLOAD', 'pc': 2141, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2221, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2280, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SSTORE', 'pc': 2308, 'slot': '0x332aea18fc605b6be38db00074cd3c21a757c11fee654fd98c382a2e49ea2297'}, {'op': 'SLOAD', 'pc': 2313, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2971, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3003, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 3018, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 3146, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3613, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3616, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 3625, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3632, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 3759, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3841, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 4727, 'slot': '0x000000000000000000000000000000000000000000000000000000000000000a'}, {'op': 'SLOAD', 'pc': 4874, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 4947, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000100'}, {'op': 'SLOAD', 'pc': 5015, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5179, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 5949, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 6024, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 6060, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 6140, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 6199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 6227, 'slot': '0xa57582a20eb2f0c4265459d1d9ef9990b45fa7a768b2a47481ff82b5e0864d78'}, {'op': 'SLOAD', 'pc': 6232, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 6813, 'slot': '0x000000000000000000000000000000000000000000000000000000000000000a'}, {'op': 'SLOAD', 'pc': 6877, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 7408, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 7470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 7510, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7591, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7648, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7702, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000007'}, {'op': 'SLOAD', 'pc': 7799, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000007'}, {'op': 'SLOAD', 'pc': 7867, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7909, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 7936, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 8022, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 8114, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 8192, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 8216, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 8278, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SSTORE', 'pc': 8297, 'slot': '0x0d33af2381f036762445cec5d4a21f68c50c4236845f915b6e15419695c64367'}, {'op': 'SLOAD', 'pc': 8657, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 9329, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000007'}, {'op': 'SLOAD', 'pc': 9402, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000007'}, {'op': 'SLOAD', 'pc': 9443, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000007'}, {'op': 'SSTORE', 'pc': 9474, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 9485, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9497, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9595, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9607, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9621, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9651, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9695, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9788, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 10398, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 10402, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 10424, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 10499, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 10557, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 10616, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}], 'writes': 32}
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
print(data['artifact'].keys())
PY" in /tmp/codex-auyuxg94 succeeded in 44ms:
dict_keys(['codehash', 'compiler_json', 'implementation_address', 'is_proxy', 'runtime_bytecode', 'verified_source'])
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path

# EVM opcode mapping to immediates
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
# fill common
names = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
    0x20:'SHA3',
    0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
    opcodes[k]=v
# push, dup, swap, log
for i in range(1,33):
    opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
    opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
    opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
    opcodes[0xa0+i]=f'LOG{i}'

with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']
if bytecode.startswith('0x'):
    bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)

# disassemble function

def disasm(start, end):
    pc=0
    out=[]
    while pc < len(code):
        op=code[pc]
        if pc>=start and pc<=end:
            name=opcodes.get(op,f'OP_{op:02x}')
            if 0x60 <= op <= 0x7f: # PUSH1-32
                n = op-0x5f
                data_bytes = code[pc+1:pc+1+n]
                out.append((pc, name, '0x'+data_bytes.hex()))
                pc += 1+n
                continue
            else:
                out.append((pc, name, ''))
        # advance
        if 0x60 <= op <= 0x7f:
            pc += 1 + (op-0x5f)
        else:
            pc += 1
    return out

for (start,end) in [(8740,8820),(10860,10930)]:
    print('\\nRange', start, end)
    for pc,name,arg in disasm(start,end):
        if arg:
            print(f\"{pc:5d}: {name} {arg}\")
        else:
            print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 exited 1 in 55ms:
Traceback (most recent call last):
  File "<stdin>", line 31, in <module>
AttributeError: 'dict' object has no attribute 'startswith'
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
print(type(data['artifact']['runtime_bytecode']))
print(data['artifact']['runtime_bytecode'].keys())
PY" in /tmp/codex-auyuxg94 succeeded in 43ms:
<class 'dict'>
dict_keys(['full', 'head', 'length', 'tail', 'truncated'])
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path

# opcode mapping
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
# fill common
names = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
    0x20:'SHA3',
    0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
    opcodes[k]=v
for i in range(1,33):
    opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
    opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
    opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
    opcodes[0xa0+i]=f'LOG{i}'

with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
    bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)

# disassemble function

def disasm(start, end):
    pc=0
    out=[]
    while pc < len(code):
        op=code[pc]
        if pc>=start and pc<=end:
            name=opcodes.get(op,f'OP_{op:02x}')
            if 0x60 <= op <= 0x7f: # PUSH1-32
                n = op-0x5f
                data_bytes = code[pc+1:pc+1+n]
                out.append((pc, name, '0x'+data_bytes.hex()))
                pc += 1+n
                continue
            else:
                out.append((pc, name, ''))
        # advance
        if 0x60 <= op <= 0x7f:
            pc += 1 + (op-0x5f)
        else:
            pc += 1
    return out

for (start,end) in [(8740,8820),(10860,10930)]:
    print('\\nRange', start, end)
    for pc,name,arg in disasm(start,end):
        if arg:
            print(f\"{pc:5d}: {name} {arg}\")
        else:
            print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 57ms:

Range 8740 8820
 8741: DUP3
 8742: ADD
 8743: MSTORE
 8744: PUSH1 0x64
 8746: ADD
 8747: PUSH2 0x021d
 8750: JUMP
 8751: JUMPDEST
 8752: PUSH1 0x40
 8754: MLOAD
 8755: PUSH1 0x01
 8757: PUSH1 0x01
 8759: PUSH1 0xa0
 8761: SHL
 8762: SUB
 8763: DUP6
 8764: AND
 8765: SWAP1
exec
/bin/bash -lc "python - <<'PY'
import json
# disasm utility from previous
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
# names mapping
names = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
    0x20:'SHA3',
    0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
    opcodes[k]=v
for i in range(1,33):
    opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
    opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
    opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
    opcodes[0xa0+i]=f'LOG{i}'

with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
    bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)

# disassemble function

def disasm(start, end):
    pc=0
    out=[]
    while pc < len(code):
        op=code[pc]
        if pc>=start and pc<=end:
            name=opcodes.get(op,f'OP_{op:02x}')
            if 0x60 <= op <= 0x7f: # PUSH1-32
                n = op-0x5f
                data_bytes = code[pc+1:pc+1+n]
                out.append((pc, name, '0x'+data_bytes.hex()))
                pc += 1+n
                continue
            else:
                out.append((pc, name, ''))
        # advance
        if 0x60 <= op <= 0x7f:
            pc += 1 + (op-0x5f)
        else:
            pc += 1
    return out

start,end=10870,10990
print('Range', start, end)
for pc,name,arg in disasm(start,end):
    if arg:
        print(f\"{pc:5d}: {name} {arg}\")
    else:
        print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 37ms:
Range 10870 10990
10870: PUSH2 0x3034
10873: JUMP
10874: JUMPDEST
10875: PUSH1 0x00
10877: PUSH1 0x40
10879: MLOAD
10880: DUP1
10881: DUP4
10882: SUB
10883: DUP2
10884: DUP6
10885: DUP8
10886: GAS
10887: CALL
10888: SWAP3
10889: POP
10890: POP
10891: POP
10892: RETURNDATASIZE
exec
/bin/bash -lc "python - <<'PY'
import json
# disasm utility reused
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
# names mapping
names = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
    0x20:'SHA3',
    0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
    opcodes[k]=v
for i in range(1,33):
    opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
    opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
    opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
    opcodes[0xa0+i]=f'LOG{i}'

with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
    bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)

# disassemble function

def disasm(start, end):
    pc=0
    out=[]
    while pc < len(code):
        op=code[pc]
        if pc>=start and pc<=end:
            name=opcodes.get(op,f'OP_{op:02x}')
            if 0x60 <= op <= 0x7f: # PUSH1-32
                n = op-0x5f
                data_bytes = code[pc+1:pc+1+n]
                out.append((pc, name, '0x'+data_bytes.hex()))
                pc += 1+n
                continue
            else:
                out.append((pc, name, ''))
        # advance
        if 0x60 <= op <= 0x7f:
            pc += 1 + (op-0x5f)
        else:
            pc += 1
    return out

start,end=10930,11050
print('Range', start, end)
for pc,name,arg in disasm(start,end):
    if arg:
        print(f\"{pc:5d}: {name} {arg}\")
    else:
        print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 39ms:
Range 10930 11050
10930: RETURNDATACOPY
10931: PUSH2 0x2abc
10934: JUMP
10935: JUMPDEST
10936: PUSH1 0x60
10938: SWAP2
10939: POP
10940: JUMPDEST
10941: POP
10942: SWAP2
10943: POP
10944: SWAP2
10945: POP
10946: PUSH2 0x1d1e
10949: DUP3
10950: DUP3
10951: DUP7
10952: PUSH1 0x60
10954: DUP4
exec
/bin/bash -lc "python - <<'PY'
import json
# reuse disasm util
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
names = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
    0x20:'SHA3',
    0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
    opcodes[k]=v
for i in range(1,33):
    opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
    opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
    opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
    opcodes[0xa0+i]=f'LOG{i}'

with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
    bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)

# disassemble function

def disasm(start, end):
    pc=0
    out=[]
    while pc < len(code):
        op=code[pc]
        if pc>=start and pc<=end:
            name=opcodes.get(op,f'OP_{op:02x}')
            if 0x60 <= op <= 0x7f: # PUSH1-32
                n = op-0x5f
                data_bytes = code[pc+1:pc+1+n]
                out.append((pc, name, '0x'+data_bytes.hex()))
                pc += 1+n
                continue
            else:
                out.append((pc, name, ''))
        if 0x60 <= op <= 0x7f:
            pc += 1 + (op-0x5f)
        else:
            pc += 1
    return out

start,end=8680,8755
print('Range', start, end)
for pc,name,arg in disasm(start,end):
    if arg:
        print(f\"{pc:5d}: {name} {arg}\")
    else:
        print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 47ms:
Range 8680 8755
 8680: PUSH1 0x40
 8682: MLOAD
 8683: PUSH3 0x461bcd
 8687: PUSH1 0xe5
 8689: SHL
 8690: DUP2
 8691: MSTORE
 8692: PUSH1 0x20
 8694: PUSH1 0x04
 8696: DUP3
 8697: ADD
 8698: MSTORE
 8699: PUSH1 0x1c
 8701: PUSH1 0x24
 8703: DUP3
 8704: ADD
 8705: MSTORE
 8706: PUSH32 0x72656c656173652f696e73756666696369656e742d62616c616e636500000000
 8739: PUSH1 0x44
exec
/bin/bash -lc "python - <<'PY'
import json
# disasm util
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
names = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
    0x20:'SHA3',
    0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
    opcodes[k]=v
for i in range(1,33):
    opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
    opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
    opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
    opcodes[0xa0+i]=f'LOG{i}'

with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
    bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)

# disassemble function

def disasm(start, end):
    pc=0
    out=[]
    while pc < len(code):
        op=code[pc]
        if pc>=start and pc<=end:
            name=opcodes.get(op,f'OP_{op:02x}')
            if 0x60 <= op <= 0x7f: # PUSH1-32
                n = op-0x5f
                data_bytes = code[pc+1:pc+1+n]
                out.append((pc, name, '0x'+data_bytes.hex()))
                pc += 1+n
                continue
            else:
                out.append((pc, name, ''))
        if 0x60 <= op <= 0x7f:
            pc += 1 + (op-0x5f)
        else:
            pc += 1
    return out

start,end=8580,8795
print('Range', start, end)
for pc,name,arg in disasm(start,end):
    if arg:
        print(f\"{pc:5d}: {name} {arg}\")
    else:
        print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 38ms:
Range 8580 8795
 8580: PUSH2 0x218e
 8583: DUP6
 8584: PUSH1 0x0a
 8586: PUSH2 0x33c6
 8589: JUMP
 8590: JUMPDEST
 8591: PUSH2 0x27bb
 8594: JUMP
 8595: JUMPDEST
 8596: SWAP4
 8597: SWAP3
 8598: POP
 8599: POP
 8600: POP
 8601: JUMP
 8602: JUMPDEST
 8603: PUSH2 0x21c8
 8606: PUSH1 0x0c
 8608: DUP5
exec
/bin/bash -lc "python - <<'PY'
import json
# disasm util
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
# names mapping
names = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
    0x20:'SHA3',
    0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
    opcodes[k]=v
for i in range(1,33):
    opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
    opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
    opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
    opcodes[0xa0+i]=f'LOG{i}'

with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
    bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)

# disassemble function

def disasm(start, end):
    pc=0
    out=[]
    while pc < len(code):
        op=code[pc]
        if pc>=start and pc<=end:
            name=opcodes.get(op,f'OP_{op:02x}')
            if 0x60 <= op <= 0x7f: # PUSH1-32
                n = op-0x5f
                data_bytes = code[pc+1:pc+1+n]
                out.append((pc, name, '0x'+data_bytes.hex()))
                pc += 1+n
                continue
            else:
                out.append((pc, name, ''))
        if 0x60 <= op <= 0x7f:
            pc += 1 + (op-0x5f)
        else:
            pc += 1
    return out

start,end=8790,8905
print('Range', start, end)
for pc,name,arg in disasm(start,end):
    if arg:
        print(f\"{pc:5d}: {name} {arg}\")
    else:
        print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 55ms:
Range 8790 8905
 8790: DUP1
 8791: ISZERO
 8792: PUSH2 0x2265
 8795: JUMPI
 8796: RETURNDATASIZE
 8797: PUSH1 0x00
 8799: DUP1
 8800: RETURNDATACOPY
 8801: RETURNDATASIZE
 8802: PUSH1 0x00
 8804: REVERT
 8805: JUMPDEST
 8806: POP
 8807: PUSH2 0x2150
 8810: JUMP
 8811: JUMPDEST
 8812: PUSH1 0x00
 8814: PUSH1 0x0b
 8816: DUP5
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
print('is_proxy', data['artifact'].get('is_proxy'))
print('implementation', data['artifact'].get('implementation_address'))
PY" in /tmp/codex-auyuxg94 succeeded in 50ms:
is_proxy False
implementation None
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
bbs=data['analysis_artifact']['artifact_json']['basic_blocks']
blocks_with_caller=[]
for b in bbs:
    if 'CALLER' in b['opcodes']:
        blocks_with_caller.append((b['start_pc'], b['end_pc'], b['opcodes']))

print('blocks with CALLER', len(blocks_with_caller))
print('sample', blocks_with_caller[:5])

# check if any block has CALLER and EQ or LT/GT etc
cand=[]
for sp,ep,ops in blocks_with_caller:
    if 'EQ' in ops or 'ISZERO' in ops:
        cand.append((sp,ep,ops))
print('blocks with CALLER and EQ/ISZERO', len(cand))
print('sample', cand[:5])

PY" in /tmp/codex-auyuxg94 succeeded in 56ms:
blocks with CALLER 18
sample [(814, 834, ['JUMPDEST', 'POP', 'CALLER', 'PUSH1', 'OP_90', 'OP_81', 'MSTORE', 'PUSH1', 'PUSH1', 'MSTORE', 'PUSH1', 'OP_90', 'SHA3', 'SLOAD', 'PUSH1', 'AND']), (1064, 1084, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (1209, 1229, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (1686, 1706, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (2138, 2156, ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI'])]
blocks with CALLER and EQ/ISZERO 13
sample [(1064, 1084, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (1209, 1229, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (1686, 1706, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (2138, 2156, ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']), (2310, 2328, ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI'])]
codex
{"no_findings":false,"summary":"External CALLs to computed targets (one with ETH value) are present without any detected reentrancy guard, creating a potential reentrancy/untrusted-call risk if state is updated after the call.","findings":[{"severity":"medium","category":"reentrancy","title":"External CALL with ETH value to computed target (reentrancy/untrusted-call risk)","exploit_scenario":"If a function forwards ETH to a user-supplied recipient and updates accounting after the external CALL, a malicious recipient contract could reenter (via fallback/receive) and invoke the same release/withdraw path multiple times before state is finalized. Bytecode-only analysis cannot confirm the exact state-update order; risk depends on surrounding logic.","recommendation":"Apply checks-effects-interactions: update any accounting/state before the external call, or use a pull-payment pattern. Add a reentrancy guard around the affected entrypoints. If only specific targets are intended, validate the recipient/token address before the call.","evidence":"CALL at pc 0x224f masks an address from the stack (PUSH1 0xa0; SHL; SUB; AND) and uses a computed value; callsite metadata shows target/value are computed. A second CALL at pc 0x2a87 uses full GAS with computed stack arguments. Detector flagged both as untrusted CALLs with possible ETH value; validation trace noted a constant target in one observed trace, so target variability is uncertain from bytecode alone.","locations":["pc:0x224f","pc:0x2a87"]}]}
tokens used
76,866
Metadata
{
    "codex": {
        "ran_at": "2026-01-30T16:29:20.039739+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 27550,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "External CALLs to computed targets (one with ETH value) are present without any detected reentrancy guard, creating a potential reentrancy/untrusted-call risk if state is updated after the call.",
    "raw_final": {
        "summary": "External CALLs to computed targets (one with ETH value) are present without any detected reentrancy guard, creating a potential reentrancy/untrusted-call risk if state is updated after the call.",
        "findings": [
            {
                "title": "External CALL with ETH value to computed target (reentrancy/untrusted-call risk)",
                "category": "reentrancy",
                "evidence": "CALL at pc 0x224f masks an address from the stack (PUSH1 0xa0; SHL; SUB; AND) and uses a computed value; callsite metadata shows target/value are computed. A second CALL at pc 0x2a87 uses full GAS with computed stack arguments. Detector flagged both as untrusted CALLs with possible ETH value; validation trace noted a constant target in one observed trace, so target variability is uncertain from bytecode alone.",
                "severity": "medium",
                "locations": [
                    "pc:0x224f",
                    "pc:0x2a87"
                ],
                "recommendation": "Apply checks-effects-interactions: update any accounting/state before the external call, or use a pull-payment pattern. Add a reentrancy guard around the affected entrypoints. If only specific targets are intended, validate the recipient/token address before the call.",
                "exploit_scenario": "If a function forwards ETH to a user-supplied recipient and updates accounting after the external CALL, a malicious recipient contract could reenter (via fallback/receive) and invoke the same release/withdraw path multiple times before state is finalized. Bytecode-only analysis cannot confirm the exact state-update order; risk depends on surrounding logic."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
9
EXT*/BALANCE
9
Total opcodes
8553
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01dc
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0xa531494e
00000019: GT
0000001a: PUSH2 0x0102
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xf2fde38b
00000024: GT
00000025: PUSH2 0x0095
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xf9c243df
0000002f: GT
00000030: PUSH2 0x0064
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xf9c243df
0000003a: EQ
0000003b: PUSH2 0x064a
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xfa7643f4
00000045: EQ
00000046: PUSH2 0x066a
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xfeaec775
00000050: EQ
00000051: PUSH2 0x068a
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xffec41de
0000005b: EQ
0000005c: PUSH2 0x06ab
0000005f: JUMPI
00000060: PUSH2 0x0226
00000063: JUMP
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xf2fde38b
0000006b: EQ
0000006c: PUSH2 0x059f
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xf454fd9b
00000076: EQ
00000077: PUSH2 0x05bf
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xf62d1888
00000081: EQ
00000082: PUSH2 0x060c
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xf851a440
0000008c: EQ
0000008d: PUSH2 0x062c
00000090: JUMPI
00000091: PUSH2 0x0226
00000094: JUMP
00000095: JUMPDEST
00000096: DUP1
00000097: PUSH4 0xcab28a78
0000009c: GT
0000009d: PUSH2 0x00d1
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xcab28a78
000000a7: EQ
000000a8: PUSH2 0x04ee
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xd3c47427
000000b2: EQ
000000b3: PUSH2 0x050e
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xdcebec5c
000000bd: EQ
000000be: PUSH2 0x052e
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xed5c1c13
000000c8: EQ
000000c9: PUSH2 0x055e
000000cc: JUMPI
000000cd: PUSH2 0x0226
000000d0: JUMP
000000d1: JUMPDEST
000000d2: DUP1
000000d3: PUSH4 0xa531494e
000000d8: EQ
000000d9: PUSH2 0x045d
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0xb30df69e
000000e3: EQ
000000e4: PUSH2 0x047d
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0xb6db75a0
000000ee: EQ
000000ef: PUSH2 0x04ad
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0xb851f0ae
000000f9: EQ
000000fa: PUSH2 0x04ce
000000fd: JUMPI
000000fe: PUSH2 0x0226
00000101: JUMP
00000102: JUMPDEST
00000103: DUP1
00000104: PUSH4 0x5b2a8b4b
00000109: GT
0000010a: PUSH2 0x017a
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0x8da5cb5b
00000114: GT
00000115: PUSH2 0x0149
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x8da5cb5b
0000011f: EQ
00000120: PUSH2 0x03de
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x8f283970
0000012a: EQ
0000012b: PUSH2 0x03fc
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x8f32d59b
00000135: EQ
00000136: PUSH2 0x041c
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0x91e1f3e2
00000140: EQ
00000141: PUSH2 0x043d
00000144: JUMPI
00000145: PUSH2 0x0226
00000148: JUMP
00000149: JUMPDEST
0000014a: DUP1
0000014b: PUSH4 0x5b2a8b4b
00000150: EQ
00000151: PUSH2 0x0369
00000154: JUMPI
00000155: DUP1
00000156: PUSH4 0x79a0d001
0000015b: EQ
0000015c: PUSH2 0x0389
0000015f: JUMPI
00000160: DUP1
00000161: PUSH4 0x7fedad55
00000166: EQ
00000167: PUSH2 0x03a9
0000016a: JUMPI
0000016b: DUP1
0000016c: PUSH4 0x82b65ea4
00000171: EQ
00000172: PUSH2 0x03cb
00000175: JUMPI
00000176: PUSH2 0x0226
00000179: JUMP
0000017a: JUMPDEST
0000017b: DUP1
0000017c: PUSH4 0x15ce2faf
00000181: GT
00000182: PUSH2 0x01b6
00000185: JUMPI
00000186: DUP1
00000187: PUSH4 0x15ce2faf
0000018c: EQ
0000018d: PUSH2 0x02ed
00000190: JUMPI
00000191: DUP1
00000192: PUSH4 0x1c3e6ee6
00000197: EQ
00000198: PUSH2 0x030d
0000019b: JUMPI
0000019c: DUP1
0000019d: PUSH4 0x217e2466
000001a2: EQ
000001a3: PUSH2 0x0322
000001a6: JUMPI
000001a7: DUP1
000001a8: PUSH4 0x2772aed9
000001ad: EQ
000001ae: PUSH2 0x0353
000001b1: JUMPI
000001b2: PUSH2 0x0226
000001b5: JUMP
000001b6: JUMPDEST
000001b7: DUP1
000001b8: PUSH4 0x025abd58
000001bd: EQ
000001be: PUSH2 0x0266
000001c1: JUMPI
000001c2: DUP1
000001c3: PUSH4 0x041ae880
000001c8: EQ
000001c9: PUSH2 0x0299
000001cc: JUMPI
000001cd: DUP1
000001ce: PUSH4 0x11ea94d6
000001d3: EQ
000001d4: PUSH2 0x02cb
000001d7: JUMPI
000001d8: PUSH2 0x0226
000001db: JUMP
000001dc: JUMPDEST
000001dd: CALLDATASIZE
000001de: PUSH2 0x0226
000001e1: JUMPI
000001e2: PUSH1 0x40
000001e4: MLOAD
000001e5: PUSH3 0x461bcd
000001e9: PUSH1 0xe5
000001eb: SHL
000001ec: DUP2
000001ed: MSTORE
000001ee: PUSH1 0x20
000001f0: PUSH1 0x04
000001f2: DUP3
000001f3: ADD
000001f4: MSTORE
000001f5: PUSH1 0x15
000001f7: PUSH1 0x24
000001f9: DUP3
000001fa: ADD
000001fb: MSTORE
000001fc: PUSH21 0x10d0d0985cd94bd8d85b1b0b5b1bd8dad05cdcd95d
00000212: PUSH1 0x5a
00000214: SHL
00000215: PUSH1 0x44
00000217: DUP3
00000218: ADD
00000219: MSTORE
0000021a: PUSH1 0x64
0000021c: ADD
0000021d: JUMPDEST
0000021e: PUSH1 0x40
00000220: MLOAD
00000221: DUP1
00000222: SWAP2
00000223: SUB
00000224: SWAP1
00000225: REVERT
00000226: JUMPDEST
00000227: PUSH1 0x40
00000229: MLOAD
0000022a: PUSH3 0x461bcd
0000022e: PUSH1 0xe5
00000230: SHL
00000231: DUP2
00000232: MSTORE
00000233: PUSH1 0x20
00000235: PUSH1 0x04
00000237: DUP3
00000238: ADD
00000239: MSTORE
0000023a: PUSH1 0x15
0000023c: PUSH1 0x24
0000023e: DUP3
0000023f: ADD
00000240: MSTORE
00000241: PUSH21 0x10d0d0985cd94bd8d85b1b0b5b1bd8dad05cdcd95d
00000257: PUSH1 0x5a
00000259: SHL
0000025a: PUSH1 0x44
0000025c: DUP3
0000025d: ADD
0000025e: MSTORE
0000025f: PUSH1 0x64
00000261: ADD
00000262: PUSH2 0x021d
00000265: JUMP
00000266: JUMPDEST
00000267: CALLVALUE
00000268: DUP1
00000269: ISZERO
0000026a: PUSH2 0x0272
0000026d: JUMPI
0000026e: PUSH1 0x00
00000270: DUP1
00000271: REVERT
00000272: JUMPDEST
00000273: POP
00000274: PUSH2 0x0286
00000277: PUSH2 0x0281
0000027a: CALLDATASIZE
0000027b: PUSH1 0x04
0000027d: PUSH2 0x2dbe
00000280: JUMP
00000281: JUMPDEST
00000282: PUSH2 0x06cb
00000285: JUMP
00000286: JUMPDEST
00000287: PUSH1 0x40
00000289: MLOAD
0000028a: SWAP1
0000028b: DUP2
0000028c: MSTORE
0000028d: PUSH1 0x20
0000028f: ADD
00000290: JUMPDEST
00000291: PUSH1 0x40
00000293: MLOAD
00000294: DUP1
00000295: SWAP2
00000296: SUB
00000297: SWAP1
00000298: RETURN
00000299: JUMPDEST
0000029a: CALLVALUE
0000029b: DUP1
0000029c: ISZERO
0000029d: PUSH2 0x02a5
000002a0: JUMPI
000002a1: PUSH1 0x00
000002a3: DUP1
000002a4: REVERT
000002a5: JUMPDEST
000002a6: POP
000002a7: PUSH1 0x02
000002a9: SLOAD
000002aa: PUSH1 0x01
000002ac: PUSH1 0x01
000002ae: PUSH1 0xa0
000002b0: SHL
000002b1: SUB
000002b2: AND
000002b3: JUMPDEST
000002b4: PUSH1 0x40
000002b6: MLOAD
000002b7: PUSH1 0x01
000002b9: PUSH1 0x01
000002bb: PUSH1 0xa0
000002bd: SHL
000002be: SUB
000002bf: SWAP1
000002c0: SWAP2
000002c1: AND
000002c2: DUP2
000002c3: MSTORE
000002c4: PUSH1 0x20
000002c6: ADD
000002c7: PUSH2 0x0290
000002ca: JUMP
000002cb: JUMPDEST
000002cc: CALLVALUE
000002cd: DUP1
000002ce: ISZERO
000002cf: PUSH2 0x02d7
000002d2: JUMPI
000002d3: PUSH1 0x00
000002d5: DUP1
000002d6: REVERT
000002d7: JUMPDEST
000002d8: POP
000002d9: PUSH2 0x02eb
000002dc: PUSH2 0x02e6
000002df: CALLDATASIZE
000002e0: PUSH1 0x04
000002e2: PUSH2 0x2c37
000002e5: JUMP
000002e6: JUMPDEST
000002e7: PUSH2 0x085a
000002ea: JUMP
000002eb: JUMPDEST
000002ec: STOP
000002ed: JUMPDEST
000002ee: CALLVALUE
000002ef: DUP1
000002f0: ISZERO
000002f1: PUSH2 0x02f9
000002f4: JUMPI
000002f5: PUSH1 0x00
000002f7: DUP1
000002f8: REVERT
000002f9: JUMPDEST
000002fa: POP
000002fb: PUSH2 0x02eb
000002fe: PUSH2 0x0308
00000301: CALLDATASIZE
00000302: PUSH1 0x04
00000304: PUSH2 0x2ca8
00000307: JUMP
00000308: JUMPDEST
00000309: PUSH2 0x0906
0000030c: JUMP
0000030d: JUMPDEST
0000030e: CALLVALUE
0000030f: DUP1
00000310: ISZERO
00000311: PUSH2 0x0319
00000314: JUMPI
00000315: PUSH1 0x00
00000317: DUP1
00000318: REVERT
00000319: JUMPDEST
0000031a: POP
0000031b: PUSH1 0x06
0000031d: SLOAD
0000031e: PUSH2 0x0286
00000321: JUMP
00000322: JUMPDEST
00000323: CALLVALUE
00000324: DUP1
00000325: ISZERO
00000326: PUSH2 0x032e
00000329: JUMPI
0000032a: PUSH1 0x00
0000032c: DUP1
0000032d: REVERT
0000032e: JUMPDEST
0000032f: POP
00000330: CALLER
00000331: PUSH1 0x00
00000333: SWAP1
00000334: DUP2
00000335: MSTORE
00000336: PUSH1 0x03
00000338: PUSH1 0x20
0000033a: MSTORE
0000033b: PUSH1 0x40
0000033d: SWAP1
0000033e: KECCAK256
0000033f: SLOAD
00000340: PUSH1 0xff
00000342: AND
00000343: JUMPDEST
00000344: PUSH1 0x40
00000346: MLOAD
00000347: SWAP1
00000348: ISZERO
00000349: ISZERO
0000034a: DUP2
0000034b: MSTORE
0000034c: PUSH1 0x20
0000034e: ADD
0000034f: PUSH2 0x0290
00000352: JUMP
00000353: JUMPDEST
00000354: CALLVALUE
00000355: DUP1
00000356: ISZERO
00000357: PUSH2 0x035f
0000035a: JUMPI
0000035b: PUSH1 0x00
0000035d: DUP1
0000035e: REVERT
0000035f: JUMPDEST
00000360: POP
00000361: PUSH2 0x0286
00000364: PUSH1 0x05
00000366: SLOAD
00000367: DUP2
00000368: JUMP
00000369: JUMPDEST
0000036a: CALLVALUE
0000036b: DUP1
0000036c: ISZERO
0000036d: PUSH2 0x0375
00000370: JUMPI
00000371: PUSH1 0x00
00000373: DUP1
00000374: REVERT
00000375: JUMPDEST
00000376: POP
00000377: PUSH2 0x02eb
0000037a: PUSH2 0x0384
0000037d: CALLDATASIZE
0000037e: PUSH1 0x04
00000380: PUSH2 0x2ca8
00000383: JUMP
00000384: JUMPDEST
00000385: PUSH2 0x0c47
00000388: JUMP
00000389: JUMPDEST
0000038a: CALLVALUE
0000038b: DUP1
0000038c: ISZERO
0000038d: PUSH2 0x0395
00000390: JUMPI
00000391: PUSH1 0x00
00000393: DUP1
00000394: REVERT
00000395: JUMPDEST
00000396: POP
00000397: PUSH2 0x02eb
0000039a: PUSH2 0x03a4
0000039d: CALLDATASIZE
0000039e: PUSH1 0x04
000003a0: PUSH2 0x2df1
000003a3: JUMP
000003a4: JUMPDEST
000003a5: PUSH2 0x0eac
000003a8: JUMP
000003a9: JUMPDEST
000003aa: CALLVALUE
000003ab: DUP1
000003ac: ISZERO
000003ad: PUSH2 0x03b5
000003b0: JUMPI
000003b1: PUSH1 0x00
000003b3: DUP1
000003b4: REVERT
000003b5: JUMPDEST
000003b6: POP
000003b7: PUSH2 0x03be
000003ba: PUSH2 0x1306
000003bd: JUMP
000003be: JUMPDEST
000003bf: PUSH1 0x40
000003c1: MLOAD
000003c2: PUSH2 0x0290
000003c5: SWAP2
000003c6: SWAP1
000003c7: PUSH2 0x3194
000003ca: JUMP
000003cb: JUMPDEST
000003cc: PUSH2 0x02eb
000003cf: PUSH2 0x03d9
000003d2: CALLDATASIZE
000003d3: PUSH1 0x04
000003d5: PUSH2 0x2c51
000003d8: JUMP
000003d9: JUMPDEST
000003da: PUSH2 0x1394
000003dd: JUMP
000003de: JUMPDEST
000003df: CALLVALUE
000003e0: DUP1
000003e1: ISZERO
000003e2: PUSH2 0x03ea
000003e5: JUMPI
000003e6: PUSH1 0x00
000003e8: DUP1
000003e9: REVERT
000003ea: JUMPDEST
000003eb: POP
000003ec: PUSH1 0x00
000003ee: SLOAD
000003ef: PUSH1 0x01
000003f1: PUSH1 0x01
000003f3: PUSH1 0xa0
000003f5: SHL
000003f6: SUB
000003f7: AND
000003f8: PUSH2 0x02b3
000003fb: JUMP
000003fc: JUMPDEST
000003fd: CALLVALUE
000003fe: DUP1
000003ff: ISZERO
00000400: PUSH2 0x0408
00000403: JUMPI
00000404: PUSH1 0x00
00000406: DUP1
00000407: REVERT
00000408: JUMPDEST
00000409: POP
0000040a: PUSH2 0x02eb
0000040d: PUSH2 0x0417
00000410: CALLDATASIZE
00000411: PUSH1 0x04
00000413: PUSH2 0x2c37
00000416: JUMP
00000417: JUMPDEST
00000418: PUSH2 0x17a9
0000041b: JUMP
0000041c: JUMPDEST
0000041d: CALLVALUE
0000041e: DUP1
0000041f: ISZERO
00000420: PUSH2 0x0428
00000423: JUMPI
00000424: PUSH1 0x00
00000426: DUP1
00000427: REVERT
00000428: JUMPDEST
00000429: POP
0000042a: PUSH2 0x0343
0000042d: PUSH1 0x00
0000042f: SLOAD
00000430: PUSH1 0x01
00000432: PUSH1 0x01
00000434: PUSH1 0xa0
00000436: SHL
00000437: SUB
00000438: AND
00000439: CALLER
0000043a: EQ
0000043b: SWAP1
0000043c: JUMP
0000043d: JUMPDEST
0000043e: CALLVALUE
0000043f: DUP1
00000440: ISZERO
00000441: PUSH2 0x0449
00000444: JUMPI
00000445: PUSH1 0x00
00000447: DUP1
00000448: REVERT
00000449: JUMPDEST
0000044a: POP
0000044b: PUSH2 0x0343
0000044e: PUSH1 0x02
00000450: SLOAD
00000451: PUSH1 0x01
00000453: PUSH1 0xa0
00000455: SHL
00000456: SWAP1
00000457: DIV
00000458: PUSH1 0xff
0000045a: AND
0000045b: SWAP1
0000045c: JUMP
0000045d: JUMPDEST
0000045e: CALLVALUE
0000045f: DUP1
00000460: ISZERO
00000461: PUSH2 0x0469
00000464: JUMPI
00000465: PUSH1 0x00
00000467: DUP1
00000468: REVERT
00000469: JUMPDEST
0000046a: POP
0000046b: PUSH2 0x02eb
0000046e: PUSH2 0x0478
00000471: CALLDATASIZE
00000472: PUSH1 0x04
00000474: PUSH2 0x2f2c
00000477: JUMP
00000478: JUMPDEST
00000479: PUSH2 0x1855
0000047c: JUMP
0000047d: JUMPDEST
0000047e: CALLVALUE
0000047f: DUP1
00000480: ISZERO
00000481: PUSH2 0x0489
00000484: JUMPI
00000485: PUSH1 0x00
00000487: DUP1
00000488: REVERT
00000489: JUMPDEST
0000048a: POP
0000048b: PUSH2 0x0343
0000048e: PUSH2 0x0498
00000491: CALLDATASIZE
00000492: PUSH1 0x04
00000494: PUSH2 0x2fcc
00000497: JUMP
00000498: JUMPDEST
00000499: PUSH1 0x08
0000049b: PUSH1 0x20
0000049d: MSTORE
0000049e: PUSH1 0x00
000004a0: SWAP1
000004a1: DUP2
000004a2: MSTORE
000004a3: PUSH1 0x40
000004a5: SWAP1
000004a6: KECCAK256
000004a7: SLOAD
000004a8: PUSH1 0xff
000004aa: AND
000004ab: DUP2
000004ac: JUMP
000004ad: JUMPDEST
000004ae: CALLVALUE
000004af: DUP1
000004b0: ISZERO
000004b1: PUSH2 0x04b9
000004b4: JUMPI
000004b5: PUSH1 0x00
000004b7: DUP1
000004b8: REVERT
000004b9: JUMPDEST
000004ba: POP
000004bb: PUSH2 0x0343
000004be: PUSH1 0x01
000004c0: SLOAD
000004c1: PUSH1 0x01
000004c3: PUSH1 0x01
000004c5: PUSH1 0xa0
000004c7: SHL
000004c8: SUB
000004c9: AND
000004ca: CALLER
000004cb: EQ
000004cc: SWAP1
000004cd: JUMP
000004ce: JUMPDEST
000004cf: CALLVALUE
000004d0: DUP1
000004d1: ISZERO
000004d2: PUSH2 0x04da
000004d5: JUMPI
000004d6: PUSH1 0x00
000004d8: DUP1
000004d9: REVERT
000004da: JUMPDEST
000004db: POP
000004dc: PUSH2 0x03be
000004df: PUSH2 0x04e9
000004e2: CALLDATASIZE
000004e3: PUSH1 0x04
000004e5: PUSH2 0x2fcc
000004e8: JUMP
000004e9: JUMPDEST
000004ea: PUSH2 0x1a98
000004ed: JUMP
000004ee: JUMPDEST
000004ef: CALLVALUE
000004f0: DUP1
000004f1: ISZERO
000004f2: PUSH2 0x04fa
000004f5: JUMPI
000004f6: PUSH1 0x00
000004f8: DUP1
000004f9: REVERT
000004fa: JUMPDEST
000004fb: POP
000004fc: PUSH2 0x0343
000004ff: PUSH2 0x0509
00000502: CALLDATASIZE
00000503: PUSH1 0x04
00000505: PUSH2 0x2d1f
00000508: JUMP
00000509: JUMPDEST
0000050a: PUSH2 0x1ac3
0000050d: JUMP
0000050e: JUMPDEST
0000050f: CALLVALUE
00000510: DUP1
00000511: ISZERO
00000512: PUSH2 0x051a
00000515: JUMPI
00000516: PUSH1 0x00
00000518: DUP1
00000519: REVERT
0000051a: JUMPDEST
0000051b: POP
0000051c: PUSH2 0x02b3
0000051f: PUSH2 0x0529
00000522: CALLDATASIZE
00000523: PUSH1 0x04
00000525: PUSH2 0x2fcc
00000528: JUMP
00000529: JUMPDEST
0000052a: PUSH2 0x1d29
0000052d: JUMP
0000052e: JUMPDEST
0000052f: CALLVALUE
00000530: DUP1
00000531: ISZERO
00000532: PUSH2 0x053a
00000535: JUMPI
00000536: PUSH1 0x00
00000538: DUP1
00000539: REVERT
0000053a: JUMPDEST
0000053b: POP
0000053c: PUSH2 0x0343
0000053f: PUSH2 0x0549
00000542: CALLDATASIZE
00000543: PUSH1 0x04
00000545: PUSH2 0x2c37
00000548: JUMP
00000549: JUMPDEST
0000054a: PUSH1 0x03
0000054c: PUSH1 0x20
0000054e: MSTORE
0000054f: PUSH1 0x00
00000551: SWAP1
00000552: DUP2
00000553: MSTORE
00000554: PUSH1 0x40
00000556: SWAP1
00000557: KECCAK256
00000558: SLOAD
00000559: PUSH1 0xff
0000055b: AND
0000055c: DUP2
0000055d: JUMP
0000055e: JUMPDEST
0000055f: CALLVALUE
00000560: DUP1
00000561: ISZERO
00000562: PUSH2 0x056a
00000565: JUMPI
00000566: PUSH1 0x00
00000568: DUP1
00000569: REVERT
0000056a: JUMPDEST
0000056b: POP
0000056c: PUSH2 0x02b3
0000056f: PUSH2 0x0579
00000572: CALLDATASIZE
00000573: PUSH1 0x04
00000575: PUSH2 0x2e42
00000578: JUMP
00000579: JUMPDEST
0000057a: DUP1
0000057b: MLOAD
0000057c: PUSH1 0x20
0000057e: DUP2
0000057f: DUP4
00000580: ADD
00000581: DUP2
00000582: ADD
00000583: DUP1
00000584: MLOAD
00000585: PUSH1 0x0b
00000587: DUP3
00000588: MSTORE
00000589: SWAP3
0000058a: DUP3
0000058b: ADD
0000058c: SWAP2
0000058d: SWAP1
0000058e: SWAP4
0000058f: ADD
00000590: KECCAK256
00000591: SWAP2
00000592: MSTORE
00000593: SLOAD
00000594: PUSH1 0x01
00000596: PUSH1 0x01
00000598: PUSH1 0xa0
0000059a: SHL
0000059b: SUB
0000059c: AND
0000059d: DUP2
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 0x02eb
000005b0: PUSH2 0x05ba
000005b3: CALLDATASIZE
000005b4: PUSH1 0x04
000005b6: PUSH2 0x2c37
000005b9: JUMP
000005ba: JUMPDEST
000005bb: PUSH2 0x1d53
000005be: JUMP
000005bf: JUMPDEST
000005c0: CALLVALUE
000005c1: DUP1
000005c2: ISZERO
000005c3: PUSH2 0x05cb
000005c6: JUMPI
000005c7: PUSH1 0x00
000005c9: DUP1
000005ca: REVERT
000005cb: JUMPDEST
000005cc: POP
000005cd: PUSH2 0x05fa
000005d0: PUSH2 0x05da
000005d3: CALLDATASIZE
000005d4: PUSH1 0x04
000005d6: PUSH2 0x2e42
000005d9: JUMP
000005da: JUMPDEST
000005db: DUP1
000005dc: MLOAD
000005dd: PUSH1 0x20
000005df: DUP2
000005e0: DUP4
000005e1: ADD
000005e2: DUP2
000005e3: ADD
000005e4: DUP1
000005e5: MLOAD
000005e6: PUSH1 0x0c
000005e8: DUP3
000005e9: MSTORE
000005ea: SWAP3
000005eb: DUP3
000005ec: ADD
000005ed: SWAP2
000005ee: SWAP1
000005ef: SWAP4
000005f0: ADD
000005f1: KECCAK256
000005f2: SWAP2
000005f3: MSTORE
000005f4: SLOAD
000005f5: PUSH1 0xff
000005f7: AND
000005f8: DUP2
000005f9: JUMP
000005fa: JUMPDEST
000005fb: PUSH1 0x40
000005fd: MLOAD
000005fe: PUSH1 0xff
00000600: SWAP1
00000601: SWAP2
00000602: AND
00000603: DUP2
00000604: MSTORE
00000605: PUSH1 0x20
00000607: ADD
00000608: PUSH2 0x0290
0000060b: JUMP
0000060c: JUMPDEST
0000060d: CALLVALUE
0000060e: DUP1
0000060f: ISZERO
00000610: PUSH2 0x0618
00000613: JUMPI
00000614: PUSH1 0x00
00000616: DUP1
00000617: REVERT
00000618: JUMPDEST
00000619: POP
0000061a: PUSH2 0x02eb
0000061d: PUSH2 0x0627
00000620: CALLDATASIZE
00000621: PUSH1 0x04
00000623: PUSH2 0x2dbe
00000626: JUMP
00000627: JUMPDEST
00000628: PUSH2 0x1dfe
0000062b: JUMP
0000062c: JUMPDEST
0000062d: CALLVALUE
0000062e: DUP1
0000062f: ISZERO
00000630: PUSH2 0x0638
00000633: JUMPI
00000634: PUSH1 0x00
00000636: DUP1
00000637: REVERT
00000638: JUMPDEST
00000639: POP
0000063a: PUSH1 0x01
0000063c: SLOAD
0000063d: PUSH1 0x01
0000063f: PUSH1 0x01
00000641: PUSH1 0xa0
00000643: SHL
00000644: SUB
00000645: AND
00000646: PUSH2 0x02b3
00000649: JUMP
0000064a: JUMPDEST
0000064b: CALLVALUE
0000064c: DUP1
0000064d: ISZERO
0000064e: PUSH2 0x0656
00000651: JUMPI
00000652: PUSH1 0x00
00000654: DUP1
00000655: REVERT
00000656: JUMPDEST
00000657: POP
00000658: PUSH2 0x02eb
0000065b: PUSH2 0x0665
0000065e: CALLDATASIZE
0000065f: PUSH1 0x04
00000661: PUSH2 0x2ffc
00000664: JUMP
00000665: JUMPDEST
00000666: PUSH2 0x1eb8
00000669: JUMP
0000066a: JUMPDEST
0000066b: CALLVALUE
0000066c: DUP1
0000066d: ISZERO
0000066e: PUSH2 0x0676
00000671: JUMPI
00000672: PUSH1 0x00
00000674: DUP1
00000675: REVERT
00000676: JUMPDEST
00000677: POP
00000678: PUSH2 0x0343
0000067b: PUSH2 0x0685
0000067e: CALLDATASIZE
0000067f: PUSH1 0x04
00000681: PUSH2 0x2c37
00000684: JUMP
00000685: JUMPDEST
00000686: PUSH2 0x1f8d
00000689: JUMP
0000068a: JUMPDEST
0000068b: CALLVALUE
0000068c: DUP1
0000068d: ISZERO
0000068e: PUSH2 0x0696
00000691: JUMPI
00000692: PUSH1 0x00
00000694: DUP1
00000695: REVERT
00000696: JUMPDEST
00000697: POP
00000698: PUSH2 0x0343
0000069b: PUSH1 0x02
0000069d: SLOAD
0000069e: PUSH1 0x01
000006a0: PUSH1 0x01
000006a2: PUSH1 0xa0
000006a4: SHL
000006a5: SUB
000006a6: AND
000006a7: CALLER
000006a8: EQ
000006a9: SWAP1
000006aa: JUMP
000006ab: JUMPDEST
000006ac: CALLVALUE
000006ad: DUP1
000006ae: ISZERO
000006af: PUSH2 0x06b7
000006b2: JUMPI
000006b3: PUSH1 0x00
000006b5: DUP1
000006b6: REVERT
000006b7: JUMPDEST
000006b8: POP
000006b9: PUSH2 0x02eb
000006bc: PUSH2 0x06c6
000006bf: CALLDATASIZE
000006c0: PUSH1 0x04
000006c2: PUSH2 0x2ce7
000006c5: JUMP
000006c6: JUMPDEST
000006c7: PUSH2 0x1faf
000006ca: JUMP
000006cb: JUMPDEST
000006cc: PUSH1 0x00
000006ce: PUSH2 0x0797
000006d1: PUSH1 0x09
000006d3: DUP1
000006d4: SLOAD
000006d5: PUSH2 0x06dd
000006d8: SWAP1
000006d9: PUSH2 0x34f9
000006dc: JUMP
000006dd: JUMPDEST
000006de: DUP1
000006df: PUSH1 0x1f
000006e1: ADD
000006e2: PUSH1 0x20
000006e4: DUP1
000006e5: SWAP2
000006e6: DIV
000006e7: MUL
000006e8: PUSH1 0x20
000006ea: ADD
000006eb: PUSH1 0x40
000006ed: MLOAD
000006ee: SWAP1
000006ef: DUP2
000006f0: ADD
000006f1: PUSH1 0x40
000006f3: MSTORE
000006f4: DUP1
000006f5: SWAP3
000006f6: SWAP2
000006f7: SWAP1
000006f8: DUP2
000006f9: DUP2
000006fa: MSTORE
000006fb: PUSH1 0x20
000006fd: ADD
000006fe: DUP3
000006ff: DUP1
00000700: SLOAD
00000701: PUSH2 0x0709
00000704: SWAP1
00000705: PUSH2 0x34f9
00000708: JUMP
00000709: JUMPDEST
0000070a: DUP1
0000070b: ISZERO
0000070c: PUSH2 0x0756
0000070f: JUMPI
00000710: DUP1
00000711: PUSH1 0x1f
00000713: LT
00000714: PUSH2 0x072b
00000717: JUMPI
00000718: PUSH2 0x0100
0000071b: DUP1
0000071c: DUP4
0000071d: SLOAD
0000071e: DIV
0000071f: MUL
00000720: DUP4
00000721: MSTORE
00000722: SWAP2
00000723: PUSH1 0x20
00000725: ADD
00000726: SWAP2
00000727: PUSH2 0x0756
0000072a: JUMP
0000072b: JUMPDEST
0000072c: DUP3
0000072d: ADD
0000072e: SWAP2
0000072f: SWAP1
00000730: PUSH1 0x00
00000732: MSTORE
00000733: PUSH1 0x20
00000735: PUSH1 0x00
00000737: KECCAK256
00000738: SWAP1
00000739: JUMPDEST
0000073a: DUP2
0000073b: SLOAD
0000073c: DUP2
0000073d: MSTORE
0000073e: SWAP1
0000073f: PUSH1 0x01
00000741: ADD
00000742: SWAP1
00000743: PUSH1 0x20
00000745: ADD
00000746: DUP1
00000747: DUP4
00000748: GT
00000749: PUSH2 0x0739
0000074c: JUMPI
0000074d: DUP3
0000074e: SWAP1
0000074f: SUB
00000750: PUSH1 0x1f
00000752: AND
00000753: DUP3
00000754: ADD
00000755: SWAP2
00000756: JUMPDEST
00000757: POP
00000758: POP
00000759: POP
0000075a: POP
0000075b: POP
0000075c: DUP5
0000075d: DUP5
0000075e: DUP1
0000075f: DUP1
00000760: PUSH1 0x1f
00000762: ADD
00000763: PUSH1 0x20
00000765: DUP1
00000766: SWAP2
00000767: DIV
00000768: MUL
00000769: PUSH1 0x20
0000076b: ADD
0000076c: PUSH1 0x40
0000076e: MLOAD
0000076f: SWAP1
00000770: DUP2
00000771: ADD
00000772: PUSH1 0x40
00000774: MSTORE
00000775: DUP1
00000776: SWAP4
00000777: SWAP3
00000778: SWAP2
00000779: SWAP1
0000077a: DUP2
0000077b: DUP2
0000077c: MSTORE
0000077d: PUSH1 0x20
0000077f: ADD
00000780: DUP4
00000781: DUP4
00000782: DUP1
00000783: DUP3
00000784: DUP5
00000785: CALLDATACOPY
00000786: PUSH1 0x00
00000788: SWAP3
00000789: ADD
0000078a: SWAP2
0000078b: SWAP1
0000078c: SWAP2
0000078d: MSTORE
0000078e: POP
0000078f: PUSH2 0x206d
00000792: SWAP3
00000793: POP
00000794: POP
00000795: POP
00000796: JUMP
00000797: JUMPDEST
00000798: ISZERO
00000799: PUSH2 0x07a3
0000079c: JUMPI
0000079d: POP
0000079e: SELFBALANCE
0000079f: PUSH2 0x0854
000007a2: JUMP
000007a3: JUMPDEST
000007a4: PUSH1 0x00
000007a6: PUSH1 0x0b
000007a8: DUP5
000007a9: DUP5
000007aa: PUSH1 0x40
000007ac: MLOAD
000007ad: PUSH2 0x07b7
000007b0: SWAP3
000007b1: SWAP2
000007b2: SWAP1
000007b3: PUSH2 0x3050
000007b6: JUMP
000007b7: JUMPDEST
000007b8: SWAP1
000007b9: DUP2
000007ba: MSTORE
000007bb: PUSH1 0x40
000007bd: MLOAD
000007be: SWAP1
000007bf: DUP2
000007c0: SWAP1
000007c1: SUB
000007c2: PUSH1 0x20
000007c4: ADD
000007c5: SWAP1
000007c6: KECCAK256
000007c7: SLOAD
000007c8: PUSH1 0x01
000007ca: PUSH1 0x01
000007cc: PUSH1 0xa0
000007ce: SHL
000007cf: SUB
000007d0: AND
000007d1: SWAP1
000007d2: POP
000007d3: DUP1
000007d4: ISZERO
000007d5: PUSH2 0x0852
000007d8: JUMPI
000007d9: PUSH1 0x40
000007db: MLOAD
000007dc: PUSH4 0x70a08231
000007e1: PUSH1 0xe0
000007e3: SHL
000007e4: DUP2
000007e5: MSTORE
000007e6: ADDRESS
000007e7: PUSH1 0x04
000007e9: DUP3
000007ea: ADD
000007eb: MSTORE
000007ec: PUSH1 0x01
000007ee: PUSH1 0x01
000007f0: PUSH1 0xa0
000007f2: SHL
000007f3: SUB
000007f4: DUP3
000007f5: AND
000007f6: SWAP1
000007f7: PUSH4 0x70a08231
000007fc: SWAP1
000007fd: PUSH1 0x24
000007ff: ADD
00000800: PUSH1 0x20
00000802: PUSH1 0x40
00000804: MLOAD
00000805: DUP1
00000806: DUP4
00000807: SUB
00000808: DUP2
00000809: DUP7
0000080a: DUP1
0000080b: EXTCODESIZE
0000080c: ISZERO
0000080d: DUP1
0000080e: ISZERO
0000080f: PUSH2 0x0817
00000812: JUMPI
00000813: PUSH1 0x00
00000815: DUP1
00000816: REVERT
00000817: JUMPDEST
00000818: POP
00000819: GAS
0000081a: STATICCALL
0000081b: ISZERO
0000081c: DUP1
0000081d: ISZERO
0000081e: PUSH2 0x082b
00000821: JUMPI
00000822: RETURNDATASIZE
00000823: PUSH1 0x00
00000825: DUP1
00000826: RETURNDATACOPY
00000827: RETURNDATASIZE
00000828: PUSH1 0x00
0000082a: REVERT
0000082b: JUMPDEST
0000082c: POP
0000082d: POP
0000082e: POP
0000082f: POP
00000830: PUSH1 0x40
00000832: MLOAD
00000833: RETURNDATASIZE
00000834: PUSH1 0x1f
00000836: NOT
00000837: PUSH1 0x1f
00000839: DUP3
0000083a: ADD
0000083b: AND
0000083c: DUP3
0000083d: ADD
0000083e: DUP1
0000083f: PUSH1 0x40
00000841: MSTORE
00000842: POP
00000843: DUP2
00000844: ADD
00000845: SWAP1
00000846: PUSH2 0x084f
00000849: SWAP2
0000084a: SWAP1
0000084b: PUSH2 0x2fe4
0000084e: JUMP
0000084f: JUMPDEST
00000850: SWAP2
00000851: POP
00000852: JUMPDEST
00000853: POP
00000854: JUMPDEST
00000855: SWAP3
00000856: SWAP2
00000857: POP
00000858: POP
00000859: JUMP
0000085a: JUMPDEST
0000085b: PUSH1 0x00
0000085d: SLOAD
0000085e: PUSH1 0x01
00000860: PUSH1 0x01
00000862: PUSH1 0xa0
00000864: SHL
00000865: SUB
00000866: AND
00000867: CALLER
00000868: EQ
00000869: PUSH2 0x0884
0000086c: JUMPI
0000086d: PUSH1 0x40
0000086f: MLOAD
00000870: PUSH3 0x461bcd
00000874: PUSH1 0xe5
00000876: SHL
00000877: DUP2
00000878: MSTORE
00000879: PUSH1 0x04
0000087b: ADD
0000087c: PUSH2 0x021d
0000087f: SWAP1
00000880: PUSH2 0x3215
00000883: JUMP
00000884: JUMPDEST
00000885: PUSH1 0x01
00000887: PUSH1 0x01
00000889: PUSH1 0xa0
0000088b: SHL
0000088c: SUB
0000088d: DUP2
0000088e: AND
0000088f: PUSH2 0x08aa
00000892: JUMPI
00000893: PUSH1 0x40
00000895: MLOAD
00000896: PUSH3 0x461bcd
0000089a: PUSH1 0xe5
0000089c: SHL
0000089d: DUP2
0000089e: MSTORE
0000089f: PUSH1 0x04
000008a1: ADD
000008a2: PUSH2 0x021d
000008a5: SWAP1
000008a6: PUSH2 0x3240
000008a9: JUMP
000008aa: JUMPDEST
000008ab: PUSH1 0x02
000008ad: SLOAD
000008ae: PUSH1 0x40
000008b0: MLOAD
000008b1: PUSH1 0x01
000008b3: PUSH1 0x01
000008b5: PUSH1 0xa0
000008b7: SHL
000008b8: SUB
000008b9: DUP1
000008ba: DUP5
000008bb: AND
000008bc: SWAP3
000008bd: AND
000008be: SWAP1
000008bf: PUSH32 0x332aea18fc605b6be38db00074cd3c21a757c11fee654fd98c382a2e49ea2297
000008e0: SWAP1
000008e1: PUSH1 0x00
000008e3: SWAP1
000008e4: LOG3
000008e5: PUSH1 0x02
000008e7: DUP1
000008e8: SLOAD
000008e9: PUSH1 0x01
000008eb: PUSH1 0x01
000008ed: PUSH1 0xa0
000008ef: SHL
000008f0: SUB
000008f1: NOT
000008f2: AND
000008f3: PUSH1 0x01
000008f5: PUSH1 0x01
000008f7: PUSH1 0xa0
000008f9: SHL
000008fa: SUB
000008fb: SWAP3
000008fc: SWAP1
000008fd: SWAP3
000008fe: AND
000008ff: SWAP2
00000900: SWAP1
00000901: SWAP2
00000902: OR
00000903: SWAP1
00000904: SSTORE
00000905: JUMP
00000906: JUMPDEST
00000907: PUSH1 0x00
00000909: SLOAD
0000090a: PUSH1 0x01
0000090c: PUSH1 0x01
0000090e: PUSH1 0xa0
00000910: SHL
00000911: SUB
00000912: AND
00000913: CALLER
00000914: EQ
00000915: PUSH2 0x0930
00000918: JUMPI
00000919: PUSH1 0x40
0000091b: MLOAD
0000091c: PUSH3 0x461bcd
00000920: PUSH1 0xe5
00000922: SHL
00000923: DUP2
00000924: MSTORE
00000925: PUSH1 0x04
00000927: ADD
00000928: PUSH2 0x021d
0000092b: SWAP1
0000092c: PUSH2 0x3215
0000092f: JUMP
00000930: JUMPDEST
00000931: DUP1
00000932: PUSH2 0x097d
00000935: JUMPI
00000936: PUSH1 0x40
00000938: MLOAD
00000939: PUSH3 0x461bcd
0000093d: PUSH1 0xe5
0000093f: SHL
00000940: DUP2
00000941: MSTORE
00000942: PUSH1 0x20
00000944: PUSH1 0x04
00000946: DUP3
00000947: ADD
00000948: MSTORE
00000949: PUSH1 0x1a
0000094b: PUSH1 0x24
0000094d: DUP3
0000094e: ADD
0000094f: MSTORE
00000950: PUSH32 0x4d756c74695369676e436f72652f6e756c6c2d61646472657373000000000000
00000971: PUSH1 0x44
00000973: DUP3
00000974: ADD
00000975: MSTORE
00000976: PUSH1 0x64
00000978: ADD
00000979: PUSH2 0x021d
0000097c: JUMP
0000097d: JUMPDEST
0000097e: PUSH1 0x00
00000980: JUMPDEST
00000981: DUP2
00000982: DUP2
00000983: LT
00000984: ISZERO
00000985: PUSH2 0x0b97
00000988: JUMPI
00000989: PUSH1 0x00
0000098b: DUP4
0000098c: DUP4
0000098d: DUP4
0000098e: DUP2
0000098f: DUP2
00000990: LT
00000991: PUSH2 0x09aa
00000994: JUMPI
00000995: PUSH4 0x4e487b71
0000099a: PUSH1 0xe0
0000099c: SHL
0000099d: PUSH1 0x00
0000099f: MSTORE
000009a0: PUSH1 0x32
000009a2: PUSH1 0x04
000009a4: MSTORE
000009a5: PUSH1 0x24
000009a7: PUSH1 0x00
000009a9: REVERT
000009aa: JUMPDEST
000009ab: SWAP1
000009ac: POP
000009ad: PUSH1 0x20
000009af: MUL
000009b0: ADD
000009b1: PUSH1 0x20
000009b3: DUP2
000009b4: ADD
000009b5: SWAP1
000009b6: PUSH2 0x09bf
000009b9: SWAP2
000009ba: SWAP1
000009bb: PUSH2 0x2c37
000009be: JUMP
000009bf: JUMPDEST
000009c0: PUSH1 0x01
000009c2: PUSH1 0x01
000009c4: PUSH1 0xa0
000009c6: SHL
000009c7: SUB
000009c8: AND
000009c9: EQ
000009ca: ISZERO
000009cb: PUSH2 0x0a16
000009ce: JUMPI
000009cf: PUSH1 0x40
000009d1: MLOAD
000009d2: PUSH3 0x461bcd
000009d6: PUSH1 0xe5
000009d8: SHL
000009d9: DUP2
000009da: MSTORE
000009db: PUSH1 0x20
000009dd: PUSH1 0x04
000009df: DUP3
000009e0: ADD
000009e1: MSTORE
000009e2: PUSH1 0x17
000009e4: PUSH1 0x24
000009e6: DUP3
000009e7: ADD
000009e8: MSTORE
000009e9: PUSH32 0x4d756c74695369676e436f72652f616464726573732d30000000000000000000
00000a0a: PUSH1 0x44
00000a0c: DUP3
00000a0d: ADD
00000a0e: MSTORE
00000a0f: PUSH1 0x64
00000a11: ADD
00000a12: PUSH2 0x021d
00000a15: JUMP
00000a16: JUMPDEST
00000a17: PUSH1 0x03
00000a19: PUSH1 0x00
00000a1b: DUP5
00000a1c: DUP5
00000a1d: DUP5
00000a1e: DUP2
00000a1f: DUP2
00000a20: LT
00000a21: PUSH2 0x0a3a
00000a24: JUMPI
00000a25: PUSH4 0x4e487b71
00000a2a: PUSH1 0xe0
00000a2c: SHL
00000a2d: PUSH1 0x00
00000a2f: MSTORE
00000a30: PUSH1 0x32
00000a32: PUSH1 0x04
00000a34: MSTORE
00000a35: PUSH1 0x24
00000a37: PUSH1 0x00
00000a39: REVERT
00000a3a: JUMPDEST
00000a3b: SWAP1
00000a3c: POP
00000a3d: PUSH1 0x20
00000a3f: MUL
00000a40: ADD
00000a41: PUSH1 0x20
00000a43: DUP2
00000a44: ADD
00000a45: SWAP1
00000a46: PUSH2 0x0a4f
00000a49: SWAP2
00000a4a: SWAP1
00000a4b: PUSH2 0x2c37
00000a4e: JUMP
00000a4f: JUMPDEST
00000a50: PUSH1 0x01
00000a52: PUSH1 0x01
00000a54: PUSH1 0xa0
00000a56: SHL
00000a57: SUB
00000a58: AND
00000a59: DUP2
00000a5a: MSTORE
00000a5b: PUSH1 0x20
00000a5d: DUP2
00000a5e: ADD
00000a5f: SWAP2
00000a60: SWAP1
00000a61: SWAP2
00000a62: MSTORE
00000a63: PUSH1 0x40
00000a65: ADD
00000a66: PUSH1 0x00
00000a68: KECCAK256
00000a69: SLOAD
00000a6a: PUSH1 0xff
00000a6c: AND
00000a6d: ISZERO
00000a6e: PUSH2 0x0ab9
00000a71: JUMPI
00000a72: PUSH1 0x40
00000a74: MLOAD
00000a75: PUSH3 0x461bcd
00000a79: PUSH1 0xe5
00000a7b: SHL
00000a7c: DUP2
00000a7d: MSTORE
00000a7e: PUSH1 0x20
00000a80: PUSH1 0x04
00000a82: DUP3
00000a83: ADD
00000a84: MSTORE
00000a85: PUSH1 0x1c
00000a87: PUSH1 0x24
00000a89: DUP3
00000a8a: ADD
00000a8b: MSTORE
00000a8c: PUSH32 0x4d756c74695369676e436f72652f7769746e6573732d65786973747300000000
00000aad: PUSH1 0x44
00000aaf: DUP3
00000ab0: ADD
00000ab1: MSTORE
00000ab2: PUSH1 0x64
00000ab4: ADD
00000ab5: PUSH2 0x021d
00000ab8: JUMP
00000ab9: JUMPDEST
00000aba: PUSH1 0x01
00000abc: PUSH1 0x03
00000abe: PUSH1 0x00
00000ac0: DUP6
00000ac1: DUP6
00000ac2: DUP6
00000ac3: DUP2
00000ac4: DUP2
00000ac5: LT
00000ac6: PUSH2 0x0adf
00000ac9: JUMPI
00000aca: PUSH4 0x4e487b71
00000acf: PUSH1 0xe0
00000ad1: SHL
00000ad2: PUSH1 0x00
00000ad4: MSTORE
00000ad5: PUSH1 0x32
00000ad7: PUSH1 0x04
00000ad9: MSTORE
00000ada: PUSH1 0x24
00000adc: PUSH1 0x00
00000ade: REVERT
00000adf: JUMPDEST
00000ae0: SWAP1
00000ae1: POP
00000ae2: PUSH1 0x20
00000ae4: MUL
00000ae5: ADD
00000ae6: PUSH1 0x20
00000ae8: DUP2
00000ae9: ADD
00000aea: SWAP1
00000aeb: PUSH2 0x0af4
00000aee: SWAP2
00000aef: SWAP1
00000af0: PUSH2 0x2c37
00000af3: JUMP
00000af4: JUMPDEST
00000af5: PUSH1 0x01
00000af7: PUSH1 0x01
00000af9: PUSH1 0xa0
00000afb: SHL
00000afc: SUB
00000afd: AND
00000afe: DUP2
00000aff: MSTORE
00000b00: PUSH1 0x20
00000b02: DUP2
00000b03: ADD
00000b04: SWAP2
00000b05: SWAP1
00000b06: SWAP2
00000b07: MSTORE
00000b08: PUSH1 0x40
00000b0a: ADD
00000b0b: PUSH1 0x00
00000b0d: KECCAK256
00000b0e: DUP1
00000b0f: SLOAD
00000b10: PUSH1 0xff
00000b12: NOT
00000b13: AND
00000b14: SWAP2
00000b15: ISZERO
00000b16: ISZERO
00000b17: SWAP2
00000b18: SWAP1
00000b19: SWAP2
00000b1a: OR
00000b1b: SWAP1
00000b1c: SSTORE
00000b1d: PUSH1 0x04
00000b1f: DUP4
00000b20: DUP4
00000b21: DUP4
00000b22: DUP2
00000b23: DUP2
00000b24: LT
00000b25: PUSH2 0x0b3e
00000b28: JUMPI
00000b29: PUSH4 0x4e487b71
00000b2e: PUSH1 0xe0
00000b30: SHL
00000b31: PUSH1 0x00
00000b33: MSTORE
00000b34: PUSH1 0x32
00000b36: PUSH1 0x04
00000b38: MSTORE
00000b39: PUSH1 0x24
00000b3b: PUSH1 0x00
00000b3d: REVERT
00000b3e: JUMPDEST
00000b3f: SWAP1
00000b40: POP
00000b41: PUSH1 0x20
00000b43: MUL
00000b44: ADD
00000b45: PUSH1 0x20
00000b47: DUP2
00000b48: ADD
00000b49: SWAP1
00000b4a: PUSH2 0x0b53
00000b4d: SWAP2
00000b4e: SWAP1
00000b4f: PUSH2 0x2c37
00000b52: JUMP
00000b53: JUMPDEST
00000b54: DUP2
00000b55: SLOAD
00000b56: PUSH1 0x01
00000b58: DUP2
00000b59: ADD
00000b5a: DUP4
00000b5b: SSTORE
00000b5c: PUSH1 0x00
00000b5e: SWAP3
00000b5f: DUP4
00000b60: MSTORE
00000b61: PUSH1 0x20
00000b63: SWAP1
00000b64: SWAP3
00000b65: KECCAK256
00000b66: SWAP1
00000b67: SWAP2
00000b68: ADD
00000b69: DUP1
00000b6a: SLOAD
00000b6b: PUSH1 0x01
00000b6d: PUSH1 0x01
00000b6f: PUSH1 0xa0
00000b71: SHL
00000b72: SUB
00000b73: NOT
00000b74: AND
00000b75: PUSH1 0x01
00000b77: PUSH1 0x01
00000b79: PUSH1 0xa0
00000b7b: SHL
00000b7c: SUB
00000b7d: SWAP1
00000b7e: SWAP3
00000b7f: AND
00000b80: SWAP2
00000b81: SWAP1
00000b82: SWAP2
00000b83: OR
00000b84: SWAP1
00000b85: SSTORE
00000b86: DUP1
00000b87: PUSH2 0x0b8f
00000b8a: DUP2
00000b8b: PUSH2 0x3534
00000b8e: JUMP
00000b8f: JUMPDEST
00000b90: SWAP2
00000b91: POP
00000b92: POP
00000b93: PUSH2 0x0980
00000b96: JUMP
00000b97: JUMPDEST
00000b98: POP
00000b99: PUSH1 0x04
00000b9b: SLOAD
00000b9c: PUSH1 0x00
00000b9e: SWAP1
00000b9f: PUSH2 0x0baa
00000ba2: SWAP1
00000ba3: PUSH1 0x02
00000ba5: SWAP1
00000ba6: PUSH2 0x3360
00000ba9: JUMP
00000baa: JUMPDEST
00000bab: PUSH2 0x0bb5
00000bae: SWAP1
00000baf: PUSH1 0x01
00000bb1: PUSH2 0x3348
00000bb4: JUMP
00000bb5: JUMPDEST
00000bb6: SWAP1
00000bb7: POP
00000bb8: DUP1
00000bb9: PUSH1 0x05
00000bbb: SLOAD
00000bbc: LT
00000bbd: ISZERO
00000bbe: PUSH2 0x0bc7
00000bc1: JUMPI
00000bc2: PUSH1 0x05
00000bc4: DUP2
00000bc5: SWAP1
00000bc6: SSTORE
00000bc7: JUMPDEST
00000bc8: PUSH1 0x05
00000bca: SLOAD
00000bcb: DUP4
00000bcc: DUP4
00000bcd: PUSH1 0x00
00000bcf: DUP2
00000bd0: DUP2
00000bd1: LT
00000bd2: PUSH2 0x0beb
00000bd5: JUMPI
00000bd6: PUSH4 0x4e487b71
00000bdb: PUSH1 0xe0
00000bdd: SHL
00000bde: PUSH1 0x00
00000be0: MSTORE
00000be1: PUSH1 0x32
00000be3: PUSH1 0x04
00000be5: MSTORE
00000be6: PUSH1 0x24
00000be8: PUSH1 0x00
00000bea: REVERT
00000beb: JUMPDEST
00000bec: SWAP1
00000bed: POP
00000bee: PUSH1 0x20
00000bf0: MUL
00000bf1: ADD
00000bf2: PUSH1 0x20
00000bf4: DUP2
00000bf5: ADD
00000bf6: SWAP1
00000bf7: PUSH2 0x0c00
00000bfa: SWAP2
00000bfb: SWAP1
00000bfc: PUSH2 0x2c37
00000bff: JUMP
00000c00: JUMPDEST
00000c01: PUSH1 0x01
00000c03: PUSH1 0x01
00000c05: PUSH1 0xa0
00000c07: SHL
00000c08: SUB
00000c09: AND
00000c0a: PUSH32 0xaf30db8bf82d0d3b54c27212a962aa5dcbc3846aa754ecc88119ad80052ff39d
00000c2b: DUP6
00000c2c: DUP6
00000c2d: PUSH1 0x40
00000c2f: MLOAD
00000c30: PUSH2 0x0c3a
00000c33: SWAP3
00000c34: SWAP2
00000c35: SWAP1
00000c36: PUSH2 0x3148
00000c39: JUMP
00000c3a: JUMPDEST
00000c3b: PUSH1 0x40
00000c3d: MLOAD
00000c3e: DUP1
00000c3f: SWAP2
00000c40: SUB
00000c41: SWAP1
00000c42: LOG3
00000c43: POP
00000c44: POP
00000c45: POP
00000c46: JUMP
00000c47: JUMPDEST
00000c48: PUSH1 0x00
00000c4a: SLOAD
00000c4b: PUSH1 0x01
00000c4d: PUSH1 0x01
00000c4f: PUSH1 0xa0
00000c51: SHL
00000c52: SUB
00000c53: AND
00000c54: CALLER
00000c55: EQ
00000c56: PUSH2 0x0c71
00000c59: JUMPI
00000c5a: PUSH1 0x40
00000c5c: MLOAD
00000c5d: PUSH3 0x461bcd
00000c61: PUSH1 0xe5
00000c63: SHL
00000c64: DUP2
00000c65: MSTORE
00000c66: PUSH1 0x04
00000c68: ADD
00000c69: PUSH2 0x021d
00000c6c: SWAP1
00000c6d: PUSH2 0x3215
00000c70: JUMP
00000c71: JUMPDEST
00000c72: DUP1
00000c73: PUSH2 0x0cbe
00000c76: JUMPI
00000c77: PUSH1 0x40
00000c79: MLOAD
00000c7a: PUSH3 0x461bcd
00000c7e: PUSH1 0xe5
00000c80: SHL
00000c81: DUP2
00000c82: MSTORE
00000c83: PUSH1 0x20
00000c85: PUSH1 0x04
00000c87: DUP3
00000c88: ADD
00000c89: MSTORE
00000c8a: PUSH1 0x1a
00000c8c: PUSH1 0x24
00000c8e: DUP3
00000c8f: ADD
00000c90: MSTORE
00000c91: PUSH32 0x4d756c74695369676e436f72652f6e756c6c2d61646472657373000000000000
00000cb2: PUSH1 0x44
00000cb4: DUP3
00000cb5: ADD
00000cb6: MSTORE
00000cb7: PUSH1 0x64
00000cb9: ADD
00000cba: PUSH2 0x021d
00000cbd: JUMP
00000cbe: JUMPDEST
00000cbf: PUSH1 0x00
00000cc1: JUMPDEST
00000cc2: DUP2
00000cc3: DUP2
00000cc4: LT
00000cc5: ISZERO
00000cc6: PUSH2 0x0e19
00000cc9: JUMPI
00000cca: PUSH1 0x03
00000ccc: PUSH1 0x00
00000cce: DUP5
00000ccf: DUP5
00000cd0: DUP5
00000cd1: DUP2
00000cd2: DUP2
00000cd3: LT
00000cd4: PUSH2 0x0ced
00000cd7: JUMPI
00000cd8: PUSH4 0x4e487b71
00000cdd: PUSH1 0xe0
00000cdf: SHL
00000ce0: PUSH1 0x00
00000ce2: MSTORE
00000ce3: PUSH1 0x32
00000ce5: PUSH1 0x04
00000ce7: MSTORE
00000ce8: PUSH1 0x24
00000cea: PUSH1 0x00
00000cec: REVERT
00000ced: JUMPDEST
00000cee: SWAP1
00000cef: POP
00000cf0: PUSH1 0x20
00000cf2: MUL
00000cf3: ADD
00000cf4: PUSH1 0x20
00000cf6: DUP2
00000cf7: ADD
00000cf8: SWAP1
00000cf9: PUSH2 0x0d02
00000cfc: SWAP2
00000cfd: SWAP1
00000cfe: PUSH2 0x2c37
00000d01: JUMP
00000d02: JUMPDEST
00000d03: PUSH1 0x01
00000d05: PUSH1 0x01
00000d07: PUSH1 0xa0
00000d09: SHL
00000d0a: SUB
00000d0b: AND
00000d0c: DUP2
00000d0d: MSTORE
00000d0e: PUSH1 0x20
00000d10: DUP2
00000d11: ADD
00000d12: SWAP2
00000d13: SWAP1
00000d14: SWAP2
00000d15: MSTORE
00000d16: PUSH1 0x40
00000d18: ADD
00000d19: PUSH1 0x00
00000d1b: KECCAK256
00000d1c: SLOAD
00000d1d: PUSH1 0xff
00000d1f: AND
00000d20: ISZERO
00000d21: ISZERO
00000d22: PUSH1 0x01
00000d24: EQ
00000d25: PUSH2 0x0d70
00000d28: JUMPI
00000d29: PUSH1 0x40
00000d2b: MLOAD
00000d2c: PUSH3 0x461bcd
00000d30: PUSH1 0xe5
00000d32: SHL
00000d33: DUP2
00000d34: MSTORE
00000d35: PUSH1 0x20
00000d37: PUSH1 0x04
00000d39: DUP3
00000d3a: ADD
00000d3b: DUP2
00000d3c: SWAP1
00000d3d: MSTORE
00000d3e: PUSH1 0x24
00000d40: DUP3
00000d41: ADD
00000d42: MSTORE
00000d43: PUSH32 0x4d756c74695369676e436f72652f7769746e6573732d6e6f742d657869737473
00000d64: PUSH1 0x44
00000d66: DUP3
00000d67: ADD
00000d68: MSTORE
00000d69: PUSH1 0x64
00000d6b: ADD
00000d6c: PUSH2 0x021d
00000d6f: JUMP
00000d70: JUMPDEST
00000d71: PUSH1 0x03
00000d73: PUSH1 0x00
00000d75: DUP5
00000d76: DUP5
00000d77: DUP5
00000d78: DUP2
00000d79: DUP2
00000d7a: LT
00000d7b: PUSH2 0x0d94
00000d7e: JUMPI
00000d7f: PUSH4 0x4e487b71
00000d84: PUSH1 0xe0
00000d86: SHL
00000d87: PUSH1 0x00
00000d89: MSTORE
00000d8a: PUSH1 0x32
00000d8c: PUSH1 0x04
00000d8e: MSTORE
00000d8f: PUSH1 0x24
00000d91: PUSH1 0x00
00000d93: REVERT
00000d94: JUMPDEST
00000d95: SWAP1
00000d96: POP
00000d97: PUSH1 0x20
00000d99: MUL
00000d9a: ADD
00000d9b: PUSH1 0x20
00000d9d: DUP2
00000d9e: ADD
00000d9f: SWAP1
00000da0: PUSH2 0x0da9
00000da3: SWAP2
00000da4: SWAP1
00000da5: PUSH2 0x2c37
00000da8: JUMP
00000da9: JUMPDEST
00000daa: PUSH1 0x01
00000dac: PUSH1 0x01
00000dae: PUSH1 0xa0
00000db0: SHL
00000db1: SUB
00000db2: AND
00000db3: DUP2
00000db4: MSTORE
00000db5: PUSH1 0x20
00000db7: DUP2
00000db8: ADD
00000db9: SWAP2
00000dba: SWAP1
00000dbb: SWAP2
00000dbc: MSTORE
00000dbd: PUSH1 0x40
00000dbf: ADD
00000dc0: PUSH1 0x00
00000dc2: KECCAK256
00000dc3: DUP1
00000dc4: SLOAD
00000dc5: PUSH1 0xff
00000dc7: NOT
00000dc8: AND
00000dc9: SWAP1
00000dca: SSTORE
00000dcb: PUSH2 0x0e07
00000dce: DUP4
00000dcf: DUP4
00000dd0: DUP4
00000dd1: DUP2
00000dd2: DUP2
00000dd3: LT
00000dd4: PUSH2 0x0ded
00000dd7: JUMPI
00000dd8: PUSH4 0x4e487b71
00000ddd: PUSH1 0xe0
00000ddf: SHL
00000de0: PUSH1 0x00
00000de2: MSTORE
00000de3: PUSH1 0x32
00000de5: PUSH1 0x04
00000de7: MSTORE
00000de8: PUSH1 0x24
00000dea: PUSH1 0x00
00000dec: REVERT
00000ded: JUMPDEST
00000dee: SWAP1
00000def: POP
00000df0: PUSH1 0x20
00000df2: MUL
00000df3: ADD
00000df4: PUSH1 0x20
00000df6: DUP2
00000df7: ADD
00000df8: SWAP1
00000df9: PUSH2 0x0e02
00000dfc: SWAP2
00000dfd: SWAP1
00000dfe: PUSH2 0x2c37
00000e01: JUMP
00000e02: JUMPDEST
00000e03: PUSH2 0x20c6
00000e06: JUMP
00000e07: JUMPDEST
00000e08: DUP1
00000e09: PUSH2 0x0e11
00000e0c: DUP2
00000e0d: PUSH2 0x3534
00000e10: JUMP
00000e11: JUMPDEST
00000e12: SWAP2
00000e13: POP
00000e14: POP
00000e15: PUSH2 0x0cc1
00000e18: JUMP
00000e19: JUMPDEST
00000e1a: POP
00000e1b: PUSH1 0x04
00000e1d: SLOAD
00000e1e: PUSH1 0x05
00000e20: SLOAD
00000e21: GT
00000e22: ISZERO
00000e23: PUSH2 0x0e2d
00000e26: JUMPI
00000e27: PUSH1 0x04
00000e29: SLOAD
00000e2a: PUSH1 0x05
00000e2c: SSTORE
00000e2d: JUMPDEST
00000e2e: PUSH1 0x05
00000e30: SLOAD
00000e31: DUP3
00000e32: DUP3
00000e33: PUSH1 0x00
00000e35: DUP2
00000e36: DUP2
00000e37: LT
00000e38: PUSH2 0x0e51
00000e3b: JUMPI
00000e3c: PUSH4 0x4e487b71
00000e41: PUSH1 0xe0
00000e43: SHL
00000e44: PUSH1 0x00
00000e46: MSTORE
00000e47: PUSH1 0x32
00000e49: PUSH1 0x04
00000e4b: MSTORE
00000e4c: PUSH1 0x24
00000e4e: PUSH1 0x00
00000e50: REVERT
00000e51: JUMPDEST
00000e52: SWAP1
00000e53: POP
00000e54: PUSH1 0x20
00000e56: MUL
00000e57: ADD
00000e58: PUSH1 0x20
00000e5a: DUP2
00000e5b: ADD
00000e5c: SWAP1
00000e5d: PUSH2 0x0e66
00000e60: SWAP2
00000e61: SWAP1
00000e62: PUSH2 0x2c37
00000e65: JUMP
00000e66: JUMPDEST
00000e67: PUSH1 0x01
00000e69: PUSH1 0x01
00000e6b: PUSH1 0xa0
00000e6d: SHL
00000e6e: SUB
00000e6f: AND
00000e70: PUSH32 0x67891fe0d9250300c088f9c276e7ce16c947a67815eb528eaa2274706d5d1c46
00000e91: DUP5
00000e92: DUP5
00000e93: PUSH1 0x40
00000e95: MLOAD
00000e96: PUSH2 0x0ea0
00000e99: SWAP3
00000e9a: SWAP2
00000e9b: SWAP1
00000e9c: PUSH2 0x3148
00000e9f: JUMP
00000ea0: JUMPDEST
00000ea1: PUSH1 0x40
00000ea3: MLOAD
00000ea4: DUP1
00000ea5: SWAP2
00000ea6: SUB
00000ea7: SWAP1
00000ea8: LOG3
00000ea9: POP
00000eaa: POP
00000eab: JUMP
00000eac: JUMPDEST
00000ead: PUSH1 0x01
00000eaf: SLOAD
00000eb0: PUSH1 0x01
00000eb2: PUSH1 0x01
00000eb4: PUSH1 0xa0
00000eb6: SHL
00000eb7: SUB
00000eb8: AND
00000eb9: CALLER
00000eba: EQ
00000ebb: PUSH2 0x0efa
00000ebe: JUMPI
00000ebf: PUSH1 0x40
00000ec1: MLOAD
00000ec2: PUSH3 0x461bcd
00000ec6: PUSH1 0xe5
00000ec8: SHL
00000ec9: DUP2
00000eca: MSTORE
00000ecb: PUSH1 0x20
00000ecd: PUSH1 0x04
00000ecf: DUP3
00000ed0: ADD
00000ed1: MSTORE
00000ed2: PUSH1 0x11
00000ed4: PUSH1 0x24
00000ed6: DUP3
00000ed7: ADD
00000ed8: MSTORE
00000ed9: PUSH17 0x27bbb730b1363297a737ba1030b236b4b7
00000eeb: PUSH1 0x79
00000eed: SHL
00000eee: PUSH1 0x44
00000ef0: DUP3
00000ef1: ADD
00000ef2: MSTORE
00000ef3: PUSH1 0x64
00000ef5: ADD
00000ef6: PUSH2 0x021d
00000ef9: JUMP
00000efa: JUMPDEST
00000efb: PUSH2 0x0f0a
00000efe: PUSH1 0x09
00000f00: DUP1
00000f01: SLOAD
00000f02: PUSH2 0x06dd
00000f05: SWAP1
00000f06: PUSH2 0x34f9
00000f09: JUMP
00000f0a: JUMPDEST
00000f0b: ISZERO
00000f0c: PUSH2 0x0f57
00000f0f: JUMPI
00000f10: PUSH1 0x40
00000f12: MLOAD
00000f13: PUSH3 0x461bcd
00000f17: PUSH1 0xe5
00000f19: SHL
00000f1a: DUP2
00000f1b: MSTORE
00000f1c: PUSH1 0x20
00000f1e: PUSH1 0x04
00000f20: DUP3
00000f21: ADD
00000f22: MSTORE
00000f23: PUSH1 0x1f
00000f25: PUSH1 0x24
00000f27: DUP3
00000f28: ADD
00000f29: MSTORE
00000f2a: PUSH32 0x726567546f6b656e2f6e61746976652d73796d626f6c2d726573657276656400
00000f4b: PUSH1 0x44
00000f4d: DUP3
00000f4e: ADD
00000f4f: MSTORE
00000f50: PUSH1 0x64
00000f52: ADD
00000f53: PUSH2 0x021d
00000f56: JUMP
00000f57: JUMPDEST
00000f58: DUP1
00000f59: EXTCODESIZE
00000f5a: PUSH2 0x0fa5
00000f5d: JUMPI
00000f5e: PUSH1 0x40
00000f60: MLOAD
00000f61: PUSH3 0x461bcd
00000f65: PUSH1 0xe5
00000f67: SHL
00000f68: DUP2
00000f69: MSTORE
00000f6a: PUSH1 0x20
00000f6c: PUSH1 0x04
00000f6e: DUP3
00000f6f: ADD
00000f70: MSTORE
00000f71: PUSH1 0x18
00000f73: PUSH1 0x24
00000f75: DUP3
00000f76: ADD
00000f77: MSTORE
00000f78: PUSH32 0x726567546f6b656e2f696e76616c69642d616464726573730000000000000000
00000f99: PUSH1 0x44
00000f9b: DUP3
00000f9c: ADD
00000f9d: MSTORE
00000f9e: PUSH1 0x64
00000fa0: ADD
00000fa1: PUSH2 0x021d
00000fa4: JUMP
00000fa5: JUMPDEST
00000fa6: PUSH1 0x00
00000fa8: DUP2
00000fa9: SWAP1
00000faa: POP
00000fab: PUSH1 0x00
00000fad: DUP2
00000fae: PUSH1 0x01
00000fb0: PUSH1 0x01
00000fb2: PUSH1 0xa0
00000fb4: SHL
00000fb5: SUB
00000fb6: AND
00000fb7: PUSH4 0x313ce567
00000fbc: PUSH1 0x40
00000fbe: MLOAD
00000fbf: DUP2
00000fc0: PUSH4 0xffffffff
00000fc5: AND
00000fc6: PUSH1 0xe0
00000fc8: SHL
00000fc9: DUP2
00000fca: MSTORE
00000fcb: PUSH1 0x04
00000fcd: ADD
00000fce: PUSH1 0x20
00000fd0: PUSH1 0x40
00000fd2: MLOAD
00000fd3: DUP1
00000fd4: DUP4
00000fd5: SUB
00000fd6: DUP2
00000fd7: DUP7
00000fd8: DUP1
00000fd9: EXTCODESIZE
00000fda: ISZERO
00000fdb: DUP1
00000fdc: ISZERO
00000fdd: PUSH2 0x0fe5
00000fe0: JUMPI
00000fe1: PUSH1 0x00
00000fe3: DUP1
00000fe4: REVERT
00000fe5: JUMPDEST
00000fe6: POP
00000fe7: GAS
00000fe8: STATICCALL
00000fe9: ISZERO
00000fea: DUP1
00000feb: ISZERO
00000fec: PUSH2 0x0ff9
00000fef: JUMPI
00000ff0: RETURNDATASIZE
00000ff1: PUSH1 0x00
00000ff3: DUP1
00000ff4: RETURNDATACOPY
00000ff5: RETURNDATASIZE
00000ff6: PUSH1 0x00
00000ff8: REVERT
00000ff9: JUMPDEST
00000ffa: POP
00000ffb: POP
00000ffc: POP
00000ffd: POP
00000ffe: PUSH1 0x40
00001000: MLOAD
00001001: RETURNDATASIZE
00001002: PUSH1 0x1f
00001004: NOT
00001005: PUSH1 0x1f
00001007: DUP3
00001008: ADD
00001009: AND
0000100a: DUP3
0000100b: ADD
0000100c: DUP1
0000100d: PUSH1 0x40
0000100f: MSTORE
00001010: POP
00001011: DUP2
00001012: ADD
00001013: SWAP1
00001014: PUSH2 0x101d
00001017: SWAP2
00001018: SWAP1
00001019: PUSH2 0x3018
0000101c: JUMP
0000101d: JUMPDEST
0000101e: SWAP1
0000101f: POP
00001020: PUSH1 0x12
00001022: PUSH1 0xff
00001024: DUP3
00001025: AND
00001026: GT
00001027: ISZERO
00001028: PUSH2 0x1073
0000102b: JUMPI
0000102c: PUSH1 0x40
0000102e: MLOAD
0000102f: PUSH3 0x461bcd
00001033: PUSH1 0xe5
00001035: SHL
00001036: DUP2
00001037: MSTORE
00001038: PUSH1 0x20
0000103a: PUSH1 0x04
0000103c: DUP3
0000103d: ADD
0000103e: MSTORE
0000103f: PUSH1 0x19
00001041: PUSH1 0x24
00001043: DUP3
00001044: ADD
00001045: MSTORE
00001046: PUSH32 0x726567546f6b656e2f696e76616c69642d646563696d616c7300000000000000
00001067: PUSH1 0x44
00001069: DUP3
0000106a: ADD
0000106b: MSTORE
0000106c: PUSH1 0x64
0000106e: ADD
0000106f: PUSH2 0x021d
00001072: JUMP
00001073: JUMPDEST
00001074: PUSH2 0x1129
00001077: DUP6
00001078: DUP6
00001079: DUP1
0000107a: DUP1
0000107b: PUSH1 0x1f
0000107d: ADD
0000107e: PUSH1 0x20
00001080: DUP1
00001081: SWAP2
00001082: DIV
00001083: MUL
00001084: PUSH1 0x20
00001086: ADD
00001087: PUSH1 0x40
00001089: MLOAD
0000108a: SWAP1
0000108b: DUP2
0000108c: ADD
0000108d: PUSH1 0x40
0000108f: MSTORE
00001090: DUP1
00001091: SWAP4
00001092: SWAP3
00001093: SWAP2
00001094: SWAP1
00001095: DUP2
00001096: DUP2
00001097: MSTORE
00001098: PUSH1 0x20
0000109a: ADD
0000109b: DUP4
0000109c: DUP4
0000109d: DUP1
0000109e: DUP3
0000109f: DUP5
000010a0: CALLDATACOPY
000010a1: PUSH1 0x00
000010a3: SWAP3
000010a4: ADD
000010a5: DUP3
000010a6: SWAP1
000010a7: MSTORE
000010a8: POP
000010a9: PUSH1 0x40
000010ab: DUP1
000010ac: MLOAD
000010ad: PUSH4 0x95d89b41
000010b2: PUSH1 0xe0
000010b4: SHL
000010b5: DUP2
000010b6: MSTORE
000010b7: SWAP1
000010b8: MLOAD
000010b9: PUSH1 0x01
000010bb: PUSH1 0x01
000010bd: PUSH1 0xa0
000010bf: SHL
000010c0: SUB
000010c1: DUP11
000010c2: AND
000010c3: SWAP6
000010c4: POP
000010c5: PUSH4 0x95d89b41
000010ca: SWAP5
000010cb: POP
000010cc: PUSH1 0x04
000010ce: DUP1
000010cf: DUP4
000010d0: ADD
000010d1: SWAP5
000010d2: POP
000010d3: SWAP1
000010d4: SWAP2
000010d5: DUP3
000010d6: SWAP1
000010d7: SUB
000010d8: ADD
000010d9: DUP2
000010da: DUP7
000010db: DUP1
000010dc: EXTCODESIZE
000010dd: ISZERO
000010de: DUP1
000010df: ISZERO
000010e0: PUSH2 0x10e8
000010e3: JUMPI
000010e4: PUSH1 0x00
000010e6: DUP1
000010e7: REVERT
000010e8: JUMPDEST
000010e9: POP
000010ea: GAS
000010eb: STATICCALL
000010ec: ISZERO
000010ed: DUP1
000010ee: ISZERO
000010ef: PUSH2 0x10fc
000010f2: JUMPI
000010f3: RETURNDATASIZE
000010f4: PUSH1 0x00
000010f6: DUP1
000010f7: RETURNDATACOPY
000010f8: RETURNDATASIZE
000010f9: PUSH1 0x00
000010fb: REVERT
000010fc: JUMPDEST
000010fd: POP
000010fe: POP
000010ff: POP
00001100: POP
00001101: PUSH1 0x40
00001103: MLOAD
00001104: RETURNDATASIZE
00001105: PUSH1 0x00
00001107: DUP3
00001108: RETURNDATACOPY
00001109: PUSH1 0x1f
0000110b: RETURNDATASIZE
0000110c: SWAP1
0000110d: DUP2
0000110e: ADD
0000110f: PUSH1 0x1f
00001111: NOT
00001112: AND
00001113: DUP3
00001114: ADD
00001115: PUSH1 0x40
00001117: MSTORE
00001118: PUSH2 0x1124
0000111b: SWAP2
0000111c: SWAP1
0000111d: DUP2
0000111e: ADD
0000111f: SWAP1
00001120: PUSH2 0x2eba
00001123: JUMP
00001124: JUMPDEST
00001125: PUSH2 0x206d
00001128: JUMP
00001129: JUMPDEST
0000112a: PUSH2 0x1175
0000112d: JUMPI
0000112e: PUSH1 0x40
00001130: MLOAD
00001131: PUSH3 0x461bcd
00001135: PUSH1 0xe5
00001137: SHL
00001138: DUP2
00001139: MSTORE
0000113a: PUSH1 0x20
0000113c: PUSH1 0x04
0000113e: DUP3
0000113f: ADD
00001140: MSTORE
00001141: PUSH1 0x17
00001143: PUSH1 0x24
00001145: DUP3
00001146: ADD
00001147: MSTORE
00001148: PUSH32 0x726567546f6b656e2f696e76616c69642d73796d626f6c000000000000000000
00001169: PUSH1 0x44
0000116b: DUP3
0000116c: ADD
0000116d: MSTORE
0000116e: PUSH1 0x64
00001170: ADD
00001171: PUSH2 0x021d
00001174: JUMP
00001175: JUMPDEST
00001176: PUSH1 0x00
00001178: PUSH1 0x01
0000117a: PUSH1 0x01
0000117c: PUSH1 0xa0
0000117e: SHL
0000117f: SUB
00001180: AND
00001181: PUSH1 0x0b
00001183: DUP7
00001184: DUP7
00001185: PUSH1 0x40
00001187: MLOAD
00001188: PUSH2 0x1192
0000118b: SWAP3
0000118c: SWAP2
0000118d: SWAP1
0000118e: PUSH2 0x3050
00001191: JUMP
00001192: JUMPDEST
00001193: SWAP1
00001194: DUP2
00001195: MSTORE
00001196: PUSH1 0x40
00001198: MLOAD
00001199: SWAP1
0000119a: DUP2
0000119b: SWAP1
0000119c: SUB
0000119d: PUSH1 0x20
0000119f: ADD
000011a0: SWAP1
000011a1: KECCAK256
000011a2: SLOAD
000011a3: PUSH1 0x01
000011a5: PUSH1 0x01
000011a7: PUSH1 0xa0
000011a9: SHL
000011aa: SUB
000011ab: AND
000011ac: EQ
000011ad: PUSH2 0x11f8
000011b0: JUMPI
000011b1: PUSH1 0x40
000011b3: MLOAD
000011b4: PUSH3 0x461bcd
000011b8: PUSH1 0xe5
000011ba: SHL
000011bb: DUP2
000011bc: MSTORE
000011bd: PUSH1 0x20
000011bf: PUSH1 0x04
000011c1: DUP3
000011c2: ADD
000011c3: MSTORE
000011c4: PUSH1 0x19
000011c6: PUSH1 0x24
000011c8: DUP3
000011c9: ADD
000011ca: MSTORE
000011cb: PUSH32 0x726567546f6b656e2f746f6b656e2d7265676973746572656400000000000000
000011ec: PUSH1 0x44
000011ee: DUP3
000011ef: ADD
000011f0: MSTORE
000011f1: PUSH1 0x64
000011f3: ADD
000011f4: PUSH2 0x021d
000011f7: JUMP
000011f8: JUMPDEST
000011f9: DUP3
000011fa: PUSH1 0x0b
000011fc: DUP7
000011fd: DUP7
000011fe: PUSH1 0x40
00001200: MLOAD
00001201: PUSH2 0x120b
00001204: SWAP3
00001205: SWAP2
00001206: SWAP1
00001207: PUSH2 0x3050
0000120a: JUMP
0000120b: JUMPDEST
0000120c: SWAP1
0000120d: DUP2
0000120e: MSTORE
0000120f: PUSH1 0x20
00001211: ADD
00001212: PUSH1 0x40
00001214: MLOAD
00001215: DUP1
00001216: SWAP2
00001217: SUB
00001218: SWAP1
00001219: KECCAK256
0000121a: PUSH1 0x00
0000121c: PUSH2 0x0100
0000121f: EXP
00001220: DUP2
00001221: SLOAD
00001222: DUP2
00001223: PUSH1 0x01
00001225: PUSH1 0x01
00001227: PUSH1 0xa0
00001229: SHL
0000122a: SUB
0000122b: MUL
0000122c: NOT
0000122d: AND
0000122e: SWAP1
0000122f: DUP4
00001230: PUSH1 0x01
00001232: PUSH1 0x01
00001234: PUSH1 0xa0
00001236: SHL
00001237: SUB
00001238: AND
00001239: MUL
0000123a: OR
0000123b: SWAP1
0000123c: SSTORE
0000123d: POP
0000123e: DUP1
0000123f: PUSH1 0x0c
00001241: DUP7
00001242: DUP7
00001243: PUSH1 0x40
00001245: MLOAD
00001246: PUSH2 0x1250
00001249: SWAP3
0000124a: SWAP2
0000124b: SWAP1
0000124c: PUSH2 0x3050
0000124f: JUMP
00001250: JUMPDEST
00001251: SWAP1
00001252: DUP2
00001253: MSTORE
00001254: PUSH1 0x40
00001256: MLOAD
00001257: SWAP1
00001258: DUP2
00001259: SWAP1
0000125a: SUB
0000125b: PUSH1 0x20
0000125d: ADD
0000125e: SWAP1
0000125f: KECCAK256
00001260: DUP1
00001261: SLOAD
00001262: PUSH1 0xff
00001264: SWAP3
00001265: SWAP1
00001266: SWAP3
00001267: AND
00001268: PUSH1 0xff
0000126a: NOT
0000126b: SWAP1
0000126c: SWAP3
0000126d: AND
0000126e: SWAP2
0000126f: SWAP1
00001270: SWAP2
00001271: OR
00001272: SWAP1
00001273: SSTORE
00001274: PUSH1 0x0a
00001276: DUP1
00001277: SLOAD
00001278: PUSH1 0x01
0000127a: DUP2
0000127b: ADD
0000127c: DUP3
0000127d: SSTORE
0000127e: PUSH1 0x00
00001280: SWAP2
00001281: SWAP1
00001282: SWAP2
00001283: MSTORE
00001284: PUSH2 0x12b0
00001287: SWAP1
00001288: PUSH32 0xc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8
000012a9: ADD
000012aa: DUP7
000012ab: DUP7
000012ac: PUSH2 0x2b00
000012af: JUMP
000012b0: JUMPDEST
000012b1: POP
000012b2: DUP1
000012b3: PUSH1 0xff
000012b5: AND
000012b6: DUP4
000012b7: PUSH1 0x01
000012b9: PUSH1 0x01
000012bb: PUSH1 0xa0
000012bd: SHL
000012be: SUB
000012bf: AND
000012c0: DUP7
000012c1: DUP7
000012c2: PUSH1 0x40
000012c4: MLOAD
000012c5: PUSH2 0x12cf
000012c8: SWAP3
000012c9: SWAP2
000012ca: SWAP1
000012cb: PUSH2 0x3050
000012ce: JUMP
000012cf: JUMPDEST
000012d0: PUSH1 0x40
000012d2: MLOAD
000012d3: SWAP1
000012d4: DUP2
000012d5: SWAP1
000012d6: SUB
000012d7: DUP2
000012d8: KECCAK256
000012d9: SWAP1
000012da: PUSH32 0x4f26da311bd4d456b737a6ad354fa72b40329c4b6537ff6bf223711e4a1b1541
000012fb: SWAP1
000012fc: PUSH1 0x00
000012fe: SWAP1
000012ff: LOG4
00001300: POP
00001301: POP
00001302: POP
00001303: POP
00001304: POP
00001305: JUMP
00001306: JUMPDEST
00001307: PUSH1 0x09
00001309: DUP1
0000130a: SLOAD
0000130b: PUSH2 0x1313
0000130e: SWAP1
0000130f: PUSH2 0x34f9
00001312: JUMP
00001313: JUMPDEST
00001314: DUP1
00001315: PUSH1 0x1f
00001317: ADD
00001318: PUSH1 0x20
0000131a: DUP1
0000131b: SWAP2
0000131c: DIV
0000131d: MUL
0000131e: PUSH1 0x20
00001320: ADD
00001321: PUSH1 0x40
00001323: MLOAD
00001324: SWAP1
00001325: DUP2
00001326: ADD
00001327: PUSH1 0x40
00001329: MSTORE
0000132a: DUP1
0000132b: SWAP3
0000132c: SWAP2
0000132d: SWAP1
0000132e: DUP2
0000132f: DUP2
00001330: MSTORE
00001331: PUSH1 0x20
00001333: ADD
00001334: DUP3
00001335: DUP1
00001336: SLOAD
00001337: PUSH2 0x133f
0000133a: SWAP1
0000133b: PUSH2 0x34f9
0000133e: JUMP
0000133f: JUMPDEST
00001340: DUP1
00001341: ISZERO
00001342: PUSH2 0x138c
00001345: JUMPI
00001346: DUP1
00001347: PUSH1 0x1f
00001349: LT
0000134a: PUSH2 0x1361
0000134d: JUMPI
0000134e: PUSH2 0x0100
00001351: DUP1
00001352: DUP4
00001353: SLOAD
00001354: DIV
00001355: MUL
00001356: DUP4
00001357: MSTORE
00001358: SWAP2
00001359: PUSH1 0x20
0000135b: ADD
0000135c: SWAP2
0000135d: PUSH2 0x138c
00001360: JUMP
00001361: JUMPDEST
00001362: DUP3
00001363: ADD
00001364: SWAP2
00001365: SWAP1
00001366: PUSH1 0x00
00001368: MSTORE
00001369: PUSH1 0x20
0000136b: PUSH1 0x00
0000136d: KECCAK256
0000136e: SWAP1
0000136f: JUMPDEST
00001370: DUP2
00001371: SLOAD
00001372: DUP2
00001373: MSTORE
00001374: SWAP1
00001375: PUSH1 0x01
00001377: ADD
00001378: SWAP1
00001379: PUSH1 0x20
0000137b: ADD
0000137c: DUP1
0000137d: DUP4
0000137e: GT
0000137f: PUSH2 0x136f
00001382: JUMPI
00001383: DUP3
00001384: SWAP1
00001385: SUB
00001386: PUSH1 0x1f
00001388: AND
00001389: DUP3
0000138a: ADD
0000138b: SWAP2
0000138c: JUMPDEST
0000138d: POP
0000138e: POP
0000138f: POP
00001390: POP
00001391: POP
00001392: DUP2
00001393: JUMP
00001394: JUMPDEST
00001395: PUSH1 0x02
00001397: SLOAD
00001398: PUSH1 0x01
0000139a: PUSH1 0xa0
0000139c: SHL
0000139d: SWAP1
0000139e: DIV
0000139f: PUSH1 0xff
000013a1: AND
000013a2: PUSH2 0x13e4
000013a5: JUMPI
000013a6: PUSH1 0x40
000013a8: MLOAD
000013a9: PUSH3 0x461bcd
000013ad: PUSH1 0xe5
000013af: SHL
000013b0: DUP2
000013b1: MSTORE
000013b2: PUSH1 0x20
000013b4: PUSH1 0x04
000013b6: DUP3
000013b7: ADD
000013b8: MSTORE
000013b9: PUSH1 0x14
000013bb: PUSH1 0x24
000013bd: DUP3
000013be: ADD
000013bf: MSTORE
000013c0: PUSH20 0x27bbb730b1363297b9bbb4ba31b432b216b7b333
000013d5: PUSH1 0x61
000013d7: SHL
000013d8: PUSH1 0x44
000013da: DUP3
000013db: ADD
000013dc: MSTORE
000013dd: PUSH1 0x64
000013df: ADD
000013e0: PUSH2 0x021d
000013e3: JUMP
000013e4: JUMPDEST
000013e5: PUSH1 0x00
000013e7: DUP2
000013e8: GT
000013e9: PUSH2 0x1434
000013ec: JUMPI
000013ed: PUSH1 0x40
000013ef: MLOAD
000013f0: PUSH3 0x461bcd
000013f4: PUSH1 0xe5
000013f6: SHL
000013f7: DUP2
000013f8: MSTORE
000013f9: PUSH1 0x20
000013fb: PUSH1 0x04
000013fd: DUP3
000013fe: ADD
000013ff: MSTORE
00001400: PUSH1 0x18
00001402: PUSH1 0x24
00001404: DUP3
00001405: ADD
00001406: MSTORE
00001407: PUSH32 0x6c6f636b41737365742f616d6f756e742d69732d7a65726f0000000000000000
00001428: PUSH1 0x44
0000142a: DUP3
0000142b: ADD
0000142c: MSTORE
0000142d: PUSH1 0x64
0000142f: ADD
00001430: PUSH2 0x021d
00001433: JUMP
00001434: JUMPDEST
00001435: PUSH2 0x1444
00001438: PUSH1 0x09
0000143a: DUP1
0000143b: SLOAD
0000143c: PUSH2 0x06dd
0000143f: SWAP1
00001440: PUSH2 0x34f9
00001443: JUMP
00001444: JUMPDEST
00001445: ISZERO
00001446: PUSH2 0x149f
00001449: JUMPI
0000144a: CALLVALUE
0000144b: DUP2
0000144c: DUP2
0000144d: EQ
0000144e: PUSH2 0x1499
00001451: JUMPI
00001452: PUSH1 0x40
00001454: MLOAD
00001455: PUSH3 0x461bcd
00001459: PUSH1 0xe5
0000145b: SHL
0000145c: DUP2
0000145d: MSTORE
0000145e: PUSH1 0x20
00001460: PUSH1 0x04
00001462: DUP3
00001463: ADD
00001464: MSTORE
00001465: PUSH1 0x1f
00001467: PUSH1 0x24
00001469: DUP3
0000146a: ADD
0000146b: MSTORE
0000146c: PUSH32 0x6c6f636b41737365742f6e61746976652d616d6f756e742d696e76616c696400
0000148d: PUSH1 0x44
0000148f: DUP3
00001490: ADD
00001491: MSTORE
00001492: PUSH1 0x64
00001494: ADD
00001495: PUSH2 0x021d
00001498: JUMP
00001499: JUMPDEST
0000149a: POP
0000149b: PUSH2 0x170b
0000149e: JUMP
0000149f: JUMPDEST
000014a0: PUSH1 0x00
000014a2: PUSH1 0x0b
000014a4: DUP5
000014a5: DUP5
000014a6: PUSH1 0x40
000014a8: MLOAD
000014a9: PUSH2 0x14b3
000014ac: SWAP3
000014ad: SWAP2
000014ae: SWAP1
000014af: PUSH2 0x3050
000014b2: JUMP
000014b3: JUMPDEST
000014b4: SWAP1
000014b5: DUP2
000014b6: MSTORE
000014b7: PUSH1 0x40
000014b9: MLOAD
000014ba: SWAP1
000014bb: DUP2
000014bc: SWAP1
000014bd: SUB
000014be: PUSH1 0x20
000014c0: ADD
000014c1: SWAP1
000014c2: KECCAK256
000014c3: SLOAD
000014c4: PUSH1 0x01
000014c6: PUSH1 0x01
000014c8: PUSH1 0xa0
000014ca: SHL
000014cb: SUB
000014cc: AND
000014cd: SWAP1
000014ce: POP
000014cf: DUP1
000014d0: PUSH2 0x151b
000014d3: JUMPI
000014d4: PUSH1 0x40
000014d6: MLOAD
000014d7: PUSH3 0x461bcd
000014db: PUSH1 0xe5
000014dd: SHL
000014de: DUP2
000014df: MSTORE
000014e0: PUSH1 0x20
000014e2: PUSH1 0x04
000014e4: DUP3
000014e5: ADD
000014e6: MSTORE
000014e7: PUSH1 0x18
000014e9: PUSH1 0x24
000014eb: DUP3
000014ec: ADD
000014ed: MSTORE
000014ee: PUSH32 0x6c6f636b41737365742f73796d626f6c2d696e76616c69640000000000000000
0000150f: PUSH1 0x44
00001511: DUP3
00001512: ADD
00001513: MSTORE
00001514: PUSH1 0x64
00001516: ADD
00001517: PUSH2 0x021d
0000151a: JUMP
0000151b: JUMPDEST
0000151c: CALLVALUE
0000151d: ISZERO
0000151e: PUSH2 0x1569
00001521: JUMPI
00001522: PUSH1 0x40
00001524: MLOAD
00001525: PUSH3 0x461bcd
00001529: PUSH1 0xe5
0000152b: SHL
0000152c: DUP2
0000152d: MSTORE
0000152e: PUSH1 0x20
00001530: PUSH1 0x04
00001532: DUP3
00001533: ADD
00001534: MSTORE
00001535: PUSH1 0x1b
00001537: PUSH1 0x24
00001539: DUP3
0000153a: ADD
0000153b: MSTORE
0000153c: PUSH32 0x6c6f636b41737365742f6e6f2d6e6565642d6d73672d76616c75650000000000
0000155d: PUSH1 0x44
0000155f: DUP3
00001560: ADD
00001561: MSTORE
00001562: PUSH1 0x64
00001564: ADD
00001565: PUSH2 0x021d
00001568: JUMP
00001569: JUMPDEST
0000156a: PUSH1 0x40
0000156c: MLOAD
0000156d: PUSH4 0x70a08231
00001572: PUSH1 0xe0
00001574: SHL
00001575: DUP2
00001576: MSTORE
00001577: CALLER
00001578: PUSH1 0x04
0000157a: DUP3
0000157b: ADD
0000157c: MSTORE
0000157d: DUP3
0000157e: SWAP1
0000157f: PUSH1 0x01
00001581: PUSH1 0x01
00001583: PUSH1 0xa0
00001585: SHL
00001586: SUB
00001587: DUP4
00001588: AND
00001589: SWAP1
0000158a: PUSH4 0x70a08231
0000158f: SWAP1
00001590: PUSH1 0x24
00001592: ADD
00001593: PUSH1 0x20
00001595: PUSH1 0x40
00001597: MLOAD
00001598: DUP1
00001599: DUP4
0000159a: SUB
0000159b: DUP2
0000159c: DUP7
0000159d: DUP1
0000159e: EXTCODESIZE
0000159f: ISZERO
000015a0: DUP1
000015a1: ISZERO
000015a2: PUSH2 0x15aa
000015a5: JUMPI
000015a6: PUSH1 0x00
000015a8: DUP1
000015a9: REVERT
000015aa: JUMPDEST
000015ab: POP
000015ac: GAS
000015ad: STATICCALL
000015ae: ISZERO
000015af: DUP1
000015b0: ISZERO
000015b1: PUSH2 0x15be
000015b4: JUMPI
000015b5: RETURNDATASIZE
000015b6: PUSH1 0x00
000015b8: DUP1
000015b9: RETURNDATACOPY
000015ba: RETURNDATASIZE
000015bb: PUSH1 0x00
000015bd: REVERT
000015be: JUMPDEST
000015bf: POP
000015c0: POP
000015c1: POP
000015c2: POP
000015c3: PUSH1 0x40
000015c5: MLOAD
000015c6: RETURNDATASIZE
000015c7: PUSH1 0x1f
000015c9: NOT
000015ca: PUSH1 0x1f
000015cc: DUP3
000015cd: ADD
000015ce: AND
000015cf: DUP3
000015d0: ADD
000015d1: DUP1
000015d2: PUSH1 0x40
000015d4: MSTORE
000015d5: POP
000015d6: DUP2
000015d7: ADD
000015d8: SWAP1
000015d9: PUSH2 0x15e2
000015dc: SWAP2
000015dd: SWAP1
000015de: PUSH2 0x2fe4
000015e1: JUMP
000015e2: JUMPDEST
000015e3: LT
000015e4: ISZERO
000015e5: PUSH2 0x1630
000015e8: JUMPI
000015e9: PUSH1 0x40
000015eb: MLOAD
000015ec: PUSH3 0x461bcd
000015f0: PUSH1 0xe5
000015f2: SHL
000015f3: DUP2
000015f4: MSTORE
000015f5: PUSH1 0x20
000015f7: PUSH1 0x04
000015f9: DUP3
000015fa: ADD
000015fb: MSTORE
000015fc: PUSH1 0x1e
000015fe: PUSH1 0x24
00001600: DUP3
00001601: ADD
00001602: MSTORE
00001603: PUSH32 0x6c6f636b41737365742f696e73756666696369656e742d62616c616e63650000
00001624: PUSH1 0x44
00001626: DUP3
00001627: ADD
00001628: MSTORE
00001629: PUSH1 0x64
0000162b: ADD
0000162c: PUSH2 0x021d
0000162f: JUMP
00001630: JUMPDEST
00001631: PUSH1 0x40
00001633: MLOAD
00001634: PUSH4 0x6eb1769f
00001639: PUSH1 0xe1
0000163b: SHL
0000163c: DUP2
0000163d: MSTORE
0000163e: CALLER
0000163f: PUSH1 0x04
00001641: DUP3
00001642: ADD
00001643: MSTORE
00001644: ADDRESS
00001645: PUSH1 0x24
00001647: DUP3
00001648: ADD
00001649: MSTORE
0000164a: DUP3
0000164b: SWAP1
0000164c: PUSH1 0x01
0000164e: PUSH1 0x01
00001650: PUSH1 0xa0
00001652: SHL
00001653: SUB
00001654: DUP4
00001655: AND
00001656: SWAP1
00001657: PUSH4 0xdd62ed3e
0000165c: SWAP1
0000165d: PUSH1 0x44
0000165f: ADD
00001660: PUSH1 0x20
00001662: PUSH1 0x40
00001664: MLOAD
00001665: DUP1
00001666: DUP4
00001667: SUB
00001668: DUP2
00001669: DUP7
0000166a: DUP1
0000166b: EXTCODESIZE
0000166c: ISZERO
0000166d: DUP1
0000166e: ISZERO
0000166f: PUSH2 0x1677
00001672: JUMPI
00001673: PUSH1 0x00
00001675: DUP1
00001676: REVERT
00001677: JUMPDEST
00001678: POP
00001679: GAS
0000167a: STATICCALL
0000167b: ISZERO
0000167c: DUP1
0000167d: ISZERO
0000167e: PUSH2 0x168b
00001681: JUMPI
00001682: RETURNDATASIZE
00001683: PUSH1 0x00
00001685: DUP1
00001686: RETURNDATACOPY
00001687: RETURNDATASIZE
00001688: PUSH1 0x00
0000168a: REVERT
0000168b: JUMPDEST
0000168c: POP
0000168d: POP
0000168e: POP
0000168f: POP
00001690: PUSH1 0x40
00001692: MLOAD
00001693: RETURNDATASIZE
00001694: PUSH1 0x1f
00001696: NOT
00001697: PUSH1 0x1f
00001699: DUP3
0000169a: ADD
0000169b: AND
0000169c: DUP3
0000169d: ADD
0000169e: DUP1
0000169f: PUSH1 0x40
000016a1: MSTORE
000016a2: POP
000016a3: DUP2
000016a4: ADD
000016a5: SWAP1
000016a6: PUSH2 0x16af
000016a9: SWAP2
000016aa: SWAP1
000016ab: PUSH2 0x2fe4
000016ae: JUMP
000016af: JUMPDEST
000016b0: LT
000016b1: ISZERO
000016b2: PUSH2 0x16fd
000016b5: JUMPI
000016b6: PUSH1 0x40
000016b8: MLOAD
000016b9: PUSH3 0x461bcd
000016bd: PUSH1 0xe5
000016bf: SHL
000016c0: DUP2
000016c1: MSTORE
000016c2: PUSH1 0x20
000016c4: PUSH1 0x04
000016c6: DUP3
000016c7: ADD
000016c8: DUP2
000016c9: SWAP1
000016ca: MSTORE
000016cb: PUSH1 0x24
000016cd: DUP3
000016ce: ADD
000016cf: MSTORE
000016d0: PUSH32 0x6c6f636b41737365742f696e73756666696369656e742d616c6c6f77616e6365
000016f1: PUSH1 0x44
000016f3: DUP3
000016f4: ADD
000016f5: MSTORE
000016f6: PUSH1 0x64
000016f8: ADD
000016f9: PUSH2 0x021d
000016fc: JUMP
000016fd: JUMPDEST
000016fe: PUSH2 0x1709
00001701: DUP2
00001702: CALLER
00001703: ADDRESS
00001704: DUP6
00001705: PUSH2 0x20e5
00001708: JUMP
00001709: JUMPDEST
0000170a: POP
0000170b: JUMPDEST
0000170c: PUSH2 0x1739
0000170f: PUSH1 0x0c
00001711: DUP5
00001712: DUP5
00001713: PUSH1 0x40
00001715: MLOAD
00001716: PUSH2 0x1720
00001719: SWAP3
0000171a: SWAP2
0000171b: SWAP1
0000171c: PUSH2 0x3050
0000171f: JUMP
00001720: JUMPDEST
00001721: SWAP1
00001722: DUP2
00001723: MSTORE
00001724: PUSH1 0x40
00001726: MLOAD
00001727: SWAP1
00001728: DUP2
00001729: SWAP1
0000172a: SUB
0000172b: PUSH1 0x20
0000172d: ADD
0000172e: SWAP1
0000172f: KECCAK256
00001730: SLOAD
00001731: PUSH1 0xff
00001733: AND
00001734: DUP3
00001735: PUSH2 0x2156
00001738: JUMP
00001739: JUMPDEST
0000173a: PUSH1 0x06
0000173c: DUP1
0000173d: SLOAD
0000173e: SWAP2
0000173f: SWAP3
00001740: POP
00001741: PUSH1 0x00
00001743: PUSH2 0x174b
00001746: DUP4
00001747: PUSH2 0x3534
0000174a: JUMP
0000174b: JUMPDEST
0000174c: SWAP2
0000174d: SWAP1
0000174e: POP
0000174f: SSTORE
00001750: POP
00001751: DUP4
00001752: PUSH1 0x01
00001754: PUSH1 0x01
00001756: PUSH1 0xa0
00001758: SHL
00001759: SUB
0000175a: AND
0000175b: CALLER
0000175c: PUSH1 0x01
0000175e: PUSH1 0x01
00001760: PUSH1 0xa0
00001762: SHL
00001763: SUB
00001764: AND
00001765: PUSH32 0xbf731209a977f11dc3fa8bd77374876a472069de5536e449edf7780102c2574e
00001786: PUSH1 0x06
00001788: SLOAD
00001789: DUP7
0000178a: DUP7
0000178b: DUP7
0000178c: PUSH1 0x40
0000178e: MLOAD
0000178f: PUSH2 0x179b
00001792: SWAP5
00001793: SWAP4
00001794: SWAP3
00001795: SWAP2
00001796: SWAP1
00001797: PUSH2 0x326e
0000179a: JUMP
0000179b: JUMPDEST
0000179c: PUSH1 0x40
0000179e: MLOAD
0000179f: DUP1
000017a0: SWAP2
000017a1: SUB
000017a2: SWAP1
000017a3: LOG3
000017a4: POP
000017a5: POP
000017a6: POP
000017a7: POP
000017a8: JUMP
000017a9: JUMPDEST
000017aa: PUSH1 0x00
000017ac: SLOAD
000017ad: PUSH1 0x01
000017af: PUSH1 0x01
000017b1: PUSH1 0xa0
000017b3: SHL
000017b4: SUB
000017b5: AND
000017b6: CALLER
000017b7: EQ
000017b8: PUSH2 0x17d3
000017bb: JUMPI
000017bc: PUSH1 0x40
000017be: MLOAD
000017bf: PUSH3 0x461bcd
000017c3: PUSH1 0xe5
000017c5: SHL
000017c6: DUP2
000017c7: MSTORE
000017c8: PUSH1 0x04
000017ca: ADD
000017cb: PUSH2 0x021d
000017ce: SWAP1
000017cf: PUSH2 0x3215
000017d2: JUMP
000017d3: JUMPDEST
000017d4: PUSH1 0x01
000017d6: PUSH1 0x01
000017d8: PUSH1 0xa0
000017da: SHL
000017db: SUB
000017dc: DUP2
000017dd: AND
000017de: PUSH2 0x17f9
000017e1: JUMPI
000017e2: PUSH1 0x40
000017e4: MLOAD
000017e5: PUSH3 0x461bcd
000017e9: PUSH1 0xe5
000017eb: SHL
000017ec: DUP2
000017ed: MSTORE
000017ee: PUSH1 0x04
000017f0: ADD
000017f1: PUSH2 0x021d
000017f4: SWAP1
000017f5: PUSH2 0x3240
000017f8: JUMP
000017f9: JUMPDEST
000017fa: PUSH1 0x01
000017fc: SLOAD
000017fd: PUSH1 0x40
000017ff: MLOAD
00001800: PUSH1 0x01
00001802: PUSH1 0x01
00001804: PUSH1 0xa0
00001806: SHL
00001807: SUB
00001808: DUP1
00001809: DUP5
0000180a: AND
0000180b: SWAP3
0000180c: AND
0000180d: SWAP1
0000180e: PUSH32 0xa57582a20eb2f0c4265459d1d9ef9990b45fa7a768b2a47481ff82b5e0864d78
0000182f: SWAP1
00001830: PUSH1 0x00
00001832: SWAP1
00001833: LOG3
00001834: PUSH1 0x01
00001836: DUP1
00001837: SLOAD
00001838: PUSH1 0x01
0000183a: PUSH1 0x01
0000183c: PUSH1 0xa0
0000183e: SHL
0000183f: SUB
00001840: NOT
00001841: AND
00001842: PUSH1 0x01
00001844: PUSH1 0x01
00001846: PUSH1 0xa0
00001848: SHL
00001849: SUB
0000184a: SWAP3
0000184b: SWAP1
0000184c: SWAP3
0000184d: AND
0000184e: SWAP2
0000184f: SWAP1
00001850: SWAP2
00001851: OR
00001852: SWAP1
00001853: SSTORE
00001854: JUMP
00001855: JUMPDEST
00001856: PUSH1 0x02
00001858: SLOAD
00001859: PUSH1 0x01
0000185b: PUSH1 0xa0
0000185d: SHL
0000185e: SWAP1
0000185f: DIV
00001860: PUSH1 0xff
00001862: AND
00001863: PUSH2 0x18a5
00001866: JUMPI
00001867: PUSH1 0x40
00001869: MLOAD
0000186a: PUSH3 0x461bcd
0000186e: PUSH1 0xe5
00001870: SHL
00001871: DUP2
00001872: MSTORE
00001873: PUSH1 0x20
00001875: PUSH1 0x04
00001877: DUP3
00001878: ADD
00001879: MSTORE
0000187a: PUSH1 0x14
0000187c: PUSH1 0x24
0000187e: DUP3
0000187f: ADD
00001880: MSTORE
00001881: PUSH20 0x27bbb730b1363297b9bbb4ba31b432b216b7b333
00001896: PUSH1 0x61
00001898: SHL
00001899: PUSH1 0x44
0000189b: DUP3
0000189c: ADD
0000189d: MSTORE
0000189e: PUSH1 0x64
000018a0: ADD
000018a1: PUSH2 0x021d
000018a4: JUMP
000018a5: JUMPDEST
000018a6: DUP7
000018a7: CALLDATALOAD
000018a8: PUSH1 0x00
000018aa: SWAP1
000018ab: DUP2
000018ac: MSTORE
000018ad: PUSH1 0x08
000018af: PUSH1 0x20
000018b1: MSTORE
000018b2: PUSH1 0x40
000018b4: SWAP1
000018b5: KECCAK256
000018b6: SLOAD
000018b7: PUSH1 0xff
000018b9: AND
000018ba: ISZERO
000018bb: PUSH2 0x1906
000018be: JUMPI
000018bf: PUSH1 0x40
000018c1: MLOAD
000018c2: PUSH3 0x461bcd
000018c6: PUSH1 0xe5
000018c8: SHL
000018c9: DUP2
000018ca: MSTORE
000018cb: PUSH1 0x20
000018cd: PUSH1 0x04
000018cf: DUP3
000018d0: ADD
000018d1: MSTORE
000018d2: PUSH1 0x17
000018d4: PUSH1 0x24
000018d6: DUP3
000018d7: ADD
000018d8: MSTORE
000018d9: PUSH32 0x72656c6561736541737365742f6475706c696361746564000000000000000000
000018fa: PUSH1 0x44
000018fc: DUP3
000018fd: ADD
000018fe: MSTORE
000018ff: PUSH1 0x64
00001901: ADD
00001902: PUSH2 0x021d
00001905: JUMP
00001906: JUMPDEST
00001907: PUSH1 0x00
00001909: DUP8
0000190a: CALLDATALOAD
0000190b: PUSH2 0x191a
0000190e: PUSH1 0x60
00001910: DUP11
00001911: ADD
00001912: PUSH1 0x40
00001914: DUP12
00001915: ADD
00001916: PUSH2 0x2c37
00001919: JUMP
0000191a: JUMPDEST
0000191b: PUSH2 0x192a
0000191e: PUSH1 0x40
00001920: DUP12
00001921: ADD
00001922: PUSH1 0x20
00001924: DUP13
00001925: ADD
00001926: PUSH2 0x2c37
00001929: JUMP
0000192a: JUMPDEST
0000192b: PUSH2 0x1937
0000192e: PUSH1 0x60
00001930: DUP13
00001931: ADD
00001932: DUP13
00001933: PUSH2 0x32ad
00001936: JUMP
00001937: JUMPDEST
00001938: DUP13
00001939: PUSH1 0x80
0000193b: ADD
0000193c: CALLDATALOAD
0000193d: CHAINID
0000193e: PUSH1 0x40
00001940: MLOAD
00001941: PUSH1 0x20
00001943: ADD
00001944: PUSH2 0x1953
00001947: SWAP8
00001948: SWAP7
00001949: SWAP6
0000194a: SWAP5
0000194b: SWAP4
0000194c: SWAP3
0000194d: SWAP2
0000194e: SWAP1
0000194f: PUSH2 0x30fb
00001952: JUMP
00001953: JUMPDEST
00001954: PUSH1 0x40
00001956: MLOAD
00001957: PUSH1 0x20
00001959: DUP2
0000195a: DUP4
0000195b: SUB
0000195c: SUB
0000195d: DUP2
0000195e: MSTORE
0000195f: SWAP1
00001960: PUSH1 0x40
00001962: MSTORE
00001963: DUP1
00001964: MLOAD
00001965: SWAP1
00001966: PUSH1 0x20
00001968: ADD
00001969: KECCAK256
0000196a: SWAP1
0000196b: POP
0000196c: PUSH2 0x197a
0000196f: DUP2
00001970: DUP9
00001971: DUP9
00001972: DUP9
00001973: DUP9
00001974: DUP9
00001975: DUP9
00001976: PUSH2 0x1ac3
00001979: JUMP
0000197a: JUMPDEST
0000197b: PUSH2 0x19c6
0000197e: JUMPI
0000197f: PUSH1 0x40
00001981: MLOAD
00001982: PUSH3 0x461bcd
00001986: PUSH1 0xe5
00001988: SHL
00001989: DUP2
0000198a: MSTORE
0000198b: PUSH1 0x20
0000198d: PUSH1 0x04
0000198f: DUP3
00001990: ADD
00001991: MSTORE
00001992: PUSH1 0x1c
00001994: PUSH1 0x24
00001996: DUP3
00001997: ADD
00001998: MSTORE
00001999: PUSH32 0x72656c6561736541737365742f7369676e61747572652d6572726f7200000000
000019ba: PUSH1 0x44
000019bc: DUP3
000019bd: ADD
000019be: MSTORE
000019bf: PUSH1 0x64
000019c1: ADD
000019c2: PUSH2 0x021d
000019c5: JUMP
000019c6: JUMPDEST
000019c7: DUP8
000019c8: CALLDATALOAD
000019c9: PUSH1 0x00
000019cb: SWAP1
000019cc: DUP2
000019cd: MSTORE
000019ce: PUSH1 0x08
000019d0: PUSH1 0x20
000019d2: SWAP1
000019d3: DUP2
000019d4: MSTORE
000019d5: PUSH1 0x40
000019d7: SWAP2
000019d8: DUP3
000019d9: SWAP1
000019da: KECCAK256
000019db: DUP1
000019dc: SLOAD
000019dd: PUSH1 0xff
000019df: NOT
000019e0: AND
000019e1: PUSH1 0x01
000019e3: OR
000019e4: SWAP1
000019e5: SSTORE
000019e6: PUSH2 0x1a0f
000019e9: SWAP2
000019ea: PUSH2 0x19f8
000019ed: SWAP2
000019ee: SWAP1
000019ef: DUP12
000019f0: ADD
000019f1: SWAP1
000019f2: DUP12
000019f3: ADD
000019f4: PUSH2 0x2c37
000019f7: JUMP
000019f8: JUMPDEST
000019f9: PUSH2 0x1a05
000019fc: PUSH1 0x60
000019fe: DUP12
000019ff: ADD
00001a00: DUP12
00001a01: PUSH2 0x32ad
00001a04: JUMP
00001a05: JUMPDEST
00001a06: DUP12
00001a07: PUSH1 0x80
00001a09: ADD
00001a0a: CALLDATALOAD
00001a0b: PUSH2 0x219a
00001a0e: JUMP
00001a0f: JUMPDEST
00001a10: PUSH2 0x1a1f
00001a13: PUSH1 0x60
00001a15: DUP10
00001a16: ADD
00001a17: PUSH1 0x40
00001a19: DUP11
00001a1a: ADD
00001a1b: PUSH2 0x2c37
00001a1e: JUMP
00001a1f: JUMPDEST
00001a20: PUSH1 0x01
00001a22: PUSH1 0x01
00001a24: PUSH1 0xa0
00001a26: SHL
00001a27: SUB
00001a28: AND
00001a29: PUSH2 0x1a38
00001a2c: PUSH1 0x40
00001a2e: DUP11
00001a2f: ADD
00001a30: PUSH1 0x20
00001a32: DUP12
00001a33: ADD
00001a34: PUSH2 0x2c37
00001a37: JUMP
00001a38: JUMPDEST
00001a39: PUSH1 0x01
00001a3b: PUSH1 0x01
00001a3d: PUSH1 0xa0
00001a3f: SHL
00001a40: SUB
00001a41: AND
00001a42: PUSH32 0x230a2a04ea5ecfa8059eefd5264207e0bd9d322dffffc461d389956678868120
00001a63: DUP11
00001a64: CALLDATALOAD
00001a65: PUSH2 0x1a71
00001a68: PUSH1 0x60
00001a6a: DUP14
00001a6b: ADD
00001a6c: DUP14
00001a6d: PUSH2 0x32ad
00001a70: JUMP
00001a71: JUMPDEST
00001a72: DUP14
00001a73: PUSH1 0x80
00001a75: ADD
00001a76: CALLDATALOAD
00001a77: PUSH1 0x40
00001a79: MLOAD
00001a7a: PUSH2 0x1a86
00001a7d: SWAP5
00001a7e: SWAP4
00001a7f: SWAP3
00001a80: SWAP2
00001a81: SWAP1
00001a82: PUSH2 0x326e
00001a85: JUMP
00001a86: JUMPDEST
00001a87: PUSH1 0x40
00001a89: MLOAD
00001a8a: DUP1
00001a8b: SWAP2
00001a8c: SUB
00001a8d: SWAP1
00001a8e: LOG3
00001a8f: POP
00001a90: POP
00001a91: POP
00001a92: POP
00001a93: POP
00001a94: POP
00001a95: POP
00001a96: POP
00001a97: JUMP
00001a98: JUMPDEST
00001a99: PUSH1 0x0a
00001a9b: DUP2
00001a9c: DUP2
00001a9d: SLOAD
00001a9e: DUP2
00001a9f: LT
00001aa0: PUSH2 0x1aa8
00001aa3: JUMPI
00001aa4: PUSH1 0x00
00001aa6: DUP1
00001aa7: REVERT
00001aa8: JUMPDEST
00001aa9: SWAP1
00001aaa: PUSH1 0x00
00001aac: MSTORE
00001aad: PUSH1 0x20
00001aaf: PUSH1 0x00
00001ab1: KECCAK256
00001ab2: ADD
00001ab3: PUSH1 0x00
00001ab5: SWAP2
00001ab6: POP
00001ab7: SWAP1
00001ab8: POP
00001ab9: DUP1
00001aba: SLOAD
00001abb: PUSH2 0x1313
00001abe: SWAP1
00001abf: PUSH2 0x34f9
00001ac2: JUMP
00001ac3: JUMPDEST
00001ac4: PUSH1 0x00
00001ac6: DUP6
00001ac7: DUP5
00001ac8: EQ
00001ac9: ISZERO
00001aca: DUP1
00001acb: PUSH2 0x1ad4
00001ace: JUMPI
00001acf: POP
00001ad0: DUP4
00001ad1: DUP3
00001ad2: EQ
00001ad3: ISZERO
00001ad4: JUMPDEST
00001ad5: DUP1
00001ad6: PUSH2 0x1ae0
00001ad9: JUMPI
00001ada: POP
00001adb: PUSH1 0x05
00001add: SLOAD
00001ade: DUP7
00001adf: LT
00001ae0: JUMPDEST
00001ae1: ISZERO
00001ae2: PUSH2 0x1aed
00001ae5: JUMPI
00001ae6: POP
00001ae7: PUSH1 0x00
00001ae9: PUSH2 0x1d1e
00001aec: JUMP
00001aed: JUMPDEST
00001aee: PUSH1 0x00
00001af0: DUP1
00001af1: DUP8
00001af2: PUSH1 0x01
00001af4: PUSH1 0x01
00001af6: PUSH1 0x40
00001af8: SHL
00001af9: SUB
00001afa: DUP2
00001afb: GT
00001afc: ISZERO
00001afd: PUSH2 0x1b16
00001b00: JUMPI
00001b01: PUSH4 0x4e487b71
00001b06: PUSH1 0xe0
00001b08: SHL
00001b09: PUSH1 0x00
00001b0b: MSTORE
00001b0c: PUSH1 0x41
00001b0e: PUSH1 0x04
00001b10: MSTORE
00001b11: PUSH1 0x24
00001b13: PUSH1 0x00
00001b15: REVERT
00001b16: JUMPDEST
00001b17: PUSH1 0x40
00001b19: MLOAD
00001b1a: SWAP1
00001b1b: DUP1
00001b1c: DUP3
00001b1d: MSTORE
00001b1e: DUP1
00001b1f: PUSH1 0x20
00001b21: MUL
00001b22: PUSH1 0x20
00001b24: ADD
00001b25: DUP3
00001b26: ADD
00001b27: PUSH1 0x40
00001b29: MSTORE
00001b2a: DUP1
00001b2b: ISZERO
00001b2c: PUSH2 0x1b3f
00001b2f: JUMPI
00001b30: DUP2
00001b31: PUSH1 0x20
00001b33: ADD
00001b34: PUSH1 0x20
00001b36: DUP3
00001b37: MUL
00001b38: DUP1
00001b39: CALLDATASIZE
00001b3a: DUP4
00001b3b: CALLDATACOPY
00001b3c: ADD
00001b3d: SWAP1
00001b3e: POP
00001b3f: JUMPDEST
00001b40: POP
00001b41: SWAP1
00001b42: POP
00001b43: PUSH1 0x00
00001b45: JUMPDEST
00001b46: DUP9
00001b47: DUP2
00001b48: LT
00001b49: ISZERO
00001b4a: PUSH2 0x1d16
00001b4d: JUMPI
00001b4e: PUSH1 0x00
00001b50: PUSH2 0x1bdb
00001b53: DUP13
00001b54: DUP13
00001b55: DUP13
00001b56: DUP6
00001b57: DUP2
00001b58: DUP2
00001b59: LT
00001b5a: PUSH2 0x1b73
00001b5d: JUMPI
00001b5e: PUSH4 0x4e487b71
00001b63: PUSH1 0xe0
00001b65: SHL
00001b66: PUSH1 0x00
00001b68: MSTORE
00001b69: PUSH1 0x32
00001b6b: PUSH1 0x04
00001b6d: MSTORE
00001b6e: PUSH1 0x24
00001b70: PUSH1 0x00
00001b72: REVERT
00001b73: JUMPDEST
00001b74: SWAP1
00001b75: POP
00001b76: PUSH1 0x20
00001b78: MUL
00001b79: ADD
00001b7a: PUSH1 0x20
00001b7c: DUP2
00001b7d: ADD
00001b7e: SWAP1
00001b7f: PUSH2 0x1b88
00001b82: SWAP2
00001b83: SWAP1
00001b84: PUSH2 0x2ffc
00001b87: JUMP
00001b88: JUMPDEST
00001b89: DUP12
00001b8a: DUP12
00001b8b: DUP7
00001b8c: DUP2
00001b8d: DUP2
00001b8e: LT
00001b8f: PUSH2 0x1ba8
00001b92: JUMPI
00001b93: PUSH4 0x4e487b71
00001b98: PUSH1 0xe0
00001b9a: SHL
00001b9b: PUSH1 0x00
00001b9d: MSTORE
00001b9e: PUSH1 0x32
00001ba0: PUSH1 0x04
00001ba2: MSTORE
00001ba3: PUSH1 0x24
00001ba5: PUSH1 0x00
00001ba7: REVERT
00001ba8: JUMPDEST
00001ba9: SWAP1
00001baa: POP
00001bab: PUSH1 0x20
00001bad: MUL
00001bae: ADD
00001baf: CALLDATALOAD
00001bb0: DUP11
00001bb1: DUP11
00001bb2: DUP8
00001bb3: DUP2
00001bb4: DUP2
00001bb5: LT
00001bb6: PUSH2 0x1bcf
00001bb9: JUMPI
00001bba: PUSH4 0x4e487b71
00001bbf: PUSH1 0xe0
00001bc1: SHL
00001bc2: PUSH1 0x00
00001bc4: MSTORE
00001bc5: PUSH1 0x32
00001bc7: PUSH1 0x04
00001bc9: MSTORE
00001bca: PUSH1 0x24
00001bcc: PUSH1 0x00
00001bce: REVERT
00001bcf: JUMPDEST
00001bd0: SWAP1
00001bd1: POP
00001bd2: PUSH1 0x20
00001bd4: MUL
00001bd5: ADD
00001bd6: CALLDATALOAD
00001bd7: PUSH2 0x23c0
00001bda: JUMP
00001bdb: JUMPDEST
00001bdc: SWAP1
00001bdd: POP
00001bde: PUSH2 0x1be6
00001be1: DUP2
00001be2: PUSH2 0x1f8d
00001be5: JUMP
00001be6: JUMPDEST
00001be7: PUSH2 0x1c32
00001bea: JUMPI
00001beb: PUSH1 0x40
00001bed: MLOAD
00001bee: PUSH3 0x461bcd
00001bf2: PUSH1 0xe5
00001bf4: SHL
00001bf5: DUP2
00001bf6: MSTORE
00001bf7: PUSH1 0x20
00001bf9: PUSH1 0x04
00001bfb: DUP3
00001bfc: ADD
00001bfd: MSTORE
00001bfe: PUSH1 0x1c
00001c00: PUSH1 0x24
00001c02: DUP3
00001c03: ADD
00001c04: MSTORE
00001c05: PUSH32 0x4d756c74695369676e436f72652f696e76616c69642d7369676e657200000000
00001c26: PUSH1 0x44
00001c28: DUP3
00001c29: ADD
00001c2a: MSTORE
00001c2b: PUSH1 0x64
00001c2d: ADD
00001c2e: PUSH2 0x021d
00001c31: JUMP
00001c32: JUMPDEST
00001c33: PUSH1 0x00
00001c35: JUMPDEST
00001c36: DUP3
00001c37: DUP2
00001c38: LT
00001c39: ISZERO
00001c3a: PUSH2 0x1c9e
00001c3d: JUMPI
00001c3e: DUP2
00001c3f: PUSH1 0x01
00001c41: PUSH1 0x01
00001c43: PUSH1 0xa0
00001c45: SHL
00001c46: SUB
00001c47: AND
00001c48: DUP5
00001c49: DUP3
00001c4a: DUP2
00001c4b: MLOAD
00001c4c: DUP2
00001c4d: LT
00001c4e: PUSH2 0x1c67
00001c51: JUMPI
00001c52: PUSH4 0x4e487b71
00001c57: PUSH1 0xe0
00001c59: SHL
00001c5a: PUSH1 0x00
00001c5c: MSTORE
00001c5d: PUSH1 0x32
00001c5f: PUSH1 0x04
00001c61: MSTORE
00001c62: PUSH1 0x24
00001c64: PUSH1 0x00
00001c66: REVERT
00001c67: JUMPDEST
00001c68: PUSH1 0x20
00001c6a: MUL
00001c6b: PUSH1 0x20
00001c6d: ADD
00001c6e: ADD
00001c6f: MLOAD
00001c70: PUSH1 0x01
00001c72: PUSH1 0x01
00001c74: PUSH1 0xa0
00001c76: SHL
00001c77: SUB
00001c78: AND
00001c79: EQ
00001c7a: ISZERO
00001c7b: PUSH2 0x1c8c
00001c7e: JUMPI
00001c7f: PUSH1 0x00
00001c81: SWAP6
00001c82: POP
00001c83: POP
00001c84: POP
00001c85: POP
00001c86: POP
00001c87: POP
00001c88: PUSH2 0x1d1e
00001c8b: JUMP
00001c8c: JUMPDEST
00001c8d: DUP1
00001c8e: PUSH2 0x1c96
00001c91: DUP2
00001c92: PUSH2 0x3534
00001c95: JUMP
00001c96: JUMPDEST
00001c97: SWAP2
00001c98: POP
00001c99: POP
00001c9a: PUSH2 0x1c35
00001c9d: JUMP
00001c9e: JUMPDEST
00001c9f: POP
00001ca0: DUP4
00001ca1: PUSH2 0x1ca9
00001ca4: DUP2
00001ca5: PUSH2 0x3534
00001ca8: JUMP
00001ca9: JUMPDEST
00001caa: SWAP5
00001cab: POP
00001cac: POP
00001cad: DUP1
00001cae: DUP4
00001caf: DUP4
00001cb0: DUP2
00001cb1: MLOAD
00001cb2: DUP2
00001cb3: LT
00001cb4: PUSH2 0x1ccd
00001cb7: JUMPI
00001cb8: PUSH4 0x4e487b71
00001cbd: PUSH1 0xe0
00001cbf: SHL
00001cc0: PUSH1 0x00
00001cc2: MSTORE
00001cc3: PUSH1 0x32
00001cc5: PUSH1 0x04
00001cc7: MSTORE
00001cc8: PUSH1 0x24
00001cca: PUSH1 0x00
00001ccc: REVERT
00001ccd: JUMPDEST
00001cce: PUSH1 0x20
00001cd0: MUL
00001cd1: PUSH1 0x20
00001cd3: ADD
00001cd4: ADD
00001cd5: SWAP1
00001cd6: PUSH1 0x01
00001cd8: PUSH1 0x01
00001cda: PUSH1 0xa0
00001cdc: SHL
00001cdd: SUB
00001cde: AND
00001cdf: SWAP1
00001ce0: DUP2
00001ce1: PUSH1 0x01
00001ce3: PUSH1 0x01
00001ce5: PUSH1 0xa0
00001ce7: SHL
00001ce8: SUB
00001ce9: AND
00001cea: DUP2
00001ceb: MSTORE
00001cec: POP
00001ced: POP
00001cee: PUSH1 0x05
00001cf0: SLOAD
00001cf1: DUP5
00001cf2: LT
00001cf3: PUSH2 0x1d03
00001cf6: JUMPI
00001cf7: PUSH1 0x01
00001cf9: SWAP5
00001cfa: POP
00001cfb: POP
00001cfc: POP
00001cfd: POP
00001cfe: POP
00001cff: PUSH2 0x1d1e
00001d02: JUMP
00001d03: JUMPDEST
00001d04: POP
00001d05: DUP1
00001d06: PUSH2 0x1d0e
00001d09: DUP2
00001d0a: PUSH2 0x3534
00001d0d: JUMP
00001d0e: JUMPDEST
00001d0f: SWAP2
00001d10: POP
00001d11: POP
00001d12: PUSH2 0x1b45
00001d15: JUMP
00001d16: JUMPDEST
00001d17: POP
00001d18: PUSH1 0x00
00001d1a: SWAP3
00001d1b: POP
00001d1c: POP
00001d1d: POP
00001d1e: JUMPDEST
00001d1f: SWAP8
00001d20: SWAP7
00001d21: POP
00001d22: POP
00001d23: POP
00001d24: POP
00001d25: POP
00001d26: POP
00001d27: POP
00001d28: JUMP
00001d29: JUMPDEST
00001d2a: PUSH1 0x04
00001d2c: DUP2
00001d2d: DUP2
00001d2e: SLOAD
00001d2f: DUP2
00001d30: LT
00001d31: PUSH2 0x1d39
00001d34: JUMPI
00001d35: PUSH1 0x00
00001d37: DUP1
00001d38: REVERT
00001d39: JUMPDEST
00001d3a: PUSH1 0x00
00001d3c: SWAP2
00001d3d: DUP3
00001d3e: MSTORE
00001d3f: PUSH1 0x20
00001d41: SWAP1
00001d42: SWAP2
00001d43: KECCAK256
00001d44: ADD
00001d45: SLOAD
00001d46: PUSH1 0x01
00001d48: PUSH1 0x01
00001d4a: PUSH1 0xa0
00001d4c: SHL
00001d4d: SUB
00001d4e: AND
00001d4f: SWAP1
00001d50: POP
00001d51: DUP2
00001d52: JUMP
00001d53: JUMPDEST
00001d54: PUSH1 0x00
00001d56: SLOAD
00001d57: PUSH1 0x01
00001d59: PUSH1 0x01
00001d5b: PUSH1 0xa0
00001d5d: SHL
00001d5e: SUB
00001d5f: AND
00001d60: CALLER
00001d61: EQ
00001d62: PUSH2 0x1d7d
00001d65: JUMPI
00001d66: PUSH1 0x40
00001d68: MLOAD
00001d69: PUSH3 0x461bcd
00001d6d: PUSH1 0xe5
00001d6f: SHL
00001d70: DUP2
00001d71: MSTORE
00001d72: PUSH1 0x04
00001d74: ADD
00001d75: PUSH2 0x021d
00001d78: SWAP1
00001d79: PUSH2 0x3215
00001d7c: JUMP
00001d7d: JUMPDEST
00001d7e: PUSH1 0x01
00001d80: PUSH1 0x01
00001d82: PUSH1 0xa0
00001d84: SHL
00001d85: SUB
00001d86: DUP2
00001d87: AND
00001d88: PUSH2 0x1da3
00001d8b: JUMPI
00001d8c: PUSH1 0x40
00001d8e: MLOAD
00001d8f: PUSH3 0x461bcd
00001d93: PUSH1 0xe5
00001d95: SHL
00001d96: DUP2
00001d97: MSTORE
00001d98: PUSH1 0x04
00001d9a: ADD
00001d9b: PUSH2 0x021d
00001d9e: SWAP1
00001d9f: PUSH2 0x3240
00001da2: JUMP
00001da3: JUMPDEST
00001da4: PUSH1 0x00
00001da6: DUP1
00001da7: SLOAD
00001da8: PUSH1 0x40
00001daa: MLOAD
00001dab: PUSH1 0x01
00001dad: PUSH1 0x01
00001daf: PUSH1 0xa0
00001db1: SHL
00001db2: SUB
00001db3: DUP1
00001db4: DUP6
00001db5: AND
00001db6: SWAP4
00001db7: SWAP3
00001db8: AND
00001db9: SWAP2
00001dba: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001ddb: SWAP2
00001ddc: LOG3
00001ddd: PUSH1 0x00
00001ddf: DUP1
00001de0: SLOAD
00001de1: PUSH1 0x01
00001de3: PUSH1 0x01
00001de5: PUSH1 0xa0
00001de7: SHL
00001de8: SUB
00001de9: NOT
00001dea: AND
00001deb: PUSH1 0x01
00001ded: PUSH1 0x01
00001def: PUSH1 0xa0
00001df1: SHL
00001df2: SUB
00001df3: SWAP3
00001df4: SWAP1
00001df5: SWAP3
00001df6: AND
00001df7: SWAP2
00001df8: SWAP1
00001df9: SWAP2
00001dfa: OR
00001dfb: SWAP1
00001dfc: SSTORE
00001dfd: JUMP
00001dfe: JUMPDEST
00001dff: PUSH1 0x00
00001e01: PUSH2 0x1e0a
00001e04: PUSH1 0x01
00001e06: PUSH2 0x246e
00001e09: JUMP
00001e0a: JUMPDEST
00001e0b: SWAP1
00001e0c: POP
00001e0d: DUP1
00001e0e: ISZERO
00001e0f: PUSH2 0x1e22
00001e12: JUMPI
00001e13: PUSH1 0x07
00001e15: DUP1
00001e16: SLOAD
00001e17: PUSH2 0xff00
00001e1a: NOT
00001e1b: AND
00001e1c: PUSH2 0x0100
00001e1f: OR
00001e20: SWAP1
00001e21: SSTORE
00001e22: JUMPDEST
00001e23: PUSH2 0x1e2a
00001e26: PUSH2 0x24f5
00001e29: JUMP
00001e2a: JUMPDEST
00001e2b: PUSH2 0x1e36
00001e2e: PUSH1 0x09
00001e30: DUP5
00001e31: DUP5
00001e32: PUSH2 0x2b00
00001e35: JUMP
00001e36: JUMPDEST
00001e37: POP
00001e38: PUSH1 0x12
00001e3a: PUSH1 0x0c
00001e3c: PUSH1 0x09
00001e3e: PUSH1 0x40
00001e40: MLOAD
00001e41: PUSH2 0x1e4a
00001e44: SWAP2
00001e45: SWAP1
00001e46: PUSH2 0x3060
00001e49: JUMP
00001e4a: JUMPDEST
00001e4b: SWAP1
00001e4c: DUP2
00001e4d: MSTORE
00001e4e: PUSH1 0x40
00001e50: MLOAD
00001e51: SWAP1
00001e52: DUP2
00001e53: SWAP1
00001e54: SUB
00001e55: PUSH1 0x20
00001e57: ADD
00001e58: SWAP1
00001e59: KECCAK256
00001e5a: DUP1
00001e5b: SLOAD
00001e5c: PUSH1 0xff
00001e5e: SWAP3
00001e5f: SWAP1
00001e60: SWAP3
00001e61: AND
00001e62: PUSH1 0xff
00001e64: NOT
00001e65: SWAP1
00001e66: SWAP3
00001e67: AND
00001e68: SWAP2
00001e69: SWAP1
00001e6a: SWAP2
00001e6b: OR
00001e6c: SWAP1
00001e6d: SSTORE
00001e6e: DUP1
00001e6f: ISZERO
00001e70: PUSH2 0x1eb3
00001e73: JUMPI
00001e74: PUSH1 0x07
00001e76: DUP1
00001e77: SLOAD
00001e78: PUSH2 0xff00
00001e7b: NOT
00001e7c: AND
00001e7d: SWAP1
00001e7e: SSTORE
00001e7f: PUSH1 0x40
00001e81: MLOAD
00001e82: PUSH1 0x01
00001e84: DUP2
00001e85: MSTORE
00001e86: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498
00001ea7: SWAP1
00001ea8: PUSH1 0x20
00001eaa: ADD
00001eab: PUSH1 0x40
00001ead: MLOAD
00001eae: DUP1
00001eaf: SWAP2
00001eb0: SUB
00001eb1: SWAP1
00001eb2: LOG1
00001eb3: JUMPDEST
00001eb4: POP
00001eb5: POP
00001eb6: POP
00001eb7: JUMP
00001eb8: JUMPDEST
00001eb9: PUSH1 0x00
00001ebb: SLOAD
00001ebc: PUSH1 0x01
00001ebe: PUSH1 0x01
00001ec0: PUSH1 0xa0
00001ec2: SHL
00001ec3: SUB
00001ec4: AND
00001ec5: CALLER
00001ec6: EQ
00001ec7: PUSH2 0x1ee2
00001eca: JUMPI
00001ecb: PUSH1 0x40
00001ecd: MLOAD
00001ece: PUSH3 0x461bcd
00001ed2: PUSH1 0xe5
00001ed4: SHL
00001ed5: DUP2
00001ed6: MSTORE
00001ed7: PUSH1 0x04
00001ed9: ADD
00001eda: PUSH2 0x021d
00001edd: SWAP1
00001ede: PUSH2 0x3215
00001ee1: JUMP
00001ee2: JUMPDEST
00001ee3: PUSH1 0x04
00001ee5: SLOAD
00001ee6: PUSH2 0x1ef1
00001ee9: SWAP1
00001eea: PUSH1 0x02
00001eec: SWAP1
00001eed: PUSH2 0x3360
00001ef0: JUMP
00001ef1: JUMPDEST
00001ef2: DUP2
00001ef3: PUSH1 0xff
00001ef5: AND
00001ef6: GT
00001ef7: DUP1
00001ef8: ISZERO
00001ef9: PUSH2 0x1f07
00001efc: JUMPI
00001efd: POP
00001efe: PUSH1 0x04
00001f00: SLOAD
00001f01: PUSH1 0xff
00001f03: DUP3
00001f04: AND
00001f05: GT
00001f06: ISZERO
00001f07: JUMPDEST
00001f08: PUSH2 0x1f53
00001f0b: JUMPI
00001f0c: PUSH1 0x40
00001f0e: MLOAD
00001f0f: PUSH3 0x461bcd
00001f13: PUSH1 0xe5
00001f15: SHL
00001f16: DUP2
00001f17: MSTORE
00001f18: PUSH1 0x20
00001f1a: PUSH1 0x04
00001f1c: DUP3
00001f1d: ADD
00001f1e: MSTORE
00001f1f: PUSH1 0x1e
00001f21: PUSH1 0x24
00001f23: DUP3
00001f24: ADD
00001f25: MSTORE
00001f26: PUSH32 0x4d756c74695369676e436f72652f72657175697265642d696e76616c69640000
00001f47: PUSH1 0x44
00001f49: DUP3
00001f4a: ADD
00001f4b: MSTORE
00001f4c: PUSH1 0x64
00001f4e: ADD
00001f4f: PUSH2 0x021d
00001f52: JUMP
00001f53: JUMPDEST
00001f54: PUSH1 0x05
00001f56: SLOAD
00001f57: PUSH1 0x40
00001f59: MLOAD
00001f5a: PUSH1 0xff
00001f5c: DUP4
00001f5d: AND
00001f5e: SWAP2
00001f5f: SWAP1
00001f60: PUSH32 0xfb3001e0843edb719860511052e4bdaf1475810dbadedb6eb4443937a25e64d9
00001f81: SWAP1
00001f82: PUSH1 0x00
00001f84: SWAP1
00001f85: LOG3
00001f86: PUSH1 0xff
00001f88: AND
00001f89: PUSH1 0x05
00001f8b: SSTORE
00001f8c: JUMP
00001f8d: JUMPDEST
00001f8e: PUSH1 0x01
00001f90: PUSH1 0x01
00001f92: PUSH1 0xa0
00001f94: SHL
00001f95: SUB
00001f96: DUP2
00001f97: AND
00001f98: PUSH1 0x00
00001f9a: SWAP1
00001f9b: DUP2
00001f9c: MSTORE
00001f9d: PUSH1 0x03
00001f9f: PUSH1 0x20
00001fa1: MSTORE
00001fa2: PUSH1 0x40
00001fa4: SWAP1
00001fa5: KECCAK256
00001fa6: SLOAD
00001fa7: PUSH1 0xff
00001fa9: AND
00001faa: JUMPDEST
00001fab: SWAP2
00001fac: SWAP1
00001fad: POP
00001fae: JUMP
00001faf: JUMPDEST
00001fb0: PUSH1 0x01
00001fb2: SLOAD
00001fb3: PUSH1 0x01
00001fb5: PUSH1 0x01
00001fb7: PUSH1 0xa0
00001fb9: SHL
00001fba: SUB
00001fbb: AND
00001fbc: CALLER
00001fbd: EQ
00001fbe: PUSH2 0x1ffd
00001fc1: JUMPI
00001fc2: PUSH1 0x40
00001fc4: MLOAD
00001fc5: PUSH3 0x461bcd
00001fc9: PUSH1 0xe5
00001fcb: SHL
00001fcc: DUP2
00001fcd: MSTORE
00001fce: PUSH1 0x20
00001fd0: PUSH1 0x04
00001fd2: DUP3
00001fd3: ADD
00001fd4: MSTORE
00001fd5: PUSH1 0x11
00001fd7: PUSH1 0x24
00001fd9: DUP3
00001fda: ADD
00001fdb: MSTORE
00001fdc: PUSH17 0x27bbb730b1363297a737ba1030b236b4b7
00001fee: PUSH1 0x79
00001ff0: SHL
00001ff1: PUSH1 0x44
00001ff3: DUP3
00001ff4: ADD
00001ff5: MSTORE
00001ff6: PUSH1 0x64
00001ff8: ADD
00001ff9: PUSH2 0x021d
00001ffc: JUMP
00001ffd: JUMPDEST
00001ffe: PUSH1 0x02
00002000: SLOAD
00002001: PUSH1 0xff
00002003: PUSH1 0x01
00002005: PUSH1 0xa0
00002007: SHL
00002008: SWAP1
00002009: SWAP2
0000200a: DIV
0000200b: AND
0000200c: ISZERO
0000200d: ISZERO
0000200e: DUP2
0000200f: ISZERO
00002010: ISZERO
00002011: EQ
00002012: PUSH2 0x206a
00002015: JUMPI
00002016: PUSH1 0x02
00002018: SLOAD
00002019: PUSH1 0x40
0000201b: MLOAD
0000201c: DUP3
0000201d: ISZERO
0000201e: ISZERO
0000201f: SWAP2
00002020: PUSH1 0x01
00002022: PUSH1 0xa0
00002024: SHL
00002025: SWAP1
00002026: DIV
00002027: PUSH1 0xff
00002029: AND
0000202a: ISZERO
0000202b: ISZERO
0000202c: SWAP1
0000202d: PUSH32 0x0d33af2381f036762445cec5d4a21f68c50c4236845f915b6e15419695c64367
0000204e: SWAP1
0000204f: PUSH1 0x00
00002051: SWAP1
00002052: LOG3
00002053: PUSH1 0x02
00002055: DUP1
00002056: SLOAD
00002057: PUSH1 0xff
00002059: PUSH1 0xa0
0000205b: SHL
0000205c: NOT
0000205d: AND
0000205e: PUSH1 0x01
00002060: PUSH1 0xa0
00002062: SHL
00002063: DUP4
00002064: ISZERO
00002065: ISZERO
00002066: MUL
00002067: OR
00002068: SWAP1
00002069: SSTORE
0000206a: JUMPDEST
0000206b: POP
0000206c: JUMP
0000206d: JUMPDEST
0000206e: PUSH1 0x00
00002070: DUP2
00002071: PUSH1 0x40
00002073: MLOAD
00002074: PUSH1 0x20
00002076: ADD
00002077: PUSH2 0x2080
0000207a: SWAP2
0000207b: SWAP1
0000207c: PUSH2 0x3034
0000207f: JUMP
00002080: JUMPDEST
00002081: PUSH1 0x40
00002083: MLOAD
00002084: PUSH1 0x20
00002086: DUP2
00002087: DUP4
00002088: SUB
00002089: SUB
0000208a: DUP2
0000208b: MSTORE
0000208c: SWAP1
0000208d: PUSH1 0x40
0000208f: MSTORE
00002090: DUP1
00002091: MLOAD
00002092: SWAP1
00002093: PUSH1 0x20
00002095: ADD
00002096: KECCAK256
00002097: DUP4
00002098: PUSH1 0x40
0000209a: MLOAD
0000209b: PUSH1 0x20
0000209d: ADD
0000209e: PUSH2 0x20a7
000020a1: SWAP2
000020a2: SWAP1
000020a3: PUSH2 0x3034
000020a6: JUMP
000020a7: JUMPDEST
000020a8: PUSH1 0x40
000020aa: MLOAD
000020ab: PUSH1 0x20
000020ad: DUP2
000020ae: DUP4
000020af: SUB
000020b0: SUB
000020b1: DUP2
000020b2: MSTORE
000020b3: SWAP1
000020b4: PUSH1 0x40
000020b6: MSTORE
000020b7: DUP1
000020b8: MLOAD
000020b9: SWAP1
000020ba: PUSH1 0x20
000020bc: ADD
000020bd: KECCAK256
000020be: EQ
000020bf: SWAP1
000020c0: POP
000020c1: SWAP3
000020c2: SWAP2
000020c3: POP
000020c4: POP
000020c5: JUMP
000020c6: JUMPDEST
000020c7: PUSH1 0x00
000020c9: DUP1
000020ca: PUSH2 0x20d2
000020cd: DUP4
000020ce: PUSH2 0x2504
000020d1: JUMP
000020d2: JUMPDEST
000020d3: SWAP2
000020d4: POP
000020d5: SWAP2
000020d6: POP
000020d7: DUP1
000020d8: ISZERO
000020d9: PUSH2 0x1eb3
000020dc: JUMPI
000020dd: PUSH2 0x1eb3
000020e0: DUP3
000020e1: PUSH2 0x2578
000020e4: JUMP
000020e5: JUMPDEST
000020e6: PUSH1 0x40
000020e8: MLOAD
000020e9: PUSH1 0x01
000020eb: PUSH1 0x01
000020ed: PUSH1 0xa0
000020ef: SHL
000020f0: SUB
000020f1: DUP1
000020f2: DUP6
000020f3: AND
000020f4: PUSH1 0x24
000020f6: DUP4
000020f7: ADD
000020f8: MSTORE
000020f9: DUP4
000020fa: AND
000020fb: PUSH1 0x44
000020fd: DUP3
000020fe: ADD
000020ff: MSTORE
00002100: PUSH1 0x64
00002102: DUP2
00002103: ADD
00002104: DUP3
00002105: SWAP1
00002106: MSTORE
00002107: PUSH2 0x2150
0000210a: SWAP1
0000210b: DUP6
0000210c: SWAP1
0000210d: PUSH4 0x23b872dd
00002112: PUSH1 0xe0
00002114: SHL
00002115: SWAP1
00002116: PUSH1 0x84
00002118: ADD
00002119: JUMPDEST
0000211a: PUSH1 0x40
0000211c: DUP1
0000211d: MLOAD
0000211e: PUSH1 0x1f
00002120: NOT
00002121: DUP2
00002122: DUP5
00002123: SUB
00002124: ADD
00002125: DUP2
00002126: MSTORE
00002127: SWAP2
00002128: SWAP1
00002129: MSTORE
0000212a: PUSH1 0x20
0000212c: DUP2
0000212d: ADD
0000212e: DUP1
0000212f: MLOAD
00002130: PUSH1 0x01
00002132: PUSH1 0x01
00002134: PUSH1 0xe0
00002136: SHL
00002137: SUB
00002138: AND
00002139: PUSH1 0x01
0000213b: PUSH1 0x01
0000213d: PUSH1 0xe0
0000213f: SHL
00002140: SUB
00002141: NOT
00002142: SWAP1
00002143: SWAP4
00002144: AND
00002145: SWAP3
00002146: SWAP1
00002147: SWAP3
00002148: OR
00002149: SWAP1
0000214a: SWAP2
0000214b: MSTORE
0000214c: PUSH2 0x267d
0000214f: JUMP
00002150: JUMPDEST
00002151: POP
00002152: POP
00002153: POP
00002154: POP
00002155: JUMP
00002156: JUMPDEST
00002157: PUSH1 0x00
00002159: PUSH1 0x12
0000215b: PUSH1 0xff
0000215d: DUP5
0000215e: AND
0000215f: EQ
00002160: ISZERO
00002161: PUSH2 0x216b
00002164: JUMPI
00002165: POP
00002166: DUP1
00002167: PUSH2 0x0854
0000216a: JUMP
0000216b: JUMPDEST
0000216c: PUSH2 0x2193
0000216f: PUSH2 0x2183
00002172: DUP4
00002173: PUSH2 0x217e
00002176: PUSH1 0x12
00002178: PUSH1 0x0a
0000217a: PUSH2 0x33c6
0000217d: JUMP
0000217e: JUMPDEST
0000217f: PUSH2 0x273c
00002182: JUMP
00002183: JUMPDEST
00002184: PUSH2 0x218e
00002187: DUP6
00002188: PUSH1 0x0a
0000218a: PUSH2 0x33c6
0000218d: JUMP
0000218e: JUMPDEST
0000218f: PUSH2 0x27bb
00002192: JUMP
00002193: JUMPDEST
00002194: SWAP4
00002195: SWAP3
00002196: POP
00002197: POP
00002198: POP
00002199: JUMP
0000219a: JUMPDEST
0000219b: PUSH2 0x21c8
0000219e: PUSH1 0x0c
000021a0: DUP5
000021a1: DUP5
000021a2: PUSH1 0x40
000021a4: MLOAD
000021a5: PUSH2 0x21af
000021a8: SWAP3
000021a9: SWAP2
000021aa: SWAP1
000021ab: PUSH2 0x3050
000021ae: JUMP
000021af: JUMPDEST
000021b0: SWAP1
000021b1: DUP2
000021b2: MSTORE
000021b3: PUSH1 0x40
000021b5: MLOAD
000021b6: SWAP1
000021b7: DUP2
000021b8: SWAP1
000021b9: SUB
000021ba: PUSH1 0x20
000021bc: ADD
000021bd: SWAP1
000021be: KECCAK256
000021bf: SLOAD
000021c0: PUSH1 0xff
000021c2: AND
000021c3: DUP3
000021c4: PUSH2 0x2816
000021c7: JUMP
000021c8: JUMPDEST
000021c9: SWAP1
000021ca: POP
000021cb: PUSH2 0x21da
000021ce: PUSH1 0x09
000021d0: DUP1
000021d1: SLOAD
000021d2: PUSH2 0x06dd
000021d5: SWAP1
000021d6: PUSH2 0x34f9
000021d9: JUMP
000021da: JUMPDEST
000021db: ISZERO
000021dc: PUSH2 0x226b
000021df: JUMPI
000021e0: DUP1
000021e1: SELFBALANCE
000021e2: LT
000021e3: ISZERO
000021e4: PUSH2 0x222f
000021e7: JUMPI
000021e8: PUSH1 0x40
000021ea: MLOAD
000021eb: PUSH3 0x461bcd
000021ef: PUSH1 0xe5
000021f1: SHL
000021f2: DUP2
000021f3: MSTORE
000021f4: PUSH1 0x20
000021f6: PUSH1 0x04
000021f8: DUP3
000021f9: ADD
000021fa: MSTORE
000021fb: PUSH1 0x1c
000021fd: PUSH1 0x24
000021ff: DUP3
00002200: ADD
00002201: MSTORE
00002202: PUSH32 0x72656c656173652f696e73756666696369656e742d62616c616e636500000000
00002223: PUSH1 0x44
00002225: DUP3
00002226: ADD
00002227: MSTORE
00002228: PUSH1 0x64
0000222a: ADD
0000222b: PUSH2 0x021d
0000222e: JUMP
0000222f: JUMPDEST
00002230: PUSH1 0x40
00002232: MLOAD
00002233: PUSH1 0x01
00002235: PUSH1 0x01
00002237: PUSH1 0xa0
00002239: SHL
0000223a: SUB
0000223b: DUP6
0000223c: AND
0000223d: SWAP1
0000223e: DUP3
0000223f: ISZERO
00002240: PUSH2 0x08fc
00002243: MUL
00002244: SWAP1
00002245: DUP4
00002246: SWAP1
00002247: PUSH1 0x00
00002249: DUP2
0000224a: DUP2
0000224b: DUP2
0000224c: DUP6
0000224d: DUP9
0000224e: DUP9
0000224f: CALL
00002250: SWAP4
00002251: POP
00002252: POP
00002253: POP
00002254: POP
00002255: ISZERO
00002256: DUP1
00002257: ISZERO
00002258: PUSH2 0x2265
0000225b: JUMPI
0000225c: RETURNDATASIZE
0000225d: PUSH1 0x00
0000225f: DUP1
00002260: RETURNDATACOPY
00002261: RETURNDATASIZE
00002262: PUSH1 0x00
00002264: REVERT
00002265: JUMPDEST
00002266: POP
00002267: PUSH2 0x2150
0000226a: JUMP
0000226b: JUMPDEST
0000226c: PUSH1 0x00
0000226e: PUSH1 0x0b
00002270: DUP5
00002271: DUP5
00002272: PUSH1 0x40
00002274: MLOAD
00002275: PUSH2 0x227f
00002278: SWAP3
00002279: SWAP2
0000227a: SWAP1
0000227b: PUSH2 0x3050
0000227e: JUMP
0000227f: JUMPDEST
00002280: SWAP1
00002281: DUP2
00002282: MSTORE
00002283: PUSH1 0x40
00002285: MLOAD
00002286: SWAP1
00002287: DUP2
00002288: SWAP1
00002289: SUB
0000228a: PUSH1 0x20
0000228c: ADD
0000228d: SWAP1
0000228e: KECCAK256
0000228f: SLOAD
00002290: PUSH1 0x01
00002292: PUSH1 0x01
00002294: PUSH1 0xa0
00002296: SHL
00002297: SUB
00002298: AND
00002299: SWAP1
0000229a: POP
0000229b: DUP1
0000229c: PUSH2 0x22e7
0000229f: JUMPI
000022a0: PUSH1 0x40
000022a2: MLOAD
000022a3: PUSH3 0x461bcd
000022a7: PUSH1 0xe5
000022a9: SHL
000022aa: DUP2
000022ab: MSTORE
000022ac: PUSH1 0x20
000022ae: PUSH1 0x04
000022b0: DUP3
000022b1: ADD
000022b2: MSTORE
000022b3: PUSH1 0x1d
000022b5: PUSH1 0x24
000022b7: DUP3
000022b8: ADD
000022b9: MSTORE
000022ba: PUSH32 0x72656c656173652f73796d626f6c2d6e6f742d72656769737465726564000000
000022db: PUSH1 0x44
000022dd: DUP3
000022de: ADD
000022df: MSTORE
000022e0: PUSH1 0x64
000022e2: ADD
000022e3: PUSH2 0x021d
000022e6: JUMP
000022e7: JUMPDEST
000022e8: PUSH1 0x40
000022ea: MLOAD
000022eb: PUSH4 0x70a08231
000022f0: PUSH1 0xe0
000022f2: SHL
000022f3: DUP2
000022f4: MSTORE
000022f5: ADDRESS
000022f6: PUSH1 0x04
000022f8: DUP3
000022f9: ADD
000022fa: MSTORE
000022fb: DUP3
000022fc: SWAP1
000022fd: PUSH1 0x01
000022ff: PUSH1 0x01
00002301: PUSH1 0xa0
00002303: SHL
00002304: SUB
00002305: DUP4
00002306: AND
00002307: SWAP1
00002308: PUSH4 0x70a08231
0000230d: SWAP1
0000230e: PUSH1 0x24
00002310: ADD
00002311: PUSH1 0x20
00002313: PUSH1 0x40
00002315: MLOAD
00002316: DUP1
00002317: DUP4
00002318: SUB
00002319: DUP2
0000231a: DUP7
0000231b: DUP1
0000231c: EXTCODESIZE
0000231d: ISZERO
0000231e: DUP1
0000231f: ISZERO
00002320: PUSH2 0x2328
00002323: JUMPI
00002324: PUSH1 0x00
00002326: DUP1
00002327: REVERT
00002328: JUMPDEST
00002329: POP
0000232a: GAS
0000232b: STATICCALL
0000232c: ISZERO
0000232d: DUP1
0000232e: ISZERO
0000232f: PUSH2 0x233c
00002332: JUMPI
00002333: RETURNDATASIZE
00002334: PUSH1 0x00
00002336: DUP1
00002337: RETURNDATACOPY
00002338: RETURNDATASIZE
00002339: PUSH1 0x00
0000233b: REVERT
0000233c: JUMPDEST
0000233d: POP
0000233e: POP
0000233f: POP
00002340: POP
00002341: PUSH1 0x40
00002343: MLOAD
00002344: RETURNDATASIZE
00002345: PUSH1 0x1f
00002347: NOT
00002348: PUSH1 0x1f
0000234a: DUP3
0000234b: ADD
0000234c: AND
0000234d: DUP3
0000234e: ADD
0000234f: DUP1
00002350: PUSH1 0x40
00002352: MSTORE
00002353: POP
00002354: DUP2
00002355: ADD
00002356: SWAP1
00002357: PUSH2 0x2360
0000235a: SWAP2
0000235b: SWAP1
0000235c: PUSH2 0x2fe4
0000235f: JUMP
00002360: JUMPDEST
00002361: LT
00002362: ISZERO
00002363: PUSH2 0x23ae
00002366: JUMPI
00002367: PUSH1 0x40
00002369: MLOAD
0000236a: PUSH3 0x461bcd
0000236e: PUSH1 0xe5
00002370: SHL
00002371: DUP2
00002372: MSTORE
00002373: PUSH1 0x20
00002375: PUSH1 0x04
00002377: DUP3
00002378: ADD
00002379: MSTORE
0000237a: PUSH1 0x1c
0000237c: PUSH1 0x24
0000237e: DUP3
0000237f: ADD
00002380: MSTORE
00002381: PUSH32 0x72656c656173652f696e73756666696369656e742d62616c616e636500000000
000023a2: PUSH1 0x44
000023a4: DUP3
000023a5: ADD
000023a6: MSTORE
000023a7: PUSH1 0x64
000023a9: ADD
000023aa: PUSH2 0x021d
000023ad: JUMP
000023ae: JUMPDEST
000023af: PUSH2 0x23b9
000023b2: DUP2
000023b3: DUP7
000023b4: DUP5
000023b5: PUSH2 0x2849
000023b8: JUMP
000023b9: JUMPDEST
000023ba: POP
000023bb: POP
000023bc: POP
000023bd: POP
000023be: POP
000023bf: JUMP
000023c0: JUMPDEST
000023c1: PUSH1 0x40
000023c3: MLOAD
000023c4: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
000023e5: PUSH1 0x20
000023e7: DUP3
000023e8: ADD
000023e9: MSTORE
000023ea: PUSH1 0x3c
000023ec: DUP2
000023ed: ADD
000023ee: DUP6
000023ef: SWAP1
000023f0: MSTORE
000023f1: PUSH1 0x00
000023f3: SWAP1
000023f4: DUP2
000023f5: SWAP1
000023f6: PUSH1 0x01
000023f8: SWAP1
000023f9: PUSH1 0x5c
000023fb: ADD
000023fc: PUSH1 0x40
000023fe: DUP1
000023ff: MLOAD
00002400: PUSH1 0x1f
00002402: NOT
00002403: DUP2
00002404: DUP5
00002405: SUB
00002406: ADD
00002407: DUP2
00002408: MSTORE
00002409: DUP3
0000240a: DUP3
0000240b: MSTORE
0000240c: DUP1
0000240d: MLOAD
0000240e: PUSH1 0x20
00002410: SWAP2
00002411: DUP3
00002412: ADD
00002413: KECCAK256
00002414: PUSH1 0x00
00002416: DUP5
00002417: MSTORE
00002418: SWAP1
00002419: DUP4
0000241a: ADD
0000241b: DUP1
0000241c: DUP4
0000241d: MSTORE
0000241e: MSTORE
0000241f: PUSH1 0xff
00002421: DUP9
00002422: AND
00002423: SWAP1
00002424: DUP3
00002425: ADD
00002426: MSTORE
00002427: PUSH1 0x60
00002429: DUP2
0000242a: ADD
0000242b: DUP7
0000242c: SWAP1
0000242d: MSTORE
0000242e: PUSH1 0x80
00002430: DUP2
00002431: ADD
00002432: DUP6
00002433: SWAP1
00002434: MSTORE
00002435: PUSH1 0xa0
00002437: ADD
00002438: PUSH1 0x20
0000243a: PUSH1 0x40
0000243c: MLOAD
0000243d: PUSH1 0x20
0000243f: DUP2
00002440: SUB
00002441: SWAP1
00002442: DUP1
00002443: DUP5
00002444: SUB
00002445: SWAP1
00002446: DUP6
00002447: GAS
00002448: STATICCALL
00002449: ISZERO
0000244a: DUP1
0000244b: ISZERO
0000244c: PUSH2 0x2459
0000244f: JUMPI
00002450: RETURNDATASIZE
00002451: PUSH1 0x00
00002453: DUP1
00002454: RETURNDATACOPY
00002455: RETURNDATASIZE
00002456: PUSH1 0x00
00002458: REVERT
00002459: JUMPDEST
0000245a: POP
0000245b: POP
0000245c: PUSH1 0x40
0000245e: MLOAD
0000245f: PUSH1 0x1f
00002461: NOT
00002462: ADD
00002463: MLOAD
00002464: SWAP8
00002465: SWAP7
00002466: POP
00002467: POP
00002468: POP
00002469: POP
0000246a: POP
0000246b: POP
0000246c: POP
0000246d: JUMP
0000246e: JUMPDEST
0000246f: PUSH1 0x07
00002471: SLOAD
00002472: PUSH1 0x00
00002474: SWAP1
00002475: PUSH2 0x0100
00002478: SWAP1
00002479: DIV
0000247a: PUSH1 0xff
0000247c: AND
0000247d: ISZERO
0000247e: PUSH2 0x24b7
00002481: JUMPI
00002482: DUP2
00002483: PUSH1 0xff
00002485: AND
00002486: PUSH1 0x01
00002488: EQ
00002489: DUP1
0000248a: ISZERO
0000248b: PUSH2 0x2493
0000248e: JUMPI
0000248f: POP
00002490: ADDRESS
00002491: EXTCODESIZE
00002492: ISZERO
00002493: JUMPDEST
00002494: PUSH2 0x24af
00002497: JUMPI
00002498: PUSH1 0x40
0000249a: MLOAD
0000249b: PUSH3 0x461bcd
0000249f: PUSH1 0xe5
000024a1: SHL
000024a2: DUP2
000024a3: MSTORE
000024a4: PUSH1 0x04
000024a6: ADD
000024a7: PUSH2 0x021d
000024aa: SWAP1
000024ab: PUSH2 0x31c7
000024ae: JUMP
000024af: JUMPDEST
000024b0: POP
000024b1: PUSH1 0x00
000024b3: PUSH2 0x1faa
000024b6: JUMP
000024b7: JUMPDEST
000024b8: PUSH1 0x07
000024ba: SLOAD
000024bb: PUSH1 0xff
000024bd: DUP1
000024be: DUP5
000024bf: AND
000024c0: SWAP2
000024c1: AND
000024c2: LT
000024c3: PUSH2 0x24de
000024c6: JUMPI
000024c7: PUSH1 0x40
000024c9: MLOAD
000024ca: PUSH3 0x461bcd
000024ce: PUSH1 0xe5
000024d0: SHL
000024d1: DUP2
000024d2: MSTORE
000024d3: PUSH1 0x04
000024d5: ADD
000024d6: PUSH2 0x021d
000024d9: SWAP1
000024da: PUSH2 0x31c7
000024dd: JUMP
000024de: JUMPDEST
000024df: POP
000024e0: PUSH1 0x07
000024e2: DUP1
000024e3: SLOAD
000024e4: PUSH1 0xff
000024e6: NOT
000024e7: AND
000024e8: PUSH1 0xff
000024ea: DUP4
000024eb: AND
000024ec: OR
000024ed: SWAP1
000024ee: SSTORE
000024ef: PUSH1 0x01
000024f1: PUSH2 0x1faa
000024f4: JUMP
000024f5: JUMPDEST
000024f6: PUSH2 0x24fd
000024f9: PUSH2 0x2879
000024fc: JUMP
000024fd: JUMPDEST
000024fe: PUSH1 0x00
00002500: PUSH1 0x06
00002502: SSTORE
00002503: JUMP
00002504: JUMPDEST
00002505: PUSH1 0x00
00002507: DUP1
00002508: PUSH1 0x00
0000250a: JUMPDEST
0000250b: PUSH1 0x04
0000250d: SLOAD
0000250e: DUP2
0000250f: LT
00002510: ISZERO
00002511: PUSH2 0x2572
00002514: JUMPI
00002515: PUSH1 0x04
00002517: DUP2
00002518: DUP2
00002519: SLOAD
0000251a: DUP2
0000251b: LT
0000251c: PUSH2 0x2535
0000251f: JUMPI
00002520: PUSH4 0x4e487b71
00002525: PUSH1 0xe0
00002527: SHL
00002528: PUSH1 0x00
0000252a: MSTORE
0000252b: PUSH1 0x32
0000252d: PUSH1 0x04
0000252f: MSTORE
00002530: PUSH1 0x24
00002532: PUSH1 0x00
00002534: REVERT
00002535: JUMPDEST
00002536: PUSH1 0x00
00002538: SWAP2
00002539: DUP3
0000253a: MSTORE
0000253b: PUSH1 0x20
0000253d: SWAP1
0000253e: SWAP2
0000253f: KECCAK256
00002540: ADD
00002541: SLOAD
00002542: PUSH1 0x01
00002544: PUSH1 0x01
00002546: PUSH1 0xa0
00002548: SHL
00002549: SUB
0000254a: DUP6
0000254b: DUP2
0000254c: AND
0000254d: SWAP2
0000254e: AND
0000254f: EQ
00002550: ISZERO
00002551: PUSH2 0x2560
00002554: JUMPI
00002555: DUP1
00002556: SWAP3
00002557: POP
00002558: PUSH1 0x01
0000255a: SWAP2
0000255b: POP
0000255c: PUSH2 0x2572
0000255f: JUMP
00002560: JUMPDEST
00002561: DUP1
00002562: PUSH2 0x256a
00002565: DUP2
00002566: PUSH2 0x3534
00002569: JUMP
0000256a: JUMPDEST
0000256b: SWAP2
0000256c: POP
0000256d: POP
0000256e: PUSH2 0x250a
00002571: JUMP
00002572: JUMPDEST
00002573: POP
00002574: SWAP2
00002575: POP
00002576: SWAP2
00002577: JUMP
00002578: JUMPDEST
00002579: PUSH1 0x04
0000257b: SLOAD
0000257c: PUSH2 0x2584
0000257f: JUMPI
00002580: PUSH1 0x00
00002582: DUP1
00002583: REVERT
00002584: JUMPDEST
00002585: PUSH1 0x04
00002587: SLOAD
00002588: DUP2
00002589: LT
0000258a: PUSH2 0x2592
0000258d: JUMPI
0000258e: PUSH1 0x00
00002590: DUP1
00002591: REVERT
00002592: JUMPDEST
00002593: PUSH1 0x04
00002595: SLOAD
00002596: PUSH1 0x00
00002598: SWAP1
00002599: PUSH2 0x25a4
0000259c: SWAP1
0000259d: PUSH1 0x01
0000259f: SWAP1
000025a0: PUSH2 0x34b6
000025a3: JUMP
000025a4: JUMPDEST
000025a5: SWAP1
000025a6: POP
000025a7: DUP1
000025a8: DUP3
000025a9: LT
000025aa: ISZERO
000025ab: PUSH2 0x2638
000025ae: JUMPI
000025af: PUSH1 0x04
000025b1: DUP2
000025b2: DUP2
000025b3: SLOAD
000025b4: DUP2
000025b5: LT
000025b6: PUSH2 0x25cf
000025b9: JUMPI
000025ba: PUSH4 0x4e487b71
000025bf: PUSH1 0xe0
000025c1: SHL
000025c2: PUSH1 0x00
000025c4: MSTORE
000025c5: PUSH1 0x32
000025c7: PUSH1 0x04
000025c9: MSTORE
000025ca: PUSH1 0x24
000025cc: PUSH1 0x00
000025ce: REVERT
000025cf: JUMPDEST
000025d0: PUSH1 0x00
000025d2: SWAP2
000025d3: DUP3
000025d4: MSTORE
000025d5: PUSH1 0x20
000025d7: SWAP1
000025d8: SWAP2
000025d9: KECCAK256
000025da: ADD
000025db: SLOAD
000025dc: PUSH1 0x04
000025de: DUP1
000025df: SLOAD
000025e0: PUSH1 0x01
000025e2: PUSH1 0x01
000025e4: PUSH1 0xa0
000025e6: SHL
000025e7: SUB
000025e8: SWAP1
000025e9: SWAP3
000025ea: AND
000025eb: SWAP2
000025ec: DUP5
000025ed: SWAP1
000025ee: DUP2
000025ef: LT
000025f0: PUSH2 0x2609
000025f3: JUMPI
000025f4: PUSH4 0x4e487b71
000025f9: PUSH1 0xe0
000025fb: SHL
000025fc: PUSH1 0x00
000025fe: MSTORE
000025ff: PUSH1 0x32
00002601: PUSH1 0x04
00002603: MSTORE
00002604: PUSH1 0x24
00002606: PUSH1 0x00
00002608: REVERT
00002609: JUMPDEST
0000260a: SWAP1
0000260b: PUSH1 0x00
0000260d: MSTORE
0000260e: PUSH1 0x20
00002610: PUSH1 0x00
00002612: KECCAK256
00002613: ADD
00002614: PUSH1 0x00
00002616: PUSH2 0x0100
00002619: EXP
0000261a: DUP2
0000261b: SLOAD
0000261c: DUP2
0000261d: PUSH1 0x01
0000261f: PUSH1 0x01
00002621: PUSH1 0xa0
00002623: SHL
00002624: SUB
00002625: MUL
00002626: NOT
00002627: AND
00002628: SWAP1
00002629: DUP4
0000262a: PUSH1 0x01
0000262c: PUSH1 0x01
0000262e: PUSH1 0xa0
00002630: SHL
00002631: SUB
00002632: AND
00002633: MUL
00002634: OR
00002635: SWAP1
00002636: SSTORE
00002637: POP
00002638: JUMPDEST
00002639: PUSH1 0x04
0000263b: DUP1
0000263c: SLOAD
0000263d: DUP1
0000263e: PUSH2 0x2657
00002641: JUMPI
00002642: PUSH4 0x4e487b71
00002647: PUSH1 0xe0
00002649: SHL
0000264a: PUSH1 0x00
0000264c: MSTORE
0000264d: PUSH1 0x31
0000264f: PUSH1 0x04
00002651: MSTORE
00002652: PUSH1 0x24
00002654: PUSH1 0x00
00002656: REVERT
00002657: JUMPDEST
00002658: PUSH1 0x00
0000265a: DUP3
0000265b: DUP2
0000265c: MSTORE
0000265d: PUSH1 0x20
0000265f: SWAP1
00002660: KECCAK256
00002661: DUP2
00002662: ADD
00002663: PUSH1 0x00
00002665: NOT
00002666: SWAP1
00002667: DUP2
00002668: ADD
00002669: DUP1
0000266a: SLOAD
0000266b: PUSH1 0x01
0000266d: PUSH1 0x01
0000266f: PUSH1 0xa0
00002671: SHL
00002672: SUB
00002673: NOT
00002674: AND
00002675: SWAP1
00002676: SSTORE
00002677: ADD
00002678: SWAP1
00002679: SSTORE
0000267a: POP
0000267b: POP
0000267c: JUMP
0000267d: JUMPDEST
0000267e: PUSH1 0x00
00002680: PUSH2 0x26bf
00002683: DUP4
00002684: DUP4
00002685: PUSH1 0x40
00002687: MLOAD
00002688: DUP1
00002689: PUSH1 0x40
0000268b: ADD
0000268c: PUSH1 0x40
0000268e: MSTORE
0000268f: DUP1
00002690: PUSH1 0x20
00002692: DUP2
00002693: MSTORE
00002694: PUSH1 0x20
00002696: ADD
00002697: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
000026b8: DUP2
000026b9: MSTORE
000026ba: POP
000026bb: PUSH2 0x2883
000026be: JUMP
000026bf: JUMPDEST
000026c0: DUP1
000026c1: MLOAD
000026c2: SWAP1
000026c3: SWAP2
000026c4: POP
000026c5: ISZERO
000026c6: PUSH2 0x1eb3
000026c9: JUMPI
000026ca: DUP1
000026cb: DUP1
000026cc: PUSH1 0x20
000026ce: ADD
000026cf: SWAP1
000026d0: MLOAD
000026d1: DUP2
000026d2: ADD
000026d3: SWAP1
000026d4: PUSH2 0x26dd
000026d7: SWAP2
000026d8: SWAP1
000026d9: PUSH2 0x2d03
000026dc: JUMP
000026dd: JUMPDEST
000026de: PUSH2 0x1eb3
000026e1: JUMPI
000026e2: PUSH1 0x40
000026e4: MLOAD
000026e5: PUSH3 0x461bcd
000026e9: PUSH1 0xe5
000026eb: SHL
000026ec: DUP2
000026ed: MSTORE
000026ee: PUSH1 0x20
000026f0: PUSH1 0x04
000026f2: DUP3
000026f3: ADD
000026f4: MSTORE
000026f5: PUSH1 0x2a
000026f7: PUSH1 0x24
000026f9: DUP3
000026fa: ADD
000026fb: MSTORE
000026fc: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
0000271d: PUSH1 0x44
0000271f: DUP3
00002720: ADD
00002721: MSTORE
00002722: PUSH10 0x1bdd081cdd58d8d95959
0000272d: PUSH1 0xb2
0000272f: SHL
00002730: PUSH1 0x64
00002732: DUP3
00002733: ADD
00002734: MSTORE
00002735: PUSH1 0x84
00002737: ADD
00002738: PUSH2 0x021d
0000273b: JUMP
0000273c: JUMPDEST
0000273d: PUSH1 0x00
0000273f: DUP3
00002740: PUSH2 0x274b
00002743: JUMPI
00002744: POP
00002745: PUSH1 0x00
00002747: PUSH2 0x0854
0000274a: JUMP
0000274b: JUMPDEST
0000274c: PUSH1 0x00
0000274e: PUSH2 0x2757
00002751: DUP4
00002752: DUP6
00002753: PUSH2 0x3497
00002756: JUMP
00002757: JUMPDEST
00002758: SWAP1
00002759: POP
0000275a: DUP3
0000275b: PUSH2 0x2764
0000275e: DUP6
0000275f: DUP4
00002760: PUSH2 0x3360
00002763: JUMP
00002764: JUMPDEST
00002765: EQ
00002766: PUSH2 0x2193
00002769: JUMPI
0000276a: PUSH1 0x40
0000276c: MLOAD
0000276d: PUSH3 0x461bcd
00002771: PUSH1 0xe5
00002773: SHL
00002774: DUP2
00002775: MSTORE
00002776: PUSH1 0x20
00002778: PUSH1 0x04
0000277a: DUP3
0000277b: ADD
0000277c: MSTORE
0000277d: PUSH1 0x21
0000277f: PUSH1 0x24
00002781: DUP3
00002782: ADD
00002783: MSTORE
00002784: PUSH32 0x536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f
000027a5: PUSH1 0x44
000027a7: DUP3
000027a8: ADD
000027a9: MSTORE
000027aa: PUSH1 0x77
000027ac: PUSH1 0xf8
000027ae: SHL
000027af: PUSH1 0x64
000027b1: DUP3
000027b2: ADD
000027b3: MSTORE
000027b4: PUSH1 0x84
000027b6: ADD
000027b7: PUSH2 0x021d
000027ba: JUMP
000027bb: JUMPDEST
000027bc: PUSH1 0x00
000027be: DUP1
000027bf: DUP3
000027c0: GT
000027c1: PUSH2 0x280c
000027c4: JUMPI
000027c5: PUSH1 0x40
000027c7: MLOAD
000027c8: PUSH3 0x461bcd
000027cc: PUSH1 0xe5
000027ce: SHL
000027cf: DUP2
000027d0: MSTORE
000027d1: PUSH1 0x20
000027d3: PUSH1 0x04
000027d5: DUP3
000027d6: ADD
000027d7: MSTORE
000027d8: PUSH1 0x1a
000027da: PUSH1 0x24
000027dc: DUP3
000027dd: ADD
000027de: MSTORE
000027df: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000
00002800: PUSH1 0x44
00002802: DUP3
00002803: ADD
00002804: MSTORE
00002805: PUSH1 0x64
00002807: ADD
00002808: PUSH2 0x021d
0000280b: JUMP
0000280c: JUMPDEST
0000280d: PUSH2 0x2193
00002810: DUP3
00002811: DUP5
00002812: PUSH2 0x3360
00002815: JUMP
00002816: JUMPDEST
00002817: PUSH1 0x00
00002819: PUSH1 0x12
0000281b: PUSH1 0xff
0000281d: DUP5
0000281e: AND
0000281f: EQ
00002820: ISZERO
00002821: PUSH2 0x282b
00002824: JUMPI
00002825: POP
00002826: DUP1
00002827: PUSH2 0x0854
0000282a: JUMP
0000282b: JUMPDEST
0000282c: PUSH2 0x2193
0000282f: PUSH2 0x283d
00002832: DUP4
00002833: PUSH2 0x217e
00002836: DUP7
00002837: PUSH1 0x0a
00002839: PUSH2 0x33c6
0000283c: JUMP
0000283d: JUMPDEST
0000283e: PUSH2 0x218e
00002841: PUSH1 0x12
00002843: PUSH1 0x0a
00002845: PUSH2 0x33c6
00002848: JUMP
00002849: JUMPDEST
0000284a: PUSH1 0x40
0000284c: MLOAD
0000284d: PUSH1 0x01
0000284f: PUSH1 0x01
00002851: PUSH1 0xa0
00002853: SHL
00002854: SUB
00002855: DUP4
00002856: AND
00002857: PUSH1 0x24
00002859: DUP3
0000285a: ADD
0000285b: MSTORE
0000285c: PUSH1 0x44
0000285e: DUP2
0000285f: ADD
00002860: DUP3
00002861: SWAP1
00002862: MSTORE
00002863: PUSH2 0x1eb3
00002866: SWAP1
00002867: DUP5
00002868: SWAP1
00002869: PUSH4 0xa9059cbb
0000286e: PUSH1 0xe0
00002870: SHL
00002871: SWAP1
00002872: PUSH1 0x64
00002874: ADD
00002875: PUSH2 0x2119
00002878: JUMP
00002879: JUMPDEST
0000287a: PUSH2 0x2881
0000287d: PUSH2 0x289a
00002880: JUMP
00002881: JUMPDEST
00002882: JUMP
00002883: JUMPDEST
00002884: PUSH1 0x60
00002886: PUSH2 0x2892
00002889: DUP5
0000288a: DUP5
0000288b: PUSH1 0x00
0000288d: DUP6
0000288e: PUSH2 0x29af
00002891: JUMP
00002892: JUMPDEST
00002893: SWAP5
00002894: SWAP4
00002895: POP
00002896: POP
00002897: POP
00002898: POP
00002899: JUMP
0000289a: JUMPDEST
0000289b: PUSH1 0x02
0000289d: DUP1
0000289e: SLOAD
0000289f: PUSH1 0x00
000028a1: DUP1
000028a2: SLOAD
000028a3: PUSH1 0x01
000028a5: PUSH1 0x01
000028a7: PUSH1 0xa0
000028a9: SHL
000028aa: SUB
000028ab: NOT
000028ac: SWAP1
000028ad: DUP2
000028ae: AND
000028af: CALLER
000028b0: SWAP1
000028b1: DUP2
000028b2: OR
000028b3: DUP4
000028b4: SSTORE
000028b5: PUSH1 0x01
000028b7: DUP1
000028b8: SLOAD
000028b9: DUP4
000028ba: AND
000028bb: DUP3
000028bc: OR
000028bd: DUP2
000028be: SSTORE
000028bf: PUSH1 0xff
000028c1: PUSH1 0xa0
000028c3: SHL
000028c4: NOT
000028c5: SWAP1
000028c6: SWAP5
000028c7: AND
000028c8: PUSH1 0x01
000028ca: PUSH1 0xa0
000028cc: SHL
000028cd: OR
000028ce: SWAP2
000028cf: SWAP1
000028d0: SWAP2
000028d1: AND
000028d2: OR
000028d3: SWAP1
000028d4: SWAP3
000028d5: SSTORE
000028d6: PUSH1 0x40
000028d8: MLOAD
000028d9: SWAP1
000028da: SWAP2
000028db: SWAP1
000028dc: PUSH32 0x0d33af2381f036762445cec5d4a21f68c50c4236845f915b6e15419695c64367
000028fd: SWAP1
000028fe: DUP3
000028ff: SWAP1
00002900: LOG3
00002901: PUSH1 0x01
00002903: SLOAD
00002904: PUSH1 0x40
00002906: MLOAD
00002907: PUSH1 0x01
00002909: PUSH1 0x01
0000290b: PUSH1 0xa0
0000290d: SHL
0000290e: SUB
0000290f: SWAP1
00002910: SWAP2
00002911: AND
00002912: SWAP1
00002913: PUSH1 0x00
00002915: SWAP1
00002916: PUSH32 0xa57582a20eb2f0c4265459d1d9ef9990b45fa7a768b2a47481ff82b5e0864d78
00002937: SWAP1
00002938: DUP3
00002939: SWAP1
0000293a: LOG3
0000293b: PUSH1 0x02
0000293d: SLOAD
0000293e: PUSH1 0x40
00002940: MLOAD
00002941: PUSH1 0x01
00002943: PUSH1 0x01
00002945: PUSH1 0xa0
00002947: SHL
00002948: SUB
00002949: SWAP1
0000294a: SWAP2
0000294b: AND
0000294c: SWAP1
0000294d: PUSH1 0x00
0000294f: SWAP1
00002950: PUSH32 0x332aea18fc605b6be38db00074cd3c21a757c11fee654fd98c382a2e49ea2297
00002971: SWAP1
00002972: DUP3
00002973: SWAP1
00002974: LOG3
00002975: PUSH1 0x00
00002977: DUP1
00002978: SLOAD
00002979: PUSH1 0x40
0000297b: MLOAD
0000297c: PUSH1 0x01
0000297e: PUSH1 0x01
00002980: PUSH1 0xa0
00002982: SHL
00002983: SUB
00002984: SWAP1
00002985: SWAP2
00002986: AND
00002987: SWAP2
00002988: SWAP1
00002989: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
000029aa: SWAP1
000029ab: DUP3
000029ac: SWAP1
000029ad: LOG3
000029ae: JUMP
000029af: JUMPDEST
000029b0: PUSH1 0x60
000029b2: DUP3
000029b3: SELFBALANCE
000029b4: LT
000029b5: ISZERO
000029b6: PUSH2 0x2a10
000029b9: JUMPI
000029ba: PUSH1 0x40
000029bc: MLOAD
000029bd: PUSH3 0x461bcd
000029c1: PUSH1 0xe5
000029c3: SHL
000029c4: DUP2
000029c5: MSTORE
000029c6: PUSH1 0x20
000029c8: PUSH1 0x04
000029ca: DUP3
000029cb: ADD
000029cc: MSTORE
000029cd: PUSH1 0x26
000029cf: PUSH1 0x24
000029d1: DUP3
000029d2: ADD
000029d3: MSTORE
000029d4: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
000029f5: PUSH1 0x44
000029f7: DUP3
000029f8: ADD
000029f9: MSTORE
000029fa: PUSH6 0x1c8818d85b1b
00002a01: PUSH1 0xd2
00002a03: SHL
00002a04: PUSH1 0x64
00002a06: DUP3
00002a07: ADD
00002a08: MSTORE
00002a09: PUSH1 0x84
00002a0b: ADD
00002a0c: PUSH2 0x021d
00002a0f: JUMP
00002a10: JUMPDEST
00002a11: DUP5
00002a12: EXTCODESIZE
00002a13: PUSH2 0x2a5e
00002a16: JUMPI
00002a17: PUSH1 0x40
00002a19: MLOAD
00002a1a: PUSH3 0x461bcd
00002a1e: PUSH1 0xe5
00002a20: SHL
00002a21: DUP2
00002a22: MSTORE
00002a23: PUSH1 0x20
00002a25: PUSH1 0x04
00002a27: DUP3
00002a28: ADD
00002a29: MSTORE
00002a2a: PUSH1 0x1d
00002a2c: PUSH1 0x24
00002a2e: DUP3
00002a2f: ADD
00002a30: MSTORE
00002a31: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00002a52: PUSH1 0x44
00002a54: DUP3
00002a55: ADD
00002a56: MSTORE
00002a57: PUSH1 0x64
00002a59: ADD
00002a5a: PUSH2 0x021d
00002a5d: JUMP
00002a5e: JUMPDEST
00002a5f: PUSH1 0x00
00002a61: DUP1
00002a62: DUP7
00002a63: PUSH1 0x01
00002a65: PUSH1 0x01
00002a67: PUSH1 0xa0
00002a69: SHL
00002a6a: SUB
00002a6b: AND
00002a6c: DUP6
00002a6d: DUP8
00002a6e: PUSH1 0x40
00002a70: MLOAD
00002a71: PUSH2 0x2a7a
00002a74: SWAP2
00002a75: SWAP1
00002a76: PUSH2 0x3034
00002a79: JUMP
00002a7a: JUMPDEST
00002a7b: PUSH1 0x00
00002a7d: PUSH1 0x40
00002a7f: MLOAD
00002a80: DUP1
00002a81: DUP4
00002a82: SUB
00002a83: DUP2
00002a84: DUP6
00002a85: DUP8
00002a86: GAS
00002a87: CALL
00002a88: SWAP3
00002a89: POP
00002a8a: POP
00002a8b: POP
00002a8c: RETURNDATASIZE
00002a8d: DUP1
00002a8e: PUSH1 0x00
00002a90: DUP2
00002a91: EQ
00002a92: PUSH2 0x2ab7
00002a95: JUMPI
00002a96: PUSH1 0x40
00002a98: MLOAD
00002a99: SWAP2
00002a9a: POP
00002a9b: PUSH1 0x1f
00002a9d: NOT
00002a9e: PUSH1 0x3f
00002aa0: RETURNDATASIZE
00002aa1: ADD
00002aa2: AND
00002aa3: DUP3
00002aa4: ADD
00002aa5: PUSH1 0x40
00002aa7: MSTORE
00002aa8: RETURNDATASIZE
00002aa9: DUP3
00002aaa: MSTORE
00002aab: RETURNDATASIZE
00002aac: PUSH1 0x00
00002aae: PUSH1 0x20
00002ab0: DUP5
00002ab1: ADD
00002ab2: RETURNDATACOPY
00002ab3: PUSH2 0x2abc
00002ab6: JUMP
00002ab7: JUMPDEST
00002ab8: PUSH1 0x60
00002aba: SWAP2
00002abb: POP
00002abc: JUMPDEST
00002abd: POP
00002abe: SWAP2
00002abf: POP
00002ac0: SWAP2
00002ac1: POP
00002ac2: PUSH2 0x1d1e
00002ac5: DUP3
00002ac6: DUP3
00002ac7: DUP7
00002ac8: PUSH1 0x60
00002aca: DUP4
00002acb: ISZERO
00002acc: PUSH2 0x2ad6
00002acf: JUMPI
00002ad0: POP
00002ad1: DUP2
00002ad2: PUSH2 0x2193
00002ad5: JUMP
00002ad6: JUMPDEST
00002ad7: DUP3
00002ad8: MLOAD
00002ad9: ISZERO
00002ada: PUSH2 0x2ae6
00002add: JUMPI
00002ade: DUP3
00002adf: MLOAD
00002ae0: DUP1
00002ae1: DUP5
00002ae2: PUSH1 0x20
00002ae4: ADD
00002ae5: REVERT
00002ae6: JUMPDEST
00002ae7: DUP2
00002ae8: PUSH1 0x40
00002aea: MLOAD
00002aeb: PUSH3 0x461bcd
00002aef: PUSH1 0xe5
00002af1: SHL
00002af2: DUP2
00002af3: MSTORE
00002af4: PUSH1 0x04
00002af6: ADD
00002af7: PUSH2 0x021d
00002afa: SWAP2
00002afb: SWAP1
00002afc: PUSH2 0x3194
00002aff: JUMP
00002b00: JUMPDEST
00002b01: DUP3
00002b02: DUP1
00002b03: SLOAD
00002b04: PUSH2 0x2b0c
00002b07: SWAP1
00002b08: PUSH2 0x34f9
00002b0b: JUMP
00002b0c: JUMPDEST
00002b0d: SWAP1
00002b0e: PUSH1 0x00
00002b10: MSTORE
00002b11: PUSH1 0x20
00002b13: PUSH1 0x00
00002b15: KECCAK256
00002b16: SWAP1
00002b17: PUSH1 0x1f
00002b19: ADD
00002b1a: PUSH1 0x20
00002b1c: SWAP1
00002b1d: DIV
00002b1e: DUP2
00002b1f: ADD
00002b20: SWAP3
00002b21: DUP3
00002b22: PUSH2 0x2b2e
00002b25: JUMPI
00002b26: PUSH1 0x00
00002b28: DUP6
00002b29: SSTORE
00002b2a: PUSH2 0x2b74
00002b2d: JUMP
00002b2e: JUMPDEST
00002b2f: DUP3
00002b30: PUSH1 0x1f
00002b32: LT
00002b33: PUSH2 0x2b47
00002b36: JUMPI
00002b37: DUP3
00002b38: DUP1
00002b39: ADD
00002b3a: PUSH1 0xff
00002b3c: NOT
00002b3d: DUP3
00002b3e: CALLDATALOAD
00002b3f: AND
00002b40: OR
00002b41: DUP6
00002b42: SSTORE
00002b43: PUSH2 0x2b74
00002b46: JUMP
00002b47: JUMPDEST
00002b48: DUP3
00002b49: DUP1
00002b4a: ADD
00002b4b: PUSH1 0x01
00002b4d: ADD
00002b4e: DUP6
00002b4f: SSTORE
00002b50: DUP3
00002b51: ISZERO
00002b52: PUSH2 0x2b74
00002b55: JUMPI
00002b56: SWAP2
00002b57: DUP3
00002b58: ADD
00002b59: JUMPDEST
00002b5a: DUP3
00002b5b: DUP2
00002b5c: GT
00002b5d: ISZERO
00002b5e: PUSH2 0x2b74
00002b61: JUMPI
00002b62: DUP3
00002b63: CALLDATALOAD
00002b64: DUP3
00002b65: SSTORE
00002b66: SWAP2
00002b67: PUSH1 0x20
00002b69: ADD
00002b6a: SWAP2
00002b6b: SWAP1
00002b6c: PUSH1 0x01
00002b6e: ADD
00002b6f: SWAP1
00002b70: PUSH2 0x2b59
00002b73: JUMP
00002b74: JUMPDEST
00002b75: POP
00002b76: PUSH2 0x2b80
00002b79: SWAP3
00002b7a: SWAP2
00002b7b: POP
00002b7c: PUSH2 0x2b84
00002b7f: JUMP
00002b80: JUMPDEST
00002b81: POP
00002b82: SWAP1
00002b83: JUMP
00002b84: JUMPDEST
00002b85: JUMPDEST
00002b86: DUP1
00002b87: DUP3
00002b88: GT
00002b89: ISZERO
00002b8a: PUSH2 0x2b80
00002b8d: JUMPI
00002b8e: PUSH1 0x00
00002b90: DUP2
00002b91: SSTORE
00002b92: PUSH1 0x01
00002b94: ADD
00002b95: PUSH2 0x2b85
00002b98: JUMP
00002b99: JUMPDEST
00002b9a: DUP1
00002b9b: CALLDATALOAD
00002b9c: PUSH1 0x01
00002b9e: PUSH1 0x01
00002ba0: PUSH1 0xa0
00002ba2: SHL
00002ba3: SUB
00002ba4: DUP2
00002ba5: AND
00002ba6: DUP2
00002ba7: EQ
00002ba8: PUSH2 0x1faa
00002bab: JUMPI
00002bac: PUSH1 0x00
00002bae: DUP1
00002baf: REVERT
00002bb0: JUMPDEST
00002bb1: PUSH1 0x00
00002bb3: DUP1
00002bb4: DUP4
00002bb5: PUSH1 0x1f
00002bb7: DUP5
00002bb8: ADD
00002bb9: SLT
00002bba: PUSH2 0x2bc1
00002bbd: JUMPI
00002bbe: DUP1
00002bbf: DUP2
00002bc0: REVERT
00002bc1: JUMPDEST
00002bc2: POP
00002bc3: DUP2
00002bc4: CALLDATALOAD
00002bc5: PUSH1 0x01
00002bc7: PUSH1 0x01
00002bc9: PUSH1 0x40
00002bcb: SHL
00002bcc: SUB
00002bcd: DUP2
00002bce: GT
00002bcf: ISZERO
00002bd0: PUSH2 0x2bd7
00002bd3: JUMPI
00002bd4: DUP2
00002bd5: DUP3
00002bd6: REVERT
00002bd7: JUMPDEST
00002bd8: PUSH1 0x20
00002bda: DUP4
00002bdb: ADD
00002bdc: SWAP2
00002bdd: POP
00002bde: DUP4
00002bdf: PUSH1 0x20
00002be1: DUP1
00002be2: DUP4
00002be3: MUL
00002be4: DUP6
00002be5: ADD
00002be6: ADD
00002be7: GT
00002be8: ISZERO
00002be9: PUSH2 0x2bf1
00002bec: JUMPI
00002bed: PUSH1 0x00
00002bef: DUP1
00002bf0: REVERT
00002bf1: JUMPDEST
00002bf2: SWAP3
00002bf3: POP
00002bf4: SWAP3
00002bf5: SWAP1
00002bf6: POP
00002bf7: JUMP
00002bf8: JUMPDEST
00002bf9: PUSH1 0x00
00002bfb: DUP1
00002bfc: DUP4
00002bfd: PUSH1 0x1f
00002bff: DUP5
00002c00: ADD
00002c01: SLT
00002c02: PUSH2 0x2c09
00002c05: JUMPI
00002c06: DUP2
00002c07: DUP3
00002c08: REVERT
00002c09: JUMPDEST
00002c0a: POP
00002c0b: DUP2
00002c0c: CALLDATALOAD
00002c0d: PUSH1 0x01
00002c0f: PUSH1 0x01
00002c11: PUSH1 0x40
00002c13: SHL
00002c14: SUB
00002c15: DUP2
00002c16: GT
00002c17: ISZERO
00002c18: PUSH2 0x2c1f
00002c1b: JUMPI
00002c1c: DUP2
00002c1d: DUP3
00002c1e: REVERT
00002c1f: JUMPDEST
00002c20: PUSH1 0x20
00002c22: DUP4
00002c23: ADD
00002c24: SWAP2
00002c25: POP
00002c26: DUP4
00002c27: PUSH1 0x20
00002c29: DUP3
00002c2a: DUP6
00002c2b: ADD
00002c2c: ADD
00002c2d: GT
00002c2e: ISZERO
00002c2f: PUSH2 0x2bf1
00002c32: JUMPI
00002c33: PUSH1 0x00
00002c35: DUP1
00002c36: REVERT
00002c37: JUMPDEST
00002c38: PUSH1 0x00
00002c3a: PUSH1 0x20
00002c3c: DUP3
00002c3d: DUP5
00002c3e: SUB
00002c3f: SLT
00002c40: ISZERO
00002c41: PUSH2 0x2c48
00002c44: JUMPI
00002c45: DUP1
00002c46: DUP2
00002c47: REVERT
00002c48: JUMPDEST
00002c49: PUSH2 0x2193
00002c4c: DUP3
00002c4d: PUSH2 0x2b99
00002c50: JUMP
00002c51: JUMPDEST
00002c52: PUSH1 0x00
00002c54: DUP1
00002c55: PUSH1 0x00
00002c57: DUP1
00002c58: PUSH1 0x60
00002c5a: DUP6
00002c5b: DUP8
00002c5c: SUB
00002c5d: SLT
00002c5e: ISZERO
00002c5f: PUSH2 0x2c66
00002c62: JUMPI
00002c63: DUP3
00002c64: DUP4
00002c65: REVERT
00002c66: JUMPDEST
00002c67: PUSH2 0x2c6f
00002c6a: DUP6
00002c6b: PUSH2 0x2b99
00002c6e: JUMP
00002c6f: JUMPDEST
00002c70: SWAP4
00002c71: POP
00002c72: PUSH1 0x20
00002c74: DUP6
00002c75: ADD
00002c76: CALLDATALOAD
00002c77: PUSH1 0x01
00002c79: PUSH1 0x01
00002c7b: PUSH1 0x40
00002c7d: SHL
00002c7e: SUB
00002c7f: DUP2
00002c80: GT
00002c81: ISZERO
00002c82: PUSH2 0x2c89
00002c85: JUMPI
00002c86: DUP4
00002c87: DUP5
00002c88: REVERT
00002c89: JUMPDEST
00002c8a: PUSH2 0x2c95
00002c8d: DUP8
00002c8e: DUP3
00002c8f: DUP9
00002c90: ADD
00002c91: PUSH2 0x2bf8
00002c94: JUMP
00002c95: JUMPDEST
00002c96: SWAP6
00002c97: SWAP9
00002c98: SWAP1
00002c99: SWAP8
00002c9a: POP
00002c9b: SWAP5
00002c9c: SWAP6
00002c9d: PUSH1 0x40
00002c9f: ADD
00002ca0: CALLDATALOAD
00002ca1: SWAP5
00002ca2: SWAP4
00002ca3: POP
00002ca4: POP
00002ca5: POP
00002ca6: POP
00002ca7: JUMP
00002ca8: JUMPDEST
00002ca9: PUSH1 0x00
00002cab: DUP1
00002cac: PUSH1 0x20
00002cae: DUP4
00002caf: DUP6
00002cb0: SUB
00002cb1: SLT
00002cb2: ISZERO
00002cb3: PUSH2 0x2cba
00002cb6: JUMPI
00002cb7: DUP2
00002cb8: DUP3
00002cb9: REVERT
00002cba: JUMPDEST
00002cbb: DUP3
00002cbc: CALLDATALOAD
00002cbd: PUSH1 0x01
00002cbf: PUSH1 0x01
00002cc1: PUSH1 0x40
00002cc3: SHL
00002cc4: SUB
00002cc5: DUP2
00002cc6: GT
00002cc7: ISZERO
00002cc8: PUSH2 0x2ccf
00002ccb: JUMPI
00002ccc: DUP3
00002ccd: DUP4
00002cce: REVERT
00002ccf: JUMPDEST
00002cd0: PUSH2 0x2cdb
00002cd3: DUP6
00002cd4: DUP3
00002cd5: DUP7
00002cd6: ADD
00002cd7: PUSH2 0x2bb0
00002cda: JUMP
00002cdb: JUMPDEST
00002cdc: SWAP1
00002cdd: SWAP7
00002cde: SWAP1
00002cdf: SWAP6
00002ce0: POP
00002ce1: SWAP4
00002ce2: POP
00002ce3: POP
00002ce4: POP
00002ce5: POP
00002ce6: JUMP
00002ce7: JUMPDEST
00002ce8: PUSH1 0x00
00002cea: PUSH1 0x20
00002cec: DUP3
00002ced: DUP5
00002cee: SUB
00002cef: SLT
00002cf0: ISZERO
00002cf1: PUSH2 0x2cf8
00002cf4: JUMPI
00002cf5: DUP1
00002cf6: DUP2
00002cf7: REVERT
00002cf8: JUMPDEST
00002cf9: DUP2
00002cfa: CALLDATALOAD
00002cfb: PUSH2 0x2193
00002cfe: DUP2
00002cff: PUSH2 0x357b
00002d02: JUMP
00002d03: JUMPDEST
00002d04: PUSH1 0x00
00002d06: PUSH1 0x20
00002d08: DUP3
00002d09: DUP5
00002d0a: SUB
00002d0b: SLT
00002d0c: ISZERO
00002d0d: PUSH2 0x2d14
00002d10: JUMPI
00002d11: DUP1
00002d12: DUP2
00002d13: REVERT
00002d14: JUMPDEST
00002d15: DUP2
00002d16: MLOAD
00002d17: PUSH2 0x2193
00002d1a: DUP2
00002d1b: PUSH2 0x357b
00002d1e: JUMP
00002d1f: JUMPDEST
00002d20: PUSH1 0x00
00002d22: DUP1
00002d23: PUSH1 0x00
00002d25: DUP1
00002d26: PUSH1 0x00
00002d28: DUP1
00002d29: PUSH1 0x00
00002d2b: PUSH1 0x80
00002d2d: DUP9
00002d2e: DUP11
00002d2f: SUB
00002d30: SLT
00002d31: ISZERO
00002d32: PUSH2 0x2d39
00002d35: JUMPI
00002d36: DUP3
00002d37: DUP4
00002d38: REVERT
00002d39: JUMPDEST
00002d3a: DUP8
00002d3b: CALLDATALOAD
00002d3c: SWAP7
00002d3d: POP
00002d3e: PUSH1 0x20
00002d40: DUP9
00002d41: ADD
00002d42: CALLDATALOAD
00002d43: PUSH1 0x01
00002d45: PUSH1 0x01
00002d47: PUSH1 0x40
00002d49: SHL
00002d4a: SUB
00002d4b: DUP1
00002d4c: DUP3
00002d4d: GT
00002d4e: ISZERO
00002d4f: PUSH2 0x2d56
00002d52: JUMPI
00002d53: DUP5
00002d54: DUP6
00002d55: REVERT
00002d56: JUMPDEST
00002d57: PUSH2 0x2d62
00002d5a: DUP12
00002d5b: DUP4
00002d5c: DUP13
00002d5d: ADD
00002d5e: PUSH2 0x2bb0
00002d61: JUMP
00002d62: JUMPDEST
00002d63: SWAP1
00002d64: SWAP9
00002d65: POP
00002d66: SWAP7
00002d67: POP
00002d68: PUSH1 0x40
00002d6a: DUP11
00002d6b: ADD
00002d6c: CALLDATALOAD
00002d6d: SWAP2
00002d6e: POP
00002d6f: DUP1
00002d70: DUP3
00002d71: GT
00002d72: ISZERO
00002d73: PUSH2 0x2d7a
00002d76: JUMPI
00002d77: DUP5
00002d78: DUP6
00002d79: REVERT
00002d7a: JUMPDEST
00002d7b: PUSH2 0x2d86
00002d7e: DUP12
00002d7f: DUP4
00002d80: DUP13
00002d81: ADD
00002d82: PUSH2 0x2bb0
00002d85: JUMP
00002d86: JUMPDEST
00002d87: SWAP1
00002d88: SWAP7
00002d89: POP
00002d8a: SWAP5
00002d8b: POP
00002d8c: PUSH1 0x60
00002d8e: DUP11
00002d8f: ADD
00002d90: CALLDATALOAD
00002d91: SWAP2
00002d92: POP
00002d93: DUP1
00002d94: DUP3
00002d95: GT
00002d96: ISZERO
00002d97: PUSH2 0x2d9e
00002d9a: JUMPI
00002d9b: DUP4
00002d9c: DUP5
00002d9d: REVERT
00002d9e: JUMPDEST
00002d9f: POP
00002da0: PUSH2 0x2dab
00002da3: DUP11
00002da4: DUP3
00002da5: DUP12
00002da6: ADD
00002da7: PUSH2 0x2bb0
00002daa: JUMP
00002dab: JUMPDEST
00002dac: SWAP9
00002dad: SWAP12
00002dae: SWAP8
00002daf: SWAP11
00002db0: POP
00002db1: SWAP6
00002db2: SWAP9
00002db3: POP
00002db4: SWAP4
00002db5: SWAP7
00002db6: SWAP3
00002db7: SWAP6
00002db8: SWAP3
00002db9: SWAP4
00002dba: POP
00002dbb: POP
00002dbc: POP
00002dbd: JUMP
00002dbe: JUMPDEST
00002dbf: PUSH1 0x00
00002dc1: DUP1
00002dc2: PUSH1 0x20
00002dc4: DUP4
00002dc5: DUP6
00002dc6: SUB
00002dc7: SLT
00002dc8: ISZERO
00002dc9: PUSH2 0x2dd0
00002dcc: JUMPI
00002dcd: DUP2
00002dce: DUP3
00002dcf: REVERT
00002dd0: JUMPDEST
00002dd1: DUP3
00002dd2: CALLDATALOAD
00002dd3: PUSH1 0x01
00002dd5: PUSH1 0x01
00002dd7: PUSH1 0x40
00002dd9: SHL
00002dda: SUB
00002ddb: DUP2
00002ddc: GT
00002ddd: ISZERO
00002dde: PUSH2 0x2de5
00002de1: JUMPI
00002de2: DUP3
00002de3: DUP4
00002de4: REVERT
00002de5: JUMPDEST
00002de6: PUSH2 0x2cdb
00002de9: DUP6
00002dea: DUP3
00002deb: DUP7
00002dec: ADD
00002ded: PUSH2 0x2bf8
00002df0: JUMP
00002df1: JUMPDEST
00002df2: PUSH1 0x00
00002df4: DUP1
00002df5: PUSH1 0x00
00002df7: PUSH1 0x40
00002df9: DUP5
00002dfa: DUP7
00002dfb: SUB
00002dfc: SLT
00002dfd: ISZERO
00002dfe: PUSH2 0x2e05
00002e01: JUMPI
00002e02: DUP3
00002e03: DUP4
00002e04: REVERT
00002e05: JUMPDEST
00002e06: DUP4
00002e07: CALLDATALOAD
00002e08: PUSH1 0x01
00002e0a: PUSH1 0x01
00002e0c: PUSH1 0x40
00002e0e: SHL
00002e0f: SUB
00002e10: DUP2
00002e11: GT
00002e12: ISZERO
00002e13: PUSH2 0x2e1a
00002e16: JUMPI
00002e17: DUP4
00002e18: DUP5
00002e19: REVERT
00002e1a: JUMPDEST
00002e1b: PUSH2 0x2e26
00002e1e: DUP7
00002e1f: DUP3
00002e20: DUP8
00002e21: ADD
00002e22: PUSH2 0x2bf8
00002e25: JUMP
00002e26: JUMPDEST
00002e27: SWAP1
00002e28: SWAP5
00002e29: POP
00002e2a: SWAP3
00002e2b: POP
00002e2c: PUSH2 0x2e39
00002e2f: SWAP1
00002e30: POP
00002e31: PUSH1 0x20
00002e33: DUP6
00002e34: ADD
00002e35: PUSH2 0x2b99
00002e38: JUMP
00002e39: JUMPDEST
00002e3a: SWAP1
00002e3b: POP
00002e3c: SWAP3
00002e3d: POP
00002e3e: SWAP3
00002e3f: POP
00002e40: SWAP3
00002e41: JUMP
00002e42: JUMPDEST
00002e43: PUSH1 0x00
00002e45: PUSH1 0x20
00002e47: DUP3
00002e48: DUP5
00002e49: SUB
00002e4a: SLT
00002e4b: ISZERO
00002e4c: PUSH2 0x2e53
00002e4f: JUMPI
00002e50: DUP1
00002e51: DUP2
00002e52: REVERT
00002e53: JUMPDEST
00002e54: DUP2
00002e55: CALLDATALOAD
00002e56: PUSH1 0x01
00002e58: PUSH1 0x01
00002e5a: PUSH1 0x40
00002e5c: SHL
00002e5d: SUB
00002e5e: DUP2
00002e5f: GT
00002e60: ISZERO
00002e61: PUSH2 0x2e68
00002e64: JUMPI
00002e65: DUP2
00002e66: DUP3
00002e67: REVERT
00002e68: JUMPDEST
00002e69: DUP3
00002e6a: ADD
00002e6b: PUSH1 0x1f
00002e6d: DUP2
00002e6e: ADD
00002e6f: DUP5
00002e70: SGT
00002e71: PUSH2 0x2e78
00002e74: JUMPI
00002e75: DUP2
00002e76: DUP3
00002e77: REVERT
00002e78: JUMPDEST
00002e79: DUP1
00002e7a: CALLDATALOAD
00002e7b: PUSH2 0x2e8b
00002e7e: PUSH2 0x2e86
00002e81: DUP3
00002e82: PUSH2 0x3321
00002e85: JUMP
00002e86: JUMPDEST
00002e87: PUSH2 0x32f1
00002e8a: JUMP
00002e8b: JUMPDEST
00002e8c: DUP2
00002e8d: DUP2
00002e8e: MSTORE
00002e8f: DUP6
00002e90: PUSH1 0x20
00002e92: DUP4
00002e93: DUP6
00002e94: ADD
00002e95: ADD
00002e96: GT
00002e97: ISZERO
00002e98: PUSH2 0x2e9f
00002e9b: JUMPI
00002e9c: DUP4
00002e9d: DUP5
00002e9e: REVERT
00002e9f: JUMPDEST
00002ea0: DUP2
00002ea1: PUSH1 0x20
00002ea3: DUP5
00002ea4: ADD
00002ea5: PUSH1 0x20
00002ea7: DUP4
00002ea8: ADD
00002ea9: CALLDATACOPY
00002eaa: SWAP1
00002eab: DUP2
00002eac: ADD
00002ead: PUSH1 0x20
00002eaf: ADD
00002eb0: SWAP3
00002eb1: SWAP1
00002eb2: SWAP3
00002eb3: MSTORE
00002eb4: POP
00002eb5: SWAP3
00002eb6: SWAP2
00002eb7: POP
00002eb8: POP
00002eb9: JUMP
00002eba: JUMPDEST
00002ebb: PUSH1 0x00
00002ebd: PUSH1 0x20
00002ebf: DUP3
00002ec0: DUP5
00002ec1: SUB
00002ec2: SLT
00002ec3: ISZERO
00002ec4: PUSH2 0x2ecb
00002ec7: JUMPI
00002ec8: DUP1
00002ec9: DUP2
00002eca: REVERT
00002ecb: JUMPDEST
00002ecc: DUP2
00002ecd: MLOAD
00002ece: PUSH1 0x01
00002ed0: PUSH1 0x01
00002ed2: PUSH1 0x40
00002ed4: SHL
00002ed5: SUB
00002ed6: DUP2
00002ed7: GT
00002ed8: ISZERO
00002ed9: PUSH2 0x2ee0
00002edc: JUMPI
00002edd: DUP2
00002ede: DUP3
00002edf: REVERT
00002ee0: JUMPDEST
00002ee1: DUP3
00002ee2: ADD
00002ee3: PUSH1 0x1f
00002ee5: DUP2
00002ee6: ADD
00002ee7: DUP5
00002ee8: SGT
00002ee9: PUSH2 0x2ef0
00002eec: JUMPI
00002eed: DUP2
00002eee: DUP3
00002eef: REVERT
00002ef0: JUMPDEST
00002ef1: DUP1
00002ef2: MLOAD
00002ef3: PUSH2 0x2efe
00002ef6: PUSH2 0x2e86
00002ef9: DUP3
00002efa: PUSH2 0x3321
00002efd: JUMP
00002efe: JUMPDEST
00002eff: DUP2
00002f00: DUP2
00002f01: MSTORE
00002f02: DUP6
00002f03: PUSH1 0x20
00002f05: DUP4
00002f06: DUP6
00002f07: ADD
00002f08: ADD
00002f09: GT
00002f0a: ISZERO
00002f0b: PUSH2 0x2f12
00002f0e: JUMPI
00002f0f: DUP4
00002f10: DUP5
00002f11: REVERT
00002f12: JUMPDEST
00002f13: PUSH2 0x2f23
00002f16: DUP3
00002f17: PUSH1 0x20
00002f19: DUP4
00002f1a: ADD
00002f1b: PUSH1 0x20
00002f1d: DUP7
00002f1e: ADD
00002f1f: PUSH2 0x34cd
00002f22: JUMP
00002f23: JUMPDEST
00002f24: SWAP6
00002f25: SWAP5
00002f26: POP
00002f27: POP
00002f28: POP
00002f29: POP
00002f2a: POP
00002f2b: JUMP
00002f2c: JUMPDEST
00002f2d: PUSH1 0x00
00002f2f: DUP1
00002f30: PUSH1 0x00
00002f32: DUP1
00002f33: PUSH1 0x00
00002f35: DUP1
00002f36: PUSH1 0x00
00002f38: PUSH1 0x80
00002f3a: DUP9
00002f3b: DUP11
00002f3c: SUB
00002f3d: SLT
00002f3e: ISZERO
00002f3f: PUSH2 0x2f46
00002f42: JUMPI
00002f43: DUP1
00002f44: DUP2
00002f45: REVERT
00002f46: JUMPDEST
00002f47: DUP8
00002f48: CALLDATALOAD
00002f49: PUSH1 0x01
00002f4b: PUSH1 0x01
00002f4d: PUSH1 0x40
00002f4f: SHL
00002f50: SUB
00002f51: DUP1
00002f52: DUP3
00002f53: GT
00002f54: ISZERO
00002f55: PUSH2 0x2f5c
00002f58: JUMPI
00002f59: DUP3
00002f5a: DUP4
00002f5b: REVERT
00002f5c: JUMPDEST
00002f5d: SWAP1
00002f5e: DUP10
00002f5f: ADD
00002f60: SWAP1
00002f61: PUSH1 0xa0
00002f63: DUP3
00002f64: DUP13
00002f65: SUB
00002f66: SLT
00002f67: ISZERO
00002f68: PUSH2 0x2f6f
00002f6b: JUMPI
00002f6c: DUP3
00002f6d: DUP4
00002f6e: REVERT
00002f6f: JUMPDEST
00002f70: SWAP1
00002f71: SWAP8
00002f72: POP
00002f73: PUSH1 0x20
00002f75: DUP10
00002f76: ADD
00002f77: CALLDATALOAD
00002f78: SWAP1
00002f79: DUP1
00002f7a: DUP3
00002f7b: GT
00002f7c: ISZERO
00002f7d: PUSH2 0x2f84
00002f80: JUMPI
00002f81: DUP3
00002f82: DUP4
00002f83: REVERT
00002f84: JUMPDEST
00002f85: PUSH2 0x2f90
00002f88: DUP12
00002f89: DUP4
00002f8a: DUP13
00002f8b: ADD
00002f8c: PUSH2 0x2bb0
00002f8f: JUMP
00002f90: JUMPDEST
00002f91: SWAP1
00002f92: SWAP9
00002f93: POP
00002f94: SWAP7
00002f95: POP
00002f96: PUSH1 0x40
00002f98: DUP11
00002f99: ADD
00002f9a: CALLDATALOAD
00002f9b: SWAP2
00002f9c: POP
00002f9d: DUP1
00002f9e: DUP3
00002f9f: GT
00002fa0: ISZERO
00002fa1: PUSH2 0x2fa8
00002fa4: JUMPI
00002fa5: DUP3
00002fa6: DUP4
00002fa7: REVERT
00002fa8: JUMPDEST
00002fa9: PUSH2 0x2fb4
00002fac: DUP12
00002fad: DUP4
00002fae: DUP13
00002faf: ADD
00002fb0: PUSH2 0x2bb0
00002fb3: JUMP
00002fb4: JUMPDEST
00002fb5: SWAP1
00002fb6: SWAP7
00002fb7: POP
00002fb8: SWAP5
00002fb9: POP
00002fba: PUSH1 0x60
00002fbc: DUP11
00002fbd: ADD
00002fbe: CALLDATALOAD
00002fbf: SWAP2
00002fc0: POP
00002fc1: DUP1
00002fc2: DUP3
00002fc3: GT
00002fc4: ISZERO
00002fc5: PUSH2 0x2d9e
00002fc8: JUMPI
00002fc9: DUP3
00002fca: DUP4
00002fcb: REVERT
00002fcc: JUMPDEST
00002fcd: PUSH1 0x00
00002fcf: PUSH1 0x20
00002fd1: DUP3
00002fd2: DUP5
00002fd3: SUB
00002fd4: SLT
00002fd5: ISZERO
00002fd6: PUSH2 0x2fdd
00002fd9: JUMPI
00002fda: DUP1
00002fdb: DUP2
00002fdc: REVERT
00002fdd: JUMPDEST
00002fde: POP
00002fdf: CALLDATALOAD
00002fe0: SWAP2
00002fe1: SWAP1
00002fe2: POP
00002fe3: JUMP
00002fe4: JUMPDEST
00002fe5: PUSH1 0x00
00002fe7: PUSH1 0x20
00002fe9: DUP3
00002fea: DUP5
00002feb: SUB
00002fec: SLT
00002fed: ISZERO
00002fee: PUSH2 0x2ff5
00002ff1: JUMPI
00002ff2: DUP1
00002ff3: DUP2
00002ff4: REVERT
00002ff5: JUMPDEST
00002ff6: POP
00002ff7: MLOAD
00002ff8: SWAP2
00002ff9: SWAP1
00002ffa: POP
00002ffb: JUMP
00002ffc: JUMPDEST
00002ffd: PUSH1 0x00
00002fff: PUSH1 0x20
00003001: DUP3
00003002: DUP5
00003003: SUB
00003004: SLT
00003005: ISZERO
00003006: PUSH2 0x300d
00003009: JUMPI
0000300a: DUP1
0000300b: DUP2
0000300c: REVERT
0000300d: JUMPDEST
0000300e: DUP2
0000300f: CALLDATALOAD
00003010: PUSH2 0x2193
00003013: DUP2
00003014: PUSH2 0x3589
00003017: JUMP
00003018: JUMPDEST
00003019: PUSH1 0x00
0000301b: PUSH1 0x20
0000301d: DUP3
0000301e: DUP5
0000301f: SUB
00003020: SLT
00003021: ISZERO
00003022: PUSH2 0x3029
00003025: JUMPI
00003026: DUP1
00003027: DUP2
00003028: REVERT
00003029: JUMPDEST
0000302a: DUP2
0000302b: MLOAD
0000302c: PUSH2 0x2193
0000302f: DUP2
00003030: PUSH2 0x3589
00003033: JUMP
00003034: JUMPDEST
00003035: PUSH1 0x00
00003037: DUP3
00003038: MLOAD
00003039: PUSH2 0x3046
0000303c: DUP2
0000303d: DUP5
0000303e: PUSH1 0x20
00003040: DUP8
00003041: ADD
00003042: PUSH2 0x34cd
00003045: JUMP
00003046: JUMPDEST
00003047: SWAP2
00003048: SWAP1
00003049: SWAP2
0000304a: ADD
0000304b: SWAP3
0000304c: SWAP2
0000304d: POP
0000304e: POP
0000304f: JUMP
00003050: JUMPDEST
00003051: PUSH1 0x00
00003053: DUP3
00003054: DUP5
00003055: DUP4
00003056: CALLDATACOPY
00003057: SWAP2
00003058: ADD
00003059: SWAP1
0000305a: DUP2
0000305b: MSTORE
0000305c: SWAP2
0000305d: SWAP1
0000305e: POP
0000305f: JUMP
00003060: JUMPDEST
00003061: DUP2
00003062: SLOAD
00003063: PUSH1 0x00
00003065: SWAP1
00003066: DUP2
00003067: SWAP1
00003068: PUSH1 0x02
0000306a: DUP2
0000306b: DIV
0000306c: PUSH1 0x01
0000306e: DUP1
0000306f: DUP4
00003070: AND
00003071: DUP1
00003072: PUSH2 0x307c
00003075: JUMPI
00003076: PUSH1 0x7f
00003078: DUP4
00003079: AND
0000307a: SWAP3
0000307b: POP
0000307c: JUMPDEST
0000307d: PUSH1 0x20
0000307f: DUP1
00003080: DUP5
00003081: LT
00003082: DUP3
00003083: EQ
00003084: ISZERO
00003085: PUSH2 0x309c
00003088: JUMPI
00003089: PUSH4 0x4e487b71
0000308e: PUSH1 0xe0
00003090: SHL
00003091: DUP8
00003092: MSTORE
00003093: PUSH1 0x22
00003095: PUSH1 0x04
00003097: MSTORE
00003098: PUSH1 0x24
0000309a: DUP8
0000309b: REVERT
0000309c: JUMPDEST
0000309d: DUP2
0000309e: DUP1
0000309f: ISZERO
000030a0: PUSH2 0x30b0
000030a3: JUMPI
000030a4: PUSH1 0x01
000030a6: DUP2
000030a7: EQ
000030a8: PUSH2 0x30c1
000030ab: JUMPI
000030ac: PUSH2 0x30ed
000030af: JUMP
000030b0: JUMPDEST
000030b1: PUSH1 0xff
000030b3: NOT
000030b4: DUP7
000030b5: AND
000030b6: DUP10
000030b7: MSTORE
000030b8: DUP5
000030b9: DUP10
000030ba: ADD
000030bb: SWAP7
000030bc: POP
000030bd: PUSH2 0x30ed
000030c0: JUMP
000030c1: JUMPDEST
000030c2: PUSH1 0x00
000030c4: DUP11
000030c5: DUP2
000030c6: MSTORE
000030c7: PUSH1 0x20
000030c9: SWAP1
000030ca: KECCAK256
000030cb: DUP9
000030cc: JUMPDEST
000030cd: DUP7
000030ce: DUP2
000030cf: LT
000030d0: ISZERO
000030d1: PUSH2 0x30e5
000030d4: JUMPI
000030d5: DUP2
000030d6: SLOAD
000030d7: DUP12
000030d8: DUP3
000030d9: ADD
000030da: MSTORE
000030db: SWAP1
000030dc: DUP6
000030dd: ADD
000030de: SWAP1
000030df: DUP4
000030e0: ADD
000030e1: PUSH2 0x30cc
000030e4: JUMP
000030e5: JUMPDEST
000030e6: POP
000030e7: POP
000030e8: DUP5
000030e9: DUP10
000030ea: ADD
000030eb: SWAP7
000030ec: POP
000030ed: JUMPDEST
000030ee: POP
000030ef: SWAP5
000030f0: SWAP9
000030f1: SWAP8
000030f2: POP
000030f3: POP
000030f4: POP
000030f5: POP
000030f6: POP
000030f7: POP
000030f8: POP
000030f9: POP
000030fa: JUMP
000030fb: JUMPDEST
000030fc: PUSH1 0x00
000030fe: DUP9
000030ff: DUP3
00003100: MSTORE
00003101: PUSH12 0xffffffffffffffffffffffff
0000310e: NOT
0000310f: DUP1
00003110: DUP10
00003111: PUSH1 0x60
00003113: SHL
00003114: AND
00003115: PUSH1 0x20
00003117: DUP5
00003118: ADD
00003119: MSTORE
0000311a: DUP1
0000311b: DUP9
0000311c: PUSH1 0x60
0000311e: SHL
0000311f: AND
00003120: PUSH1 0x34
00003122: DUP5
00003123: ADD
00003124: MSTORE
00003125: POP
00003126: DUP5
00003127: DUP7
00003128: PUSH1 0x48
0000312a: DUP5
0000312b: ADD
0000312c: CALLDATACOPY
0000312d: POP
0000312e: PUSH1 0x48
00003130: SWAP4
00003131: ADD
00003132: SWAP3
00003133: DUP4
00003134: ADD
00003135: SWAP2
00003136: SWAP1
00003137: SWAP2
00003138: MSTORE
00003139: PUSH1 0x68
0000313b: DUP3
0000313c: ADD
0000313d: MSTORE
0000313e: PUSH1 0x88
00003140: ADD
00003141: SWAP5
00003142: SWAP4
00003143: POP
00003144: POP
00003145: POP
00003146: POP
00003147: JUMP
00003148: JUMPDEST
00003149: PUSH1 0x20
0000314b: DUP1
0000314c: DUP3
0000314d: MSTORE
0000314e: DUP2
0000314f: DUP2
00003150: ADD
00003151: DUP4
00003152: SWAP1
00003153: MSTORE
00003154: PUSH1 0x00
00003156: SWAP1
00003157: DUP5
00003158: PUSH1 0x40
0000315a: DUP5
0000315b: ADD
0000315c: DUP4
0000315d: JUMPDEST
0000315e: DUP7
0000315f: DUP2
00003160: LT
00003161: ISZERO
00003162: PUSH2 0x3189
00003165: JUMPI
00003166: PUSH1 0x01
00003168: PUSH1 0x01
0000316a: PUSH1 0xa0
0000316c: SHL
0000316d: SUB
0000316e: PUSH2 0x3176
00003171: DUP5
00003172: PUSH2 0x2b99
00003175: JUMP
00003176: JUMPDEST
00003177: AND
00003178: DUP3
00003179: MSTORE
0000317a: SWAP2
0000317b: DUP4
0000317c: ADD
0000317d: SWAP2
0000317e: SWAP1
0000317f: DUP4
00003180: ADD
00003181: SWAP1
00003182: PUSH1 0x01
00003184: ADD
00003185: PUSH2 0x315d
00003188: JUMP
00003189: JUMPDEST
0000318a: POP
0000318b: SWAP7
0000318c: SWAP6
0000318d: POP
0000318e: POP
0000318f: POP
00003190: POP
00003191: POP
00003192: POP
00003193: JUMP
00003194: JUMPDEST
00003195: PUSH1 0x00
00003197: PUSH1 0x20
00003199: DUP3
0000319a: MSTORE
0000319b: DUP3
0000319c: MLOAD
0000319d: DUP1
0000319e: PUSH1 0x20
000031a0: DUP5
000031a1: ADD
000031a2: MSTORE
000031a3: PUSH2 0x31b3
000031a6: DUP2
000031a7: PUSH1 0x40
000031a9: DUP6
000031aa: ADD
000031ab: PUSH1 0x20
000031ad: DUP8
000031ae: ADD
000031af: PUSH2 0x34cd
000031b2: JUMP
000031b3: JUMPDEST
000031b4: PUSH1 0x1f
000031b6: ADD
000031b7: PUSH1 0x1f
000031b9: NOT
000031ba: AND
000031bb: SWAP2
000031bc: SWAP1
000031bd: SWAP2
000031be: ADD
000031bf: PUSH1 0x40
000031c1: ADD
000031c2: SWAP3
000031c3: SWAP2
000031c4: POP
000031c5: POP
000031c6: JUMP
000031c7: JUMPDEST
000031c8: PUSH1 0x20
000031ca: DUP1
000031cb: DUP3
000031cc: MSTORE
000031cd: PUSH1 0x2e
000031cf: SWAP1
000031d0: DUP3
000031d1: ADD
000031d2: MSTORE
000031d3: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
000031f4: PUSH1 0x40
000031f6: DUP3
000031f7: ADD
000031f8: MSTORE
000031f9: PUSH14 0x191e481a5b9a5d1a585b1a5e9959
00003208: PUSH1 0x92
0000320a: SHL
0000320b: PUSH1 0x60
0000320d: DUP3
0000320e: ADD
0000320f: MSTORE
00003210: PUSH1 0x80
00003212: ADD
00003213: SWAP1
00003214: JUMP
00003215: JUMPDEST
00003216: PUSH1 0x20
00003218: DUP1
00003219: DUP3
0000321a: MSTORE
0000321b: PUSH1 0x11
0000321d: SWAP1
0000321e: DUP3
0000321f: ADD
00003220: MSTORE
00003221: PUSH17 0x27bbb730b1363297a737ba1037bbb732b9
00003233: PUSH1 0x79
00003235: SHL
00003236: PUSH1 0x40
00003238: DUP3
00003239: ADD
0000323a: MSTORE
0000323b: PUSH1 0x60
0000323d: ADD
0000323e: SWAP1
0000323f: JUMP
00003240: JUMPDEST
00003241: PUSH1 0x20
00003243: DUP1
00003244: DUP3
00003245: MSTORE
00003246: PUSH1 0x14
00003248: SWAP1
00003249: DUP3
0000324a: ADD
0000324b: MSTORE
0000324c: PUSH20 0x4f776e61626c652f5a65726f2d61646472657373
00003261: PUSH1 0x60
00003263: SHL
00003264: PUSH1 0x40
00003266: DUP3
00003267: ADD
00003268: MSTORE
00003269: PUSH1 0x60
0000326b: ADD
0000326c: SWAP1
0000326d: JUMP
0000326e: JUMPDEST
0000326f: PUSH1 0x00
00003271: DUP6
00003272: DUP3
00003273: MSTORE
00003274: PUSH1 0x60
00003276: PUSH1 0x20
00003278: DUP4
00003279: ADD
0000327a: MSTORE
0000327b: DUP4
0000327c: PUSH1 0x60
0000327e: DUP4
0000327f: ADD
00003280: MSTORE
00003281: DUP4
00003282: DUP6
00003283: PUSH1 0x80
00003285: DUP5
00003286: ADD
00003287: CALLDATACOPY
00003288: DUP1
00003289: PUSH1 0x80
0000328b: DUP6
0000328c: DUP5
0000328d: ADD
0000328e: ADD
0000328f: MSTORE
00003290: PUSH1 0x80
00003292: PUSH1 0x1f
00003294: NOT
00003295: PUSH1 0x1f
00003297: DUP7
00003298: ADD
00003299: AND
0000329a: DUP4
0000329b: ADD
0000329c: ADD
0000329d: SWAP1
0000329e: POP
0000329f: DUP3
000032a0: PUSH1 0x40
000032a2: DUP4
000032a3: ADD
000032a4: MSTORE
000032a5: SWAP6
000032a6: SWAP5
000032a7: POP
000032a8: POP
000032a9: POP
000032aa: POP
000032ab: POP
000032ac: JUMP
000032ad: JUMPDEST
000032ae: PUSH1 0x00
000032b0: DUP1
000032b1: DUP4
000032b2: CALLDATALOAD
000032b3: PUSH1 0x1e
000032b5: NOT
000032b6: DUP5
000032b7: CALLDATASIZE
000032b8: SUB
000032b9: ADD
000032ba: DUP2
000032bb: SLT
000032bc: PUSH2 0x32c3
000032bf: JUMPI
000032c0: DUP3
000032c1: DUP4
000032c2: REVERT
000032c3: JUMPDEST
000032c4: DUP4
000032c5: ADD
000032c6: DUP1
000032c7: CALLDATALOAD
000032c8: SWAP2
000032c9: POP
000032ca: PUSH1 0x01
000032cc: PUSH1 0x01
000032ce: PUSH1 0x40
000032d0: SHL
000032d1: SUB
000032d2: DUP3
000032d3: GT
000032d4: ISZERO
000032d5: PUSH2 0x32dc
000032d8: JUMPI
000032d9: DUP3
000032da: DUP4
000032db: REVERT
000032dc: JUMPDEST
000032dd: PUSH1 0x20
000032df: ADD
000032e0: SWAP2
000032e1: POP
000032e2: CALLDATASIZE
000032e3: DUP2
000032e4: SWAP1
000032e5: SUB
000032e6: DUP3
000032e7: SGT
000032e8: ISZERO
000032e9: PUSH2 0x2bf1
000032ec: JUMPI
000032ed: PUSH1 0x00
000032ef: DUP1
000032f0: REVERT
000032f1: JUMPDEST
000032f2: PUSH1 0x40
000032f4: MLOAD
000032f5: PUSH1 0x1f
000032f7: DUP3
000032f8: ADD
000032f9: PUSH1 0x1f
000032fb: NOT
000032fc: AND
000032fd: DUP2
000032fe: ADD
000032ff: PUSH1 0x01
00003301: PUSH1 0x01
00003303: PUSH1 0x40
00003305: SHL
00003306: SUB
00003307: DUP2
00003308: GT
00003309: DUP3
0000330a: DUP3
0000330b: LT
0000330c: OR
0000330d: ISZERO
0000330e: PUSH2 0x3319
00003311: JUMPI
00003312: PUSH2 0x3319
00003315: PUSH2 0x3565
00003318: JUMP
00003319: JUMPDEST
0000331a: PUSH1 0x40
0000331c: MSTORE
0000331d: SWAP2
0000331e: SWAP1
0000331f: POP
00003320: JUMP
00003321: JUMPDEST
00003322: PUSH1 0x00
00003324: PUSH1 0x01
00003326: PUSH1 0x01
00003328: PUSH1 0x40
0000332a: SHL
0000332b: SUB
0000332c: DUP3
0000332d: GT
0000332e: ISZERO
0000332f: PUSH2 0x333a
00003332: JUMPI
00003333: PUSH2 0x333a
00003336: PUSH2 0x3565
00003339: JUMP
0000333a: JUMPDEST
0000333b: POP
0000333c: PUSH1 0x1f
0000333e: ADD
0000333f: PUSH1 0x1f
00003341: NOT
00003342: AND
00003343: PUSH1 0x20
00003345: ADD
00003346: SWAP1
00003347: JUMP
00003348: JUMPDEST
00003349: PUSH1 0x00
0000334b: DUP3
0000334c: NOT
0000334d: DUP3
0000334e: GT
0000334f: ISZERO
00003350: PUSH2 0x335b
00003353: JUMPI
00003354: PUSH2 0x335b
00003357: PUSH2 0x354f
0000335a: JUMP
0000335b: JUMPDEST
0000335c: POP
0000335d: ADD
0000335e: SWAP1
0000335f: JUMP
00003360: JUMPDEST
00003361: PUSH1 0x00
00003363: DUP3
00003364: PUSH2 0x337b
00003367: JUMPI
00003368: PUSH4 0x4e487b71
0000336d: PUSH1 0xe0
0000336f: SHL
00003370: DUP2
00003371: MSTORE
00003372: PUSH1 0x12
00003374: PUSH1 0x04
00003376: MSTORE
00003377: PUSH1 0x24
00003379: DUP2
0000337a: REVERT
0000337b: JUMPDEST
0000337c: POP
0000337d: DIV
0000337e: SWAP1
0000337f: JUMP
00003380: JUMPDEST
00003381: DUP1
00003382: DUP3
00003383: JUMPDEST
00003384: PUSH1 0x01
00003386: DUP1
00003387: DUP7
00003388: GT
00003389: PUSH2 0x3392
0000338c: JUMPI
0000338d: POP
0000338e: PUSH2 0x33bd
00003391: JUMP
00003392: JUMPDEST
00003393: DUP2
00003394: DUP8
00003395: DIV
00003396: DUP3
00003397: GT
00003398: ISZERO
00003399: PUSH2 0x33a4
0000339c: JUMPI
0000339d: PUSH2 0x33a4
000033a0: PUSH2 0x354f
000033a3: JUMP
000033a4: JUMPDEST
000033a5: DUP1
000033a6: DUP7
000033a7: AND
000033a8: ISZERO
000033a9: PUSH2 0x33b1
000033ac: JUMPI
000033ad: SWAP2
000033ae: DUP2
000033af: MUL
000033b0: SWAP2
000033b1: JUMPDEST
000033b2: SWAP5
000033b3: SWAP1
000033b4: SWAP5
000033b5: SHR
000033b6: SWAP4
000033b7: DUP1
000033b8: MUL
000033b9: PUSH2 0x3383
000033bc: JUMP
000033bd: JUMPDEST
000033be: SWAP5
000033bf: POP
000033c0: SWAP5
000033c1: SWAP3
000033c2: POP
000033c3: POP
000033c4: POP
000033c5: JUMP
000033c6: JUMPDEST
000033c7: PUSH1 0x00
000033c9: PUSH2 0x2193
000033cc: PUSH1 0x00
000033ce: NOT
000033cf: PUSH1 0xff
000033d1: DUP6
000033d2: AND
000033d3: DUP5
000033d4: PUSH1 0x00
000033d6: DUP3
000033d7: PUSH2 0x33e2
000033da: JUMPI
000033db: POP
000033dc: PUSH1 0x01
000033de: PUSH2 0x2193
000033e1: JUMP
000033e2: JUMPDEST
000033e3: DUP2
000033e4: PUSH2 0x33ef
000033e7: JUMPI
000033e8: POP
000033e9: PUSH1 0x00
000033eb: PUSH2 0x2193
000033ee: JUMP
000033ef: JUMPDEST
000033f0: DUP2
000033f1: PUSH1 0x01
000033f3: DUP2
000033f4: EQ
000033f5: PUSH2 0x3405
000033f8: JUMPI
000033f9: PUSH1 0x02
000033fb: DUP2
000033fc: EQ
000033fd: PUSH2 0x340f
00003400: JUMPI
00003401: PUSH2 0x343c
00003404: JUMP
00003405: JUMPDEST
00003406: PUSH1 0x01
00003408: SWAP2
00003409: POP
0000340a: POP
0000340b: PUSH2 0x2193
0000340e: JUMP
0000340f: JUMPDEST
00003410: PUSH1 0xff
00003412: DUP5
00003413: GT
00003414: ISZERO
00003415: PUSH2 0x3420
00003418: JUMPI
00003419: PUSH2 0x3420
0000341c: PUSH2 0x354f
0000341f: JUMP
00003420: JUMPDEST
00003421: PUSH1 0x01
00003423: DUP5
00003424: SHL
00003425: SWAP2
00003426: POP
00003427: DUP5
00003428: DUP3
00003429: GT
0000342a: ISZERO
0000342b: PUSH2 0x3436
0000342e: JUMPI
0000342f: PUSH2 0x3436
00003432: PUSH2 0x354f
00003435: JUMP
00003436: JUMPDEST
00003437: POP
00003438: PUSH2 0x2193
0000343b: JUMP
0000343c: JUMPDEST
0000343d: POP
0000343e: PUSH1 0x20
00003440: DUP4
00003441: LT
00003442: PUSH2 0x0133
00003445: DUP4
00003446: LT
00003447: AND
00003448: PUSH1 0x4e
0000344a: DUP5
0000344b: LT
0000344c: PUSH1 0x0b
0000344e: DUP5
0000344f: LT
00003450: AND
00003451: OR
00003452: ISZERO
00003453: PUSH2 0x346f
00003456: JUMPI
00003457: POP
00003458: DUP2
00003459: DUP2
0000345a: EXP
0000345b: DUP4
0000345c: DUP2
0000345d: GT
0000345e: ISZERO
0000345f: PUSH2 0x346a
00003462: JUMPI
00003463: PUSH2 0x346a
00003466: PUSH2 0x354f
00003469: JUMP
0000346a: JUMPDEST
0000346b: PUSH2 0x2193
0000346e: JUMP
0000346f: JUMPDEST
00003470: PUSH2 0x347c
00003473: DUP5
00003474: DUP5
00003475: DUP5
00003476: PUSH1 0x01
00003478: PUSH2 0x3380
0000347b: JUMP
0000347c: JUMPDEST
0000347d: DUP1
0000347e: DUP7
0000347f: DIV
00003480: DUP3
00003481: GT
00003482: ISZERO
00003483: PUSH2 0x348e
00003486: JUMPI
00003487: PUSH2 0x348e
0000348a: PUSH2 0x354f
0000348d: JUMP
0000348e: JUMPDEST
0000348f: MUL
00003490: SWAP5
00003491: SWAP4
00003492: POP
00003493: POP
00003494: POP
00003495: POP
00003496: JUMP
00003497: JUMPDEST
00003498: PUSH1 0x00
0000349a: DUP2
0000349b: PUSH1 0x00
0000349d: NOT
0000349e: DIV
0000349f: DUP4
000034a0: GT
000034a1: DUP3
000034a2: ISZERO
000034a3: ISZERO
000034a4: AND
000034a5: ISZERO
000034a6: PUSH2 0x34b1
000034a9: JUMPI
000034aa: PUSH2 0x34b1
000034ad: PUSH2 0x354f
000034b0: JUMP
000034b1: JUMPDEST
000034b2: POP
000034b3: MUL
000034b4: SWAP1
000034b5: JUMP
000034b6: JUMPDEST
000034b7: PUSH1 0x00
000034b9: DUP3
000034ba: DUP3
000034bb: LT
000034bc: ISZERO
000034bd: PUSH2 0x34c8
000034c0: JUMPI
000034c1: PUSH2 0x34c8
000034c4: PUSH2 0x354f
000034c7: JUMP
000034c8: JUMPDEST
000034c9: POP
000034ca: SUB
000034cb: SWAP1
000034cc: JUMP
000034cd: JUMPDEST
000034ce: PUSH1 0x00
000034d0: JUMPDEST
000034d1: DUP4
000034d2: DUP2
000034d3: LT
000034d4: ISZERO
000034d5: PUSH2 0x34e8
000034d8: JUMPI
000034d9: DUP2
000034da: DUP2
000034db: ADD
000034dc: MLOAD
000034dd: DUP4
000034de: DUP3
000034df: ADD
000034e0: MSTORE
000034e1: PUSH1 0x20
000034e3: ADD
000034e4: PUSH2 0x34d0
000034e7: JUMP
000034e8: JUMPDEST
000034e9: DUP4
000034ea: DUP2
000034eb: GT
000034ec: ISZERO
000034ed: PUSH2 0x2150
000034f0: JUMPI
000034f1: POP
000034f2: POP
000034f3: PUSH1 0x00
000034f5: SWAP2
000034f6: ADD
000034f7: MSTORE
000034f8: JUMP
000034f9: JUMPDEST
000034fa: PUSH1 0x02
000034fc: DUP2
000034fd: DIV
000034fe: PUSH1 0x01
00003500: DUP3
00003501: AND
00003502: DUP1
00003503: PUSH2 0x350d
00003506: JUMPI
00003507: PUSH1 0x7f
00003509: DUP3
0000350a: AND
0000350b: SWAP2
0000350c: POP
0000350d: JUMPDEST
0000350e: PUSH1 0x20
00003510: DUP3
00003511: LT
00003512: DUP2
00003513: EQ
00003514: ISZERO
00003515: PUSH2 0x352e
00003518: JUMPI
00003519: PUSH4 0x4e487b71
0000351e: PUSH1 0xe0
00003520: SHL
00003521: PUSH1 0x00
00003523: MSTORE
00003524: PUSH1 0x22
00003526: PUSH1 0x04
00003528: MSTORE
00003529: PUSH1 0x24
0000352b: PUSH1 0x00
0000352d: REVERT
0000352e: JUMPDEST
0000352f: POP
00003530: SWAP2
00003531: SWAP1
00003532: POP
00003533: JUMP
00003534: JUMPDEST
00003535: PUSH1 0x00
00003537: PUSH1 0x00
00003539: NOT
0000353a: DUP3
0000353b: EQ
0000353c: ISZERO
0000353d: PUSH2 0x3548
00003540: JUMPI
00003541: PUSH2 0x3548
00003544: PUSH2 0x354f
00003547: JUMP
00003548: JUMPDEST
00003549: POP
0000354a: PUSH1 0x01
0000354c: ADD
0000354d: SWAP1
0000354e: JUMP
0000354f: JUMPDEST
00003550: PUSH4 0x4e487b71
00003555: PUSH1 0xe0
00003557: SHL
00003558: PUSH1 0x00
0000355a: MSTORE
0000355b: PUSH1 0x11
0000355d: PUSH1 0x04
0000355f: MSTORE
00003560: PUSH1 0x24
00003562: PUSH1 0x00
00003564: REVERT
00003565: JUMPDEST
00003566: PUSH4 0x4e487b71
0000356b: PUSH1 0xe0
0000356d: SHL
0000356e: PUSH1 0x00
00003570: MSTORE
00003571: PUSH1 0x41
00003573: PUSH1 0x04
00003575: MSTORE
00003576: PUSH1 0x24
00003578: PUSH1 0x00
0000357a: REVERT
0000357b: JUMPDEST
0000357c: DUP1
0000357d: ISZERO
0000357e: ISZERO
0000357f: DUP2
00003580: EQ
00003581: PUSH2 0x206a
00003584: JUMPI
00003585: PUSH1 0x00
00003587: DUP1
00003588: REVERT
00003589: JUMPDEST
0000358a: PUSH1 0xff
0000358c: DUP2
0000358d: AND
0000358e: DUP2
0000358f: EQ
00003590: PUSH2 0x206a
00003593: JUMPI
00003594: PUSH1 0x00
00003596: DUP1
00003597: REVERT
00003598: INVALID
00003599: LOG2
0000359a: PUSH5 0x6970667358
000035a0: UNKNOWN(0x22)
000035a1: SLT
000035a2: KECCAK256
000035a3: SGT
000035a4: UNKNOWN(0x24)
000035a5: SWAP5
000035a6: PUSH22 0xaa244f294f885962efc63899b39abf75d154f852f31b
000035bd: BLOBHASH
000035be: XOR
000035bf: CALLDATASIZE
000035c0: JUMPDEST
000035c1: MOD
000035c2: MUL
000035c3: PUSH5 0x736f6c6343
000035c9: STOP
000035ca: ADDMOD
000035cb: MUL
000035cc: STOP
000035cd: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xf9fead42d16bf72ff7dab35a0a5d39bb4561830eab233430847c98b5f6768c1c
call_targets: 0xeda4c4067bdd708bb75ac620e1e2215a747a1f39
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xf9fead42d16bf72ff7dab35a0a5d39bb4561830eab233430847c98b5f6768c1c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xeda4c4067bdd708bb75ac620e1e2215a747a1f39"
    ],
    "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": "0xf9c243df",
            "selector": "0xf9c243df",
            "calldata_variants": [
                "0xf9c243df",
                "0xf9c243df0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa7643f4",
            "selector": "0xfa7643f4",
            "calldata_variants": [
                "0xfa7643f4",
                "0xfa7643f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfeaec775",
            "selector": "0xfeaec775",
            "calldata_variants": [
                "0xfeaec775",
                "0xfeaec7750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffec41de",
            "selector": "0xffec41de",
            "calldata_variants": [
                "0xffec41de",
                "0xffec41de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf454fd9b",
            "selector": "0xf454fd9b",
            "calldata_variants": [
                "0xf454fd9b",
                "0xf454fd9b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf62d1888",
            "selector": "0xf62d1888",
            "calldata_variants": [
                "0xf62d1888",
                "0xf62d18880000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf851a440",
            "selector": "0xf851a440",
            "calldata_variants": [
                "0xf851a440",
                "0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 8783,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10887,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xf9fead42d16bf72ff7dab35a0a5d39bb4561830eab233430847c98b5f6768c1c
call_targets: 0xeda4c4067bdd708bb75ac620e1e2215a747a1f39
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xf9fead42d16bf72ff7dab35a0a5d39bb4561830eab233430847c98b5f6768c1c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xeda4c4067bdd708bb75ac620e1e2215a747a1f39"
    ],
    "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": "0xf9c243df",
            "selector": "0xf9c243df",
            "calldata_variants": [
                "0xf9c243df",
                "0xf9c243df0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa7643f4",
            "selector": "0xfa7643f4",
            "calldata_variants": [
                "0xfa7643f4",
                "0xfa7643f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfeaec775",
            "selector": "0xfeaec775",
            "calldata_variants": [
                "0xfeaec775",
                "0xfeaec7750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffec41de",
            "selector": "0xffec41de",
            "calldata_variants": [
                "0xffec41de",
                "0xffec41de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf454fd9b",
            "selector": "0xf454fd9b",
            "calldata_variants": [
                "0xf454fd9b",
                "0xf454fd9b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf62d1888",
            "selector": "0xf62d1888",
            "calldata_variants": [
                "0xf62d1888",
                "0xf62d18880000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf851a440",
            "selector": "0xf851a440",
            "calldata_variants": [
                "0xf851a440",
                "0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 8783,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10887,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
medium reentrancy codex External CALL with ETH value to computed target (reentrancy/untrusted-call risk) 75 no
view
evidence_json
{
    "evidence": "CALL at pc 0x224f masks an address from the stack (PUSH1 0xa0; SHL; SUB; AND) and uses a computed value; callsite metadata shows target/value are computed. A second CALL at pc 0x2a87 uses full GAS with computed stack arguments. Detector flagged both as untrusted CALLs with possible ETH value; validation trace noted a constant target in one observed trace, so target variability is uncertain from bytecode alone.",
    "locations": [
        "pc:0x224f",
        "pc:0x2a87"
    ],
    "recommendation": "Apply checks-effects-interactions: update any accounting/state before the external call, or use a pull-payment pattern. Add a reentrancy guard around the affected entrypoints. If only specific targets are intended, validate the recipient/token address before the call.",
    "exploit_scenario": "If a function forwards ETH to a user-supplied recipient and updates accounting after the external CALL, a malicious recipient contract could reenter (via fallback/receive) and invoke the same release/withdraw path multiple times before state is finalized. Bytecode-only analysis cannot confirm the exact state-update order; risk depends on surrounding logic."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 9
}