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

Analysis Run

019bab3c-cabb-72fc-a916-554f86904ec9

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:07 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 DELEGATECALL target 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
39011 artifact.fetch complete 1 / 3 3 months ago
39012 proxy.resolve complete 1 / 3 3 months ago
39013 tool.cast_disasm complete 1 / 3 3 months ago
39014 analysis.bundle complete 1 / 3 3 months ago
39015 capability.graph complete 1 / 3 3 months ago
39016 detector.run complete 1 / 3 3 months ago
39017 validation.fork complete 1 / 3 3 months ago
39239 report.consolidate complete 1 / 6 3 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
Detected delegatecall(s) to computed targets with no confirmed trust boundary; if the target address is user-influenced, this enables arbitrary code execution in the contract’s storage context.
View stdout
{"no_findings":false,"summary":"Detected delegatecall(s) to computed targets with no confirmed trust boundary; if the target address is user-influenced, this enables arbitrary code execution in the contract’s storage context.","findings":[{"severity":"medium","category":"other","title":"Computed DELEGATECALL target reachable (potentially untrusted)","exploit_scenario":"If an attacker can influence the storage/mapping used to resolve the delegatecall target (e.g., a facet/implementation address), they can point it to malicious code and gain arbitrary storage writes, asset drains, or ownership takeover via delegatecall. The bytecode analysis does not confirm who controls the target, so impact depends on access control in the (unknown) setter paths.","recommendation":"Ensure delegatecall targets are immutable or only changeable by a well-guarded admin. Consider explicit allowlists or codehash checks for implementations/facets, and emit events on upgrades. If this is intended as a proxy/diamond pattern, clearly gate upgrade or selector-to-facet management functions.","evidence":"Detector flagged 2 DELEGATECALL sites with computed targets and no validated guard; evidence_json shows untrusted_delegatecall_count=2 with target_expression_category=computed. Callsites at pc 8790 and 9330. Storage reads occur immediately around delegatecall path (e.g., SLOAD at pc 9313 slot 0x7050c9e0... and pc 9386 slot 0x10d6a54a...), indicating the target may be derived from storage. Guard detection only saw msg.sender==0xffff.. (likely unsatisfiable), so access control is unclear.","locations":["pc:0x2256","pc:0x2472"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-a54kxd0u
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bac2a-ecd8-7081-bb3d-5b2ebe656b71
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers

thinking
**Reading BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-a54kxd0u succeeded in 5ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-a54kxd0u succeeded in 34ms:
{
  "analysis_artifact": {
    "address": "0x3463c6572bf1ea4c719fc229bd0d4956b0585a2c",
    "artifact_hash": "0x6e3d3c6ecb050ee0f4514ff867763223e11fb30cd6488f9407f41c77dc11c6c4",
    "artifact_json": {
      "auth": {
        "guards": [
          {
            "pc": 4665,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
          },
          {
            "pc": 6728,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
          },
          {
            "pc": 8639,
            "type": "msg_sender_eq_const",

thinking
**Planning evidence extraction approach**
exec
/bin/bash -lc "python - <<'PY'
import json
import sys
path='BYTECODE_BUNDLE.json'
with open(path) as f:
    data=json.load(f)
print(data.keys())
PY" in /tmp/codex-a54kxd0u succeeded in 45ms:
dict_keys(['analysis_artifact', 'analysis_run', 'artifact', 'capability_graph', 'detector_findings', 'heuristics_summary'])

thinking
**Inspecting artifact**
exec
/bin/bash -lc "python - <<'PY'
import json
path='BYTECODE_BUNDLE.json'
with open(path) as f:
    data=json.load(f)
print(data['artifact'].keys())
PY" in /tmp/codex-a54kxd0u succeeded in 79ms:
dict_keys(['codehash', 'compiler_json', 'implementation_address', 'is_proxy', 'runtime_bytecode', 'verified_source'])

thinking
**Checking proxy status**
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_address', data['artifact'].get('implementation_address'))
PY" in /tmp/codex-a54kxd0u succeeded in 34ms:
is_proxy False
implementation_address None

thinking
**Comparing artifact types**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
print(data['capability_graph'].keys())
PY" in /tmp/codex-a54kxd0u succeeded in 40ms:
dict_keys(['address', 'block_number', 'chain_id', 'codehash', 'created_at', 'graph_hash', 'graph_json', 'id', 'updated_at', 'version'])

thinking
**Inspecting analysis_run for evidence_bundle**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
print(data['analysis_run'].keys())
PY" in /tmp/codex-a54kxd0u succeeded in 72ms:
dict_keys(['address', 'block_number', 'chain_id', 'child_links', 'created_at', 'id', 'parent_links', 'status', 'updated_at'])

thinking
**Inspecting graph_json structure**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
print(data['capability_graph']['graph_json'].keys())
PY" in /tmp/codex-a54kxd0u succeeded in 34ms:
dict_keys(['edges', 'nodes', 'version'])

thinking
**Investigating storage and callsite data**
exec
/bin/bash -lc 'rg -n "storage" BYTECODE_BUNDLE.json | head' in /tmp/codex-a54kxd0u succeeded in 18ms:
13256:          "storage": {
13636:          "storage": {
14016:          "storage": {
14396:          "storage": {
14776:          "storage": {
15156:          "storage": {
15536:          "storage": {
15916:          "storage": {
16296:          "storage": {
16676:          "storage": {

thinking
**Inspecting storage info in file**
exec
/bin/bash -lc "sed -n '13240,13290p' BYTECODE_BUNDLE.json" in /tmp/codex-a54kxd0u succeeded in 8ms:
              },
              {
                "pc": 9162,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              }
            ]
          },
          "entry_pc": 4187942029,
          "selector": "0xf99eec8d",
          "sinks": {
            "call": 0,
            "delegatecall": 2,
            "selfdestruct": 0,
            "staticcall": 2
          },
          "storage": {
            "reads": 105,
            "slots": [
              {

thinking
**Analyzing delegatecall usage in graph data**
exec
/bin/bash -lc "python - <<'PY'
import json
from collections import Counter
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
# find callsites in analysis_artifact artifact_json
nodes = data['analysis_artifact']['artifact_json'].get('nodes', [])
# in earlier output we saw callsites; let's list them with extra info if present
calls=[n for n in nodes if n.get('type')=='callsite']
print('callsites', len(calls))
print(calls[:5])
PY" in /tmp/codex-a54kxd0u succeeded in 37ms:
callsites 0
[]

thinking
**Investigating callsites location**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
nodes = data['capability_graph']['graph_json'].get('nodes', [])
# find callsites
calls=[n for n in nodes if n.get('type')=='callsite']
print('callsites', len(calls))
print(calls[:10])
PY" in /tmp/codex-a54kxd0u succeeded in 38ms:
callsites 4
[{'id': 'call:4387', 'opcode': 'STATICCALL', 'pc': 4387, 'type': 'callsite'}, {'id': 'call:5164', 'opcode': 'STATICCALL', 'pc': 5164, 'type': 'callsite'}, {'id': 'call:8790', 'opcode': 'DELEGATECALL', 'pc': 8790, 'type': 'callsite'}, {'id': 'call:9330', 'opcode': 'DELEGATECALL', 'pc': 9330, 'type': 'callsite'}]

thinking
**Investigating call graph edges**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
edges=data['capability_graph']['graph_json'].get('edges', [])
# filter edges involving call:8790 or call:9330
for call_id in ['call:8790','call:9330']:
    rel=[e for e in edges if e.get('src')==call_id or e.get('dst')==call_id]
    print(call_id, 'edges', len(rel))
    print(rel[:10])
PY" in /tmp/codex-a54kxd0u succeeded in 35ms:
call:8790 edges 0
[]
call:9330 edges 0
[]

thinking
**Inspecting function nodes with storage sinks**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
funcs=[n for n in data['capability_graph']['graph_json'].get('nodes', []) if n.get('type')=='function']
print('functions', len(funcs))
# list functions with delegatecall sink
with_delegate=[f for f in funcs if f.get('sinks',{}).get('delegatecall',0)>0]
print('with delegatecall', len(with_delegate))
for f in with_delegate[:10]:
    print(f.get('selector'), f.get('entry_pc'), f.get('sinks'))
PY" in /tmp/codex-a54kxd0u succeeded in 36ms:
functions 73
with delegatecall 0

thinking
**Examining functions for sink attributes**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
# find any nodes with sinks
nodes = data['capability_graph']['graph_json'].get('nodes', [])
with_sinks=[n for n in nodes if 'sinks' in n]
print('nodes with sinks', len(with_sinks))
print(with_sinks[:3])
PY" in /tmp/codex-a54kxd0u succeeded in 47ms:
nodes with sinks 0
[]

thinking
**Investigating snippet origin in file**
exec
/bin/bash -lc "sed -n '13180,13220p' BYTECODE_BUNDLE.json" in /tmp/codex-a54kxd0u succeeded in 15ms:
        },
        {
          "entry_pc": null,
          "selector": "0x3131be90"
        },
        {
          "entry_pc": 400409976,
          "selector": "0x17ddc578"
        },
        {
          "entry_pc": 499052412,
          "selector": "0x1a454ea6"
        },
        {
          "entry_pc": null,
          "selector": "0x1dbeef7c"
        },
        {
          "entry_pc": 343336448,
          "selector": "0x13d3d00e"

thinking
**Examining function list boundaries**
exec
/bin/bash -lc "sed -n '13220,13260p' BYTECODE_BUNDLE.json" in /tmp/codex-a54kxd0u succeeded in 8ms:
        }
      ],
      "functions": [
        {
          "auth": {
            "guards": [
              {
                "pc": 4665,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              },
              {
                "pc": 6728,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              },
              {
                "pc": 8639,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"

thinking
**Searching JSON for functions with sinks**
exec
/bin/bash -lc "python - <<'PY'
import json
from collections import deque
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)

# find paths to list of dicts where dict has 'sinks'
paths=[]

def walk(obj, path):
    if isinstance(obj, dict):
        if 'functions' in obj and isinstance(obj['functions'], list):
            # check if any function has 'sinks'
            if any(isinstance(fn, dict) and 'sinks' in fn for fn in obj['functions']):
                paths.append(path + ['functions'])
        for k,v in obj.items():
            walk(v, path+[k])
    elif isinstance(obj, list):
        for i,v in enumerate(obj):
            walk(v, path+[i])

walk(data, [])
print(paths)
PY" in /tmp/codex-a54kxd0u succeeded in 53ms:
[['analysis_artifact', 'artifact_json', 'functions']]

thinking
**Parsing functions for delegatecall**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
funcs=data['analysis_artifact']['artifact_json'].get('functions', [])
print('functions', len(funcs))
with_del=[f for f in funcs if f.get('sinks',{}).get('delegatecall',0)>0]
print('with delegatecall', len(with_del))
for f in with_del:
    print(f.get('selector'), f.get('entry_pc'), f.get('sinks'))
PY" in /tmp/codex-a54kxd0u succeeded in 35ms:
functions 73
with delegatecall 73
0xf99eec8d 4187942029 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xfa845ca9 4227030854 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xfbf35f46 None {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xf2fde38b 4132801280 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xf6558b00 None {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xec556889 3965020297 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xf09a4016 4053881761 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xf1a153a1 None {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xe2a4157c 3906930557 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xe8df077d None {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xd8e9f45d 3639211101 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xdb3d1ccf 3699852620 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xdc87454c None {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xd7615d37 3621415766 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xd7da6b56 None {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xbdbcb576 3286906229 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xc3ea3575 3466034114 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}
0xce977bc2 3590869410 {'call': 0, 'delegatecall': 2, 'selfdestruct': 0, 'staticcall': 2}

thinking
**Analyzing delegatecall targets and storage slots**

I'm examining delegatecall usage suggesting a proxy or modular pattern, focusing on computed delegatecall targets flagged as untrusted. To trace these targets, I plan to scan storage slot accesses near the delegatecall instruction PCs (8790 and 9330) by parsing the storage slots list for operations like SLOAD around those PCs. I'll write a Python script to identify relevant storage slots linked to the delegatecall target computation.
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
funcs=data['analysis_artifact']['artifact_json'].get('functions', [])
# take first function
f=funcs[0]
slots=f.get('storage',{}).get('slots',[])
near=[s for s in slots if 8700 <= s.get('pc',0) <= 9400]
print('near count', len(near))
print(near[:20])
PY" in /tmp/codex-a54kxd0u succeeded in 36ms:
near count 5
[{'op': 'SLOAD', 'pc': 8921, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000008'}, {'op': 'SLOAD', 'pc': 8951, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000008'}, {'op': 'SLOAD', 'pc': 9106, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000007'}, {'op': 'SLOAD', 'pc': 9313, 'slot': '0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3'}, {'op': 'SLOAD', 'pc': 9386, 'slot': '0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b'}]

thinking
**Analyzing delegatecall storage and access control**
exec
/bin/bash -lc "python - <<'PY'
import json
impl_slot='0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc'.lower()
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
funcs=data['analysis_artifact']['artifact_json'].get('functions', [])
slots=set()
for f in funcs:
    for s in f.get('storage',{}).get('slots', []):
        slots.add(s['slot'].lower())
print('impl slot present?', impl_slot in slots)
PY" in /tmp/codex-a54kxd0u succeeded in 53ms:
impl slot present? False

thinking
**Checking diamond storage slot constants**
exec
/bin/bash -lc "python - <<'PY'
import hashlib
s=b\"diamond.standard.diamond.storage\"
print('0x'+hashlib.sha3_256(s).hexdigest())
PY" in /tmp/codex-a54kxd0u succeeded in 19ms:
0x650878ab38e4aea3c87642c8ba3a0d0e8e0bd09875b345697afc775f64dda33c

thinking
**Investigating proxy storage slots**
exec
/bin/bash -lc "python - <<'PY'
import json
slots=set()
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
for f in data['analysis_artifact']['artifact_json'].get('functions', []):
    for s in f.get('storage',{}).get('slots', []):
        slots.add(s['slot'].lower())
for name,slot in [('impl','0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc'),('admin','0xb53127684a568b3173ae13b9f8a6016e0198bfb5d4f64fa5b409f9e1e6b3adfb'),('beacon','0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50')]:
    print(name, slot.lower() in slots)
PY" in /tmp/codex-a54kxd0u succeeded in 56ms:
impl False
admin False
beacon False

thinking
**Investigating delegatecall and selector mappings**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
selectors=[f.get('selector') for f in data['analysis_artifact']['artifact_json'].get('functions', [])]
print('diamondCut present', '0x1f931c1c' in selectors)
print('facets 0x7a0ed627 present', '0x7a0ed627' in selectors)
print('supportsInterface 0x01ffc9a7 present', '0x01ffc9a7' in selectors)
PY" in /tmp/codex-a54kxd0u succeeded in 37ms:
diamondCut present False
facets 0x7a0ed627 present False
supportsInterface 0x01ffc9a7 present False

thinking
**Analyzing ownership and storage slots**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
slots=set()
for f in data['analysis_artifact']['artifact_json'].get('functions', []):
    for s in f.get('storage',{}).get('slots', []):
        slots.add(s['slot'].lower())
# show small numeric slots
low=[s for s in slots if int(s,16) < 0x40]
print(sorted(low)[:20])
print('count low', len(low))
PY" in /tmp/codex-a54kxd0u succeeded in 39ms:
['0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000001', '0x0000000000000000000000000000000000000000000000000000000000000002', '0x0000000000000000000000000000000000000000000000000000000000000003', '0x0000000000000000000000000000000000000000000000000000000000000004', '0x0000000000000000000000000000000000000000000000000000000000000005', '0x0000000000000000000000000000000000000000000000000000000000000006', '0x0000000000000000000000000000000000000000000000000000000000000007', '0x0000000000000000000000000000000000000000000000000000000000000008', '0x0000000000000000000000000000000000000000000000000000000000000009', '0x000000000000000000000000000000000000000000000000000000000000000a', '0x000000000000000000000000000000000000000000000000000000000000000b', '0x000000000000000000000000000000000000000000000000000000000000000c', '0x000000000000000000000000000000000000000000000000000000000000000d', '0x000000000000000000000000000000000000000000000000000000000000000e', '0x000000000000000000000000000000000000000000000000000000000000000f', '0x0000000000000000000000000000000000000000000000000000000000000010', '0x0000000000000000000000000000000000000000000000000000000000000011', '0x0000000000000000000000000000000000000000000000000000000000000014', '0x0000000000000000000000000000000000000000000000000000000000000015']
count low 32

thinking
**Summarizing delegatecall findings with uncertainty**

I’m analyzing untrusted delegatecall evidence showing two callsites with computed targets and unclear access control due to a likely unsatisfiable guard (msg.sender == 0xffff…). This suggests a medium severity risk related to upgradeability or other dangerous delegatecalls, but with some uncertainty since the proxy flag is false and access control can’t be confirmed. I’ll include locations, evidence from storage loads near delegatecall PCs, and emphasize cautious interpretation in the JSON output per schema.
codex
{"no_findings":false,"summary":"Detected delegatecall(s) to computed targets with no confirmed trust boundary; if the target address is user-influenced, this enables arbitrary code execution in the contract’s storage context.","findings":[{"severity":"medium","category":"other","title":"Computed DELEGATECALL target reachable (potentially untrusted)","exploit_scenario":"If an attacker can influence the storage/mapping used to resolve the delegatecall target (e.g., a facet/implementation address), they can point it to malicious code and gain arbitrary storage writes, asset drains, or ownership takeover via delegatecall. The bytecode analysis does not confirm who controls the target, so impact depends on access control in the (unknown) setter paths.","recommendation":"Ensure delegatecall targets are immutable or only changeable by a well-guarded admin. Consider explicit allowlists or codehash checks for implementations/facets, and emit events on upgrades. If this is intended as a proxy/diamond pattern, clearly gate upgrade or selector-to-facet management functions.","evidence":"Detector flagged 2 DELEGATECALL sites with computed targets and no validated guard; evidence_json shows untrusted_delegatecall_count=2 with target_expression_category=computed. Callsites at pc 8790 and 9330. Storage reads occur immediately around delegatecall path (e.g., SLOAD at pc 9313 slot 0x7050c9e0... and pc 9386 slot 0x10d6a54a...), indicating the target may be derived from storage. Guard detection only saw msg.sender==0xffff.. (likely unsatisfiable), so access control is unclear.","locations":["pc:0x2256","pc:0x2472"]}]}
tokens used
66,610
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T08:30:35.754348+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 20864,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Detected delegatecall(s) to computed targets with no confirmed trust boundary; if the target address is user-influenced, this enables arbitrary code execution in the contract\u2019s storage context.",
    "raw_final": {
        "summary": "Detected delegatecall(s) to computed targets with no confirmed trust boundary; if the target address is user-influenced, this enables arbitrary code execution in the contract\u2019s storage context.",
        "findings": [
            {
                "title": "Computed DELEGATECALL target reachable (potentially untrusted)",
                "category": "other",
                "evidence": "Detector flagged 2 DELEGATECALL sites with computed targets and no validated guard; evidence_json shows untrusted_delegatecall_count=2 with target_expression_category=computed. Callsites at pc 8790 and 9330. Storage reads occur immediately around delegatecall path (e.g., SLOAD at pc 9313 slot 0x7050c9e0... and pc 9386 slot 0x10d6a54a...), indicating the target may be derived from storage. Guard detection only saw msg.sender==0xffff.. (likely unsatisfiable), so access control is unclear.",
                "severity": "medium",
                "locations": [
                    "pc:0x2256",
                    "pc:0x2472"
                ],
                "recommendation": "Ensure delegatecall targets are immutable or only changeable by a well-guarded admin. Consider explicit allowlists or codehash checks for implementations/facets, and emit events on upgrades. If this is intended as a proxy/diamond pattern, clearly gate upgrade or selector-to-facet management functions.",
                "exploit_scenario": "If an attacker can influence the storage/mapping used to resolve the delegatecall target (e.g., a facet/implementation address), they can point it to malicious code and gain arbitrary storage writes, asset drains, or ownership takeover via delegatecall. The bytecode analysis does not confirm who controls the target, so impact depends on access control in the (unknown) setter paths."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
2
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
11
Total opcodes
5121
Flags
delegatecall_present 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 0x04b6
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x864e35c1
00000019: GT
0000001a: PUSH2 0x0279
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xbdbcb576
00000024: GT
00000025: PUSH2 0x015e
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xe2a4157c
0000002f: GT
00000030: PUSH2 0x00d6
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xf2fde38b
0000003a: GT
0000003b: PUSH2 0x008a
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf99eec8d
00000045: GT
00000046: PUSH2 0x006f
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf99eec8d
00000050: EQ
00000051: PUSH2 0x0efb
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xfa845ca9
0000005b: EQ
0000005c: PUSH2 0x0fda
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xfbf35f46
00000066: EQ
00000067: PUSH2 0x101a
0000006a: JUMPI
0000006b: PUSH2 0x04b6
0000006e: JUMP
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0xf2fde38b
00000076: EQ
00000077: PUSH2 0x0e82
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xf6558b00
00000081: EQ
00000082: PUSH2 0x0ec2
00000085: JUMPI
00000086: PUSH2 0x04b6
00000089: JUMP
0000008a: JUMPDEST
0000008b: DUP1
0000008c: PUSH4 0xec556889
00000091: GT
00000092: PUSH2 0x00bb
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0xec556889
0000009c: EQ
0000009d: PUSH2 0x0dfb
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xf09a4016
000000a7: EQ
000000a8: PUSH2 0x0e10
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xf1a153a1
000000b2: EQ
000000b3: PUSH2 0x0e58
000000b6: JUMPI
000000b7: PUSH2 0x04b6
000000ba: JUMP
000000bb: JUMPDEST
000000bc: DUP1
000000bd: PUSH4 0xe2a4157c
000000c2: EQ
000000c3: PUSH2 0x0dd1
000000c6: JUMPI
000000c7: DUP1
000000c8: PUSH4 0xe8df077d
000000cd: EQ
000000ce: PUSH2 0x0de6
000000d1: JUMPI
000000d2: PUSH2 0x04b6
000000d5: JUMP
000000d6: JUMPDEST
000000d7: DUP1
000000d8: PUSH4 0xd7615d37
000000dd: GT
000000de: PUSH2 0x012d
000000e1: JUMPI
000000e2: DUP1
000000e3: PUSH4 0xd8e9f45d
000000e8: GT
000000e9: PUSH2 0x0112
000000ec: JUMPI
000000ed: DUP1
000000ee: PUSH4 0xd8e9f45d
000000f3: EQ
000000f4: PUSH2 0x0d92
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0xdb3d1ccf
000000fe: EQ
000000ff: PUSH2 0x0da7
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0xdc87454c
00000109: EQ
0000010a: PUSH2 0x0dbc
0000010d: JUMPI
0000010e: PUSH2 0x04b6
00000111: JUMP
00000112: JUMPDEST
00000113: DUP1
00000114: PUSH4 0xd7615d37
00000119: EQ
0000011a: PUSH2 0x0d68
0000011d: JUMPI
0000011e: DUP1
0000011f: PUSH4 0xd7da6b56
00000124: EQ
00000125: PUSH2 0x0d7d
00000128: JUMPI
00000129: PUSH2 0x04b6
0000012c: JUMP
0000012d: JUMPDEST
0000012e: DUP1
0000012f: PUSH4 0xbdbcb576
00000134: EQ
00000135: PUSH2 0x0cb2
00000138: JUMPI
00000139: DUP1
0000013a: PUSH4 0xc3ea3575
0000013f: EQ
00000140: PUSH2 0x0cf8
00000143: JUMPI
00000144: DUP1
00000145: PUSH4 0xce977bc2
0000014a: EQ
0000014b: PUSH2 0x0d0d
0000014e: JUMPI
0000014f: DUP1
00000150: PUSH4 0xd60851a2
00000155: EQ
00000156: PUSH2 0x0d53
00000159: JUMPI
0000015a: PUSH2 0x04b6
0000015d: JUMP
0000015e: JUMPDEST
0000015f: DUP1
00000160: PUSH4 0xa8b6b2b6
00000165: GT
00000166: PUSH2 0x01f1
00000169: JUMPI
0000016a: DUP1
0000016b: PUSH4 0xb1ace0b0
00000170: GT
00000171: PUSH2 0x01c0
00000174: JUMPI
00000175: DUP1
00000176: PUSH4 0xb693c3be
0000017b: GT
0000017c: PUSH2 0x01a5
0000017f: JUMPI
00000180: DUP1
00000181: PUSH4 0xb693c3be
00000186: EQ
00000187: PUSH2 0x0c73
0000018a: JUMPI
0000018b: DUP1
0000018c: PUSH4 0xb7ac4ff3
00000191: EQ
00000192: PUSH2 0x0c88
00000195: JUMPI
00000196: DUP1
00000197: PUSH4 0xba20715a
0000019c: EQ
0000019d: PUSH2 0x0c9d
000001a0: JUMPI
000001a1: PUSH2 0x04b6
000001a4: JUMP
000001a5: JUMPDEST
000001a6: DUP1
000001a7: PUSH4 0xb1ace0b0
000001ac: EQ
000001ad: PUSH2 0x05b9
000001b0: JUMPI
000001b1: DUP1
000001b2: PUSH4 0xb5050ea8
000001b7: EQ
000001b8: PUSH2 0x0c5e
000001bb: JUMPI
000001bc: PUSH2 0x04b6
000001bf: JUMP
000001c0: JUMPDEST
000001c1: DUP1
000001c2: PUSH4 0xa8b6b2b6
000001c7: EQ
000001c8: PUSH2 0x05b9
000001cb: JUMPI
000001cc: DUP1
000001cd: PUSH4 0xa940646d
000001d2: EQ
000001d3: PUSH2 0x0bd9
000001d6: JUMPI
000001d7: DUP1
000001d8: PUSH4 0xa9e74344
000001dd: EQ
000001de: PUSH2 0x0c03
000001e1: JUMPI
000001e2: DUP1
000001e3: PUSH4 0xae2f89c2
000001e8: EQ
000001e9: PUSH2 0x0c49
000001ec: JUMPI
000001ed: PUSH2 0x04b6
000001f0: JUMP
000001f1: JUMPDEST
000001f2: DUP1
000001f3: PUSH4 0x9244adcd
000001f8: GT
000001f9: PUSH2 0x0248
000001fc: JUMPI
000001fd: DUP1
000001fe: PUSH4 0x9a8a2145
00000203: GT
00000204: PUSH2 0x022d
00000207: JUMPI
00000208: DUP1
00000209: PUSH4 0x9a8a2145
0000020e: EQ
0000020f: PUSH2 0x0b6f
00000212: JUMPI
00000213: DUP1
00000214: PUSH4 0x9f712f2f
00000219: EQ
0000021a: PUSH2 0x0b84
0000021d: JUMPI
0000021e: DUP1
0000021f: PUSH4 0xa7a53243
00000224: EQ
00000225: PUSH2 0x0bc4
00000228: JUMPI
00000229: PUSH2 0x04b6
0000022c: JUMP
0000022d: JUMPDEST
0000022e: DUP1
0000022f: PUSH4 0x9244adcd
00000234: EQ
00000235: PUSH2 0x0ab4
00000238: JUMPI
00000239: DUP1
0000023a: PUSH4 0x933dbf85
0000023f: EQ
00000240: PUSH2 0x0b5a
00000243: JUMPI
00000244: PUSH2 0x04b6
00000247: JUMP
00000248: JUMPDEST
00000249: DUP1
0000024a: PUSH4 0x864e35c1
0000024f: EQ
00000250: PUSH2 0x0a35
00000253: JUMPI
00000254: DUP1
00000255: PUSH4 0x8a177973
0000025a: EQ
0000025b: PUSH2 0x0a75
0000025e: JUMPI
0000025f: DUP1
00000260: PUSH4 0x8da5cb5b
00000265: EQ
00000266: PUSH2 0x0a8a
00000269: JUMPI
0000026a: DUP1
0000026b: PUSH4 0x8f32d59b
00000270: EQ
00000271: PUSH2 0x0a9f
00000274: JUMPI
00000275: PUSH2 0x04b6
00000278: JUMP
00000279: JUMPDEST
0000027a: DUP1
0000027b: PUSH4 0x467f0e06
00000280: GT
00000281: PUSH2 0x039f
00000284: JUMPI
00000285: DUP1
00000286: PUSH4 0x63b7bf20
0000028b: GT
0000028c: PUSH2 0x0317
0000028f: JUMPI
00000290: DUP1
00000291: PUSH4 0x751a2238
00000296: GT
00000297: PUSH2 0x02e6
0000029a: JUMPI
0000029b: DUP1
0000029c: PUSH4 0x7cd9fb1c
000002a1: GT
000002a2: PUSH2 0x02cb
000002a5: JUMPI
000002a6: DUP1
000002a7: PUSH4 0x7cd9fb1c
000002ac: EQ
000002ad: PUSH2 0x09b6
000002b0: JUMPI
000002b1: DUP1
000002b2: PUSH4 0x821f9824
000002b7: EQ
000002b8: PUSH2 0x09e0
000002bb: JUMPI
000002bc: DUP1
000002bd: PUSH4 0x83ae86cb
000002c2: EQ
000002c3: PUSH2 0x0a20
000002c6: JUMPI
000002c7: PUSH2 0x04b6
000002ca: JUMP
000002cb: JUMPDEST
000002cc: DUP1
000002cd: PUSH4 0x751a2238
000002d2: EQ
000002d3: PUSH2 0x098c
000002d6: JUMPI
000002d7: DUP1
000002d8: PUSH4 0x789bc8e2
000002dd: EQ
000002de: PUSH2 0x09a1
000002e1: JUMPI
000002e2: PUSH2 0x04b6
000002e5: JUMP
000002e6: JUMPDEST
000002e7: DUP1
000002e8: PUSH4 0x63b7bf20
000002ed: EQ
000002ee: PUSH2 0x0938
000002f1: JUMPI
000002f2: DUP1
000002f3: PUSH4 0x675fb9c4
000002f8: EQ
000002f9: PUSH2 0x094d
000002fc: JUMPI
000002fd: DUP1
000002fe: PUSH4 0x715018a6
00000303: EQ
00000304: PUSH2 0x0962
00000307: JUMPI
00000308: DUP1
00000309: PUSH4 0x7496780f
0000030e: EQ
0000030f: PUSH2 0x0977
00000312: JUMPI
00000313: PUSH2 0x04b6
00000316: JUMP
00000317: JUMPDEST
00000318: DUP1
00000319: PUSH4 0x573c8409
0000031e: GT
0000031f: PUSH2 0x036e
00000322: JUMPI
00000323: DUP1
00000324: PUSH4 0x5e068da5
00000329: GT
0000032a: PUSH2 0x0353
0000032d: JUMPI
0000032e: DUP1
0000032f: PUSH4 0x5e068da5
00000334: EQ
00000335: PUSH2 0x0884
00000338: JUMPI
00000339: DUP1
0000033a: PUSH4 0x5f2e5b46
0000033f: EQ
00000340: PUSH2 0x090e
00000343: JUMPI
00000344: DUP1
00000345: PUSH4 0x5f88967b
0000034a: EQ
0000034b: PUSH2 0x0923
0000034e: JUMPI
0000034f: PUSH2 0x04b6
00000352: JUMP
00000353: JUMPDEST
00000354: DUP1
00000355: PUSH4 0x573c8409
0000035a: EQ
0000035b: PUSH2 0x07fe
0000035e: JUMPI
0000035f: DUP1
00000360: PUSH4 0x5825b04c
00000365: EQ
00000366: PUSH2 0x0844
00000369: JUMPI
0000036a: PUSH2 0x04b6
0000036d: JUMP
0000036e: JUMPDEST
0000036f: DUP1
00000370: PUSH4 0x467f0e06
00000375: EQ
00000376: PUSH2 0x0795
00000379: JUMPI
0000037a: DUP1
0000037b: PUSH4 0x48ea7638
00000380: EQ
00000381: PUSH2 0x07aa
00000384: JUMPI
00000385: DUP1
00000386: PUSH4 0x4f2094a1
0000038b: EQ
0000038c: PUSH2 0x07bf
0000038f: JUMPI
00000390: DUP1
00000391: PUSH4 0x56f7e7ff
00000396: EQ
00000397: PUSH2 0x07d4
0000039a: JUMPI
0000039b: PUSH2 0x04b6
0000039e: JUMP
0000039f: JUMPDEST
000003a0: DUP1
000003a1: PUSH4 0x25f842c5
000003a6: GT
000003a7: PUSH2 0x0432
000003aa: JUMPI
000003ab: DUP1
000003ac: PUSH4 0x32952b66
000003b1: GT
000003b2: PUSH2 0x0401
000003b5: JUMPI
000003b6: DUP1
000003b7: PUSH4 0x3e47158c
000003bc: GT
000003bd: PUSH2 0x03e6
000003c0: JUMPI
000003c1: DUP1
000003c2: PUSH4 0x3e47158c
000003c7: EQ
000003c8: PUSH2 0x0725
000003cb: JUMPI
000003cc: DUP1
000003cd: PUSH4 0x404c568f
000003d2: EQ
000003d3: PUSH2 0x073a
000003d6: JUMPI
000003d7: DUP1
000003d8: PUSH4 0x44841f4f
000003dd: EQ
000003de: PUSH2 0x0780
000003e1: JUMPI
000003e2: PUSH2 0x04b6
000003e5: JUMP
000003e6: JUMPDEST
000003e7: DUP1
000003e8: PUSH4 0x32952b66
000003ed: EQ
000003ee: PUSH2 0x0676
000003f1: JUMPI
000003f2: DUP1
000003f3: PUSH4 0x392e53cd
000003f8: EQ
000003f9: PUSH2 0x0710
000003fc: JUMPI
000003fd: PUSH2 0x04b6
00000400: JUMP
00000401: JUMPDEST
00000402: DUP1
00000403: PUSH4 0x25f842c5
00000408: EQ
00000409: PUSH2 0x05e3
0000040c: JUMPI
0000040d: DUP1
0000040e: PUSH4 0x2893f5cc
00000413: EQ
00000414: PUSH2 0x05f8
00000417: JUMPI
00000418: DUP1
00000419: PUSH4 0x2f884710
0000041e: EQ
0000041f: PUSH2 0x064c
00000422: JUMPI
00000423: DUP1
00000424: PUSH4 0x3131be90
00000429: EQ
0000042a: PUSH2 0x0661
0000042d: JUMPI
0000042e: PUSH2 0x04b6
00000431: JUMP
00000432: JUMPDEST
00000433: DUP1
00000434: PUSH4 0x13d3d00e
00000439: GT
0000043a: PUSH2 0x0489
0000043d: JUMPI
0000043e: DUP1
0000043f: PUSH4 0x17ddc578
00000444: GT
00000445: PUSH2 0x046e
00000448: JUMPI
00000449: DUP1
0000044a: PUSH4 0x17ddc578
0000044f: EQ
00000450: PUSH2 0x05a4
00000453: JUMPI
00000454: DUP1
00000455: PUSH4 0x1a454ea6
0000045a: EQ
0000045b: PUSH2 0x05b9
0000045e: JUMPI
0000045f: DUP1
00000460: PUSH4 0x1dbeef7c
00000465: EQ
00000466: PUSH2 0x05ce
00000469: JUMPI
0000046a: PUSH2 0x04b6
0000046d: JUMP
0000046e: JUMPDEST
0000046f: DUP1
00000470: PUSH4 0x13d3d00e
00000475: EQ
00000476: PUSH2 0x057a
00000479: JUMPI
0000047a: DUP1
0000047b: PUSH4 0x1476e600
00000480: EQ
00000481: PUSH2 0x058f
00000484: JUMPI
00000485: PUSH2 0x04b6
00000488: JUMP
00000489: JUMPDEST
0000048a: DUP1
0000048b: PUSH4 0x057fe949
00000490: EQ
00000491: PUSH2 0x04c0
00000494: JUMPI
00000495: DUP1
00000496: PUSH4 0x06d34c60
0000049b: EQ
0000049c: PUSH2 0x04fe
0000049f: JUMPI
000004a0: DUP1
000004a1: PUSH4 0x0bafd60e
000004a6: EQ
000004a7: PUSH2 0x0550
000004aa: JUMPI
000004ab: DUP1
000004ac: PUSH4 0x0c870f91
000004b1: EQ
000004b2: PUSH2 0x0565
000004b5: JUMPI
000004b6: JUMPDEST
000004b7: PUSH2 0x04be
000004ba: PUSH2 0x102f
000004bd: JUMP
000004be: JUMPDEST
000004bf: STOP
000004c0: JUMPDEST
000004c1: CALLVALUE
000004c2: DUP1
000004c3: ISZERO
000004c4: PUSH2 0x04cc
000004c7: JUMPI
000004c8: PUSH1 0x00
000004ca: DUP1
000004cb: REVERT
000004cc: JUMPDEST
000004cd: POP
000004ce: PUSH2 0x04d5
000004d1: PUSH2 0x1049
000004d4: JUMP
000004d5: JUMPDEST
000004d6: PUSH1 0x40
000004d8: DUP1
000004d9: MLOAD
000004da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004ef: SWAP1
000004f0: SWAP3
000004f1: AND
000004f2: DUP3
000004f3: MSTORE
000004f4: MLOAD
000004f5: SWAP1
000004f6: DUP2
000004f7: SWAP1
000004f8: SUB
000004f9: PUSH1 0x20
000004fb: ADD
000004fc: SWAP1
000004fd: RETURN
000004fe: JUMPDEST
000004ff: CALLVALUE
00000500: DUP1
00000501: ISZERO
00000502: PUSH2 0x050a
00000505: JUMPI
00000506: PUSH1 0x00
00000508: DUP1
00000509: REVERT
0000050a: JUMPDEST
0000050b: POP
0000050c: PUSH2 0x053e
0000050f: PUSH1 0x04
00000511: DUP1
00000512: CALLDATASIZE
00000513: SUB
00000514: PUSH1 0x20
00000516: DUP2
00000517: LT
00000518: ISZERO
00000519: PUSH2 0x0521
0000051c: JUMPI
0000051d: PUSH1 0x00
0000051f: DUP1
00000520: REVERT
00000521: JUMPDEST
00000522: POP
00000523: CALLDATALOAD
00000524: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000539: AND
0000053a: PUSH2 0x1065
0000053d: JUMP
0000053e: JUMPDEST
0000053f: PUSH1 0x40
00000541: DUP1
00000542: MLOAD
00000543: SWAP2
00000544: DUP3
00000545: MSTORE
00000546: MLOAD
00000547: SWAP1
00000548: DUP2
00000549: SWAP1
0000054a: SUB
0000054b: PUSH1 0x20
0000054d: ADD
0000054e: SWAP1
0000054f: RETURN
00000550: JUMPDEST
00000551: CALLVALUE
00000552: DUP1
00000553: ISZERO
00000554: PUSH2 0x055c
00000557: JUMPI
00000558: PUSH1 0x00
0000055a: DUP1
0000055b: REVERT
0000055c: JUMPDEST
0000055d: POP
0000055e: PUSH2 0x04d5
00000561: PUSH2 0x1188
00000564: JUMP
00000565: JUMPDEST
00000566: CALLVALUE
00000567: DUP1
00000568: ISZERO
00000569: PUSH2 0x0571
0000056c: JUMPI
0000056d: PUSH1 0x00
0000056f: DUP1
00000570: REVERT
00000571: JUMPDEST
00000572: POP
00000573: PUSH2 0x04d5
00000576: PUSH2 0x11aa
00000579: JUMP
0000057a: JUMPDEST
0000057b: CALLVALUE
0000057c: DUP1
0000057d: ISZERO
0000057e: PUSH2 0x0586
00000581: JUMPI
00000582: PUSH1 0x00
00000584: DUP1
00000585: REVERT
00000586: JUMPDEST
00000587: POP
00000588: PUSH2 0x053e
0000058b: PUSH2 0x11ba
0000058e: JUMP
0000058f: JUMPDEST
00000590: CALLVALUE
00000591: DUP1
00000592: ISZERO
00000593: PUSH2 0x059b
00000596: JUMPI
00000597: PUSH1 0x00
00000599: DUP1
0000059a: REVERT
0000059b: JUMPDEST
0000059c: POP
0000059d: PUSH2 0x053e
000005a0: PUSH2 0x11c0
000005a3: JUMP
000005a4: JUMPDEST
000005a5: CALLVALUE
000005a6: DUP1
000005a7: ISZERO
000005a8: PUSH2 0x05b0
000005ab: JUMPI
000005ac: PUSH1 0x00
000005ae: DUP1
000005af: REVERT
000005b0: JUMPDEST
000005b1: POP
000005b2: PUSH2 0x053e
000005b5: PUSH2 0x11cc
000005b8: JUMP
000005b9: JUMPDEST
000005ba: CALLVALUE
000005bb: DUP1
000005bc: ISZERO
000005bd: PUSH2 0x05c5
000005c0: JUMPI
000005c1: PUSH1 0x00
000005c3: DUP1
000005c4: REVERT
000005c5: JUMPDEST
000005c6: POP
000005c7: PUSH2 0x053e
000005ca: PUSH2 0x11d2
000005cd: JUMP
000005ce: JUMPDEST
000005cf: CALLVALUE
000005d0: DUP1
000005d1: ISZERO
000005d2: PUSH2 0x05da
000005d5: JUMPI
000005d6: PUSH1 0x00
000005d8: DUP1
000005d9: REVERT
000005da: JUMPDEST
000005db: POP
000005dc: PUSH2 0x053e
000005df: PUSH2 0x11d7
000005e2: JUMP
000005e3: JUMPDEST
000005e4: CALLVALUE
000005e5: DUP1
000005e6: ISZERO
000005e7: PUSH2 0x05ef
000005ea: JUMPI
000005eb: PUSH1 0x00
000005ed: DUP1
000005ee: REVERT
000005ef: JUMPDEST
000005f0: POP
000005f1: PUSH2 0x053e
000005f4: PUSH2 0x11dd
000005f7: JUMP
000005f8: JUMPDEST
000005f9: CALLVALUE
000005fa: DUP1
000005fb: ISZERO
000005fc: PUSH2 0x0604
000005ff: JUMPI
00000600: PUSH1 0x00
00000602: DUP1
00000603: REVERT
00000604: JUMPDEST
00000605: POP
00000606: PUSH2 0x0638
00000609: PUSH1 0x04
0000060b: DUP1
0000060c: CALLDATASIZE
0000060d: SUB
0000060e: PUSH1 0x20
00000610: DUP2
00000611: LT
00000612: ISZERO
00000613: PUSH2 0x061b
00000616: JUMPI
00000617: PUSH1 0x00
00000619: DUP1
0000061a: REVERT
0000061b: JUMPDEST
0000061c: POP
0000061d: CALLDATALOAD
0000061e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000633: AND
00000634: PUSH2 0x11e3
00000637: JUMP
00000638: JUMPDEST
00000639: PUSH1 0x40
0000063b: DUP1
0000063c: MLOAD
0000063d: SWAP2
0000063e: ISZERO
0000063f: ISZERO
00000640: DUP3
00000641: MSTORE
00000642: MLOAD
00000643: SWAP1
00000644: DUP2
00000645: SWAP1
00000646: SUB
00000647: PUSH1 0x20
00000649: ADD
0000064a: SWAP1
0000064b: RETURN
0000064c: JUMPDEST
0000064d: CALLVALUE
0000064e: DUP1
0000064f: ISZERO
00000650: PUSH2 0x0658
00000653: JUMPI
00000654: PUSH1 0x00
00000656: DUP1
00000657: REVERT
00000658: JUMPDEST
00000659: POP
0000065a: PUSH2 0x053e
0000065d: PUSH2 0x11f8
00000660: JUMP
00000661: JUMPDEST
00000662: CALLVALUE
00000663: DUP1
00000664: ISZERO
00000665: PUSH2 0x066d
00000668: JUMPI
00000669: PUSH1 0x00
0000066b: DUP1
0000066c: REVERT
0000066d: JUMPDEST
0000066e: POP
0000066f: PUSH2 0x04d5
00000672: PUSH2 0x11fe
00000675: JUMP
00000676: JUMPDEST
00000677: CALLVALUE
00000678: DUP1
00000679: ISZERO
0000067a: PUSH2 0x0682
0000067d: JUMPI
0000067e: PUSH1 0x00
00000680: DUP1
00000681: REVERT
00000682: JUMPDEST
00000683: POP
00000684: PUSH2 0x04be
00000687: PUSH1 0x04
00000689: DUP1
0000068a: CALLDATASIZE
0000068b: SUB
0000068c: PUSH1 0x40
0000068e: DUP2
0000068f: LT
00000690: ISZERO
00000691: PUSH2 0x0699
00000694: JUMPI
00000695: PUSH1 0x00
00000697: DUP1
00000698: REVERT
00000699: JUMPDEST
0000069a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006af: DUP3
000006b0: CALLDATALOAD
000006b1: AND
000006b2: SWAP2
000006b3: SWAP1
000006b4: DUP2
000006b5: ADD
000006b6: SWAP1
000006b7: PUSH1 0x40
000006b9: DUP2
000006ba: ADD
000006bb: PUSH1 0x20
000006bd: DUP3
000006be: ADD
000006bf: CALLDATALOAD
000006c0: PUSH5 0x0100000000
000006c6: DUP2
000006c7: GT
000006c8: ISZERO
000006c9: PUSH2 0x06d1
000006cc: JUMPI
000006cd: PUSH1 0x00
000006cf: DUP1
000006d0: REVERT
000006d1: JUMPDEST
000006d2: DUP3
000006d3: ADD
000006d4: DUP4
000006d5: PUSH1 0x20
000006d7: DUP3
000006d8: ADD
000006d9: GT
000006da: ISZERO
000006db: PUSH2 0x06e3
000006de: JUMPI
000006df: PUSH1 0x00
000006e1: DUP1
000006e2: REVERT
000006e3: JUMPDEST
000006e4: DUP1
000006e5: CALLDATALOAD
000006e6: SWAP1
000006e7: PUSH1 0x20
000006e9: ADD
000006ea: SWAP2
000006eb: DUP5
000006ec: PUSH1 0x01
000006ee: DUP4
000006ef: MUL
000006f0: DUP5
000006f1: ADD
000006f2: GT
000006f3: PUSH5 0x0100000000
000006f9: DUP4
000006fa: GT
000006fb: OR
000006fc: ISZERO
000006fd: PUSH2 0x0705
00000700: JUMPI
00000701: PUSH1 0x00
00000703: DUP1
00000704: REVERT
00000705: JUMPDEST
00000706: POP
00000707: SWAP1
00000708: SWAP3
00000709: POP
0000070a: SWAP1
0000070b: POP
0000070c: PUSH2 0x121a
0000070f: JUMP
00000710: JUMPDEST
00000711: CALLVALUE
00000712: DUP1
00000713: ISZERO
00000714: PUSH2 0x071c
00000717: JUMPI
00000718: PUSH1 0x00
0000071a: DUP1
0000071b: REVERT
0000071c: JUMPDEST
0000071d: POP
0000071e: PUSH2 0x0638
00000721: PUSH2 0x12a7
00000724: JUMP
00000725: JUMPDEST
00000726: CALLVALUE
00000727: DUP1
00000728: ISZERO
00000729: PUSH2 0x0731
0000072c: JUMPI
0000072d: PUSH1 0x00
0000072f: DUP1
00000730: REVERT
00000731: JUMPDEST
00000732: POP
00000733: PUSH2 0x04d5
00000736: PUSH2 0x12ca
00000739: JUMP
0000073a: JUMPDEST
0000073b: CALLVALUE
0000073c: DUP1
0000073d: ISZERO
0000073e: PUSH2 0x0746
00000741: JUMPI
00000742: PUSH1 0x00
00000744: DUP1
00000745: REVERT
00000746: JUMPDEST
00000747: POP
00000748: PUSH2 0x04d5
0000074b: PUSH1 0x04
0000074d: DUP1
0000074e: CALLDATASIZE
0000074f: SUB
00000750: PUSH1 0x40
00000752: DUP2
00000753: LT
00000754: ISZERO
00000755: PUSH2 0x075d
00000758: JUMPI
00000759: PUSH1 0x00
0000075b: DUP1
0000075c: REVERT
0000075d: JUMPDEST
0000075e: POP
0000075f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000774: DUP2
00000775: CALLDATALOAD
00000776: AND
00000777: SWAP1
00000778: PUSH1 0x20
0000077a: ADD
0000077b: CALLDATALOAD
0000077c: PUSH2 0x12d4
0000077f: JUMP
00000780: JUMPDEST
00000781: CALLVALUE
00000782: DUP1
00000783: ISZERO
00000784: PUSH2 0x078c
00000787: JUMPI
00000788: PUSH1 0x00
0000078a: DUP1
0000078b: REVERT
0000078c: JUMPDEST
0000078d: POP
0000078e: PUSH2 0x053e
00000791: PUSH2 0x1316
00000794: JUMP
00000795: JUMPDEST
00000796: CALLVALUE
00000797: DUP1
00000798: ISZERO
00000799: PUSH2 0x07a1
0000079c: JUMPI
0000079d: PUSH1 0x00
0000079f: DUP1
000007a0: REVERT
000007a1: JUMPDEST
000007a2: POP
000007a3: PUSH2 0x04d5
000007a6: PUSH2 0x131c
000007a9: JUMP
000007aa: JUMPDEST
000007ab: CALLVALUE
000007ac: DUP1
000007ad: ISZERO
000007ae: PUSH2 0x07b6
000007b1: JUMPI
000007b2: PUSH1 0x00
000007b4: DUP1
000007b5: REVERT
000007b6: JUMPDEST
000007b7: POP
000007b8: PUSH2 0x053e
000007bb: PUSH2 0x1338
000007be: JUMP
000007bf: JUMPDEST
000007c0: CALLVALUE
000007c1: DUP1
000007c2: ISZERO
000007c3: PUSH2 0x07cb
000007c6: JUMPI
000007c7: PUSH1 0x00
000007c9: DUP1
000007ca: REVERT
000007cb: JUMPDEST
000007cc: POP
000007cd: PUSH2 0x053e
000007d0: PUSH2 0x133e
000007d3: JUMP
000007d4: JUMPDEST
000007d5: CALLVALUE
000007d6: DUP1
000007d7: ISZERO
000007d8: PUSH2 0x07e0
000007db: JUMPI
000007dc: PUSH1 0x00
000007de: DUP1
000007df: REVERT
000007e0: JUMPDEST
000007e1: POP
000007e2: PUSH2 0x053e
000007e5: PUSH1 0x04
000007e7: DUP1
000007e8: CALLDATASIZE
000007e9: SUB
000007ea: PUSH1 0x20
000007ec: DUP2
000007ed: LT
000007ee: ISZERO
000007ef: PUSH2 0x07f7
000007f2: JUMPI
000007f3: PUSH1 0x00
000007f5: DUP1
000007f6: REVERT
000007f7: JUMPDEST
000007f8: POP
000007f9: CALLDATALOAD
000007fa: PUSH2 0x1345
000007fd: JUMP
000007fe: JUMPDEST
000007ff: CALLVALUE
00000800: DUP1
00000801: ISZERO
00000802: PUSH2 0x080a
00000805: JUMPI
00000806: PUSH1 0x00
00000808: DUP1
00000809: REVERT
0000080a: JUMPDEST
0000080b: POP
0000080c: PUSH2 0x0638
0000080f: PUSH1 0x04
00000811: DUP1
00000812: CALLDATASIZE
00000813: SUB
00000814: PUSH1 0x40
00000816: DUP2
00000817: LT
00000818: ISZERO
00000819: PUSH2 0x0821
0000081c: JUMPI
0000081d: PUSH1 0x00
0000081f: DUP1
00000820: REVERT
00000821: JUMPDEST
00000822: POP
00000823: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000838: DUP2
00000839: CALLDATALOAD
0000083a: AND
0000083b: SWAP1
0000083c: PUSH1 0x20
0000083e: ADD
0000083f: CALLDATALOAD
00000840: PUSH2 0x1359
00000843: JUMP
00000844: JUMPDEST
00000845: CALLVALUE
00000846: DUP1
00000847: ISZERO
00000848: PUSH2 0x0850
0000084b: JUMPI
0000084c: PUSH1 0x00
0000084e: DUP1
0000084f: REVERT
00000850: JUMPDEST
00000851: POP
00000852: PUSH2 0x053e
00000855: PUSH1 0x04
00000857: DUP1
00000858: CALLDATASIZE
00000859: SUB
0000085a: PUSH1 0x20
0000085c: DUP2
0000085d: LT
0000085e: ISZERO
0000085f: PUSH2 0x0867
00000862: JUMPI
00000863: PUSH1 0x00
00000865: DUP1
00000866: REVERT
00000867: JUMPDEST
00000868: POP
00000869: CALLDATALOAD
0000086a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000087f: AND
00000880: PUSH2 0x14a0
00000883: JUMP
00000884: JUMPDEST
00000885: CALLVALUE
00000886: DUP1
00000887: ISZERO
00000888: PUSH2 0x0890
0000088b: JUMPI
0000088c: PUSH1 0x00
0000088e: DUP1
0000088f: REVERT
00000890: JUMPDEST
00000891: POP
00000892: PUSH2 0x0899
00000895: PUSH2 0x1584
00000898: JUMP
00000899: JUMPDEST
0000089a: PUSH1 0x40
0000089c: DUP1
0000089d: MLOAD
0000089e: PUSH1 0x20
000008a0: DUP1
000008a1: DUP3
000008a2: MSTORE
000008a3: DUP4
000008a4: MLOAD
000008a5: DUP2
000008a6: DUP4
000008a7: ADD
000008a8: MSTORE
000008a9: DUP4
000008aa: MLOAD
000008ab: SWAP2
000008ac: SWAP3
000008ad: DUP4
000008ae: SWAP3
000008af: SWAP1
000008b0: DUP4
000008b1: ADD
000008b2: SWAP2
000008b3: DUP6
000008b4: ADD
000008b5: SWAP1
000008b6: DUP1
000008b7: DUP4
000008b8: DUP4
000008b9: PUSH1 0x00
000008bb: JUMPDEST
000008bc: DUP4
000008bd: DUP2
000008be: LT
000008bf: ISZERO
000008c0: PUSH2 0x08d3
000008c3: JUMPI
000008c4: DUP2
000008c5: DUP2
000008c6: ADD
000008c7: MLOAD
000008c8: DUP4
000008c9: DUP3
000008ca: ADD
000008cb: MSTORE
000008cc: PUSH1 0x20
000008ce: ADD
000008cf: PUSH2 0x08bb
000008d2: JUMP
000008d3: JUMPDEST
000008d4: POP
000008d5: POP
000008d6: POP
000008d7: POP
000008d8: SWAP1
000008d9: POP
000008da: SWAP1
000008db: DUP2
000008dc: ADD
000008dd: SWAP1
000008de: PUSH1 0x1f
000008e0: AND
000008e1: DUP1
000008e2: ISZERO
000008e3: PUSH2 0x0900
000008e6: JUMPI
000008e7: DUP1
000008e8: DUP3
000008e9: SUB
000008ea: DUP1
000008eb: MLOAD
000008ec: PUSH1 0x01
000008ee: DUP4
000008ef: PUSH1 0x20
000008f1: SUB
000008f2: PUSH2 0x0100
000008f5: EXP
000008f6: SUB
000008f7: NOT
000008f8: AND
000008f9: DUP2
000008fa: MSTORE
000008fb: PUSH1 0x20
000008fd: ADD
000008fe: SWAP2
000008ff: POP
00000900: JUMPDEST
00000901: POP
00000902: SWAP3
00000903: POP
00000904: POP
00000905: POP
00000906: PUSH1 0x40
00000908: MLOAD
00000909: DUP1
0000090a: SWAP2
0000090b: SUB
0000090c: SWAP1
0000090d: RETURN
0000090e: JUMPDEST
0000090f: CALLVALUE
00000910: DUP1
00000911: ISZERO
00000912: PUSH2 0x091a
00000915: JUMPI
00000916: PUSH1 0x00
00000918: DUP1
00000919: REVERT
0000091a: JUMPDEST
0000091b: POP
0000091c: PUSH2 0x053e
0000091f: PUSH2 0x1638
00000922: JUMP
00000923: JUMPDEST
00000924: CALLVALUE
00000925: DUP1
00000926: ISZERO
00000927: PUSH2 0x092f
0000092a: JUMPI
0000092b: PUSH1 0x00
0000092d: DUP1
0000092e: REVERT
0000092f: JUMPDEST
00000930: POP
00000931: PUSH2 0x0638
00000934: PUSH2 0x163e
00000937: JUMP
00000938: JUMPDEST
00000939: CALLVALUE
0000093a: DUP1
0000093b: ISZERO
0000093c: PUSH2 0x0944
0000093f: JUMPI
00000940: PUSH1 0x00
00000942: DUP1
00000943: REVERT
00000944: JUMPDEST
00000945: POP
00000946: PUSH2 0x053e
00000949: PUSH2 0x164c
0000094c: JUMP
0000094d: JUMPDEST
0000094e: CALLVALUE
0000094f: DUP1
00000950: ISZERO
00000951: PUSH2 0x0959
00000954: JUMPI
00000955: PUSH1 0x00
00000957: DUP1
00000958: REVERT
00000959: JUMPDEST
0000095a: POP
0000095b: PUSH2 0x053e
0000095e: PUSH2 0x1652
00000961: JUMP
00000962: JUMPDEST
00000963: CALLVALUE
00000964: DUP1
00000965: ISZERO
00000966: PUSH2 0x096e
00000969: JUMPI
0000096a: PUSH1 0x00
0000096c: DUP1
0000096d: REVERT
0000096e: JUMPDEST
0000096f: POP
00000970: PUSH2 0x04be
00000973: PUSH2 0x165e
00000976: JUMP
00000977: JUMPDEST
00000978: CALLVALUE
00000979: DUP1
0000097a: ISZERO
0000097b: PUSH2 0x0983
0000097e: JUMPI
0000097f: PUSH1 0x00
00000981: DUP1
00000982: REVERT
00000983: JUMPDEST
00000984: POP
00000985: PUSH2 0x053e
00000988: PUSH2 0x1740
0000098b: JUMP
0000098c: JUMPDEST
0000098d: CALLVALUE
0000098e: DUP1
0000098f: ISZERO
00000990: PUSH2 0x0998
00000993: JUMPI
00000994: PUSH1 0x00
00000996: DUP1
00000997: REVERT
00000998: JUMPDEST
00000999: POP
0000099a: PUSH2 0x053e
0000099d: PUSH2 0x174c
000009a0: JUMP
000009a1: JUMPDEST
000009a2: CALLVALUE
000009a3: DUP1
000009a4: ISZERO
000009a5: PUSH2 0x09ad
000009a8: JUMPI
000009a9: PUSH1 0x00
000009ab: DUP1
000009ac: REVERT
000009ad: JUMPDEST
000009ae: POP
000009af: PUSH2 0x053e
000009b2: PUSH2 0x1752
000009b5: JUMP
000009b6: JUMPDEST
000009b7: CALLVALUE
000009b8: DUP1
000009b9: ISZERO
000009ba: PUSH2 0x09c2
000009bd: JUMPI
000009be: PUSH1 0x00
000009c0: DUP1
000009c1: REVERT
000009c2: JUMPDEST
000009c3: POP
000009c4: PUSH2 0x053e
000009c7: PUSH1 0x04
000009c9: DUP1
000009ca: CALLDATASIZE
000009cb: SUB
000009cc: PUSH1 0x20
000009ce: DUP2
000009cf: LT
000009d0: ISZERO
000009d1: PUSH2 0x09d9
000009d4: JUMPI
000009d5: PUSH1 0x00
000009d7: DUP1
000009d8: REVERT
000009d9: JUMPDEST
000009da: POP
000009db: CALLDATALOAD
000009dc: PUSH2 0x1757
000009df: JUMP
000009e0: JUMPDEST
000009e1: CALLVALUE
000009e2: DUP1
000009e3: ISZERO
000009e4: PUSH2 0x09ec
000009e7: JUMPI
000009e8: PUSH1 0x00
000009ea: DUP1
000009eb: REVERT
000009ec: JUMPDEST
000009ed: POP
000009ee: PUSH2 0x053e
000009f1: PUSH1 0x04
000009f3: DUP1
000009f4: CALLDATASIZE
000009f5: SUB
000009f6: PUSH1 0x20
000009f8: DUP2
000009f9: LT
000009fa: ISZERO
000009fb: PUSH2 0x0a03
000009fe: JUMPI
000009ff: PUSH1 0x00
00000a01: DUP1
00000a02: REVERT
00000a03: JUMPDEST
00000a04: POP
00000a05: CALLDATALOAD
00000a06: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a1b: AND
00000a1c: PUSH2 0x180d
00000a1f: JUMP
00000a20: JUMPDEST
00000a21: CALLVALUE
00000a22: DUP1
00000a23: ISZERO
00000a24: PUSH2 0x0a2c
00000a27: JUMPI
00000a28: PUSH1 0x00
00000a2a: DUP1
00000a2b: REVERT
00000a2c: JUMPDEST
00000a2d: POP
00000a2e: PUSH2 0x053e
00000a31: PUSH2 0x18f1
00000a34: JUMP
00000a35: JUMPDEST
00000a36: CALLVALUE
00000a37: DUP1
00000a38: ISZERO
00000a39: PUSH2 0x0a41
00000a3c: JUMPI
00000a3d: PUSH1 0x00
00000a3f: DUP1
00000a40: REVERT
00000a41: JUMPDEST
00000a42: POP
00000a43: PUSH2 0x0638
00000a46: PUSH1 0x04
00000a48: DUP1
00000a49: CALLDATASIZE
00000a4a: SUB
00000a4b: PUSH1 0x20
00000a4d: DUP2
00000a4e: LT
00000a4f: ISZERO
00000a50: PUSH2 0x0a58
00000a53: JUMPI
00000a54: PUSH1 0x00
00000a56: DUP1
00000a57: REVERT
00000a58: JUMPDEST
00000a59: POP
00000a5a: CALLDATALOAD
00000a5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a70: AND
00000a71: PUSH2 0x18f7
00000a74: JUMP
00000a75: JUMPDEST
00000a76: CALLVALUE
00000a77: DUP1
00000a78: ISZERO
00000a79: PUSH2 0x0a81
00000a7c: JUMPI
00000a7d: PUSH1 0x00
00000a7f: DUP1
00000a80: REVERT
00000a81: JUMPDEST
00000a82: POP
00000a83: PUSH2 0x04d5
00000a86: PUSH2 0x190c
00000a89: JUMP
00000a8a: JUMPDEST
00000a8b: CALLVALUE
00000a8c: DUP1
00000a8d: ISZERO
00000a8e: PUSH2 0x0a96
00000a91: JUMPI
00000a92: PUSH1 0x00
00000a94: DUP1
00000a95: REVERT
00000a96: JUMPDEST
00000a97: POP
00000a98: PUSH2 0x04d5
00000a9b: PUSH2 0x1928
00000a9e: JUMP
00000a9f: JUMPDEST
00000aa0: CALLVALUE
00000aa1: DUP1
00000aa2: ISZERO
00000aa3: PUSH2 0x0aab
00000aa6: JUMPI
00000aa7: PUSH1 0x00
00000aa9: DUP1
00000aaa: REVERT
00000aab: JUMPDEST
00000aac: POP
00000aad: PUSH2 0x0638
00000ab0: PUSH2 0x1944
00000ab3: JUMP
00000ab4: JUMPDEST
00000ab5: CALLVALUE
00000ab6: DUP1
00000ab7: ISZERO
00000ab8: PUSH2 0x0ac0
00000abb: JUMPI
00000abc: PUSH1 0x00
00000abe: DUP1
00000abf: REVERT
00000ac0: JUMPDEST
00000ac1: POP
00000ac2: PUSH2 0x0afa
00000ac5: PUSH1 0x04
00000ac7: DUP1
00000ac8: CALLDATASIZE
00000ac9: SUB
00000aca: PUSH1 0x40
00000acc: DUP2
00000acd: LT
00000ace: ISZERO
00000acf: PUSH2 0x0ad7
00000ad2: JUMPI
00000ad3: PUSH1 0x00
00000ad5: DUP1
00000ad6: REVERT
00000ad7: JUMPDEST
00000ad8: POP
00000ad9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aee: DUP2
00000aef: CALLDATALOAD
00000af0: AND
00000af1: SWAP1
00000af2: PUSH1 0x20
00000af4: ADD
00000af5: CALLDATALOAD
00000af6: PUSH2 0x1982
00000af9: JUMP
00000afa: JUMPDEST
00000afb: PUSH1 0x40
00000afd: DUP1
00000afe: MLOAD
00000aff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b14: SWAP1
00000b15: SWAP11
00000b16: AND
00000b17: DUP11
00000b18: MSTORE
00000b19: PUSH1 0x20
00000b1b: DUP11
00000b1c: ADD
00000b1d: SWAP9
00000b1e: SWAP1
00000b1f: SWAP9
00000b20: MSTORE
00000b21: DUP9
00000b22: DUP9
00000b23: ADD
00000b24: SWAP7
00000b25: SWAP1
00000b26: SWAP7
00000b27: MSTORE
00000b28: PUSH1 0x60
00000b2a: DUP9
00000b2b: ADD
00000b2c: SWAP5
00000b2d: SWAP1
00000b2e: SWAP5
00000b2f: MSTORE
00000b30: PUSH1 0x80
00000b32: DUP8
00000b33: ADD
00000b34: SWAP3
00000b35: SWAP1
00000b36: SWAP3
00000b37: MSTORE
00000b38: PUSH1 0xa0
00000b3a: DUP7
00000b3b: ADD
00000b3c: MSTORE
00000b3d: PUSH1 0xc0
00000b3f: DUP6
00000b40: ADD
00000b41: MSTORE
00000b42: PUSH1 0xe0
00000b44: DUP5
00000b45: ADD
00000b46: MSTORE
00000b47: ISZERO
00000b48: ISZERO
00000b49: PUSH2 0x0100
00000b4c: DUP4
00000b4d: ADD
00000b4e: MSTORE
00000b4f: MLOAD
00000b50: SWAP1
00000b51: DUP2
00000b52: SWAP1
00000b53: SUB
00000b54: PUSH2 0x0120
00000b57: ADD
00000b58: SWAP1
00000b59: RETURN
00000b5a: JUMPDEST
00000b5b: CALLVALUE
00000b5c: DUP1
00000b5d: ISZERO
00000b5e: PUSH2 0x0b66
00000b61: JUMPI
00000b62: PUSH1 0x00
00000b64: DUP1
00000b65: REVERT
00000b66: JUMPDEST
00000b67: POP
00000b68: PUSH2 0x053e
00000b6b: PUSH2 0x1a01
00000b6e: JUMP
00000b6f: JUMPDEST
00000b70: CALLVALUE
00000b71: DUP1
00000b72: ISZERO
00000b73: PUSH2 0x0b7b
00000b76: JUMPI
00000b77: PUSH1 0x00
00000b79: DUP1
00000b7a: REVERT
00000b7b: JUMPDEST
00000b7c: POP
00000b7d: PUSH2 0x04d5
00000b80: PUSH2 0x1a0d
00000b83: JUMP
00000b84: JUMPDEST
00000b85: CALLVALUE
00000b86: DUP1
00000b87: ISZERO
00000b88: PUSH2 0x0b90
00000b8b: JUMPI
00000b8c: PUSH1 0x00
00000b8e: DUP1
00000b8f: REVERT
00000b90: JUMPDEST
00000b91: POP
00000b92: PUSH2 0x04be
00000b95: PUSH1 0x04
00000b97: DUP1
00000b98: CALLDATASIZE
00000b99: SUB
00000b9a: PUSH1 0x20
00000b9c: DUP2
00000b9d: LT
00000b9e: ISZERO
00000b9f: PUSH2 0x0ba7
00000ba2: JUMPI
00000ba3: PUSH1 0x00
00000ba5: DUP1
00000ba6: REVERT
00000ba7: JUMPDEST
00000ba8: POP
00000ba9: CALLDATALOAD
00000baa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bbf: AND
00000bc0: PUSH2 0x1a29
00000bc3: JUMP
00000bc4: JUMPDEST
00000bc5: CALLVALUE
00000bc6: DUP1
00000bc7: ISZERO
00000bc8: PUSH2 0x0bd0
00000bcb: JUMPI
00000bcc: PUSH1 0x00
00000bce: DUP1
00000bcf: REVERT
00000bd0: JUMPDEST
00000bd1: POP
00000bd2: PUSH2 0x053e
00000bd5: PUSH2 0x1b41
00000bd8: JUMP
00000bd9: JUMPDEST
00000bda: CALLVALUE
00000bdb: DUP1
00000bdc: ISZERO
00000bdd: PUSH2 0x0be5
00000be0: JUMPI
00000be1: PUSH1 0x00
00000be3: DUP1
00000be4: REVERT
00000be5: JUMPDEST
00000be6: POP
00000be7: PUSH2 0x053e
00000bea: PUSH1 0x04
00000bec: DUP1
00000bed: CALLDATASIZE
00000bee: SUB
00000bef: PUSH1 0x20
00000bf1: DUP2
00000bf2: LT
00000bf3: ISZERO
00000bf4: PUSH2 0x0bfc
00000bf7: JUMPI
00000bf8: PUSH1 0x00
00000bfa: DUP1
00000bfb: REVERT
00000bfc: JUMPDEST
00000bfd: POP
00000bfe: CALLDATALOAD
00000bff: PUSH2 0x1b4d
00000c02: JUMP
00000c03: JUMPDEST
00000c04: CALLVALUE
00000c05: DUP1
00000c06: ISZERO
00000c07: PUSH2 0x0c0f
00000c0a: JUMPI
00000c0b: PUSH1 0x00
00000c0d: DUP1
00000c0e: REVERT
00000c0f: JUMPDEST
00000c10: POP
00000c11: PUSH2 0x0638
00000c14: PUSH1 0x04
00000c16: DUP1
00000c17: CALLDATASIZE
00000c18: SUB
00000c19: PUSH1 0x40
00000c1b: DUP2
00000c1c: LT
00000c1d: ISZERO
00000c1e: PUSH2 0x0c26
00000c21: JUMPI
00000c22: PUSH1 0x00
00000c24: DUP1
00000c25: REVERT
00000c26: JUMPDEST
00000c27: POP
00000c28: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c3d: DUP2
00000c3e: CALLDATALOAD
00000c3f: AND
00000c40: SWAP1
00000c41: PUSH1 0x20
00000c43: ADD
00000c44: CALLDATALOAD
00000c45: PUSH2 0x1c03
00000c48: JUMP
00000c49: JUMPDEST
00000c4a: CALLVALUE
00000c4b: DUP1
00000c4c: ISZERO
00000c4d: PUSH2 0x0c55
00000c50: JUMPI
00000c51: PUSH1 0x00
00000c53: DUP1
00000c54: REVERT
00000c55: JUMPDEST
00000c56: POP
00000c57: PUSH2 0x053e
00000c5a: PUSH2 0x1c23
00000c5d: JUMP
00000c5e: JUMPDEST
00000c5f: CALLVALUE
00000c60: DUP1
00000c61: ISZERO
00000c62: PUSH2 0x0c6a
00000c65: JUMPI
00000c66: PUSH1 0x00
00000c68: DUP1
00000c69: REVERT
00000c6a: JUMPDEST
00000c6b: POP
00000c6c: PUSH2 0x053e
00000c6f: PUSH2 0x1c29
00000c72: JUMP
00000c73: JUMPDEST
00000c74: CALLVALUE
00000c75: DUP1
00000c76: ISZERO
00000c77: PUSH2 0x0c7f
00000c7a: JUMPI
00000c7b: PUSH1 0x00
00000c7d: DUP1
00000c7e: REVERT
00000c7f: JUMPDEST
00000c80: POP
00000c81: PUSH2 0x04d5
00000c84: PUSH2 0x1c2e
00000c87: JUMP
00000c88: JUMPDEST
00000c89: CALLVALUE
00000c8a: DUP1
00000c8b: ISZERO
00000c8c: PUSH2 0x0c94
00000c8f: JUMPI
00000c90: PUSH1 0x00
00000c92: DUP1
00000c93: REVERT
00000c94: JUMPDEST
00000c95: POP
00000c96: PUSH2 0x0638
00000c99: PUSH2 0x1c4a
00000c9c: JUMP
00000c9d: JUMPDEST
00000c9e: CALLVALUE
00000c9f: DUP1
00000ca0: ISZERO
00000ca1: PUSH2 0x0ca9
00000ca4: JUMPI
00000ca5: PUSH1 0x00
00000ca7: DUP1
00000ca8: REVERT
00000ca9: JUMPDEST
00000caa: POP
00000cab: PUSH2 0x053e
00000cae: PUSH2 0x1c6c
00000cb1: JUMP
00000cb2: JUMPDEST
00000cb3: CALLVALUE
00000cb4: DUP1
00000cb5: ISZERO
00000cb6: PUSH2 0x0cbe
00000cb9: JUMPI
00000cba: PUSH1 0x00
00000cbc: DUP1
00000cbd: REVERT
00000cbe: JUMPDEST
00000cbf: POP
00000cc0: PUSH2 0x053e
00000cc3: PUSH1 0x04
00000cc5: DUP1
00000cc6: CALLDATASIZE
00000cc7: SUB
00000cc8: PUSH1 0x40
00000cca: DUP2
00000ccb: LT
00000ccc: ISZERO
00000ccd: PUSH2 0x0cd5
00000cd0: JUMPI
00000cd1: PUSH1 0x00
00000cd3: DUP1
00000cd4: REVERT
00000cd5: JUMPDEST
00000cd6: POP
00000cd7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cec: DUP2
00000ced: CALLDATALOAD
00000cee: AND
00000cef: SWAP1
00000cf0: PUSH1 0x20
00000cf2: ADD
00000cf3: CALLDATALOAD
00000cf4: PUSH2 0x1c72
00000cf7: JUMP
00000cf8: JUMPDEST
00000cf9: CALLVALUE
00000cfa: DUP1
00000cfb: ISZERO
00000cfc: PUSH2 0x0d04
00000cff: JUMPI
00000d00: PUSH1 0x00
00000d02: DUP1
00000d03: REVERT
00000d04: JUMPDEST
00000d05: POP
00000d06: PUSH2 0x04d5
00000d09: PUSH2 0x1d75
00000d0c: JUMP
00000d0d: JUMPDEST
00000d0e: CALLVALUE
00000d0f: DUP1
00000d10: ISZERO
00000d11: PUSH2 0x0d19
00000d14: JUMPI
00000d15: PUSH1 0x00
00000d17: DUP1
00000d18: REVERT
00000d19: JUMPDEST
00000d1a: POP
00000d1b: PUSH2 0x0638
00000d1e: PUSH1 0x04
00000d20: DUP1
00000d21: CALLDATASIZE
00000d22: SUB
00000d23: PUSH1 0x40
00000d25: DUP2
00000d26: LT
00000d27: ISZERO
00000d28: PUSH2 0x0d30
00000d2b: JUMPI
00000d2c: PUSH1 0x00
00000d2e: DUP1
00000d2f: REVERT
00000d30: JUMPDEST
00000d31: POP
00000d32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d47: DUP2
00000d48: CALLDATALOAD
00000d49: AND
00000d4a: SWAP1
00000d4b: PUSH1 0x20
00000d4d: ADD
00000d4e: CALLDATALOAD
00000d4f: PUSH2 0x1d91
00000d52: JUMP
00000d53: JUMPDEST
00000d54: CALLVALUE
00000d55: DUP1
00000d56: ISZERO
00000d57: PUSH2 0x0d5f
00000d5a: JUMPI
00000d5b: PUSH1 0x00
00000d5d: DUP1
00000d5e: REVERT
00000d5f: JUMPDEST
00000d60: POP
00000d61: PUSH2 0x053e
00000d64: PUSH2 0x1e9a
00000d67: JUMP
00000d68: JUMPDEST
00000d69: CALLVALUE
00000d6a: DUP1
00000d6b: ISZERO
00000d6c: PUSH2 0x0d74
00000d6f: JUMPI
00000d70: PUSH1 0x00
00000d72: DUP1
00000d73: REVERT
00000d74: JUMPDEST
00000d75: POP
00000d76: PUSH2 0x04d5
00000d79: PUSH2 0x1ea0
00000d7c: JUMP
00000d7d: JUMPDEST
00000d7e: CALLVALUE
00000d7f: DUP1
00000d80: ISZERO
00000d81: PUSH2 0x0d89
00000d84: JUMPI
00000d85: PUSH1 0x00
00000d87: DUP1
00000d88: REVERT
00000d89: JUMPDEST
00000d8a: POP
00000d8b: PUSH2 0x053e
00000d8e: PUSH2 0x1ebc
00000d91: JUMP
00000d92: JUMPDEST
00000d93: CALLVALUE
00000d94: DUP1
00000d95: ISZERO
00000d96: PUSH2 0x0d9e
00000d99: JUMPI
00000d9a: PUSH1 0x00
00000d9c: DUP1
00000d9d: REVERT
00000d9e: JUMPDEST
00000d9f: POP
00000da0: PUSH2 0x053e
00000da3: PUSH2 0x1ec2
00000da6: JUMP
00000da7: JUMPDEST
00000da8: CALLVALUE
00000da9: DUP1
00000daa: ISZERO
00000dab: PUSH2 0x0db3
00000dae: JUMPI
00000daf: PUSH1 0x00
00000db1: DUP1
00000db2: REVERT
00000db3: JUMPDEST
00000db4: POP
00000db5: PUSH2 0x04d5
00000db8: PUSH2 0x1ec8
00000dbb: JUMP
00000dbc: JUMPDEST
00000dbd: CALLVALUE
00000dbe: DUP1
00000dbf: ISZERO
00000dc0: PUSH2 0x0dc8
00000dc3: JUMPI
00000dc4: PUSH1 0x00
00000dc6: DUP1
00000dc7: REVERT
00000dc8: JUMPDEST
00000dc9: POP
00000dca: PUSH2 0x04d5
00000dcd: PUSH2 0x1ee4
00000dd0: JUMP
00000dd1: JUMPDEST
00000dd2: CALLVALUE
00000dd3: DUP1
00000dd4: ISZERO
00000dd5: PUSH2 0x0ddd
00000dd8: JUMPI
00000dd9: PUSH1 0x00
00000ddb: DUP1
00000ddc: REVERT
00000ddd: JUMPDEST
00000dde: POP
00000ddf: PUSH2 0x0638
00000de2: PUSH2 0x1f00
00000de5: JUMP
00000de6: JUMPDEST
00000de7: CALLVALUE
00000de8: DUP1
00000de9: ISZERO
00000dea: PUSH2 0x0df2
00000ded: JUMPI
00000dee: PUSH1 0x00
00000df0: DUP1
00000df1: REVERT
00000df2: JUMPDEST
00000df3: POP
00000df4: PUSH2 0x0638
00000df7: PUSH2 0x1f21
00000dfa: JUMP
00000dfb: JUMPDEST
00000dfc: CALLVALUE
00000dfd: DUP1
00000dfe: ISZERO
00000dff: PUSH2 0x0e07
00000e02: JUMPI
00000e03: PUSH1 0x00
00000e05: DUP1
00000e06: REVERT
00000e07: JUMPDEST
00000e08: POP
00000e09: PUSH2 0x04d5
00000e0c: PUSH2 0x1f2a
00000e0f: JUMP
00000e10: JUMPDEST
00000e11: CALLVALUE
00000e12: DUP1
00000e13: ISZERO
00000e14: PUSH2 0x0e1c
00000e17: JUMPI
00000e18: PUSH1 0x00
00000e1a: DUP1
00000e1b: REVERT
00000e1c: JUMPDEST
00000e1d: POP
00000e1e: PUSH2 0x04be
00000e21: PUSH1 0x04
00000e23: DUP1
00000e24: CALLDATASIZE
00000e25: SUB
00000e26: PUSH1 0x40
00000e28: DUP2
00000e29: LT
00000e2a: ISZERO
00000e2b: PUSH2 0x0e33
00000e2e: JUMPI
00000e2f: PUSH1 0x00
00000e31: DUP1
00000e32: REVERT
00000e33: JUMPDEST
00000e34: POP
00000e35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e4a: DUP2
00000e4b: CALLDATALOAD
00000e4c: DUP2
00000e4d: AND
00000e4e: SWAP2
00000e4f: PUSH1 0x20
00000e51: ADD
00000e52: CALLDATALOAD
00000e53: AND
00000e54: PUSH2 0x1f46
00000e57: JUMP
00000e58: JUMPDEST
00000e59: CALLVALUE
00000e5a: DUP1
00000e5b: ISZERO
00000e5c: PUSH2 0x0e64
00000e5f: JUMPI
00000e60: PUSH1 0x00
00000e62: DUP1
00000e63: REVERT
00000e64: JUMPDEST
00000e65: POP
00000e66: PUSH2 0x053e
00000e69: PUSH1 0x04
00000e6b: DUP1
00000e6c: CALLDATASIZE
00000e6d: SUB
00000e6e: PUSH1 0x20
00000e70: DUP2
00000e71: LT
00000e72: ISZERO
00000e73: PUSH2 0x0e7b
00000e76: JUMPI
00000e77: PUSH1 0x00
00000e79: DUP1
00000e7a: REVERT
00000e7b: JUMPDEST
00000e7c: POP
00000e7d: CALLDATALOAD
00000e7e: PUSH2 0x2065
00000e81: JUMP
00000e82: JUMPDEST
00000e83: CALLVALUE
00000e84: DUP1
00000e85: ISZERO
00000e86: PUSH2 0x0e8e
00000e89: JUMPI
00000e8a: PUSH1 0x00
00000e8c: DUP1
00000e8d: REVERT
00000e8e: JUMPDEST
00000e8f: POP
00000e90: PUSH2 0x04be
00000e93: PUSH1 0x04
00000e95: DUP1
00000e96: CALLDATASIZE
00000e97: SUB
00000e98: PUSH1 0x20
00000e9a: DUP2
00000e9b: LT
00000e9c: ISZERO
00000e9d: PUSH2 0x0ea5
00000ea0: JUMPI
00000ea1: PUSH1 0x00
00000ea3: DUP1
00000ea4: REVERT
00000ea5: JUMPDEST
00000ea6: POP
00000ea7: CALLDATALOAD
00000ea8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ebd: AND
00000ebe: PUSH2 0x211b
00000ec1: JUMP
00000ec2: JUMPDEST
00000ec3: CALLVALUE
00000ec4: DUP1
00000ec5: ISZERO
00000ec6: PUSH2 0x0ece
00000ec9: JUMPI
00000eca: PUSH1 0x00
00000ecc: DUP1
00000ecd: REVERT
00000ece: JUMPDEST
00000ecf: POP
00000ed0: PUSH2 0x0ed7
00000ed3: PUSH2 0x2197
00000ed6: JUMP
00000ed7: JUMPDEST
00000ed8: PUSH1 0x40
00000eda: MLOAD
00000edb: DUP1
00000edc: DUP3
00000edd: PUSH1 0x01
00000edf: DUP2
00000ee0: GT
00000ee1: ISZERO
00000ee2: PUSH2 0x0ee7
00000ee5: JUMPI
00000ee6: INVALID
00000ee7: JUMPDEST
00000ee8: PUSH1 0xff
00000eea: AND
00000eeb: DUP2
00000eec: MSTORE
00000eed: PUSH1 0x20
00000eef: ADD
00000ef0: SWAP2
00000ef1: POP
00000ef2: POP
00000ef3: PUSH1 0x40
00000ef5: MLOAD
00000ef6: DUP1
00000ef7: SWAP2
00000ef8: SUB
00000ef9: SWAP1
00000efa: RETURN
00000efb: JUMPDEST
00000efc: PUSH2 0x04be
00000eff: PUSH1 0x04
00000f01: DUP1
00000f02: CALLDATASIZE
00000f03: SUB
00000f04: PUSH1 0x60
00000f06: DUP2
00000f07: LT
00000f08: ISZERO
00000f09: PUSH2 0x0f11
00000f0c: JUMPI
00000f0d: PUSH1 0x00
00000f0f: DUP1
00000f10: REVERT
00000f11: JUMPDEST
00000f12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f27: DUP3
00000f28: CALLDATALOAD
00000f29: AND
00000f2a: SWAP2
00000f2b: SWAP1
00000f2c: DUP2
00000f2d: ADD
00000f2e: SWAP1
00000f2f: PUSH1 0x40
00000f31: DUP2
00000f32: ADD
00000f33: PUSH1 0x20
00000f35: DUP3
00000f36: ADD
00000f37: CALLDATALOAD
00000f38: PUSH5 0x0100000000
00000f3e: DUP2
00000f3f: GT
00000f40: ISZERO
00000f41: PUSH2 0x0f49
00000f44: JUMPI
00000f45: PUSH1 0x00
00000f47: DUP1
00000f48: REVERT
00000f49: JUMPDEST
00000f4a: DUP3
00000f4b: ADD
00000f4c: DUP4
00000f4d: PUSH1 0x20
00000f4f: DUP3
00000f50: ADD
00000f51: GT
00000f52: ISZERO
00000f53: PUSH2 0x0f5b
00000f56: JUMPI
00000f57: PUSH1 0x00
00000f59: DUP1
00000f5a: REVERT
00000f5b: JUMPDEST
00000f5c: DUP1
00000f5d: CALLDATALOAD
00000f5e: SWAP1
00000f5f: PUSH1 0x20
00000f61: ADD
00000f62: SWAP2
00000f63: DUP5
00000f64: PUSH1 0x01
00000f66: DUP4
00000f67: MUL
00000f68: DUP5
00000f69: ADD
00000f6a: GT
00000f6b: PUSH5 0x0100000000
00000f71: DUP4
00000f72: GT
00000f73: OR
00000f74: ISZERO
00000f75: PUSH2 0x0f7d
00000f78: JUMPI
00000f79: PUSH1 0x00
00000f7b: DUP1
00000f7c: REVERT
00000f7d: JUMPDEST
00000f7e: SWAP2
00000f7f: SWAP4
00000f80: SWAP1
00000f81: SWAP3
00000f82: SWAP1
00000f83: SWAP2
00000f84: PUSH1 0x20
00000f86: DUP2
00000f87: ADD
00000f88: SWAP1
00000f89: CALLDATALOAD
00000f8a: PUSH5 0x0100000000
00000f90: DUP2
00000f91: GT
00000f92: ISZERO
00000f93: PUSH2 0x0f9b
00000f96: JUMPI
00000f97: PUSH1 0x00
00000f99: DUP1
00000f9a: REVERT
00000f9b: JUMPDEST
00000f9c: DUP3
00000f9d: ADD
00000f9e: DUP4
00000f9f: PUSH1 0x20
00000fa1: DUP3
00000fa2: ADD
00000fa3: GT
00000fa4: ISZERO
00000fa5: PUSH2 0x0fad
00000fa8: JUMPI
00000fa9: PUSH1 0x00
00000fab: DUP1
00000fac: REVERT
00000fad: JUMPDEST
00000fae: DUP1
00000faf: CALLDATALOAD
00000fb0: SWAP1
00000fb1: PUSH1 0x20
00000fb3: ADD
00000fb4: SWAP2
00000fb5: DUP5
00000fb6: PUSH1 0x01
00000fb8: DUP4
00000fb9: MUL
00000fba: DUP5
00000fbb: ADD
00000fbc: GT
00000fbd: PUSH5 0x0100000000
00000fc3: DUP4
00000fc4: GT
00000fc5: OR
00000fc6: ISZERO
00000fc7: PUSH2 0x0fcf
00000fca: JUMPI
00000fcb: PUSH1 0x00
00000fcd: DUP1
00000fce: REVERT
00000fcf: JUMPDEST
00000fd0: POP
00000fd1: SWAP1
00000fd2: SWAP3
00000fd3: POP
00000fd4: SWAP1
00000fd5: POP
00000fd6: PUSH2 0x21a0
00000fd9: JUMP
00000fda: JUMPDEST
00000fdb: CALLVALUE
00000fdc: DUP1
00000fdd: ISZERO
00000fde: PUSH2 0x0fe6
00000fe1: JUMPI
00000fe2: PUSH1 0x00
00000fe4: DUP1
00000fe5: REVERT
00000fe6: JUMPDEST
00000fe7: POP
00000fe8: PUSH2 0x053e
00000feb: PUSH1 0x04
00000fed: DUP1
00000fee: CALLDATASIZE
00000fef: SUB
00000ff0: PUSH1 0x20
00000ff2: DUP2
00000ff3: LT
00000ff4: ISZERO
00000ff5: PUSH2 0x0ffd
00000ff8: JUMPI
00000ff9: PUSH1 0x00
00000ffb: DUP1
00000ffc: REVERT
00000ffd: JUMPDEST
00000ffe: POP
00000fff: CALLDATALOAD
00001000: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001015: AND
00001016: PUSH2 0x22ad
00001019: JUMP
0000101a: JUMPDEST
0000101b: CALLVALUE
0000101c: DUP1
0000101d: ISZERO
0000101e: PUSH2 0x1026
00001021: JUMPI
00001022: PUSH1 0x00
00001024: DUP1
00001025: REVERT
00001026: JUMPDEST
00001027: POP
00001028: PUSH2 0x04d5
0000102b: PUSH2 0x238f
0000102e: JUMP
0000102f: JUMPDEST
00001030: PUSH2 0x1037
00001033: PUSH2 0x23ab
00001036: JUMP
00001037: JUMPDEST
00001038: PUSH2 0x1047
0000103b: PUSH2 0x1042
0000103e: PUSH2 0x243f
00001041: JUMP
00001042: JUMPDEST
00001043: PUSH2 0x2464
00001046: JUMP
00001047: JUMPDEST
00001048: JUMP
00001049: JUMPDEST
0000104a: PUSH1 0x2d
0000104c: SLOAD
0000104d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001062: AND
00001063: DUP2
00001064: JUMP
00001065: JUMPDEST
00001066: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000107b: DUP2
0000107c: AND
0000107d: PUSH1 0x00
0000107f: SWAP1
00001080: DUP2
00001081: MSTORE
00001082: PUSH1 0x2a
00001084: PUSH1 0x20
00001086: MSTORE
00001087: PUSH1 0x40
00001089: DUP2
0000108a: KECCAK256
0000108b: SLOAD
0000108c: PUSH2 0x115b
0000108f: JUMPI
00001090: PUSH1 0x08
00001092: SLOAD
00001093: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010a8: AND
000010a9: ISZERO
000010aa: PUSH2 0x1151
000010ad: JUMPI
000010ae: PUSH1 0x08
000010b0: SLOAD
000010b1: PUSH1 0x40
000010b3: DUP1
000010b4: MLOAD
000010b5: PUSH32 0x06d34c6000000000000000000000000000000000000000000000000000000000
000010d6: DUP2
000010d7: MSTORE
000010d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010ed: DUP6
000010ee: DUP2
000010ef: AND
000010f0: PUSH1 0x04
000010f2: DUP4
000010f3: ADD
000010f4: MSTORE
000010f5: SWAP2
000010f6: MLOAD
000010f7: SWAP2
000010f8: SWAP1
000010f9: SWAP3
000010fa: AND
000010fb: SWAP2
000010fc: PUSH4 0x06d34c60
00001101: SWAP2
00001102: PUSH1 0x24
00001104: DUP1
00001105: DUP4
00001106: ADD
00001107: SWAP3
00001108: PUSH1 0x20
0000110a: SWAP3
0000110b: SWAP2
0000110c: SWAP1
0000110d: DUP3
0000110e: SWAP1
0000110f: SUB
00001110: ADD
00001111: DUP2
00001112: DUP7
00001113: DUP1
00001114: EXTCODESIZE
00001115: ISZERO
00001116: DUP1
00001117: ISZERO
00001118: PUSH2 0x1120
0000111b: JUMPI
0000111c: PUSH1 0x00
0000111e: DUP1
0000111f: REVERT
00001120: JUMPDEST
00001121: POP
00001122: GAS
00001123: STATICCALL
00001124: ISZERO
00001125: DUP1
00001126: ISZERO
00001127: PUSH2 0x1134
0000112a: JUMPI
0000112b: RETURNDATASIZE
0000112c: PUSH1 0x00
0000112e: DUP1
0000112f: RETURNDATACOPY
00001130: RETURNDATASIZE
00001131: PUSH1 0x00
00001133: REVERT
00001134: JUMPDEST
00001135: POP
00001136: POP
00001137: POP
00001138: POP
00001139: PUSH1 0x40
0000113b: MLOAD
0000113c: RETURNDATASIZE
0000113d: PUSH1 0x20
0000113f: DUP2
00001140: LT
00001141: ISZERO
00001142: PUSH2 0x114a
00001145: JUMPI
00001146: PUSH1 0x00
00001148: DUP1
00001149: REVERT
0000114a: JUMPDEST
0000114b: POP
0000114c: MLOAD
0000114d: PUSH2 0x1154
00001150: JUMP
00001151: JUMPDEST
00001152: PUSH1 0x00
00001154: JUMPDEST
00001155: SWAP1
00001156: POP
00001157: PUSH2 0x1183
0000115a: JUMP
0000115b: JUMPDEST
0000115c: POP
0000115d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001172: DUP2
00001173: AND
00001174: PUSH1 0x00
00001176: SWAP1
00001177: DUP2
00001178: MSTORE
00001179: PUSH1 0x2a
0000117b: PUSH1 0x20
0000117d: MSTORE
0000117e: PUSH1 0x40
00001180: SWAP1
00001181: KECCAK256
00001182: SLOAD
00001183: JUMPDEST
00001184: SWAP2
00001185: SWAP1
00001186: POP
00001187: JUMP
00001188: JUMPDEST
00001189: PUSH1 0x23
0000118b: SLOAD
0000118c: PUSH3 0x010000
00001190: SWAP1
00001191: DIV
00001192: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011a7: AND
000011a8: DUP2
000011a9: JUMP
000011aa: JUMPDEST
000011ab: PUSH1 0x00
000011ad: PUSH2 0x11b4
000011b0: PUSH2 0x243f
000011b3: JUMP
000011b4: JUMPDEST
000011b5: SWAP1
000011b6: POP
000011b7: JUMPDEST
000011b8: SWAP1
000011b9: JUMP
000011ba: JUMPDEST
000011bb: PUSH1 0x10
000011bd: SLOAD
000011be: DUP2
000011bf: JUMP
000011c0: JUMPDEST
000011c1: PUSH8 0x03782dace9d90000
000011ca: DUP2
000011cb: JUMP
000011cc: JUMPDEST
000011cd: PUSH1 0x27
000011cf: SLOAD
000011d0: DUP2
000011d1: JUMP
000011d2: JUMPDEST
000011d3: PUSH1 0x00
000011d5: DUP2
000011d6: JUMP
000011d7: JUMPDEST
000011d8: PUSH1 0x17
000011da: SLOAD
000011db: DUP2
000011dc: JUMP
000011dd: JUMPDEST
000011de: PUSH1 0x0e
000011e0: SLOAD
000011e1: DUP2
000011e2: JUMP
000011e3: JUMPDEST
000011e4: PUSH1 0x22
000011e6: PUSH1 0x20
000011e8: MSTORE
000011e9: PUSH1 0x00
000011eb: SWAP1
000011ec: DUP2
000011ed: MSTORE
000011ee: PUSH1 0x40
000011f0: SWAP1
000011f1: KECCAK256
000011f2: SLOAD
000011f3: PUSH1 0xff
000011f5: AND
000011f6: DUP2
000011f7: JUMP
000011f8: JUMPDEST
000011f9: PUSH1 0x09
000011fb: SLOAD
000011fc: DUP2
000011fd: JUMP
000011fe: JUMPDEST
000011ff: PUSH1 0x2e
00001201: SLOAD
00001202: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001217: AND
00001218: DUP2
00001219: JUMP
0000121a: JUMPDEST
0000121b: PUSH2 0x1222
0000121e: PUSH2 0x2488
00001221: JUMP
00001222: JUMPDEST
00001223: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001238: AND
00001239: CALLER
0000123a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000124f: AND
00001250: EQ
00001251: ISZERO
00001252: PUSH2 0x129a
00001255: JUMPI
00001256: PUSH2 0x1295
00001259: DUP4
0000125a: DUP4
0000125b: DUP4
0000125c: DUP1
0000125d: DUP1
0000125e: PUSH1 0x1f
00001260: ADD
00001261: PUSH1 0x20
00001263: DUP1
00001264: SWAP2
00001265: DIV
00001266: MUL
00001267: PUSH1 0x20
00001269: ADD
0000126a: PUSH1 0x40
0000126c: MLOAD
0000126d: SWAP1
0000126e: DUP2
0000126f: ADD
00001270: PUSH1 0x40
00001272: MSTORE
00001273: DUP1
00001274: SWAP4
00001275: SWAP3
00001276: SWAP2
00001277: SWAP1
00001278: DUP2
00001279: DUP2
0000127a: MSTORE
0000127b: PUSH1 0x20
0000127d: ADD
0000127e: DUP4
0000127f: DUP4
00001280: DUP1
00001281: DUP3
00001282: DUP5
00001283: CALLDATACOPY
00001284: PUSH1 0x00
00001286: SWAP3
00001287: ADD
00001288: SWAP2
00001289: SWAP1
0000128a: SWAP2
0000128b: MSTORE
0000128c: POP
0000128d: PUSH2 0x24ad
00001290: SWAP3
00001291: POP
00001292: POP
00001293: POP
00001294: JUMP
00001295: JUMPDEST
00001296: PUSH2 0x12a2
00001299: JUMP
0000129a: JUMPDEST
0000129b: PUSH2 0x12a2
0000129e: PUSH2 0x102f
000012a1: JUMP
000012a2: JUMPDEST
000012a3: POP
000012a4: POP
000012a5: POP
000012a6: JUMP
000012a7: JUMPDEST
000012a8: PUSH1 0x00
000012aa: SLOAD
000012ab: PUSH23 0x0100000000000000000000000000000000000000000000
000012c3: SWAP1
000012c4: DIV
000012c5: PUSH1 0xff
000012c7: AND
000012c8: DUP2
000012c9: JUMP
000012ca: JUMPDEST
000012cb: PUSH1 0x00
000012cd: PUSH2 0x11b4
000012d0: PUSH2 0x2488
000012d3: JUMP
000012d4: JUMPDEST
000012d5: PUSH1 0x1d
000012d7: PUSH1 0x20
000012d9: MSTORE
000012da: DUP2
000012db: PUSH1 0x00
000012dd: MSTORE
000012de: PUSH1 0x40
000012e0: PUSH1 0x00
000012e2: KECCAK256
000012e3: DUP2
000012e4: DUP2
000012e5: SLOAD
000012e6: DUP2
000012e7: LT
000012e8: PUSH2 0x12ed
000012eb: JUMPI
000012ec: INVALID
000012ed: JUMPDEST
000012ee: PUSH1 0x00
000012f0: SWAP2
000012f1: DUP3
000012f2: MSTORE
000012f3: PUSH1 0x20
000012f5: SWAP1
000012f6: SWAP2
000012f7: KECCAK256
000012f8: ADD
000012f9: SLOAD
000012fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000130f: AND
00001310: SWAP2
00001311: POP
00001312: DUP3
00001313: SWAP1
00001314: POP
00001315: JUMP
00001316: JUMPDEST
00001317: PUSH1 0x30
00001319: SLOAD
0000131a: DUP2
0000131b: JUMP
0000131c: JUMPDEST
0000131d: PUSH1 0x04
0000131f: SLOAD
00001320: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001335: AND
00001336: DUP2
00001337: JUMP
00001338: JUMPDEST
00001339: PUSH1 0x15
0000133b: SLOAD
0000133c: DUP2
0000133d: JUMP
0000133e: JUMPDEST
0000133f: PUSH3 0x03f480
00001343: DUP2
00001344: JUMP
00001345: JUMPDEST
00001346: PUSH1 0x12
00001348: DUP2
00001349: PUSH1 0x02
0000134b: DUP2
0000134c: LT
0000134d: PUSH2 0x1352
00001350: JUMPI
00001351: INVALID
00001352: JUMPDEST
00001353: ADD
00001354: SLOAD
00001355: SWAP1
00001356: POP
00001357: DUP2
00001358: JUMP
00001359: JUMPDEST
0000135a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000136f: DUP3
00001370: AND
00001371: PUSH1 0x00
00001373: SWAP1
00001374: DUP2
00001375: MSTORE
00001376: PUSH1 0x2b
00001378: PUSH1 0x20
0000137a: SWAP1
0000137b: DUP2
0000137c: MSTORE
0000137d: PUSH1 0x40
0000137f: DUP1
00001380: DUP4
00001381: KECCAK256
00001382: DUP5
00001383: DUP5
00001384: MSTORE
00001385: SWAP1
00001386: SWAP2
00001387: MSTORE
00001388: DUP2
00001389: KECCAK256
0000138a: SLOAD
0000138b: PUSH1 0xff
0000138d: AND
0000138e: PUSH2 0x1464
00001391: JUMPI
00001392: PUSH1 0x08
00001394: SLOAD
00001395: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013aa: AND
000013ab: ISZERO
000013ac: PUSH2 0x145a
000013af: JUMPI
000013b0: PUSH1 0x08
000013b2: SLOAD
000013b3: PUSH1 0x40
000013b5: DUP1
000013b6: MLOAD
000013b7: PUSH32 0x573c840900000000000000000000000000000000000000000000000000000000
000013d8: DUP2
000013d9: MSTORE
000013da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013ef: DUP7
000013f0: DUP2
000013f1: AND
000013f2: PUSH1 0x04
000013f4: DUP4
000013f5: ADD
000013f6: MSTORE
000013f7: PUSH1 0x24
000013f9: DUP3
000013fa: ADD
000013fb: DUP7
000013fc: SWAP1
000013fd: MSTORE
000013fe: SWAP2
000013ff: MLOAD
00001400: SWAP2
00001401: SWAP1
00001402: SWAP3
00001403: AND
00001404: SWAP2
00001405: PUSH4 0x573c8409
0000140a: SWAP2
0000140b: PUSH1 0x44
0000140d: DUP1
0000140e: DUP4
0000140f: ADD
00001410: SWAP3
00001411: PUSH1 0x20
00001413: SWAP3
00001414: SWAP2
00001415: SWAP1
00001416: DUP3
00001417: SWAP1
00001418: SUB
00001419: ADD
0000141a: DUP2
0000141b: DUP7
0000141c: DUP1
0000141d: EXTCODESIZE
0000141e: ISZERO
0000141f: DUP1
00001420: ISZERO
00001421: PUSH2 0x1429
00001424: JUMPI
00001425: PUSH1 0x00
00001427: DUP1
00001428: REVERT
00001429: JUMPDEST
0000142a: POP
0000142b: GAS
0000142c: STATICCALL
0000142d: ISZERO
0000142e: DUP1
0000142f: ISZERO
00001430: PUSH2 0x143d
00001433: JUMPI
00001434: RETURNDATASIZE
00001435: PUSH1 0x00
00001437: DUP1
00001438: RETURNDATACOPY
00001439: RETURNDATASIZE
0000143a: PUSH1 0x00
0000143c: REVERT
0000143d: JUMPDEST
0000143e: POP
0000143f: POP
00001440: POP
00001441: POP
00001442: PUSH1 0x40
00001444: MLOAD
00001445: RETURNDATASIZE
00001446: PUSH1 0x20
00001448: DUP2
00001449: LT
0000144a: ISZERO
0000144b: PUSH2 0x1453
0000144e: JUMPI
0000144f: PUSH1 0x00
00001451: DUP1
00001452: REVERT
00001453: JUMPDEST
00001454: POP
00001455: MLOAD
00001456: PUSH2 0x145d
00001459: JUMP
0000145a: JUMPDEST
0000145b: PUSH1 0x00
0000145d: JUMPDEST
0000145e: SWAP1
0000145f: POP
00001460: PUSH2 0x149a
00001463: JUMP
00001464: JUMPDEST
00001465: POP
00001466: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000147b: DUP3
0000147c: AND
0000147d: PUSH1 0x00
0000147f: SWAP1
00001480: DUP2
00001481: MSTORE
00001482: PUSH1 0x2b
00001484: PUSH1 0x20
00001486: SWAP1
00001487: DUP2
00001488: MSTORE
00001489: PUSH1 0x40
0000148b: DUP1
0000148c: DUP4
0000148d: KECCAK256
0000148e: DUP5
0000148f: DUP5
00001490: MSTORE
00001491: SWAP1
00001492: SWAP2
00001493: MSTORE
00001494: SWAP1
00001495: KECCAK256
00001496: SLOAD
00001497: PUSH1 0xff
00001499: AND
0000149a: JUMPDEST
0000149b: SWAP3
0000149c: SWAP2
0000149d: POP
0000149e: POP
0000149f: JUMP
000014a0: JUMPDEST
000014a1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014b6: DUP2
000014b7: AND
000014b8: PUSH1 0x00
000014ba: SWAP1
000014bb: DUP2
000014bc: MSTORE
000014bd: PUSH1 0x1b
000014bf: PUSH1 0x20
000014c1: MSTORE
000014c2: PUSH1 0x40
000014c4: DUP2
000014c5: KECCAK256
000014c6: SLOAD
000014c7: PUSH2 0x155b
000014ca: JUMPI
000014cb: PUSH1 0x08
000014cd: SLOAD
000014ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014e3: AND
000014e4: ISZERO
000014e5: PUSH2 0x1151
000014e8: JUMPI
000014e9: PUSH1 0x08
000014eb: SLOAD
000014ec: PUSH1 0x40
000014ee: DUP1
000014ef: MLOAD
000014f0: PUSH32 0x5825b04c00000000000000000000000000000000000000000000000000000000
00001511: DUP2
00001512: MSTORE
00001513: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001528: DUP6
00001529: DUP2
0000152a: AND
0000152b: PUSH1 0x04
0000152d: DUP4
0000152e: ADD
0000152f: MSTORE
00001530: SWAP2
00001531: MLOAD
00001532: SWAP2
00001533: SWAP1
00001534: SWAP3
00001535: AND
00001536: SWAP2
00001537: PUSH4 0x5825b04c
0000153c: SWAP2
0000153d: PUSH1 0x24
0000153f: DUP1
00001540: DUP4
00001541: ADD
00001542: SWAP3
00001543: PUSH1 0x20
00001545: SWAP3
00001546: SWAP2
00001547: SWAP1
00001548: DUP3
00001549: SWAP1
0000154a: SUB
0000154b: ADD
0000154c: DUP2
0000154d: DUP7
0000154e: DUP1
0000154f: EXTCODESIZE
00001550: ISZERO
00001551: DUP1
00001552: ISZERO
00001553: PUSH2 0x1120
00001556: JUMPI
00001557: PUSH1 0x00
00001559: DUP1
0000155a: REVERT
0000155b: JUMPDEST
0000155c: POP
0000155d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001572: AND
00001573: PUSH1 0x00
00001575: SWAP1
00001576: DUP2
00001577: MSTORE
00001578: PUSH1 0x1b
0000157a: PUSH1 0x20
0000157c: MSTORE
0000157d: PUSH1 0x40
0000157f: SWAP1
00001580: KECCAK256
00001581: SLOAD
00001582: SWAP1
00001583: JUMP
00001584: JUMPDEST
00001585: PUSH1 0x31
00001587: DUP1
00001588: SLOAD
00001589: PUSH1 0x40
0000158b: DUP1
0000158c: MLOAD
0000158d: PUSH1 0x20
0000158f: PUSH1 0x1f
00001591: PUSH1 0x02
00001593: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000015b4: PUSH2 0x0100
000015b7: PUSH1 0x01
000015b9: DUP9
000015ba: AND
000015bb: ISZERO
000015bc: MUL
000015bd: ADD
000015be: SWAP1
000015bf: SWAP6
000015c0: AND
000015c1: SWAP5
000015c2: SWAP1
000015c3: SWAP5
000015c4: DIV
000015c5: SWAP4
000015c6: DUP5
000015c7: ADD
000015c8: DUP2
000015c9: SWAP1
000015ca: DIV
000015cb: DUP2
000015cc: MUL
000015cd: DUP3
000015ce: ADD
000015cf: DUP2
000015d0: ADD
000015d1: SWAP1
000015d2: SWAP3
000015d3: MSTORE
000015d4: DUP3
000015d5: DUP2
000015d6: MSTORE
000015d7: PUSH1 0x60
000015d9: SWAP4
000015da: SWAP1
000015db: SWAP3
000015dc: SWAP1
000015dd: SWAP2
000015de: DUP4
000015df: ADD
000015e0: DUP3
000015e1: DUP3
000015e2: DUP1
000015e3: ISZERO
000015e4: PUSH2 0x162e
000015e7: JUMPI
000015e8: DUP1
000015e9: PUSH1 0x1f
000015eb: LT
000015ec: PUSH2 0x1603
000015ef: JUMPI
000015f0: PUSH2 0x0100
000015f3: DUP1
000015f4: DUP4
000015f5: SLOAD
000015f6: DIV
000015f7: MUL
000015f8: DUP4
000015f9: MSTORE
000015fa: SWAP2
000015fb: PUSH1 0x20
000015fd: ADD
000015fe: SWAP2
000015ff: PUSH2 0x162e
00001602: JUMP
00001603: JUMPDEST
00001604: DUP3
00001605: ADD
00001606: SWAP2
00001607: SWAP1
00001608: PUSH1 0x00
0000160a: MSTORE
0000160b: PUSH1 0x20
0000160d: PUSH1 0x00
0000160f: KECCAK256
00001610: SWAP1
00001611: JUMPDEST
00001612: DUP2
00001613: SLOAD
00001614: DUP2
00001615: MSTORE
00001616: SWAP1
00001617: PUSH1 0x01
00001619: ADD
0000161a: SWAP1
0000161b: PUSH1 0x20
0000161d: ADD
0000161e: DUP1
0000161f: DUP4
00001620: GT
00001621: PUSH2 0x1611
00001624: JUMPI
00001625: DUP3
00001626: SWAP1
00001627: SUB
00001628: PUSH1 0x1f
0000162a: AND
0000162b: DUP3
0000162c: ADD
0000162d: SWAP2
0000162e: JUMPDEST
0000162f: POP
00001630: POP
00001631: POP
00001632: POP
00001633: POP
00001634: SWAP1
00001635: POP
00001636: SWAP1
00001637: JUMP
00001638: JUMPDEST
00001639: PUSH1 0x14
0000163b: SLOAD
0000163c: DUP2
0000163d: JUMP
0000163e: JUMPDEST
0000163f: PUSH1 0x23
00001641: SLOAD
00001642: PUSH2 0x0100
00001645: SWAP1
00001646: DIV
00001647: PUSH1 0xff
00001649: AND
0000164a: DUP2
0000164b: JUMP
0000164c: JUMPDEST
0000164d: PUSH1 0x0b
0000164f: SLOAD
00001650: DUP2
00001651: JUMP
00001652: JUMPDEST
00001653: PUSH8 0x0a688906bd8b0000
0000165c: DUP2
0000165d: JUMP
0000165e: JUMPDEST
0000165f: PUSH2 0x1666
00001662: PUSH2 0x1944
00001665: JUMP
00001666: JUMPDEST
00001667: PUSH2 0x16d1
0000166a: JUMPI
0000166b: PUSH1 0x40
0000166d: DUP1
0000166e: MLOAD
0000166f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001690: DUP2
00001691: MSTORE
00001692: PUSH1 0x20
00001694: PUSH1 0x04
00001696: DUP3
00001697: ADD
00001698: DUP2
00001699: SWAP1
0000169a: MSTORE
0000169b: PUSH1 0x24
0000169d: DUP3
0000169e: ADD
0000169f: MSTORE
000016a0: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
000016c1: PUSH1 0x44
000016c3: DUP3
000016c4: ADD
000016c5: MSTORE
000016c6: SWAP1
000016c7: MLOAD
000016c8: SWAP1
000016c9: DUP2
000016ca: SWAP1
000016cb: SUB
000016cc: PUSH1 0x64
000016ce: ADD
000016cf: SWAP1
000016d0: REVERT
000016d1: JUMPDEST
000016d2: PUSH1 0x00
000016d4: DUP1
000016d5: SLOAD
000016d6: PUSH1 0x40
000016d8: MLOAD
000016d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016ee: SWAP1
000016ef: SWAP2
000016f0: AND
000016f1: SWAP1
000016f2: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001713: SWAP1
00001714: DUP4
00001715: SWAP1
00001716: LOG3
00001717: PUSH1 0x00
00001719: DUP1
0000171a: SLOAD
0000171b: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
0000173c: AND
0000173d: SWAP1
0000173e: SSTORE
0000173f: JUMP
00001740: JUMPDEST
00001741: PUSH8 0x06f05b59d3b20000
0000174a: DUP2
0000174b: JUMP
0000174c: JUMPDEST
0000174d: PUSH1 0x0d
0000174f: SLOAD
00001750: DUP2
00001751: JUMP
00001752: JUMPDEST
00001753: PUSH1 0x06
00001755: DUP2
00001756: JUMP
00001757: JUMPDEST
00001758: PUSH1 0x00
0000175a: DUP2
0000175b: DUP2
0000175c: MSTORE
0000175d: PUSH1 0x1e
0000175f: PUSH1 0x20
00001761: MSTORE
00001762: PUSH1 0x40
00001764: DUP2
00001765: KECCAK256
00001766: SLOAD
00001767: PUSH2 0x17fa
0000176a: JUMPI
0000176b: PUSH1 0x08
0000176d: SLOAD
0000176e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001783: AND
00001784: ISZERO
00001785: PUSH2 0x1151
00001788: JUMPI
00001789: PUSH1 0x08
0000178b: SLOAD
0000178c: PUSH1 0x40
0000178e: DUP1
0000178f: MLOAD
00001790: PUSH32 0x7cd9fb1c00000000000000000000000000000000000000000000000000000000
000017b1: DUP2
000017b2: MSTORE
000017b3: PUSH1 0x04
000017b5: DUP2
000017b6: ADD
000017b7: DUP6
000017b8: SWAP1
000017b9: MSTORE
000017ba: SWAP1
000017bb: MLOAD
000017bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017d1: SWAP1
000017d2: SWAP3
000017d3: AND
000017d4: SWAP2
000017d5: PUSH4 0x7cd9fb1c
000017da: SWAP2
000017db: PUSH1 0x24
000017dd: DUP1
000017de: DUP3
000017df: ADD
000017e0: SWAP3
000017e1: PUSH1 0x20
000017e3: SWAP3
000017e4: SWAP1
000017e5: SWAP2
000017e6: SWAP1
000017e7: DUP3
000017e8: SWAP1
000017e9: SUB
000017ea: ADD
000017eb: DUP2
000017ec: DUP7
000017ed: DUP1
000017ee: EXTCODESIZE
000017ef: ISZERO
000017f0: DUP1
000017f1: ISZERO
000017f2: PUSH2 0x1120
000017f5: JUMPI
000017f6: PUSH1 0x00
000017f8: DUP1
000017f9: REVERT
000017fa: JUMPDEST
000017fb: POP
000017fc: PUSH1 0x00
000017fe: SWAP1
000017ff: DUP2
00001800: MSTORE
00001801: PUSH1 0x1e
00001803: PUSH1 0x20
00001805: MSTORE
00001806: PUSH1 0x40
00001808: SWAP1
00001809: KECCAK256
0000180a: SLOAD
0000180b: SWAP1
0000180c: JUMP
0000180d: JUMPDEST
0000180e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001823: DUP2
00001824: AND
00001825: PUSH1 0x00
00001827: SWAP1
00001828: DUP2
00001829: MSTORE
0000182a: PUSH1 0x18
0000182c: PUSH1 0x20
0000182e: MSTORE
0000182f: PUSH1 0x40
00001831: DUP2
00001832: KECCAK256
00001833: SLOAD
00001834: PUSH2 0x18c8
00001837: JUMPI
00001838: PUSH1 0x08
0000183a: SLOAD
0000183b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001850: AND
00001851: ISZERO
00001852: PUSH2 0x1151
00001855: JUMPI
00001856: PUSH1 0x08
00001858: SLOAD
00001859: PUSH1 0x40
0000185b: DUP1
0000185c: MLOAD
0000185d: PUSH32 0x821f982400000000000000000000000000000000000000000000000000000000
0000187e: DUP2
0000187f: MSTORE
00001880: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001895: DUP6
00001896: DUP2
00001897: AND
00001898: PUSH1 0x04
0000189a: DUP4
0000189b: ADD
0000189c: MSTORE
0000189d: SWAP2
0000189e: MLOAD
0000189f: SWAP2
000018a0: SWAP1
000018a1: SWAP3
000018a2: AND
000018a3: SWAP2
000018a4: PUSH4 0x821f9824
000018a9: SWAP2
000018aa: PUSH1 0x24
000018ac: DUP1
000018ad: DUP4
000018ae: ADD
000018af: SWAP3
000018b0: PUSH1 0x20
000018b2: SWAP3
000018b3: SWAP2
000018b4: SWAP1
000018b5: DUP3
000018b6: SWAP1
000018b7: SUB
000018b8: ADD
000018b9: DUP2
000018ba: DUP7
000018bb: DUP1
000018bc: EXTCODESIZE
000018bd: ISZERO
000018be: DUP1
000018bf: ISZERO
000018c0: PUSH2 0x1120
000018c3: JUMPI
000018c4: PUSH1 0x00
000018c6: DUP1
000018c7: REVERT
000018c8: JUMPDEST
000018c9: POP
000018ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018df: AND
000018e0: PUSH1 0x00
000018e2: SWAP1
000018e3: DUP2
000018e4: MSTORE
000018e5: PUSH1 0x18
000018e7: PUSH1 0x20
000018e9: MSTORE
000018ea: PUSH1 0x40
000018ec: SWAP1
000018ed: KECCAK256
000018ee: SLOAD
000018ef: SWAP1
000018f0: JUMP
000018f1: JUMPDEST
000018f2: PUSH1 0x28
000018f4: SLOAD
000018f5: DUP2
000018f6: JUMP
000018f7: JUMPDEST
000018f8: PUSH1 0x21
000018fa: PUSH1 0x20
000018fc: MSTORE
000018fd: PUSH1 0x00
000018ff: SWAP1
00001900: DUP2
00001901: MSTORE
00001902: PUSH1 0x40
00001904: SWAP1
00001905: KECCAK256
00001906: SLOAD
00001907: PUSH1 0xff
00001909: AND
0000190a: DUP2
0000190b: JUMP
0000190c: JUMPDEST
0000190d: PUSH1 0x05
0000190f: SLOAD
00001910: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001925: AND
00001926: DUP2
00001927: JUMP
00001928: JUMPDEST
00001929: PUSH1 0x00
0000192b: SLOAD
0000192c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001941: AND
00001942: SWAP1
00001943: JUMP
00001944: JUMPDEST
00001945: PUSH1 0x00
00001947: DUP1
00001948: SLOAD
00001949: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000195e: AND
0000195f: PUSH2 0x1966
00001962: PUSH2 0x24fc
00001965: JUMP
00001966: JUMPDEST
00001967: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000197c: AND
0000197d: EQ
0000197e: SWAP1
0000197f: POP
00001980: SWAP1
00001981: JUMP
00001982: JUMPDEST
00001983: PUSH1 0x1c
00001985: PUSH1 0x20
00001987: MSTORE
00001988: DUP2
00001989: PUSH1 0x00
0000198b: MSTORE
0000198c: PUSH1 0x40
0000198e: PUSH1 0x00
00001990: KECCAK256
00001991: DUP2
00001992: DUP2
00001993: SLOAD
00001994: DUP2
00001995: LT
00001996: PUSH2 0x199b
00001999: JUMPI
0000199a: INVALID
0000199b: JUMPDEST
0000199c: PUSH1 0x00
0000199e: SWAP2
0000199f: DUP3
000019a0: MSTORE
000019a1: PUSH1 0x20
000019a3: SWAP1
000019a4: SWAP2
000019a5: KECCAK256
000019a6: PUSH1 0x09
000019a8: SWAP1
000019a9: SWAP2
000019aa: MUL
000019ab: ADD
000019ac: DUP1
000019ad: SLOAD
000019ae: PUSH1 0x01
000019b0: DUP3
000019b1: ADD
000019b2: SLOAD
000019b3: PUSH1 0x02
000019b5: DUP4
000019b6: ADD
000019b7: SLOAD
000019b8: PUSH1 0x03
000019ba: DUP5
000019bb: ADD
000019bc: SLOAD
000019bd: PUSH1 0x04
000019bf: DUP6
000019c0: ADD
000019c1: SLOAD
000019c2: PUSH1 0x05
000019c4: DUP7
000019c5: ADD
000019c6: SLOAD
000019c7: PUSH1 0x06
000019c9: DUP8
000019ca: ADD
000019cb: SLOAD
000019cc: PUSH1 0x07
000019ce: DUP9
000019cf: ADD
000019d0: SLOAD
000019d1: PUSH1 0x08
000019d3: SWAP1
000019d4: SWAP9
000019d5: ADD
000019d6: SLOAD
000019d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019ec: SWAP1
000019ed: SWAP8
000019ee: AND
000019ef: SWAP10
000019f0: POP
000019f1: SWAP5
000019f2: SWAP8
000019f3: POP
000019f4: SWAP3
000019f5: SWAP6
000019f6: SWAP2
000019f7: SWAP5
000019f8: SWAP1
000019f9: SWAP4
000019fa: SWAP2
000019fb: SWAP1
000019fc: PUSH1 0xff
000019fe: AND
000019ff: DUP10
00001a00: JUMP
00001a01: JUMPDEST
00001a02: PUSH8 0x016345785d8a0000
00001a0b: DUP2
00001a0c: JUMP
00001a0d: JUMPDEST
00001a0e: PUSH1 0x03
00001a10: SLOAD
00001a11: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a26: AND
00001a27: DUP2
00001a28: JUMP
00001a29: JUMPDEST
00001a2a: PUSH2 0x1a31
00001a2d: PUSH2 0x2488
00001a30: JUMP
00001a31: JUMPDEST
00001a32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a47: AND
00001a48: CALLER
00001a49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a5e: AND
00001a5f: EQ
00001a60: ISZERO
00001a61: PUSH2 0x1b36
00001a64: JUMPI
00001a65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a7a: DUP2
00001a7b: AND
00001a7c: PUSH2 0x1ad0
00001a7f: JUMPI
00001a80: PUSH1 0x40
00001a82: MLOAD
00001a83: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001aa4: DUP2
00001aa5: MSTORE
00001aa6: PUSH1 0x04
00001aa8: ADD
00001aa9: DUP1
00001aaa: DUP1
00001aab: PUSH1 0x20
00001aad: ADD
00001aae: DUP3
00001aaf: DUP2
00001ab0: SUB
00001ab1: DUP3
00001ab2: MSTORE
00001ab3: PUSH1 0x36
00001ab5: DUP2
00001ab6: MSTORE
00001ab7: PUSH1 0x20
00001ab9: ADD
00001aba: DUP1
00001abb: PUSH2 0x27f7
00001abe: PUSH1 0x36
00001ac0: SWAP2
00001ac1: CODECOPY
00001ac2: PUSH1 0x40
00001ac4: ADD
00001ac5: SWAP2
00001ac6: POP
00001ac7: POP
00001ac8: PUSH1 0x40
00001aca: MLOAD
00001acb: DUP1
00001acc: SWAP2
00001acd: SUB
00001ace: SWAP1
00001acf: REVERT
00001ad0: JUMPDEST
00001ad1: PUSH32 0xe923ce5ee469e989477ed664be643fb92d252573aad00209ddad9452b5414a89
00001af2: PUSH2 0x1af9
00001af5: PUSH2 0x2488
00001af8: JUMP
00001af9: JUMPDEST
00001afa: PUSH1 0x40
00001afc: DUP1
00001afd: MLOAD
00001afe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b13: SWAP3
00001b14: DUP4
00001b15: AND
00001b16: DUP2
00001b17: MSTORE
00001b18: SWAP2
00001b19: DUP5
00001b1a: AND
00001b1b: PUSH1 0x20
00001b1d: DUP4
00001b1e: ADD
00001b1f: MSTORE
00001b20: DUP1
00001b21: MLOAD
00001b22: SWAP2
00001b23: DUP3
00001b24: SWAP1
00001b25: SUB
00001b26: ADD
00001b27: SWAP1
00001b28: LOG1
00001b29: PUSH2 0x1b31
00001b2c: DUP2
00001b2d: PUSH2 0x2500
00001b30: JUMP
00001b31: JUMPDEST
00001b32: PUSH2 0x1b3e
00001b35: JUMP
00001b36: JUMPDEST
00001b37: PUSH2 0x1b3e
00001b3a: PUSH2 0x102f
00001b3d: JUMP
00001b3e: JUMPDEST
00001b3f: POP
00001b40: JUMP
00001b41: JUMPDEST
00001b42: PUSH8 0x02c68af0bb140000
00001b4b: DUP2
00001b4c: JUMP
00001b4d: JUMPDEST
00001b4e: PUSH1 0x00
00001b50: DUP2
00001b51: DUP2
00001b52: MSTORE
00001b53: PUSH1 0x1f
00001b55: PUSH1 0x20
00001b57: MSTORE
00001b58: PUSH1 0x40
00001b5a: DUP2
00001b5b: KECCAK256
00001b5c: SLOAD
00001b5d: PUSH2 0x1bf0
00001b60: JUMPI
00001b61: PUSH1 0x08
00001b63: SLOAD
00001b64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b79: AND
00001b7a: ISZERO
00001b7b: PUSH2 0x1151
00001b7e: JUMPI
00001b7f: PUSH1 0x08
00001b81: SLOAD
00001b82: PUSH1 0x40
00001b84: DUP1
00001b85: MLOAD
00001b86: PUSH32 0xa940646d00000000000000000000000000000000000000000000000000000000
00001ba7: DUP2
00001ba8: MSTORE
00001ba9: PUSH1 0x04
00001bab: DUP2
00001bac: ADD
00001bad: DUP6
00001bae: SWAP1
00001baf: MSTORE
00001bb0: SWAP1
00001bb1: MLOAD
00001bb2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bc7: SWAP1
00001bc8: SWAP3
00001bc9: AND
00001bca: SWAP2
00001bcb: PUSH4 0xa940646d
00001bd0: SWAP2
00001bd1: PUSH1 0x24
00001bd3: DUP1
00001bd4: DUP3
00001bd5: ADD
00001bd6: SWAP3
00001bd7: PUSH1 0x20
00001bd9: SWAP3
00001bda: SWAP1
00001bdb: SWAP2
00001bdc: SWAP1
00001bdd: DUP3
00001bde: SWAP1
00001bdf: SUB
00001be0: ADD
00001be1: DUP2
00001be2: DUP7
00001be3: DUP1
00001be4: EXTCODESIZE
00001be5: ISZERO
00001be6: DUP1
00001be7: ISZERO
00001be8: PUSH2 0x1120
00001beb: JUMPI
00001bec: PUSH1 0x00
00001bee: DUP1
00001bef: REVERT
00001bf0: JUMPDEST
00001bf1: POP
00001bf2: PUSH1 0x00
00001bf4: SWAP1
00001bf5: DUP2
00001bf6: MSTORE
00001bf7: PUSH1 0x1f
00001bf9: PUSH1 0x20
00001bfb: MSTORE
00001bfc: PUSH1 0x40
00001bfe: SWAP1
00001bff: KECCAK256
00001c00: SLOAD
00001c01: SWAP1
00001c02: JUMP
00001c03: JUMPDEST
00001c04: PUSH1 0x2f
00001c06: PUSH1 0x20
00001c08: SWAP1
00001c09: DUP2
00001c0a: MSTORE
00001c0b: PUSH1 0x00
00001c0d: SWAP3
00001c0e: DUP4
00001c0f: MSTORE
00001c10: PUSH1 0x40
00001c12: DUP1
00001c13: DUP5
00001c14: KECCAK256
00001c15: SWAP1
00001c16: SWAP2
00001c17: MSTORE
00001c18: SWAP1
00001c19: DUP3
00001c1a: MSTORE
00001c1b: SWAP1
00001c1c: KECCAK256
00001c1d: SLOAD
00001c1e: PUSH1 0xff
00001c20: AND
00001c21: DUP2
00001c22: JUMP
00001c23: JUMPDEST
00001c24: PUSH1 0x11
00001c26: SLOAD
00001c27: DUP2
00001c28: JUMP
00001c29: JUMPDEST
00001c2a: PUSH1 0x02
00001c2c: DUP2
00001c2d: JUMP
00001c2e: JUMPDEST
00001c2f: PUSH1 0x2c
00001c31: SLOAD
00001c32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c47: AND
00001c48: DUP2
00001c49: JUMP
00001c4a: JUMPDEST
00001c4b: PUSH1 0x00
00001c4d: SLOAD
00001c4e: PUSH22 0x01000000000000000000000000000000000000000000
00001c65: SWAP1
00001c66: DIV
00001c67: PUSH1 0xff
00001c69: AND
00001c6a: DUP2
00001c6b: JUMP
00001c6c: JUMPDEST
00001c6d: PUSH1 0x0a
00001c6f: SLOAD
00001c70: DUP2
00001c71: JUMP
00001c72: JUMPDEST
00001c73: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c88: DUP3
00001c89: AND
00001c8a: PUSH1 0x00
00001c8c: SWAP1
00001c8d: DUP2
00001c8e: MSTORE
00001c8f: PUSH1 0x1a
00001c91: PUSH1 0x20
00001c93: SWAP1
00001c94: DUP2
00001c95: MSTORE
00001c96: PUSH1 0x40
00001c98: DUP1
00001c99: DUP4
00001c9a: KECCAK256
00001c9b: DUP5
00001c9c: DUP5
00001c9d: MSTORE
00001c9e: SWAP1
00001c9f: SWAP2
00001ca0: MSTORE
00001ca1: DUP2
00001ca2: KECCAK256
00001ca3: SLOAD
00001ca4: PUSH2 0x1d3f
00001ca7: JUMPI
00001ca8: PUSH1 0x08
00001caa: SLOAD
00001cab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cc0: AND
00001cc1: ISZERO
00001cc2: PUSH2 0x145a
00001cc5: JUMPI
00001cc6: PUSH1 0x08
00001cc8: SLOAD
00001cc9: PUSH1 0x40
00001ccb: DUP1
00001ccc: MLOAD
00001ccd: PUSH32 0xbdbcb57600000000000000000000000000000000000000000000000000000000
00001cee: DUP2
00001cef: MSTORE
00001cf0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d05: DUP7
00001d06: DUP2
00001d07: AND
00001d08: PUSH1 0x04
00001d0a: DUP4
00001d0b: ADD
00001d0c: MSTORE
00001d0d: PUSH1 0x24
00001d0f: DUP3
00001d10: ADD
00001d11: DUP7
00001d12: SWAP1
00001d13: MSTORE
00001d14: SWAP2
00001d15: MLOAD
00001d16: SWAP2
00001d17: SWAP1
00001d18: SWAP3
00001d19: AND
00001d1a: SWAP2
00001d1b: PUSH4 0xbdbcb576
00001d20: SWAP2
00001d21: PUSH1 0x44
00001d23: DUP1
00001d24: DUP4
00001d25: ADD
00001d26: SWAP3
00001d27: PUSH1 0x20
00001d29: SWAP3
00001d2a: SWAP2
00001d2b: SWAP1
00001d2c: DUP3
00001d2d: SWAP1
00001d2e: SUB
00001d2f: ADD
00001d30: DUP2
00001d31: DUP7
00001d32: DUP1
00001d33: EXTCODESIZE
00001d34: ISZERO
00001d35: DUP1
00001d36: ISZERO
00001d37: PUSH2 0x1429
00001d3a: JUMPI
00001d3b: PUSH1 0x00
00001d3d: DUP1
00001d3e: REVERT
00001d3f: JUMPDEST
00001d40: POP
00001d41: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d56: SWAP2
00001d57: SWAP1
00001d58: SWAP2
00001d59: AND
00001d5a: PUSH1 0x00
00001d5c: SWAP1
00001d5d: DUP2
00001d5e: MSTORE
00001d5f: PUSH1 0x1a
00001d61: PUSH1 0x20
00001d63: SWAP1
00001d64: DUP2
00001d65: MSTORE
00001d66: PUSH1 0x40
00001d68: DUP1
00001d69: DUP4
00001d6a: KECCAK256
00001d6b: SWAP4
00001d6c: DUP4
00001d6d: MSTORE
00001d6e: SWAP3
00001d6f: SWAP1
00001d70: MSTORE
00001d71: KECCAK256
00001d72: SLOAD
00001d73: SWAP1
00001d74: JUMP
00001d75: JUMPDEST
00001d76: PUSH1 0x06
00001d78: SLOAD
00001d79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d8e: AND
00001d8f: DUP2
00001d90: JUMP
00001d91: JUMPDEST
00001d92: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001da7: DUP3
00001da8: AND
00001da9: PUSH1 0x00
00001dab: SWAP1
00001dac: DUP2
00001dad: MSTORE
00001dae: PUSH1 0x19
00001db0: PUSH1 0x20
00001db2: SWAP1
00001db3: DUP2
00001db4: MSTORE
00001db5: PUSH1 0x40
00001db7: DUP1
00001db8: DUP4
00001db9: KECCAK256
00001dba: DUP5
00001dbb: DUP5
00001dbc: MSTORE
00001dbd: SWAP1
00001dbe: SWAP2
00001dbf: MSTORE
00001dc0: DUP2
00001dc1: KECCAK256
00001dc2: SLOAD
00001dc3: PUSH1 0xff
00001dc5: AND
00001dc6: PUSH2 0x1e61
00001dc9: JUMPI
00001dca: PUSH1 0x08
00001dcc: SLOAD
00001dcd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001de2: AND
00001de3: ISZERO
00001de4: PUSH2 0x145a
00001de7: JUMPI
00001de8: PUSH1 0x08
00001dea: SLOAD
00001deb: PUSH1 0x40
00001ded: DUP1
00001dee: MLOAD
00001def: PUSH32 0xce977bc200000000000000000000000000000000000000000000000000000000
00001e10: DUP2
00001e11: MSTORE
00001e12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e27: DUP7
00001e28: DUP2
00001e29: AND
00001e2a: PUSH1 0x04
00001e2c: DUP4
00001e2d: ADD
00001e2e: MSTORE
00001e2f: PUSH1 0x24
00001e31: DUP3
00001e32: ADD
00001e33: DUP7
00001e34: SWAP1
00001e35: MSTORE
00001e36: SWAP2
00001e37: MLOAD
00001e38: SWAP2
00001e39: SWAP1
00001e3a: SWAP3
00001e3b: AND
00001e3c: SWAP2
00001e3d: PUSH4 0xce977bc2
00001e42: SWAP2
00001e43: PUSH1 0x44
00001e45: DUP1
00001e46: DUP4
00001e47: ADD
00001e48: SWAP3
00001e49: PUSH1 0x20
00001e4b: SWAP3
00001e4c: SWAP2
00001e4d: SWAP1
00001e4e: DUP3
00001e4f: SWAP1
00001e50: SUB
00001e51: ADD
00001e52: DUP2
00001e53: DUP7
00001e54: DUP1
00001e55: EXTCODESIZE
00001e56: ISZERO
00001e57: DUP1
00001e58: ISZERO
00001e59: PUSH2 0x1429
00001e5c: JUMPI
00001e5d: PUSH1 0x00
00001e5f: DUP1
00001e60: REVERT
00001e61: JUMPDEST
00001e62: POP
00001e63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e78: SWAP2
00001e79: SWAP1
00001e7a: SWAP2
00001e7b: AND
00001e7c: PUSH1 0x00
00001e7e: SWAP1
00001e7f: DUP2
00001e80: MSTORE
00001e81: PUSH1 0x19
00001e83: PUSH1 0x20
00001e85: SWAP1
00001e86: DUP2
00001e87: MSTORE
00001e88: PUSH1 0x40
00001e8a: DUP1
00001e8b: DUP4
00001e8c: KECCAK256
00001e8d: SWAP4
00001e8e: DUP4
00001e8f: MSTORE
00001e90: SWAP3
00001e91: SWAP1
00001e92: MSTORE
00001e93: KECCAK256
00001e94: SLOAD
00001e95: PUSH1 0xff
00001e97: AND
00001e98: SWAP1
00001e99: JUMP
00001e9a: JUMPDEST
00001e9b: PUSH1 0x16
00001e9d: SLOAD
00001e9e: DUP2
00001e9f: JUMP
00001ea0: JUMPDEST
00001ea1: PUSH1 0x02
00001ea3: SLOAD
00001ea4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001eb9: AND
00001eba: DUP2
00001ebb: JUMP
00001ebc: JUMPDEST
00001ebd: PUSH1 0x0c
00001ebf: SLOAD
00001ec0: DUP2
00001ec1: JUMP
00001ec2: JUMPDEST
00001ec3: PUSH1 0x0f
00001ec5: SLOAD
00001ec6: DUP2
00001ec7: JUMP
00001ec8: JUMPDEST
00001ec9: PUSH1 0x08
00001ecb: SLOAD
00001ecc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ee1: AND
00001ee2: DUP2
00001ee3: JUMP
00001ee4: JUMPDEST
00001ee5: PUSH1 0x01
00001ee7: SLOAD
00001ee8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001efd: AND
00001efe: DUP2
00001eff: JUMP
00001f00: JUMPDEST
00001f01: PUSH1 0x2e
00001f03: SLOAD
00001f04: PUSH21 0x010000000000000000000000000000000000000000
00001f1a: SWAP1
00001f1b: DIV
00001f1c: PUSH1 0xff
00001f1e: AND
00001f1f: DUP2
00001f20: JUMP
00001f21: JUMPDEST
00001f22: PUSH1 0x32
00001f24: SLOAD
00001f25: PUSH1 0xff
00001f27: AND
00001f28: DUP2
00001f29: JUMP
00001f2a: JUMPDEST
00001f2b: PUSH1 0x26
00001f2d: SLOAD
00001f2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f43: AND
00001f44: DUP2
00001f45: JUMP
00001f46: JUMPDEST
00001f47: PUSH1 0x32
00001f49: SLOAD
00001f4a: PUSH1 0xff
00001f4c: AND
00001f4d: ISZERO
00001f4e: PUSH2 0x1f53
00001f51: JUMPI
00001f52: INVALID
00001f53: JUMPDEST
00001f54: PUSH1 0x40
00001f56: DUP1
00001f57: MLOAD
00001f58: PUSH32 0x6f72672e7a657070656c696e6f732e70726f78792e61646d696e000000000000
00001f79: DUP2
00001f7a: MSTORE
00001f7b: SWAP1
00001f7c: MLOAD
00001f7d: SWAP1
00001f7e: DUP2
00001f7f: SWAP1
00001f80: SUB
00001f81: PUSH1 0x1a
00001f83: ADD
00001f84: SWAP1
00001f85: KECCAK256
00001f86: PUSH32 0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b
00001fa7: EQ
00001fa8: PUSH2 0x1fad
00001fab: JUMPI
00001fac: INVALID
00001fad: JUMPDEST
00001fae: PUSH1 0x40
00001fb0: MLOAD
00001fb1: DUP1
00001fb2: PUSH1 0x23
00001fb4: PUSH2 0x282d
00001fb7: DUP3
00001fb8: CODECOPY
00001fb9: PUSH1 0x40
00001fbb: MLOAD
00001fbc: SWAP1
00001fbd: DUP2
00001fbe: SWAP1
00001fbf: SUB
00001fc0: PUSH1 0x23
00001fc2: ADD
00001fc3: SWAP1
00001fc4: KECCAK256
00001fc5: PUSH32 0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3
00001fe6: EQ
00001fe7: SWAP1
00001fe8: POP
00001fe9: PUSH2 0x1fee
00001fec: JUMPI
00001fed: INVALID
00001fee: JUMPDEST
00001fef: PUSH1 0x32
00001ff1: DUP1
00001ff2: SLOAD
00001ff3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
00002014: AND
00002015: PUSH1 0x01
00002017: OR
00002018: SWAP1
00002019: SSTORE
0000201a: PUSH2 0x2022
0000201d: DUP2
0000201e: PUSH2 0x2500
00002021: JUMP
00002022: JUMPDEST
00002023: PUSH2 0x2061
00002026: DUP3
00002027: PUSH1 0x40
00002029: MLOAD
0000202a: DUP1
0000202b: PUSH1 0x40
0000202d: ADD
0000202e: PUSH1 0x40
00002030: MSTORE
00002031: DUP1
00002032: PUSH1 0x05
00002034: DUP2
00002035: MSTORE
00002036: PUSH1 0x20
00002038: ADD
00002039: PUSH32 0x312e302e30000000000000000000000000000000000000000000000000000000
0000205a: DUP2
0000205b: MSTORE
0000205c: POP
0000205d: PUSH2 0x2524
00002060: JUMP
00002061: JUMPDEST
00002062: POP
00002063: POP
00002064: JUMP
00002065: JUMPDEST
00002066: PUSH1 0x00
00002068: DUP2
00002069: DUP2
0000206a: MSTORE
0000206b: PUSH1 0x29
0000206d: PUSH1 0x20
0000206f: MSTORE
00002070: PUSH1 0x40
00002072: DUP2
00002073: KECCAK256
00002074: SLOAD
00002075: PUSH2 0x2108
00002078: JUMPI
00002079: PUSH1 0x08
0000207b: SLOAD
0000207c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002091: AND
00002092: ISZERO
00002093: PUSH2 0x1151
00002096: JUMPI
00002097: PUSH1 0x08
00002099: SLOAD
0000209a: PUSH1 0x40
0000209c: DUP1
0000209d: MLOAD
0000209e: PUSH32 0xf1a153a100000000000000000000000000000000000000000000000000000000
000020bf: DUP2
000020c0: MSTORE
000020c1: PUSH1 0x04
000020c3: DUP2
000020c4: ADD
000020c5: DUP6
000020c6: SWAP1
000020c7: MSTORE
000020c8: SWAP1
000020c9: MLOAD
000020ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020df: SWAP1
000020e0: SWAP3
000020e1: AND
000020e2: SWAP2
000020e3: PUSH4 0xf1a153a1
000020e8: SWAP2
000020e9: PUSH1 0x24
000020eb: DUP1
000020ec: DUP3
000020ed: ADD
000020ee: SWAP3
000020ef: PUSH1 0x20
000020f1: SWAP3
000020f2: SWAP1
000020f3: SWAP2
000020f4: SWAP1
000020f5: DUP3
000020f6: SWAP1
000020f7: SUB
000020f8: ADD
000020f9: DUP2
000020fa: DUP7
000020fb: DUP1
000020fc: EXTCODESIZE
000020fd: ISZERO
000020fe: DUP1
000020ff: ISZERO
00002100: PUSH2 0x1120
00002103: JUMPI
00002104: PUSH1 0x00
00002106: DUP1
00002107: REVERT
00002108: JUMPDEST
00002109: POP
0000210a: PUSH1 0x00
0000210c: SWAP1
0000210d: DUP2
0000210e: MSTORE
0000210f: PUSH1 0x29
00002111: PUSH1 0x20
00002113: MSTORE
00002114: PUSH1 0x40
00002116: SWAP1
00002117: KECCAK256
00002118: SLOAD
00002119: SWAP1
0000211a: JUMP
0000211b: JUMPDEST
0000211c: PUSH2 0x2123
0000211f: PUSH2 0x1944
00002122: JUMP
00002123: JUMPDEST
00002124: PUSH2 0x218e
00002127: JUMPI
00002128: PUSH1 0x40
0000212a: DUP1
0000212b: MLOAD
0000212c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000214d: DUP2
0000214e: MSTORE
0000214f: PUSH1 0x20
00002151: PUSH1 0x04
00002153: DUP3
00002154: ADD
00002155: DUP2
00002156: SWAP1
00002157: MSTORE
00002158: PUSH1 0x24
0000215a: DUP3
0000215b: ADD
0000215c: MSTORE
0000215d: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
0000217e: PUSH1 0x44
00002180: DUP3
00002181: ADD
00002182: MSTORE
00002183: SWAP1
00002184: MLOAD
00002185: SWAP1
00002186: DUP2
00002187: SWAP1
00002188: SUB
00002189: PUSH1 0x64
0000218b: ADD
0000218c: SWAP1
0000218d: REVERT
0000218e: JUMPDEST
0000218f: PUSH2 0x1b3e
00002192: DUP2
00002193: PUSH2 0x25d1
00002196: JUMP
00002197: JUMPDEST
00002198: PUSH1 0x23
0000219a: SLOAD
0000219b: PUSH1 0xff
0000219d: AND
0000219e: DUP2
0000219f: JUMP
000021a0: JUMPDEST
000021a1: PUSH2 0x21a8
000021a4: PUSH2 0x2488
000021a7: JUMP
000021a8: JUMPDEST
000021a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021be: AND
000021bf: CALLER
000021c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021d5: AND
000021d6: EQ
000021d7: ISZERO
000021d8: PUSH2 0x229e
000021db: JUMPI
000021dc: PUSH2 0x221b
000021df: DUP6
000021e0: DUP6
000021e1: DUP6
000021e2: DUP1
000021e3: DUP1
000021e4: PUSH1 0x1f
000021e6: ADD
000021e7: PUSH1 0x20
000021e9: DUP1
000021ea: SWAP2
000021eb: DIV
000021ec: MUL
000021ed: PUSH1 0x20
000021ef: ADD
000021f0: PUSH1 0x40
000021f2: MLOAD
000021f3: SWAP1
000021f4: DUP2
000021f5: ADD
000021f6: PUSH1 0x40
000021f8: MSTORE
000021f9: DUP1
000021fa: SWAP4
000021fb: SWAP3
000021fc: SWAP2
000021fd: SWAP1
000021fe: DUP2
000021ff: DUP2
00002200: MSTORE
00002201: PUSH1 0x20
00002203: ADD
00002204: DUP4
00002205: DUP4
00002206: DUP1
00002207: DUP3
00002208: DUP5
00002209: CALLDATACOPY
0000220a: PUSH1 0x00
0000220c: SWAP3
0000220d: ADD
0000220e: SWAP2
0000220f: SWAP1
00002210: SWAP2
00002211: MSTORE
00002212: POP
00002213: PUSH2 0x24ad
00002216: SWAP3
00002217: POP
00002218: POP
00002219: POP
0000221a: JUMP
0000221b: JUMPDEST
0000221c: PUSH1 0x00
0000221e: DUP6
0000221f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002234: AND
00002235: DUP4
00002236: DUP4
00002237: PUSH1 0x40
00002239: MLOAD
0000223a: DUP1
0000223b: DUP4
0000223c: DUP4
0000223d: DUP1
0000223e: DUP3
0000223f: DUP5
00002240: CALLDATACOPY
00002241: PUSH1 0x40
00002243: MLOAD
00002244: SWAP3
00002245: ADD
00002246: SWAP5
00002247: POP
00002248: PUSH1 0x00
0000224a: SWAP4
0000224b: POP
0000224c: SWAP1
0000224d: SWAP2
0000224e: POP
0000224f: POP
00002250: DUP1
00002251: DUP4
00002252: SUB
00002253: DUP2
00002254: DUP6
00002255: GAS
00002256: DELEGATECALL
00002257: SWAP2
00002258: POP
00002259: POP
0000225a: RETURNDATASIZE
0000225b: DUP1
0000225c: PUSH1 0x00
0000225e: DUP2
0000225f: EQ
00002260: PUSH2 0x2285
00002263: JUMPI
00002264: PUSH1 0x40
00002266: MLOAD
00002267: SWAP2
00002268: POP
00002269: PUSH1 0x1f
0000226b: NOT
0000226c: PUSH1 0x3f
0000226e: RETURNDATASIZE
0000226f: ADD
00002270: AND
00002271: DUP3
00002272: ADD
00002273: PUSH1 0x40
00002275: MSTORE
00002276: RETURNDATASIZE
00002277: DUP3
00002278: MSTORE
00002279: RETURNDATASIZE
0000227a: PUSH1 0x00
0000227c: PUSH1 0x20
0000227e: DUP5
0000227f: ADD
00002280: RETURNDATACOPY
00002281: PUSH2 0x228a
00002284: JUMP
00002285: JUMPDEST
00002286: PUSH1 0x60
00002288: SWAP2
00002289: POP
0000228a: JUMPDEST
0000228b: POP
0000228c: POP
0000228d: SWAP1
0000228e: POP
0000228f: DUP1
00002290: PUSH2 0x2298
00002293: JUMPI
00002294: PUSH1 0x00
00002296: DUP1
00002297: REVERT
00002298: JUMPDEST
00002299: POP
0000229a: PUSH2 0x22a6
0000229d: JUMP
0000229e: JUMPDEST
0000229f: PUSH2 0x22a6
000022a2: PUSH2 0x102f
000022a5: JUMP
000022a6: JUMPDEST
000022a7: POP
000022a8: POP
000022a9: POP
000022aa: POP
000022ab: POP
000022ac: JUMP
000022ad: JUMPDEST
000022ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022c3: DUP2
000022c4: AND
000022c5: PUSH1 0x00
000022c7: SWAP1
000022c8: DUP2
000022c9: MSTORE
000022ca: PUSH1 0x20
000022cc: DUP1
000022cd: MSTORE
000022ce: PUSH1 0x40
000022d0: DUP2
000022d1: KECCAK256
000022d2: SLOAD
000022d3: PUSH2 0x2367
000022d6: JUMPI
000022d7: PUSH1 0x08
000022d9: SLOAD
000022da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022ef: AND
000022f0: ISZERO
000022f1: PUSH2 0x1151
000022f4: JUMPI
000022f5: PUSH1 0x08
000022f7: SLOAD
000022f8: PUSH1 0x40
000022fa: DUP1
000022fb: MLOAD
000022fc: PUSH32 0xfa845ca900000000000000000000000000000000000000000000000000000000
0000231d: DUP2
0000231e: MSTORE
0000231f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002334: DUP6
00002335: DUP2
00002336: AND
00002337: PUSH1 0x04
00002339: DUP4
0000233a: ADD
0000233b: MSTORE
0000233c: SWAP2
0000233d: MLOAD
0000233e: SWAP2
0000233f: SWAP1
00002340: SWAP3
00002341: AND
00002342: SWAP2
00002343: PUSH4 0xfa845ca9
00002348: SWAP2
00002349: PUSH1 0x24
0000234b: DUP1
0000234c: DUP4
0000234d: ADD
0000234e: SWAP3
0000234f: PUSH1 0x20
00002351: SWAP3
00002352: SWAP2
00002353: SWAP1
00002354: DUP3
00002355: SWAP1
00002356: SUB
00002357: ADD
00002358: DUP2
00002359: DUP7
0000235a: DUP1
0000235b: EXTCODESIZE
0000235c: ISZERO
0000235d: DUP1
0000235e: ISZERO
0000235f: PUSH2 0x1120
00002362: JUMPI
00002363: PUSH1 0x00
00002365: DUP1
00002366: REVERT
00002367: JUMPDEST
00002368: POP
00002369: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000237e: AND
0000237f: PUSH1 0x00
00002381: SWAP1
00002382: DUP2
00002383: MSTORE
00002384: PUSH1 0x20
00002386: DUP1
00002387: MSTORE
00002388: PUSH1 0x40
0000238a: SWAP1
0000238b: KECCAK256
0000238c: SLOAD
0000238d: SWAP1
0000238e: JUMP
0000238f: JUMPDEST
00002390: PUSH1 0x07
00002392: SLOAD
00002393: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023a8: AND
000023a9: DUP2
000023aa: JUMP
000023ab: JUMPDEST
000023ac: PUSH2 0x23b3
000023af: PUSH2 0x2488
000023b2: JUMP
000023b3: JUMPDEST
000023b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023c9: AND
000023ca: CALLER
000023cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023e0: AND
000023e1: EQ
000023e2: ISZERO
000023e3: PUSH2 0x2437
000023e6: JUMPI
000023e7: PUSH1 0x40
000023e9: MLOAD
000023ea: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000240b: DUP2
0000240c: MSTORE
0000240d: PUSH1 0x04
0000240f: ADD
00002410: DUP1
00002411: DUP1
00002412: PUSH1 0x20
00002414: ADD
00002415: DUP3
00002416: DUP2
00002417: SUB
00002418: DUP3
00002419: MSTORE
0000241a: PUSH1 0x32
0000241c: DUP2
0000241d: MSTORE
0000241e: PUSH1 0x20
00002420: ADD
00002421: DUP1
00002422: PUSH2 0x279f
00002425: PUSH1 0x32
00002427: SWAP2
00002428: CODECOPY
00002429: PUSH1 0x40
0000242b: ADD
0000242c: SWAP2
0000242d: POP
0000242e: POP
0000242f: PUSH1 0x40
00002431: MLOAD
00002432: DUP1
00002433: SWAP2
00002434: SUB
00002435: SWAP1
00002436: REVERT
00002437: JUMPDEST
00002438: PUSH2 0x1047
0000243b: PUSH2 0x1047
0000243e: JUMP
0000243f: JUMPDEST
00002440: PUSH32 0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3
00002461: SLOAD
00002462: SWAP1
00002463: JUMP
00002464: JUMPDEST
00002465: CALLDATASIZE
00002466: PUSH1 0x00
00002468: DUP1
00002469: CALLDATACOPY
0000246a: PUSH1 0x00
0000246c: DUP1
0000246d: CALLDATASIZE
0000246e: PUSH1 0x00
00002470: DUP5
00002471: GAS
00002472: DELEGATECALL
00002473: RETURNDATASIZE
00002474: PUSH1 0x00
00002476: DUP1
00002477: RETURNDATACOPY
00002478: DUP1
00002479: DUP1
0000247a: ISZERO
0000247b: PUSH2 0x2483
0000247e: JUMPI
0000247f: RETURNDATASIZE
00002480: PUSH1 0x00
00002482: RETURN
00002483: JUMPDEST
00002484: RETURNDATASIZE
00002485: PUSH1 0x00
00002487: REVERT
00002488: JUMPDEST
00002489: PUSH32 0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b
000024aa: SLOAD
000024ab: SWAP1
000024ac: JUMP
000024ad: JUMPDEST
000024ae: PUSH2 0x24b7
000024b1: DUP3
000024b2: DUP3
000024b3: PUSH2 0x2524
000024b6: JUMP
000024b7: JUMPDEST
000024b8: PUSH1 0x40
000024ba: MLOAD
000024bb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024d0: DUP4
000024d1: AND
000024d2: SWAP1
000024d3: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
000024f4: SWAP1
000024f5: PUSH1 0x00
000024f7: SWAP1
000024f8: LOG2
000024f9: POP
000024fa: POP
000024fb: JUMP
000024fc: JUMPDEST
000024fd: CALLER
000024fe: SWAP1
000024ff: JUMP
00002500: JUMPDEST
00002501: PUSH32 0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b
00002522: SSTORE
00002523: JUMP
00002524: JUMPDEST
00002525: PUSH2 0x2543
00002528: DUP3
00002529: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000253e: AND
0000253f: PUSH2 0x26ca
00002542: JUMP
00002543: JUMPDEST
00002544: PUSH2 0x2598
00002547: JUMPI
00002548: PUSH1 0x40
0000254a: MLOAD
0000254b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000256c: DUP2
0000256d: MSTORE
0000256e: PUSH1 0x04
00002570: ADD
00002571: DUP1
00002572: DUP1
00002573: PUSH1 0x20
00002575: ADD
00002576: DUP3
00002577: DUP2
00002578: SUB
00002579: DUP3
0000257a: MSTORE
0000257b: PUSH1 0x3b
0000257d: DUP2
0000257e: MSTORE
0000257f: PUSH1 0x20
00002581: ADD
00002582: DUP1
00002583: PUSH2 0x2850
00002586: PUSH1 0x3b
00002588: SWAP2
00002589: CODECOPY
0000258a: PUSH1 0x40
0000258c: ADD
0000258d: SWAP2
0000258e: POP
0000258f: POP
00002590: PUSH1 0x40
00002592: MLOAD
00002593: DUP1
00002594: SWAP2
00002595: SUB
00002596: SWAP1
00002597: REVERT
00002598: JUMPDEST
00002599: DUP1
0000259a: MLOAD
0000259b: PUSH2 0x25ab
0000259e: SWAP1
0000259f: PUSH1 0x31
000025a1: SWAP1
000025a2: PUSH1 0x20
000025a4: DUP5
000025a5: ADD
000025a6: SWAP1
000025a7: PUSH2 0x2706
000025aa: JUMP
000025ab: JUMPDEST
000025ac: POP
000025ad: POP
000025ae: PUSH32 0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3
000025cf: SSTORE
000025d0: JUMP
000025d1: JUMPDEST
000025d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025e7: DUP2
000025e8: AND
000025e9: PUSH2 0x263d
000025ec: JUMPI
000025ed: PUSH1 0x40
000025ef: MLOAD
000025f0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002611: DUP2
00002612: MSTORE
00002613: PUSH1 0x04
00002615: ADD
00002616: DUP1
00002617: DUP1
00002618: PUSH1 0x20
0000261a: ADD
0000261b: DUP3
0000261c: DUP2
0000261d: SUB
0000261e: DUP3
0000261f: MSTORE
00002620: PUSH1 0x26
00002622: DUP2
00002623: MSTORE
00002624: PUSH1 0x20
00002626: ADD
00002627: DUP1
00002628: PUSH2 0x27d1
0000262b: PUSH1 0x26
0000262d: SWAP2
0000262e: CODECOPY
0000262f: PUSH1 0x40
00002631: ADD
00002632: SWAP2
00002633: POP
00002634: POP
00002635: PUSH1 0x40
00002637: MLOAD
00002638: DUP1
00002639: SWAP2
0000263a: SUB
0000263b: SWAP1
0000263c: REVERT
0000263d: JUMPDEST
0000263e: PUSH1 0x00
00002640: DUP1
00002641: SLOAD
00002642: PUSH1 0x40
00002644: MLOAD
00002645: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000265a: DUP1
0000265b: DUP6
0000265c: AND
0000265d: SWAP4
0000265e: SWAP3
0000265f: AND
00002660: SWAP2
00002661: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00002682: SWAP2
00002683: LOG3
00002684: PUSH1 0x00
00002686: DUP1
00002687: SLOAD
00002688: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000026a9: AND
000026aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026bf: SWAP3
000026c0: SWAP1
000026c1: SWAP3
000026c2: AND
000026c3: SWAP2
000026c4: SWAP1
000026c5: SWAP2
000026c6: OR
000026c7: SWAP1
000026c8: SSTORE
000026c9: JUMP
000026ca: JUMPDEST
000026cb: PUSH1 0x00
000026cd: DUP2
000026ce: EXTCODEHASH
000026cf: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
000026f0: DUP2
000026f1: DUP2
000026f2: EQ
000026f3: DUP1
000026f4: ISZERO
000026f5: SWAP1
000026f6: PUSH2 0x26fe
000026f9: JUMPI
000026fa: POP
000026fb: DUP2
000026fc: ISZERO
000026fd: ISZERO
000026fe: JUMPDEST
000026ff: SWAP5
00002700: SWAP4
00002701: POP
00002702: POP
00002703: POP
00002704: POP
00002705: JUMP
00002706: JUMPDEST
00002707: DUP3
00002708: DUP1
00002709: SLOAD
0000270a: PUSH1 0x01
0000270c: DUP2
0000270d: PUSH1 0x01
0000270f: AND
00002710: ISZERO
00002711: PUSH2 0x0100
00002714: MUL
00002715: SUB
00002716: AND
00002717: PUSH1 0x02
00002719: SWAP1
0000271a: DIV
0000271b: SWAP1
0000271c: PUSH1 0x00
0000271e: MSTORE
0000271f: PUSH1 0x20
00002721: PUSH1 0x00
00002723: KECCAK256
00002724: SWAP1
00002725: PUSH1 0x1f
00002727: ADD
00002728: PUSH1 0x20
0000272a: SWAP1
0000272b: DIV
0000272c: DUP2
0000272d: ADD
0000272e: SWAP3
0000272f: DUP3
00002730: PUSH1 0x1f
00002732: LT
00002733: PUSH2 0x2747
00002736: JUMPI
00002737: DUP1
00002738: MLOAD
00002739: PUSH1 0xff
0000273b: NOT
0000273c: AND
0000273d: DUP4
0000273e: DUP1
0000273f: ADD
00002740: OR
00002741: DUP6
00002742: SSTORE
00002743: PUSH2 0x2774
00002746: JUMP
00002747: JUMPDEST
00002748: DUP3
00002749: DUP1
0000274a: ADD
0000274b: PUSH1 0x01
0000274d: ADD
0000274e: DUP6
0000274f: SSTORE
00002750: DUP3
00002751: ISZERO
00002752: PUSH2 0x2774
00002755: JUMPI
00002756: SWAP2
00002757: DUP3
00002758: ADD
00002759: JUMPDEST
0000275a: DUP3
0000275b: DUP2
0000275c: GT
0000275d: ISZERO
0000275e: PUSH2 0x2774
00002761: JUMPI
00002762: DUP3
00002763: MLOAD
00002764: DUP3
00002765: SSTORE
00002766: SWAP2
00002767: PUSH1 0x20
00002769: ADD
0000276a: SWAP2
0000276b: SWAP1
0000276c: PUSH1 0x01
0000276e: ADD
0000276f: SWAP1
00002770: PUSH2 0x2759
00002773: JUMP
00002774: JUMPDEST
00002775: POP
00002776: PUSH2 0x2780
00002779: SWAP3
0000277a: SWAP2
0000277b: POP
0000277c: PUSH2 0x2784
0000277f: JUMP
00002780: JUMPDEST
00002781: POP
00002782: SWAP1
00002783: JUMP
00002784: JUMPDEST
00002785: PUSH2 0x11b7
00002788: SWAP2
00002789: SWAP1
0000278a: JUMPDEST
0000278b: DUP1
0000278c: DUP3
0000278d: GT
0000278e: ISZERO
0000278f: PUSH2 0x2780
00002792: JUMPI
00002793: PUSH1 0x00
00002795: DUP2
00002796: SSTORE
00002797: PUSH1 0x01
00002799: ADD
0000279a: PUSH2 0x278a
0000279d: JUMP
0000279e: INVALID
0000279f: NUMBER
000027a0: PUSH2 0x6e6e
000027a3: PUSH16 0x742063616c6c2066616c6c6261636b20
000027b4: PUSH7 0x756e6374696f6e
000027bc: KECCAK256
000027bd: PUSH7 0x726f6d20746865
000027c5: KECCAK256
000027c6: PUSH17 0x726f78792061646d696e4f776e61626c65
000027d8: GASPRICE
000027d9: KECCAK256
000027da: PUSH15 0x6577206f776e657220697320746865
000027ea: KECCAK256
000027eb: PUSH27 0x65726f206164647265737343616e6e6f74206368616e6765207468
00002807: PUSH6 0x2061646d696e
0000280e: KECCAK256
0000280f: PUSH16 0x6620612070726f787920746f20746865
00002820: KECCAK256
00002821: PUSH27 0x65726f20616464726573736f72672e7a657070656c696e6f732e70
0000283d: PUSH19 0x6f78792e696d706c656d656e746174696f6e43
00002851: PUSH2 0x6e6e
00002854: PUSH16 0x742073657420612070726f787920696d
00002865: PUSH17 0x6c656d656e746174696f6e20746f206120
00002877: PUSH15 0x6f6e2d636f6e747261637420616464
00002887: PUSH19 0x657373a265627a7a7231582035045b0a1a3555
0000289b: BASEFEE
0000289c: UNKNOWN(0xD3)
0000289d: EXP
0000289e: OR
0000289f: PUSH12 0xee848f12e89716dcc802aae0
000028ac: PUSH5 0x578a849267
000028b2: ADDRESS
000028b3: PUSH26

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0xd463738f6023a4ec8e0090a0d091fc455c3b587d89342f536f73ab3c7c6a6e8b
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0xd463738f6023a4ec8e0090a0d091fc455c3b587d89342f536f73ab3c7c6a6e8b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xf99eec8d",
            "selector": "0xf99eec8d",
            "calldata_variants": [
                "0xf99eec8d",
                "0xf99eec8d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa845ca9",
            "selector": "0xfa845ca9",
            "calldata_variants": [
                "0xfa845ca9",
                "0xfa845ca90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbf35f46",
            "selector": "0xfbf35f46",
            "calldata_variants": [
                "0xfbf35f46",
                "0xfbf35f460000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6558b00",
            "selector": "0xf6558b00",
            "calldata_variants": [
                "0xf6558b00",
                "0xf6558b000000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec556889",
            "selector": "0xec556889",
            "calldata_variants": [
                "0xec556889",
                "0xec5568890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf09a4016",
            "selector": "0xf09a4016",
            "calldata_variants": [
                "0xf09a4016",
                "0xf09a40160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf1a153a1",
            "selector": "0xf1a153a1",
            "calldata_variants": [
                "0xf1a153a1",
                "0xf1a153a10000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 8790,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 9330,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 4665,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6728,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 8639,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 9162,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "delegatecall_count": 2,
    "untrusted_delegatecall_count": 2
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 2
}
medium other codex Computed DELEGATECALL target reachable (potentially untrusted) 75 no
view
evidence_json
{
    "evidence": "Detector flagged 2 DELEGATECALL sites with computed targets and no validated guard; evidence_json shows untrusted_delegatecall_count=2 with target_expression_category=computed. Callsites at pc 8790 and 9330. Storage reads occur immediately around delegatecall path (e.g., SLOAD at pc 9313 slot 0x7050c9e0... and pc 9386 slot 0x10d6a54a...), indicating the target may be derived from storage. Guard detection only saw msg.sender==0xffff.. (likely unsatisfiable), so access control is unclear.",
    "locations": [
        "pc:0x2256",
        "pc:0x2472"
    ],
    "recommendation": "Ensure delegatecall targets are immutable or only changeable by a well-guarded admin. Consider explicit allowlists or codehash checks for implementations/facets, and emit events on upgrades. If this is intended as a proxy/diamond pattern, clearly gate upgrade or selector-to-facet management functions.",
    "exploit_scenario": "If an attacker can influence the storage/mapping used to resolve the delegatecall target (e.g., a facet/implementation address), they can point it to malicious code and gain arbitrary storage writes, asset drains, or ownership takeover via delegatecall. The bytecode analysis does not confirm who controls the target, so impact depends on access control in the (unknown) setter paths."
}
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": 11
}