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

Analysis Run

019bab3b-ac6c-7220-8780-0b3cf4eedfd4

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:06 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
Delegatecall to computed target enables arbitrary code execution if 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
38758 artifact.fetch complete 1 / 3 3 months ago
38759 proxy.resolve complete 1 / 3 3 months ago
38760 tool.cast_disasm complete 1 / 3 3 months ago
38761 analysis.bundle complete 1 / 3 3 months ago
38762 capability.graph complete 1 / 3 3 months ago
38763 detector.run complete 1 / 3 3 months ago
38764 validation.fork complete 1 / 3 3 months ago
39169 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 a delegatecall to a computed target; the bytecode does not make target trust or access control clear, so this is a high‑impact risk if reachable by untrusted callers.
View stdout
{"no_findings":false,"summary":"Detected a delegatecall to a computed target; the bytecode does not make target trust or access control clear, so this is a high‑impact risk if reachable by untrusted callers.","findings":[{"severity":"high","category":"other","title":"Delegatecall to computed target enables arbitrary code execution if reachable","exploit_scenario":"A caller who can reach the delegatecall path and influence the target (and calldata) can execute arbitrary code in this contract’s storage context, potentially overwriting ownership/config slots or draining funds. If the entrypoint is owner‑only this risk is confined to a compromised owner or misconfiguration, but from bytecode alone the access control cannot be confirmed.","recommendation":"Restrict the delegatecall entrypoint to a strict admin/allowlist, validate target addresses, and prefer regular CALL for untrusted contracts. Add explicit access checks at the entrypoint and emit events for delegatecall usage.","evidence":"Detector evidence flags DELEGATECALL at pc 4497 with target_expression_category=\"computed\" and untrusted_delegatecall_count=1. Disassembly around pc 4445–4497 shows masking a stack‑provided address before DELEGATECALL; no explicit caller check appears in that block, and guard detection is heuristic.","locations":["pc:4497"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-5e8gcpy2
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019babe5-dd1e-7fe0-a733-2b1cb1be0744
--------
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
**Preparing to read BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-5e8gcpy2 succeeded in 12ms:
BYTECODE_BUNDLE.json
codex-output-schema.json

thinking
**Reading BYTECODE_BUNDLE.json**
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-5e8gcpy2 succeeded in 13ms:
{
  "analysis_artifact": {
    "address": "0x95fe5961368664c3da8879d7542149ddf0738d82",
    "artifact_hash": "0x17d5a77707ddde1200661ddfd7a22084b1aa7b5f89707f16023e0b01f393250f",
    "artifact_json": {
      "auth": {
        "guards": [
          {
            "pc": 3910,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
          },
          {
            "pc": 4293,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
          }
        ]
      },
      "basic_blocks": [

thinking
**Analyzing bytecode for security patterns**
exec
/bin/bash -lc 'rg -n "storage|slot|eip1967|proxy|implementation|beacon" BYTECODE_BUNDLE.json' in /tmp/codex-5e8gcpy2 succeeded in 12ms:
11677:          "storage": {
11679:            "slots": [
11683:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11688:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11693:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11698:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11703:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11708:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11713:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11718:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11723:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11728:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11733:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11738:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11743:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11748:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11777:          "storage": {
11779:            "slots": [
11783:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
11788:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"

thinking
**Inspecting storage-related lines**
exec
/bin/bash -lc "sed -n '12760,12920p' BYTECODE_BUNDLE.json" in /tmp/codex-5e8gcpy2 succeeded in 7ms:
        "0xe941fa78",
        "0xf2fde38b",
        "0x1694505e",
        "0x2c76d7a6",
        "0x2ec1be29",
        "0x52e3c51c",
        "0x893d20e8"
      ],
      "sinks": {
        "call": 11,
        "create": 0,
        "create2": 0,
        "delegatecall": 1,
        "selfdestruct": 0,
        "staticcall": 1,
        "upgrade_slot_write_suspected": false
      },
      "storage": {
        "keccak_count": 1,
        "reads": 15,

thinking
**Analyzing delegatecall risk in bytecode**
exec
/bin/bash -lc 'rg -n "call:4497|4497" BYTECODE_BUNDLE.json' in /tmp/codex-5e8gcpy2 succeeded in 7ms:
9237:          "pc": 4497,
15439:          "to": "call:4497",
15443:          "from": "call:4497",
19428:          "id": "call:4497",
19430:          "pc": 4497,
19526:            "pc": 4497,

thinking
**Checking callsites around line 19420**
exec
/bin/bash -lc "sed -n '19390,19580p' BYTECODE_BUNDLE.json" in /tmp/codex-5e8gcpy2 succeeded in 7ms:
        },
        {
          "id": "call:2954",
          "opcode": "STATICCALL",
          "pc": 2954,
          "type": "callsite"
        },
        {
          "id": "call:3152",
          "opcode": "CALL",
          "pc": 3152,
          "type": "callsite"
        },
        {
          "id": "call:3440",
          "opcode": "CALL",
          "pc": 3440,
          "type": "callsite"
        },
        {

thinking
**Analyzing potential delegatecall risks and reentrancy**

I'm piecing together possible security issues from the bytecode, focusing on dangerous delegatecalls to computed addresses without clear access control, which is high severity. I’m also examining withdraw and tip functions for reentrancy, but some patterns suggest no immediate risk. To confirm delegatecall safety, I plan to disassemble runtime bytecode around a key program counter using a Python script so I can understand surrounding opcodes and guards better.
exec
/bin/bash -lc "python - <<'PY'
import json
from binascii import unhexlify

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

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

# disassemble around pc range
start=4460
end=4545
pc=0
out=[]
while pc < len(code):
    op=code[pc]
    name=opnames.get(op, f'OP_{op:02x}')
    pc_start=pc
    pc+=1
    if 0x60 <= op <= 0x7f:
        n=op-0x5f
        imm=code[pc:pc+n]
        pc+=n
        arg='0x'+imm.hex()
    else:
        arg=''
    if start <= pc_start <= end:
        out.append((pc_start,name,arg))
    if pc_start> end:
        break

for pc_start,name,arg in out:
    if arg:
        print(f\"{pc_start:5d}: {name} {arg}\")
    else:
        print(f\"{pc_start:5d}: {name}\")
PY" in /tmp/codex-5e8gcpy2 succeeded in 55ms:
 4472: AND
 4473: DUP5
 4474: PUSH1 0x40
 4476: MLOAD
 4477: PUSH2 0x1186
 4480: SWAP2
 4481: SWAP1
 4482: PUSH2 0x21e6
 4485: JUMP
 4486: JUMPDEST
 4487: OP_5f
 4488: PUSH1 0x40
 4490: MLOAD
 4491: DUP1
 4492: DUP4
 4493: SUB
 4494: DUP2
 4495: DUP6
 4496: GAS
 4497: DELEGATECALL

thinking
**Investigating delegatecall target computation**
exec
/bin/bash -lc "python - <<'PY'
import json
from binascii import unhexlify

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

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

start=4380
end=4520
pc=0
out=[]
while pc < len(code):
    op=code[pc]
    name=opnames.get(op, f'OP_{op:02x}')
    pc_start=pc
    pc+=1
    arg=''
    if 0x60 <= op <= 0x7f:
        n=op-0x5f
        imm=code[pc:pc+n]
        pc+=n
        arg='0x'+imm.hex()
    if start <= pc_start <= end:
        out.append((pc_start,name,arg))
    if pc_start> end:
        break

for pc_start,name,arg in out:
    if arg:
        print(f\"{pc_start:5d}: {name} {arg}\")
    else:
        print(f\"{pc_start:5d}: {name}\")
PY" in /tmp/codex-5e8gcpy2 succeeded in 72ms:
 4380: DUP1
 4381: OP_5f
 4382: DUP1
 4383: PUSH2 0x0100
 4386: EXP
 4387: DUP2
 4388: SLOAD
 4389: DUP2
 4390: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
 4411: MUL
 4412: NOT
 4413: AND
 4414: SWAP1
 4415: DUP4
 4416: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
 4437: AND
 4438: MUL
 4439: OR
 4440: SWAP1
 4441: SSTORE

thinking
**Analyzing delegatecall usage and safety checks**

I'm inspecting the function around 4445 that performs a delegatecall to an address passed as an argument, which looks risky without proper access control. I want to verify if there’s a msg.sender (CALLER) ownership check before the delegatecall to ensure only authorized callers can trigger it, so I'll disassemble and examine earlier code near 4300–4380 for such guards.
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full'][2:]
code=bytes.fromhex(code_hex)

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

start=4260
end=4445
pc=0
out=[]
while pc < len(code):
    op=code[pc]
    name=opnames.get(op, f'OP_{op:02x}')
    pc_start=pc
    pc+=1
    arg=''
    if 0x60 <= op <= 0x7f:
        n=op-0x5f
        imm=code[pc:pc+n]
        pc+=n
        arg='0x'+imm.hex()
    if start <= pc_start <= end:
        out.append((pc_start,name,arg))
    if pc_start> end:
        break

for pc_start,name,arg in out:
    if arg:
        print(f\"{pc_start:5d}: {name} {arg}\")
    else:
        print(f\"{pc_start:5d}: {name}\")
PY" in /tmp/codex-5e8gcpy2 succeeded in 77ms:
 4270: AND
 4271: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
 4292: AND
 4293: CALLER
 4294: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
 4315: AND
 4316: EQ
 4317: PUSH2 0x111b
 4320: JUMPI
 4321: PUSH1 0x40
 4323: MLOAD
 4324: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
 4357: DUP2
 4358: MSTORE
 4359: PUSH1 0x04
 4361: ADD
 4362: PUSH2 0x1112
 4365: SWAP1
 4366: PUSH2 0x20c8
 4369: JUMP

thinking
**Analyzing delegatecall owner checks**
exec
/bin/bash -lc "sed -n '15390,15480p' BYTECODE_BUNDLE.json" in /tmp/codex-5e8gcpy2 succeeded in 9ms:
          "type": "contains"
        },
        {
          "from": "call:3152",
          "to": "sink:call",
          "type": "capability"
        },
        {
          "from": "bb:3427",
          "to": "call:3440",
          "type": "contains"
        },
        {
          "from": "call:3440",
          "to": "sink:call",
          "type": "capability"
        },
        {
          "from": "bb:3606",
          "to": "call:3609",

thinking
**Analyzing risky delegatecall and external calls**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full'][2:]
code=bytes.fromhex(code_hex)

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

start=880
end=980
pc=0
out=[]
while pc < len(code):
    op=code[pc]
    name=opnames.get(op, f'OP_{op:02x}')
    pc_start=pc
    pc+=1
    arg=''
    if 0x60 <= op <= 0x7f:
        n=op-0x5f
        imm=code[pc:pc+n]
        pc+=n
        arg='0x'+imm.hex()
    if start <= pc_start <= end:
        out.append((pc_start,name,arg))
    if pc_start> end:
        break

for pc_start,name,arg in out:
    if arg:
        print(f\"{pc_start:5d}: {name} {arg}\")
    else:
        print(f\"{pc_start:5d}: {name}\")
PY" in /tmp/codex-5e8gcpy2 succeeded in 39ms:
  880: GT
  881: ISZERO
  882: PUSH2 0x03ba
  885: JUMPI
  886: COINBASE
  887: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
  908: AND
  909: PUSH2 0x08fc
  912: DUP3
  913: SWAP1
  914: DUP2
  915: ISZERO
  916: MUL
  917: SWAP1
  918: PUSH1 0x40
  920: MLOAD
  921: OP_5f
  922: PUSH1 0x40
  924: MLOAD
  925: DUP1

thinking
**Analyzing delegatecall and external calls risks**

This detailed analysis weighs the potential dangers of a delegatecall to a computed target address with uncertain access control, flagging it as a high-severity issue due to possible arbitrary code execution by untrusted callers. I also note external CALL instructions with ETH value to arbitrary addresses (like block.coinbase) which could pose a low-severity reentrancy risk without visible guards, but without clear state update context, I’m cautious not to overstate it. The key takeaway is that only the delegatecall finding is solidly critical, and limiting that to trusted callers is essential.
codex
{"no_findings":false,"summary":"Detected a delegatecall to a computed target; the bytecode does not make target trust or access control clear, so this is a high‑impact risk if reachable by untrusted callers.","findings":[{"severity":"high","category":"other","title":"Delegatecall to computed target enables arbitrary code execution if reachable","exploit_scenario":"A caller who can reach the delegatecall path and influence the target (and calldata) can execute arbitrary code in this contract’s storage context, potentially overwriting ownership/config slots or draining funds. If the entrypoint is owner‑only this risk is confined to a compromised owner or misconfiguration, but from bytecode alone the access control cannot be confirmed.","recommendation":"Restrict the delegatecall entrypoint to a strict admin/allowlist, validate target addresses, and prefer regular CALL for untrusted contracts. Add explicit access checks at the entrypoint and emit events for delegatecall usage.","evidence":"Detector evidence flags DELEGATECALL at pc 4497 with target_expression_category=\"computed\" and untrusted_delegatecall_count=1. Disassembly around pc 4445–4497 shows masking a stack‑provided address before DELEGATECALL; no explicit caller check appears in that block, and guard detection is heuristic.","locations":["pc:4497"]}]}
tokens used
80,847
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T07:15:52.160712+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 17718,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Detected a delegatecall to a computed target; the bytecode does not make target trust or access control clear, so this is a high\u2011impact risk if reachable by untrusted callers.",
    "raw_final": {
        "summary": "Detected a delegatecall to a computed target; the bytecode does not make target trust or access control clear, so this is a high\u2011impact risk if reachable by untrusted callers.",
        "findings": [
            {
                "title": "Delegatecall to computed target enables arbitrary code execution if reachable",
                "category": "other",
                "evidence": "Detector evidence flags DELEGATECALL at pc 4497 with target_expression_category=\"computed\" and untrusted_delegatecall_count=1. Disassembly around pc 4445\u20134497 shows masking a stack\u2011provided address before DELEGATECALL; no explicit caller check appears in that block, and guard detection is heuristic.",
                "severity": "high",
                "locations": [
                    "pc:4497"
                ],
                "recommendation": "Restrict the delegatecall entrypoint to a strict admin/allowlist, validate target addresses, and prefer regular CALL for untrusted contracts. Add explicit access checks at the entrypoint and emit events for delegatecall usage.",
                "exploit_scenario": "A caller who can reach the delegatecall path and influence the target (and calldata) can execute arbitrary code in this contract\u2019s storage context, potentially overwriting ownership/config slots or draining funds. If the entrypoint is owner\u2011only this risk is confined to a compromised owner or misconfiguration, but from bytecode alone the access control cannot be confirmed."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
12
EXT*/BALANCE
1
Total opcodes
5222
Flags
delegatecall_present call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x009f
0000000c: JUMPI
0000000d: PUSH0
0000000e: CALLDATALOAD
0000000f: PUSH1 0xe0
00000011: SHR
00000012: DUP1
00000013: PUSH4 0x8da5cb5b
00000018: GT
00000019: PUSH2 0x0063
0000001c: JUMPI
0000001d: DUP1
0000001e: PUSH4 0x8da5cb5b
00000023: EQ
00000024: PUSH2 0x016e
00000027: JUMPI
00000028: DUP1
00000029: PUSH4 0x970fd18c
0000002e: EQ
0000002f: PUSH2 0x0198
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0xde05e6a0
00000039: EQ
0000003a: PUSH2 0x01b4
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0xe3cbfe9d
00000044: EQ
00000045: PUSH2 0x01d0
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0xe941fa78
0000004f: EQ
00000050: PUSH2 0x01ec
00000053: JUMPI
00000054: DUP1
00000055: PUSH4 0xf2fde38b
0000005a: EQ
0000005b: PUSH2 0x0202
0000005e: JUMPI
0000005f: PUSH2 0x00a6
00000062: JUMP
00000063: JUMPDEST
00000064: DUP1
00000065: PUSH4 0x1694505e
0000006a: EQ
0000006b: PUSH2 0x00aa
0000006e: JUMPI
0000006f: DUP1
00000070: PUSH4 0x2c76d7a6
00000075: EQ
00000076: PUSH2 0x00d4
00000079: JUMPI
0000007a: DUP1
0000007b: PUSH4 0x2ec1be29
00000080: EQ
00000081: PUSH2 0x00fe
00000084: JUMPI
00000085: DUP1
00000086: PUSH4 0x52e3c51c
0000008b: EQ
0000008c: PUSH2 0x0128
0000008f: JUMPI
00000090: DUP1
00000091: PUSH4 0x893d20e8
00000096: EQ
00000097: PUSH2 0x0144
0000009a: JUMPI
0000009b: PUSH2 0x00a6
0000009e: JUMP
0000009f: JUMPDEST
000000a0: CALLDATASIZE
000000a1: PUSH2 0x00a6
000000a4: JUMPI
000000a5: STOP
000000a6: JUMPDEST
000000a7: PUSH0
000000a8: DUP1
000000a9: REVERT
000000aa: JUMPDEST
000000ab: CALLVALUE
000000ac: DUP1
000000ad: ISZERO
000000ae: PUSH2 0x00b5
000000b1: JUMPI
000000b2: PUSH0
000000b3: DUP1
000000b4: REVERT
000000b5: JUMPDEST
000000b6: POP
000000b7: PUSH2 0x00be
000000ba: PUSH2 0x022a
000000bd: JUMP
000000be: JUMPDEST
000000bf: PUSH1 0x40
000000c1: MLOAD
000000c2: PUSH2 0x00cb
000000c5: SWAP2
000000c6: SWAP1
000000c7: PUSH2 0x129d
000000ca: JUMP
000000cb: JUMPDEST
000000cc: PUSH1 0x40
000000ce: MLOAD
000000cf: DUP1
000000d0: SWAP2
000000d1: SUB
000000d2: SWAP1
000000d3: RETURN
000000d4: JUMPDEST
000000d5: CALLVALUE
000000d6: DUP1
000000d7: ISZERO
000000d8: PUSH2 0x00df
000000db: JUMPI
000000dc: PUSH0
000000dd: DUP1
000000de: REVERT
000000df: JUMPDEST
000000e0: POP
000000e1: PUSH2 0x00e8
000000e4: PUSH2 0x024f
000000e7: JUMP
000000e8: JUMPDEST
000000e9: PUSH1 0x40
000000eb: MLOAD
000000ec: PUSH2 0x00f5
000000ef: SWAP2
000000f0: SWAP1
000000f1: PUSH2 0x12d6
000000f4: JUMP
000000f5: JUMPDEST
000000f6: PUSH1 0x40
000000f8: MLOAD
000000f9: DUP1
000000fa: SWAP2
000000fb: SUB
000000fc: SWAP1
000000fd: RETURN
000000fe: JUMPDEST
000000ff: CALLVALUE
00000100: DUP1
00000101: ISZERO
00000102: PUSH2 0x0109
00000105: JUMPI
00000106: PUSH0
00000107: DUP1
00000108: REVERT
00000109: JUMPDEST
0000010a: POP
0000010b: PUSH2 0x0112
0000010e: PUSH2 0x0274
00000111: JUMP
00000112: JUMPDEST
00000113: PUSH1 0x40
00000115: MLOAD
00000116: PUSH2 0x011f
00000119: SWAP2
0000011a: SWAP1
0000011b: PUSH2 0x130f
0000011e: JUMP
0000011f: JUMPDEST
00000120: PUSH1 0x40
00000122: MLOAD
00000123: DUP1
00000124: SWAP2
00000125: SUB
00000126: SWAP1
00000127: RETURN
00000128: JUMPDEST
00000129: PUSH2 0x0142
0000012c: PUSH1 0x04
0000012e: DUP1
0000012f: CALLDATASIZE
00000130: SUB
00000131: DUP2
00000132: ADD
00000133: SWAP1
00000134: PUSH2 0x013d
00000137: SWAP2
00000138: SWAP1
00000139: PUSH2 0x13cd
0000013c: JUMP
0000013d: JUMPDEST
0000013e: PUSH2 0x0299
00000141: JUMP
00000142: JUMPDEST
00000143: STOP
00000144: JUMPDEST
00000145: CALLVALUE
00000146: DUP1
00000147: ISZERO
00000148: PUSH2 0x014f
0000014b: JUMPI
0000014c: PUSH0
0000014d: DUP1
0000014e: REVERT
0000014f: JUMPDEST
00000150: POP
00000151: PUSH2 0x0158
00000154: PUSH2 0x0568
00000157: JUMP
00000158: JUMPDEST
00000159: PUSH1 0x40
0000015b: MLOAD
0000015c: PUSH2 0x0165
0000015f: SWAP2
00000160: SWAP1
00000161: PUSH2 0x1483
00000164: JUMP
00000165: JUMPDEST
00000166: PUSH1 0x40
00000168: MLOAD
00000169: DUP1
0000016a: SWAP2
0000016b: SUB
0000016c: SWAP1
0000016d: RETURN
0000016e: JUMPDEST
0000016f: CALLVALUE
00000170: DUP1
00000171: ISZERO
00000172: PUSH2 0x0179
00000175: JUMPI
00000176: PUSH0
00000177: DUP1
00000178: REVERT
00000179: JUMPDEST
0000017a: POP
0000017b: PUSH2 0x0182
0000017e: PUSH2 0x058f
00000181: JUMP
00000182: JUMPDEST
00000183: PUSH1 0x40
00000185: MLOAD
00000186: PUSH2 0x018f
00000189: SWAP2
0000018a: SWAP1
0000018b: PUSH2 0x1483
0000018e: JUMP
0000018f: JUMPDEST
00000190: PUSH1 0x40
00000192: MLOAD
00000193: DUP1
00000194: SWAP2
00000195: SUB
00000196: SWAP1
00000197: RETURN
00000198: JUMPDEST
00000199: PUSH2 0x01b2
0000019c: PUSH1 0x04
0000019e: DUP1
0000019f: CALLDATASIZE
000001a0: SUB
000001a1: DUP2
000001a2: ADD
000001a3: SWAP1
000001a4: PUSH2 0x01ad
000001a7: SWAP2
000001a8: SWAP1
000001a9: PUSH2 0x14f1
000001ac: JUMP
000001ad: JUMPDEST
000001ae: PUSH2 0x05b2
000001b1: JUMP
000001b2: JUMPDEST
000001b3: STOP
000001b4: JUMPDEST
000001b5: PUSH2 0x01ce
000001b8: PUSH1 0x04
000001ba: DUP1
000001bb: CALLDATASIZE
000001bc: SUB
000001bd: DUP2
000001be: ADD
000001bf: SWAP1
000001c0: PUSH2 0x01c9
000001c3: SWAP2
000001c4: SWAP1
000001c5: PUSH2 0x1587
000001c8: JUMP
000001c9: JUMPDEST
000001ca: PUSH2 0x0808
000001cd: JUMP
000001ce: JUMPDEST
000001cf: STOP
000001d0: JUMPDEST
000001d1: PUSH2 0x01ea
000001d4: PUSH1 0x04
000001d6: DUP1
000001d7: CALLDATASIZE
000001d8: SUB
000001d9: DUP2
000001da: ADD
000001db: SWAP1
000001dc: PUSH2 0x01e5
000001df: SWAP2
000001e0: SWAP1
000001e1: PUSH2 0x1647
000001e4: JUMP
000001e5: JUMPDEST
000001e6: PUSH2 0x0a12
000001e9: JUMP
000001ea: JUMPDEST
000001eb: STOP
000001ec: JUMPDEST
000001ed: CALLVALUE
000001ee: DUP1
000001ef: ISZERO
000001f0: PUSH2 0x01f7
000001f3: JUMPI
000001f4: PUSH0
000001f5: DUP1
000001f6: REVERT
000001f7: JUMPDEST
000001f8: POP
000001f9: PUSH2 0x0200
000001fc: PUSH2 0x0f0f
000001ff: JUMP
00000200: JUMPDEST
00000201: STOP
00000202: JUMPDEST
00000203: CALLVALUE
00000204: DUP1
00000205: ISZERO
00000206: PUSH2 0x020d
00000209: JUMPI
0000020a: PUSH0
0000020b: DUP1
0000020c: REVERT
0000020d: JUMPDEST
0000020e: POP
0000020f: PUSH2 0x0228
00000212: PUSH1 0x04
00000214: DUP1
00000215: CALLDATASIZE
00000216: SUB
00000217: DUP2
00000218: ADD
00000219: SWAP1
0000021a: PUSH2 0x0223
0000021d: SWAP2
0000021e: SWAP1
0000021f: PUSH2 0x16f1
00000222: JUMP
00000223: JUMPDEST
00000224: PUSH2 0x108e
00000227: JUMP
00000228: JUMPDEST
00000229: STOP
0000022a: JUMPDEST
0000022b: PUSH1 0x01
0000022d: PUSH0
0000022e: SWAP1
0000022f: SLOAD
00000230: SWAP1
00000231: PUSH2 0x0100
00000234: EXP
00000235: SWAP1
00000236: DIV
00000237: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000024c: AND
0000024d: DUP2
0000024e: JUMP
0000024f: JUMPDEST
00000250: PUSH1 0x02
00000252: PUSH0
00000253: SWAP1
00000254: SLOAD
00000255: SWAP1
00000256: PUSH2 0x0100
00000259: EXP
0000025a: SWAP1
0000025b: DIV
0000025c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000271: AND
00000272: DUP2
00000273: JUMP
00000274: JUMPDEST
00000275: PUSH1 0x03
00000277: PUSH0
00000278: SWAP1
00000279: SLOAD
0000027a: SWAP1
0000027b: PUSH2 0x0100
0000027e: EXP
0000027f: SWAP1
00000280: DIV
00000281: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000296: AND
00000297: DUP2
00000298: JUMP
00000299: JUMPDEST
0000029a: PUSH0
0000029b: CALLVALUE
0000029c: GT
0000029d: PUSH2 0x02db
000002a0: JUMPI
000002a1: PUSH1 0x40
000002a3: MLOAD
000002a4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000002c5: DUP2
000002c6: MSTORE
000002c7: PUSH1 0x04
000002c9: ADD
000002ca: PUSH2 0x02d2
000002cd: SWAP1
000002ce: PUSH2 0x1776
000002d1: JUMP
000002d2: JUMPDEST
000002d3: PUSH1 0x40
000002d5: MLOAD
000002d6: DUP1
000002d7: SWAP2
000002d8: SUB
000002d9: SWAP1
000002da: REVERT
000002db: JUMPDEST
000002dc: PUSH0
000002dd: DUP3
000002de: GT
000002df: DUP1
000002e0: ISZERO
000002e1: PUSH2 0x02eb
000002e4: JUMPI
000002e5: POP
000002e6: PUSH2 0x2710
000002e9: DUP3
000002ea: LT
000002eb: JUMPDEST
000002ec: PUSH2 0x032a
000002ef: JUMPI
000002f0: PUSH1 0x40
000002f2: MLOAD
000002f3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000314: DUP2
00000315: MSTORE
00000316: PUSH1 0x04
00000318: ADD
00000319: PUSH2 0x0321
0000031c: SWAP1
0000031d: PUSH2 0x1804
00000320: JUMP
00000321: JUMPDEST
00000322: PUSH1 0x40
00000324: MLOAD
00000325: DUP1
00000326: SWAP2
00000327: SUB
00000328: SWAP1
00000329: REVERT
0000032a: JUMPDEST
0000032b: DUP1
0000032c: CALLVALUE
0000032d: LT
0000032e: ISZERO
0000032f: PUSH2 0x036d
00000332: JUMPI
00000333: PUSH1 0x40
00000335: MLOAD
00000336: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000357: DUP2
00000358: MSTORE
00000359: PUSH1 0x04
0000035b: ADD
0000035c: PUSH2 0x0364
0000035f: SWAP1
00000360: PUSH2 0x186c
00000363: JUMP
00000364: JUMPDEST
00000365: PUSH1 0x40
00000367: MLOAD
00000368: DUP1
00000369: SWAP2
0000036a: SUB
0000036b: SWAP1
0000036c: REVERT
0000036d: JUMPDEST
0000036e: PUSH0
0000036f: DUP2
00000370: GT
00000371: ISZERO
00000372: PUSH2 0x03ba
00000375: JUMPI
00000376: COINBASE
00000377: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000038c: AND
0000038d: PUSH2 0x08fc
00000390: DUP3
00000391: SWAP1
00000392: DUP2
00000393: ISZERO
00000394: MUL
00000395: SWAP1
00000396: PUSH1 0x40
00000398: MLOAD
00000399: PUSH0
0000039a: PUSH1 0x40
0000039c: MLOAD
0000039d: DUP1
0000039e: DUP4
0000039f: SUB
000003a0: DUP2
000003a1: DUP6
000003a2: DUP9
000003a3: DUP9
000003a4: CALL
000003a5: SWAP4
000003a6: POP
000003a7: POP
000003a8: POP
000003a9: POP
000003aa: ISZERO
000003ab: DUP1
000003ac: ISZERO
000003ad: PUSH2 0x03b8
000003b0: JUMPI
000003b1: RETURNDATASIZE
000003b2: PUSH0
000003b3: DUP1
000003b4: RETURNDATACOPY
000003b5: RETURNDATASIZE
000003b6: PUSH0
000003b7: REVERT
000003b8: JUMPDEST
000003b9: POP
000003ba: JUMPDEST
000003bb: PUSH0
000003bc: PUSH2 0x2710
000003bf: DUP4
000003c0: DUP4
000003c1: CALLVALUE
000003c2: PUSH2 0x03cb
000003c5: SWAP2
000003c6: SWAP1
000003c7: PUSH2 0x18b7
000003ca: JUMP
000003cb: JUMPDEST
000003cc: PUSH2 0x03d5
000003cf: SWAP2
000003d0: SWAP1
000003d1: PUSH2 0x18ea
000003d4: JUMP
000003d5: JUMPDEST
000003d6: PUSH2 0x03df
000003d9: SWAP2
000003da: SWAP1
000003db: PUSH2 0x1958
000003de: JUMP
000003df: JUMPDEST
000003e0: SWAP1
000003e1: POP
000003e2: PUSH0
000003e3: DUP2
000003e4: DUP4
000003e5: CALLVALUE
000003e6: PUSH2 0x03ef
000003e9: SWAP2
000003ea: SWAP1
000003eb: PUSH2 0x18b7
000003ee: JUMP
000003ef: JUMPDEST
000003f0: PUSH2 0x03f9
000003f3: SWAP2
000003f4: SWAP1
000003f5: PUSH2 0x18b7
000003f8: JUMP
000003f9: JUMPDEST
000003fa: SWAP1
000003fb: POP
000003fc: PUSH0
000003fd: DUP2
000003fe: GT
000003ff: PUSH2 0x043d
00000402: JUMPI
00000403: PUSH1 0x40
00000405: MLOAD
00000406: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000427: DUP2
00000428: MSTORE
00000429: PUSH1 0x04
0000042b: ADD
0000042c: PUSH2 0x0434
0000042f: SWAP1
00000430: PUSH2 0x19d2
00000433: JUMP
00000434: JUMPDEST
00000435: PUSH1 0x40
00000437: MLOAD
00000438: DUP1
00000439: SWAP2
0000043a: SUB
0000043b: SWAP1
0000043c: REVERT
0000043d: JUMPDEST
0000043e: PUSH0
0000043f: PUSH1 0x40
00000441: MLOAD
00000442: DUP1
00000443: PUSH1 0xa0
00000445: ADD
00000446: PUSH1 0x40
00000448: MSTORE
00000449: DUP1
0000044a: DUP11
0000044b: DUP11
0000044c: DUP1
0000044d: DUP1
0000044e: PUSH1 0x1f
00000450: ADD
00000451: PUSH1 0x20
00000453: DUP1
00000454: SWAP2
00000455: DIV
00000456: MUL
00000457: PUSH1 0x20
00000459: ADD
0000045a: PUSH1 0x40
0000045c: MLOAD
0000045d: SWAP1
0000045e: DUP2
0000045f: ADD
00000460: PUSH1 0x40
00000462: MSTORE
00000463: DUP1
00000464: SWAP4
00000465: SWAP3
00000466: SWAP2
00000467: SWAP1
00000468: DUP2
00000469: DUP2
0000046a: MSTORE
0000046b: PUSH1 0x20
0000046d: ADD
0000046e: DUP4
0000046f: DUP4
00000470: DUP1
00000471: DUP3
00000472: DUP5
00000473: CALLDATACOPY
00000474: PUSH0
00000475: DUP2
00000476: DUP5
00000477: ADD
00000478: MSTORE
00000479: PUSH1 0x1f
0000047b: NOT
0000047c: PUSH1 0x1f
0000047e: DUP3
0000047f: ADD
00000480: AND
00000481: SWAP1
00000482: POP
00000483: DUP1
00000484: DUP4
00000485: ADD
00000486: SWAP3
00000487: POP
00000488: POP
00000489: POP
0000048a: POP
0000048b: POP
0000048c: POP
0000048d: POP
0000048e: DUP2
0000048f: MSTORE
00000490: PUSH1 0x20
00000492: ADD
00000493: CALLER
00000494: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004a9: AND
000004aa: DUP2
000004ab: MSTORE
000004ac: PUSH1 0x20
000004ae: ADD
000004af: DUP8
000004b0: DUP2
000004b1: MSTORE
000004b2: PUSH1 0x20
000004b4: ADD
000004b5: DUP4
000004b6: DUP2
000004b7: MSTORE
000004b8: PUSH1 0x20
000004ba: ADD
000004bb: DUP9
000004bc: DUP2
000004bd: MSTORE
000004be: POP
000004bf: SWAP1
000004c0: POP
000004c1: PUSH1 0x02
000004c3: PUSH0
000004c4: SWAP1
000004c5: SLOAD
000004c6: SWAP1
000004c7: PUSH2 0x0100
000004ca: EXP
000004cb: SWAP1
000004cc: DIV
000004cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004e2: AND
000004e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004f8: AND
000004f9: PUSH4 0xc04b8d59
000004fe: DUP4
000004ff: DUP4
00000500: PUSH1 0x40
00000502: MLOAD
00000503: DUP4
00000504: PUSH4 0xffffffff
00000509: AND
0000050a: PUSH1 0xe0
0000050c: SHL
0000050d: DUP2
0000050e: MSTORE
0000050f: PUSH1 0x04
00000511: ADD
00000512: PUSH2 0x051b
00000515: SWAP2
00000516: SWAP1
00000517: PUSH2 0x1b0b
0000051a: JUMP
0000051b: JUMPDEST
0000051c: PUSH1 0x20
0000051e: PUSH1 0x40
00000520: MLOAD
00000521: DUP1
00000522: DUP4
00000523: SUB
00000524: DUP2
00000525: DUP6
00000526: DUP9
00000527: GAS
00000528: CALL
00000529: ISZERO
0000052a: DUP1
0000052b: ISZERO
0000052c: PUSH2 0x0537
0000052f: JUMPI
00000530: RETURNDATASIZE
00000531: PUSH0
00000532: DUP1
00000533: RETURNDATACOPY
00000534: RETURNDATASIZE
00000535: PUSH0
00000536: REVERT
00000537: JUMPDEST
00000538: POP
00000539: POP
0000053a: POP
0000053b: POP
0000053c: POP
0000053d: PUSH1 0x40
0000053f: MLOAD
00000540: RETURNDATASIZE
00000541: PUSH1 0x1f
00000543: NOT
00000544: PUSH1 0x1f
00000546: DUP3
00000547: ADD
00000548: AND
00000549: DUP3
0000054a: ADD
0000054b: DUP1
0000054c: PUSH1 0x40
0000054e: MSTORE
0000054f: POP
00000550: DUP2
00000551: ADD
00000552: SWAP1
00000553: PUSH2 0x055c
00000556: SWAP2
00000557: SWAP1
00000558: PUSH2 0x1b3f
0000055b: JUMP
0000055c: JUMPDEST
0000055d: POP
0000055e: POP
0000055f: POP
00000560: POP
00000561: POP
00000562: POP
00000563: POP
00000564: POP
00000565: POP
00000566: POP
00000567: JUMP
00000568: JUMPDEST
00000569: PUSH0
0000056a: DUP1
0000056b: PUSH0
0000056c: SWAP1
0000056d: SLOAD
0000056e: SWAP1
0000056f: PUSH2 0x0100
00000572: EXP
00000573: SWAP1
00000574: DIV
00000575: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000058a: AND
0000058b: SWAP1
0000058c: POP
0000058d: SWAP1
0000058e: JUMP
0000058f: JUMPDEST
00000590: PUSH0
00000591: DUP1
00000592: SLOAD
00000593: SWAP1
00000594: PUSH2 0x0100
00000597: EXP
00000598: SWAP1
00000599: DIV
0000059a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005af: AND
000005b0: DUP2
000005b1: JUMP
000005b2: JUMPDEST
000005b3: PUSH0
000005b4: CALLVALUE
000005b5: GT
000005b6: PUSH2 0x05f4
000005b9: JUMPI
000005ba: PUSH1 0x40
000005bc: MLOAD
000005bd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000005de: DUP2
000005df: MSTORE
000005e0: PUSH1 0x04
000005e2: ADD
000005e3: PUSH2 0x05eb
000005e6: SWAP1
000005e7: PUSH2 0x1776
000005ea: JUMP
000005eb: JUMPDEST
000005ec: PUSH1 0x40
000005ee: MLOAD
000005ef: DUP1
000005f0: SWAP2
000005f1: SUB
000005f2: SWAP1
000005f3: REVERT
000005f4: JUMPDEST
000005f5: PUSH0
000005f6: DUP3
000005f7: GT
000005f8: DUP1
000005f9: ISZERO
000005fa: PUSH2 0x0604
000005fd: JUMPI
000005fe: POP
000005ff: PUSH2 0x2710
00000602: DUP3
00000603: LT
00000604: JUMPDEST
00000605: PUSH2 0x0643
00000608: JUMPI
00000609: PUSH1 0x40
0000060b: MLOAD
0000060c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000062d: DUP2
0000062e: MSTORE
0000062f: PUSH1 0x04
00000631: ADD
00000632: PUSH2 0x063a
00000635: SWAP1
00000636: PUSH2 0x1804
00000639: JUMP
0000063a: JUMPDEST
0000063b: PUSH1 0x40
0000063d: MLOAD
0000063e: DUP1
0000063f: SWAP2
00000640: SUB
00000641: SWAP1
00000642: REVERT
00000643: JUMPDEST
00000644: DUP1
00000645: CALLVALUE
00000646: LT
00000647: ISZERO
00000648: PUSH2 0x0686
0000064b: JUMPI
0000064c: PUSH1 0x40
0000064e: MLOAD
0000064f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000670: DUP2
00000671: MSTORE
00000672: PUSH1 0x04
00000674: ADD
00000675: PUSH2 0x067d
00000678: SWAP1
00000679: PUSH2 0x186c
0000067c: JUMP
0000067d: JUMPDEST
0000067e: PUSH1 0x40
00000680: MLOAD
00000681: DUP1
00000682: SWAP2
00000683: SUB
00000684: SWAP1
00000685: REVERT
00000686: JUMPDEST
00000687: PUSH0
00000688: DUP2
00000689: GT
0000068a: ISZERO
0000068b: PUSH2 0x06d3
0000068e: JUMPI
0000068f: COINBASE
00000690: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006a5: AND
000006a6: PUSH2 0x08fc
000006a9: DUP3
000006aa: SWAP1
000006ab: DUP2
000006ac: ISZERO
000006ad: MUL
000006ae: SWAP1
000006af: PUSH1 0x40
000006b1: MLOAD
000006b2: PUSH0
000006b3: PUSH1 0x40
000006b5: MLOAD
000006b6: DUP1
000006b7: DUP4
000006b8: SUB
000006b9: DUP2
000006ba: DUP6
000006bb: DUP9
000006bc: DUP9
000006bd: CALL
000006be: SWAP4
000006bf: POP
000006c0: POP
000006c1: POP
000006c2: POP
000006c3: ISZERO
000006c4: DUP1
000006c5: ISZERO
000006c6: PUSH2 0x06d1
000006c9: JUMPI
000006ca: RETURNDATASIZE
000006cb: PUSH0
000006cc: DUP1
000006cd: RETURNDATACOPY
000006ce: RETURNDATASIZE
000006cf: PUSH0
000006d0: REVERT
000006d1: JUMPDEST
000006d2: POP
000006d3: JUMPDEST
000006d4: PUSH0
000006d5: PUSH2 0x2710
000006d8: DUP4
000006d9: DUP4
000006da: CALLVALUE
000006db: PUSH2 0x06e4
000006de: SWAP2
000006df: SWAP1
000006e0: PUSH2 0x18b7
000006e3: JUMP
000006e4: JUMPDEST
000006e5: PUSH2 0x06ee
000006e8: SWAP2
000006e9: SWAP1
000006ea: PUSH2 0x18ea
000006ed: JUMP
000006ee: JUMPDEST
000006ef: PUSH2 0x06f8
000006f2: SWAP2
000006f3: SWAP1
000006f4: PUSH2 0x1958
000006f7: JUMP
000006f8: JUMPDEST
000006f9: SWAP1
000006fa: POP
000006fb: PUSH0
000006fc: DUP2
000006fd: DUP4
000006fe: CALLVALUE
000006ff: PUSH2 0x0708
00000702: SWAP2
00000703: SWAP1
00000704: PUSH2 0x18b7
00000707: JUMP
00000708: JUMPDEST
00000709: PUSH2 0x0712
0000070c: SWAP2
0000070d: SWAP1
0000070e: PUSH2 0x18b7
00000711: JUMP
00000712: JUMPDEST
00000713: SWAP1
00000714: POP
00000715: PUSH0
00000716: DUP2
00000717: GT
00000718: PUSH2 0x0756
0000071b: JUMPI
0000071c: PUSH1 0x40
0000071e: MLOAD
0000071f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000740: DUP2
00000741: MSTORE
00000742: PUSH1 0x04
00000744: ADD
00000745: PUSH2 0x074d
00000748: SWAP1
00000749: PUSH2 0x19d2
0000074c: JUMP
0000074d: JUMPDEST
0000074e: PUSH1 0x40
00000750: MLOAD
00000751: DUP1
00000752: SWAP2
00000753: SUB
00000754: SWAP1
00000755: REVERT
00000756: JUMPDEST
00000757: PUSH1 0x01
00000759: PUSH0
0000075a: SWAP1
0000075b: SLOAD
0000075c: SWAP1
0000075d: PUSH2 0x0100
00000760: EXP
00000761: SWAP1
00000762: DIV
00000763: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000778: AND
00000779: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000078e: AND
0000078f: PUSH4 0x7ff36ab5
00000794: DUP3
00000795: DUP9
00000796: DUP12
00000797: DUP12
00000798: CALLER
00000799: DUP12
0000079a: PUSH1 0x40
0000079c: MLOAD
0000079d: DUP8
0000079e: PUSH4 0xffffffff
000007a3: AND
000007a4: PUSH1 0xe0
000007a6: SHL
000007a7: DUP2
000007a8: MSTORE
000007a9: PUSH1 0x04
000007ab: ADD
000007ac: PUSH2 0x07b9
000007af: SWAP6
000007b0: SWAP5
000007b1: SWAP4
000007b2: SWAP3
000007b3: SWAP2
000007b4: SWAP1
000007b5: PUSH2 0x1c26
000007b8: JUMP
000007b9: JUMPDEST
000007ba: PUSH0
000007bb: PUSH1 0x40
000007bd: MLOAD
000007be: DUP1
000007bf: DUP4
000007c0: SUB
000007c1: DUP2
000007c2: DUP6
000007c3: DUP9
000007c4: GAS
000007c5: CALL
000007c6: ISZERO
000007c7: DUP1
000007c8: ISZERO
000007c9: PUSH2 0x07d4
000007cc: JUMPI
000007cd: RETURNDATASIZE
000007ce: PUSH0
000007cf: DUP1
000007d0: RETURNDATACOPY
000007d1: RETURNDATASIZE
000007d2: PUSH0
000007d3: REVERT
000007d4: JUMPDEST
000007d5: POP
000007d6: POP
000007d7: POP
000007d8: POP
000007d9: POP
000007da: PUSH1 0x40
000007dc: MLOAD
000007dd: RETURNDATASIZE
000007de: PUSH0
000007df: DUP3
000007e0: RETURNDATACOPY
000007e1: RETURNDATASIZE
000007e2: PUSH1 0x1f
000007e4: NOT
000007e5: PUSH1 0x1f
000007e7: DUP3
000007e8: ADD
000007e9: AND
000007ea: DUP3
000007eb: ADD
000007ec: DUP1
000007ed: PUSH1 0x40
000007ef: MSTORE
000007f0: POP
000007f1: DUP2
000007f2: ADD
000007f3: SWAP1
000007f4: PUSH2 0x07fd
000007f7: SWAP2
000007f8: SWAP1
000007f9: PUSH2 0x1daa
000007fc: JUMP
000007fd: JUMPDEST
000007fe: POP
000007ff: POP
00000800: POP
00000801: POP
00000802: POP
00000803: POP
00000804: POP
00000805: POP
00000806: POP
00000807: JUMP
00000808: JUMPDEST
00000809: PUSH0
0000080a: DUP2
0000080b: GT
0000080c: DUP1
0000080d: ISZERO
0000080e: PUSH2 0x0818
00000811: JUMPI
00000812: POP
00000813: PUSH2 0x2710
00000816: DUP2
00000817: LT
00000818: JUMPDEST
00000819: PUSH2 0x0857
0000081c: JUMPI
0000081d: PUSH1 0x40
0000081f: MLOAD
00000820: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000841: DUP2
00000842: MSTORE
00000843: PUSH1 0x04
00000845: ADD
00000846: PUSH2 0x084e
00000849: SWAP1
0000084a: PUSH2 0x1804
0000084d: JUMP
0000084e: JUMPDEST
0000084f: PUSH1 0x40
00000851: MLOAD
00000852: DUP1
00000853: SWAP2
00000854: SUB
00000855: SWAP1
00000856: REVERT
00000857: JUMPDEST
00000858: PUSH0
00000859: SELFBALANCE
0000085a: SWAP1
0000085b: POP
0000085c: PUSH0
0000085d: DUP8
0000085e: DUP6
0000085f: DUP9
00000860: DUP9
00000861: ADDRESS
00000862: DUP9
00000863: PUSH1 0x40
00000865: MLOAD
00000866: PUSH1 0x24
00000868: ADD
00000869: PUSH2 0x0877
0000086c: SWAP7
0000086d: SWAP6
0000086e: SWAP5
0000086f: SWAP4
00000870: SWAP3
00000871: SWAP2
00000872: SWAP1
00000873: PUSH2 0x1df1
00000876: JUMP
00000877: JUMPDEST
00000878: PUSH1 0x40
0000087a: MLOAD
0000087b: PUSH1 0x20
0000087d: DUP2
0000087e: DUP4
0000087f: SUB
00000880: SUB
00000881: DUP2
00000882: MSTORE
00000883: SWAP1
00000884: PUSH1 0x40
00000886: MSTORE
00000887: PUSH32 0x791ac94700000000000000000000000000000000000000000000000000000000
000008a8: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000008c5: NOT
000008c6: AND
000008c7: PUSH1 0x20
000008c9: DUP3
000008ca: ADD
000008cb: DUP1
000008cc: MLOAD
000008cd: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000008ea: DUP4
000008eb: DUP2
000008ec: DUP4
000008ed: AND
000008ee: OR
000008ef: DUP4
000008f0: MSTORE
000008f1: POP
000008f2: POP
000008f3: POP
000008f4: POP
000008f5: SWAP1
000008f6: POP
000008f7: PUSH2 0x0921
000008fa: PUSH1 0x01
000008fc: PUSH0
000008fd: SWAP1
000008fe: SLOAD
000008ff: SWAP1
00000900: PUSH2 0x0100
00000903: EXP
00000904: SWAP1
00000905: DIV
00000906: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000091b: AND
0000091c: DUP3
0000091d: PUSH2 0x115d
00000920: JUMP
00000921: JUMPDEST
00000922: POP
00000923: PUSH0
00000924: DUP3
00000925: SELFBALANCE
00000926: PUSH2 0x092f
00000929: SWAP2
0000092a: SWAP1
0000092b: PUSH2 0x18b7
0000092e: JUMP
0000092f: JUMPDEST
00000930: SWAP1
00000931: POP
00000932: PUSH0
00000933: PUSH2 0x2710
00000936: DUP6
00000937: DUP4
00000938: PUSH2 0x0941
0000093b: SWAP2
0000093c: SWAP1
0000093d: PUSH2 0x18ea
00000940: JUMP
00000941: JUMPDEST
00000942: PUSH2 0x094b
00000945: SWAP2
00000946: SWAP1
00000947: PUSH2 0x1958
0000094a: JUMP
0000094b: JUMPDEST
0000094c: SWAP1
0000094d: POP
0000094e: PUSH0
0000094f: DUP2
00000950: DUP4
00000951: PUSH2 0x095a
00000954: SWAP2
00000955: SWAP1
00000956: PUSH2 0x18b7
00000959: JUMP
0000095a: JUMPDEST
0000095b: SWAP1
0000095c: POP
0000095d: PUSH0
0000095e: CALLER
0000095f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000974: AND
00000975: DUP3
00000976: PUSH1 0x40
00000978: MLOAD
00000979: PUSH2 0x0981
0000097c: SWAP1
0000097d: PUSH2 0x1e78
00000980: JUMP
00000981: JUMPDEST
00000982: PUSH0
00000983: PUSH1 0x40
00000985: MLOAD
00000986: DUP1
00000987: DUP4
00000988: SUB
00000989: DUP2
0000098a: DUP6
0000098b: DUP8
0000098c: GAS
0000098d: CALL
0000098e: SWAP3
0000098f: POP
00000990: POP
00000991: POP
00000992: RETURNDATASIZE
00000993: DUP1
00000994: PUSH0
00000995: DUP2
00000996: EQ
00000997: PUSH2 0x09bb
0000099a: JUMPI
0000099b: PUSH1 0x40
0000099d: MLOAD
0000099e: SWAP2
0000099f: POP
000009a0: PUSH1 0x1f
000009a2: NOT
000009a3: PUSH1 0x3f
000009a5: RETURNDATASIZE
000009a6: ADD
000009a7: AND
000009a8: DUP3
000009a9: ADD
000009aa: PUSH1 0x40
000009ac: MSTORE
000009ad: RETURNDATASIZE
000009ae: DUP3
000009af: MSTORE
000009b0: RETURNDATASIZE
000009b1: PUSH0
000009b2: PUSH1 0x20
000009b4: DUP5
000009b5: ADD
000009b6: RETURNDATACOPY
000009b7: PUSH2 0x09c0
000009ba: JUMP
000009bb: JUMPDEST
000009bc: PUSH1 0x60
000009be: SWAP2
000009bf: POP
000009c0: JUMPDEST
000009c1: POP
000009c2: POP
000009c3: SWAP1
000009c4: POP
000009c5: DUP1
000009c6: PUSH2 0x0a04
000009c9: JUMPI
000009ca: PUSH1 0x40
000009cc: MLOAD
000009cd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000009ee: DUP2
000009ef: MSTORE
000009f0: PUSH1 0x04
000009f2: ADD
000009f3: PUSH2 0x09fb
000009f6: SWAP1
000009f7: PUSH2 0x1ed6
000009fa: JUMP
000009fb: JUMPDEST
000009fc: PUSH1 0x40
000009fe: MLOAD
000009ff: DUP1
00000a00: SWAP2
00000a01: SUB
00000a02: SWAP1
00000a03: REVERT
00000a04: JUMPDEST
00000a05: POP
00000a06: POP
00000a07: POP
00000a08: POP
00000a09: POP
00000a0a: POP
00000a0b: POP
00000a0c: POP
00000a0d: POP
00000a0e: POP
00000a0f: POP
00000a10: POP
00000a11: JUMP
00000a12: JUMPDEST
00000a13: PUSH0
00000a14: DUP2
00000a15: GT
00000a16: DUP1
00000a17: ISZERO
00000a18: PUSH2 0x0a22
00000a1b: JUMPI
00000a1c: POP
00000a1d: PUSH2 0x2710
00000a20: DUP2
00000a21: LT
00000a22: JUMPDEST
00000a23: PUSH2 0x0a61
00000a26: JUMPI
00000a27: PUSH1 0x40
00000a29: MLOAD
00000a2a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000a4b: DUP2
00000a4c: MSTORE
00000a4d: PUSH1 0x04
00000a4f: ADD
00000a50: PUSH2 0x0a58
00000a53: SWAP1
00000a54: PUSH2 0x1804
00000a57: JUMP
00000a58: JUMPDEST
00000a59: PUSH1 0x40
00000a5b: MLOAD
00000a5c: DUP1
00000a5d: SWAP2
00000a5e: SUB
00000a5f: SWAP1
00000a60: REVERT
00000a61: JUMPDEST
00000a62: PUSH0
00000a63: DUP6
00000a64: SWAP1
00000a65: POP
00000a66: DUP1
00000a67: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a7c: AND
00000a7d: PUSH4 0x23b872dd
00000a82: CALLER
00000a83: ADDRESS
00000a84: DUP9
00000a85: PUSH1 0x40
00000a87: MLOAD
00000a88: DUP5
00000a89: PUSH4 0xffffffff
00000a8e: AND
00000a8f: PUSH1 0xe0
00000a91: SHL
00000a92: DUP2
00000a93: MSTORE
00000a94: PUSH1 0x04
00000a96: ADD
00000a97: PUSH2 0x0aa2
00000a9a: SWAP4
00000a9b: SWAP3
00000a9c: SWAP2
00000a9d: SWAP1
00000a9e: PUSH2 0x1ef4
00000aa1: JUMP
00000aa2: JUMPDEST
00000aa3: PUSH1 0x20
00000aa5: PUSH1 0x40
00000aa7: MLOAD
00000aa8: DUP1
00000aa9: DUP4
00000aaa: SUB
00000aab: DUP2
00000aac: PUSH0
00000aad: DUP8
00000aae: GAS
00000aaf: CALL
00000ab0: ISZERO
00000ab1: DUP1
00000ab2: ISZERO
00000ab3: PUSH2 0x0abe
00000ab6: JUMPI
00000ab7: RETURNDATASIZE
00000ab8: PUSH0
00000ab9: DUP1
00000aba: RETURNDATACOPY
00000abb: RETURNDATASIZE
00000abc: PUSH0
00000abd: REVERT
00000abe: JUMPDEST
00000abf: POP
00000ac0: POP
00000ac1: POP
00000ac2: POP
00000ac3: PUSH1 0x40
00000ac5: MLOAD
00000ac6: RETURNDATASIZE
00000ac7: PUSH1 0x1f
00000ac9: NOT
00000aca: PUSH1 0x1f
00000acc: DUP3
00000acd: ADD
00000ace: AND
00000acf: DUP3
00000ad0: ADD
00000ad1: DUP1
00000ad2: PUSH1 0x40
00000ad4: MSTORE
00000ad5: POP
00000ad6: DUP2
00000ad7: ADD
00000ad8: SWAP1
00000ad9: PUSH2 0x0ae2
00000adc: SWAP2
00000add: SWAP1
00000ade: PUSH2 0x1f5e
00000ae1: JUMP
00000ae2: JUMPDEST
00000ae3: PUSH2 0x0b21
00000ae6: JUMPI
00000ae7: PUSH1 0x40
00000ae9: MLOAD
00000aea: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000b0b: DUP2
00000b0c: MSTORE
00000b0d: PUSH1 0x04
00000b0f: ADD
00000b10: PUSH2 0x0b18
00000b13: SWAP1
00000b14: PUSH2 0x1fd3
00000b17: JUMP
00000b18: JUMPDEST
00000b19: PUSH1 0x40
00000b1b: MLOAD
00000b1c: DUP1
00000b1d: SWAP2
00000b1e: SUB
00000b1f: SWAP1
00000b20: REVERT
00000b21: JUMPDEST
00000b22: PUSH0
00000b23: DUP2
00000b24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b39: AND
00000b3a: PUSH4 0xdd62ed3e
00000b3f: ADDRESS
00000b40: PUSH1 0x02
00000b42: PUSH0
00000b43: SWAP1
00000b44: SLOAD
00000b45: SWAP1
00000b46: PUSH2 0x0100
00000b49: EXP
00000b4a: SWAP1
00000b4b: DIV
00000b4c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b61: AND
00000b62: PUSH1 0x40
00000b64: MLOAD
00000b65: DUP4
00000b66: PUSH4 0xffffffff
00000b6b: AND
00000b6c: PUSH1 0xe0
00000b6e: SHL
00000b6f: DUP2
00000b70: MSTORE
00000b71: PUSH1 0x04
00000b73: ADD
00000b74: PUSH2 0x0b7e
00000b77: SWAP3
00000b78: SWAP2
00000b79: SWAP1
00000b7a: PUSH2 0x1ff1
00000b7d: JUMP
00000b7e: JUMPDEST
00000b7f: PUSH1 0x20
00000b81: PUSH1 0x40
00000b83: MLOAD
00000b84: DUP1
00000b85: DUP4
00000b86: SUB
00000b87: DUP2
00000b88: DUP7
00000b89: GAS
00000b8a: STATICCALL
00000b8b: ISZERO
00000b8c: DUP1
00000b8d: ISZERO
00000b8e: PUSH2 0x0b99
00000b91: JUMPI
00000b92: RETURNDATASIZE
00000b93: PUSH0
00000b94: DUP1
00000b95: RETURNDATACOPY
00000b96: RETURNDATASIZE
00000b97: PUSH0
00000b98: REVERT
00000b99: JUMPDEST
00000b9a: POP
00000b9b: POP
00000b9c: POP
00000b9d: POP
00000b9e: PUSH1 0x40
00000ba0: MLOAD
00000ba1: RETURNDATASIZE
00000ba2: PUSH1 0x1f
00000ba4: NOT
00000ba5: PUSH1 0x1f
00000ba7: DUP3
00000ba8: ADD
00000ba9: AND
00000baa: DUP3
00000bab: ADD
00000bac: DUP1
00000bad: PUSH1 0x40
00000baf: MSTORE
00000bb0: POP
00000bb1: DUP2
00000bb2: ADD
00000bb3: SWAP1
00000bb4: PUSH2 0x0bbd
00000bb7: SWAP2
00000bb8: SWAP1
00000bb9: PUSH2 0x1b3f
00000bbc: JUMP
00000bbd: JUMPDEST
00000bbe: SWAP1
00000bbf: POP
00000bc0: DUP6
00000bc1: DUP2
00000bc2: LT
00000bc3: ISZERO
00000bc4: PUSH2 0x0c85
00000bc7: JUMPI
00000bc8: DUP2
00000bc9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bde: AND
00000bdf: PUSH4 0x095ea7b3
00000be4: PUSH1 0x02
00000be6: PUSH0
00000be7: SWAP1
00000be8: SLOAD
00000be9: SWAP1
00000bea: PUSH2 0x0100
00000bed: EXP
00000bee: SWAP1
00000bef: DIV
00000bf0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c05: AND
00000c06: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000c27: PUSH1 0x40
00000c29: MLOAD
00000c2a: DUP4
00000c2b: PUSH4 0xffffffff
00000c30: AND
00000c31: PUSH1 0xe0
00000c33: SHL
00000c34: DUP2
00000c35: MSTORE
00000c36: PUSH1 0x04
00000c38: ADD
00000c39: PUSH2 0x0c43
00000c3c: SWAP3
00000c3d: SWAP2
00000c3e: SWAP1
00000c3f: PUSH2 0x2018
00000c42: JUMP
00000c43: JUMPDEST
00000c44: PUSH1 0x20
00000c46: PUSH1 0x40
00000c48: MLOAD
00000c49: DUP1
00000c4a: DUP4
00000c4b: SUB
00000c4c: DUP2
00000c4d: PUSH0
00000c4e: DUP8
00000c4f: GAS
00000c50: CALL
00000c51: ISZERO
00000c52: DUP1
00000c53: ISZERO
00000c54: PUSH2 0x0c5f
00000c57: JUMPI
00000c58: RETURNDATASIZE
00000c59: PUSH0
00000c5a: DUP1
00000c5b: RETURNDATACOPY
00000c5c: RETURNDATASIZE
00000c5d: PUSH0
00000c5e: REVERT
00000c5f: JUMPDEST
00000c60: POP
00000c61: POP
00000c62: POP
00000c63: POP
00000c64: PUSH1 0x40
00000c66: MLOAD
00000c67: RETURNDATASIZE
00000c68: PUSH1 0x1f
00000c6a: NOT
00000c6b: PUSH1 0x1f
00000c6d: DUP3
00000c6e: ADD
00000c6f: AND
00000c70: DUP3
00000c71: ADD
00000c72: DUP1
00000c73: PUSH1 0x40
00000c75: MSTORE
00000c76: POP
00000c77: DUP2
00000c78: ADD
00000c79: SWAP1
00000c7a: PUSH2 0x0c83
00000c7d: SWAP2
00000c7e: SWAP1
00000c7f: PUSH2 0x1f5e
00000c82: JUMP
00000c83: JUMPDEST
00000c84: POP
00000c85: JUMPDEST
00000c86: PUSH0
00000c87: PUSH1 0x40
00000c89: MLOAD
00000c8a: DUP1
00000c8b: PUSH1 0xa0
00000c8d: ADD
00000c8e: PUSH1 0x40
00000c90: MSTORE
00000c91: DUP1
00000c92: DUP12
00000c93: DUP12
00000c94: DUP1
00000c95: DUP1
00000c96: PUSH1 0x1f
00000c98: ADD
00000c99: PUSH1 0x20
00000c9b: DUP1
00000c9c: SWAP2
00000c9d: DIV
00000c9e: MUL
00000c9f: PUSH1 0x20
00000ca1: ADD
00000ca2: PUSH1 0x40
00000ca4: MLOAD
00000ca5: SWAP1
00000ca6: DUP2
00000ca7: ADD
00000ca8: PUSH1 0x40
00000caa: MSTORE
00000cab: DUP1
00000cac: SWAP4
00000cad: SWAP3
00000cae: SWAP2
00000caf: SWAP1
00000cb0: DUP2
00000cb1: DUP2
00000cb2: MSTORE
00000cb3: PUSH1 0x20
00000cb5: ADD
00000cb6: DUP4
00000cb7: DUP4
00000cb8: DUP1
00000cb9: DUP3
00000cba: DUP5
00000cbb: CALLDATACOPY
00000cbc: PUSH0
00000cbd: DUP2
00000cbe: DUP5
00000cbf: ADD
00000cc0: MSTORE
00000cc1: PUSH1 0x1f
00000cc3: NOT
00000cc4: PUSH1 0x1f
00000cc6: DUP3
00000cc7: ADD
00000cc8: AND
00000cc9: SWAP1
00000cca: POP
00000ccb: DUP1
00000ccc: DUP4
00000ccd: ADD
00000cce: SWAP3
00000ccf: POP
00000cd0: POP
00000cd1: POP
00000cd2: POP
00000cd3: POP
00000cd4: POP
00000cd5: POP
00000cd6: DUP2
00000cd7: MSTORE
00000cd8: PUSH1 0x20
00000cda: ADD
00000cdb: ADDRESS
00000cdc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cf1: AND
00000cf2: DUP2
00000cf3: MSTORE
00000cf4: PUSH1 0x20
00000cf6: ADD
00000cf7: DUP7
00000cf8: DUP2
00000cf9: MSTORE
00000cfa: PUSH1 0x20
00000cfc: ADD
00000cfd: DUP9
00000cfe: DUP2
00000cff: MSTORE
00000d00: PUSH1 0x20
00000d02: ADD
00000d03: DUP8
00000d04: DUP2
00000d05: MSTORE
00000d06: POP
00000d07: SWAP1
00000d08: POP
00000d09: PUSH0
00000d0a: PUSH1 0x02
00000d0c: PUSH0
00000d0d: SWAP1
00000d0e: SLOAD
00000d0f: SWAP1
00000d10: PUSH2 0x0100
00000d13: EXP
00000d14: SWAP1
00000d15: DIV
00000d16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d2b: AND
00000d2c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d41: AND
00000d42: PUSH4 0xc04b8d59
00000d47: DUP4
00000d48: PUSH1 0x40
00000d4a: MLOAD
00000d4b: DUP3
00000d4c: PUSH4 0xffffffff
00000d51: AND
00000d52: PUSH1 0xe0
00000d54: SHL
00000d55: DUP2
00000d56: MSTORE
00000d57: PUSH1 0x04
00000d59: ADD
00000d5a: PUSH2 0x0d63
00000d5d: SWAP2
00000d5e: SWAP1
00000d5f: PUSH2 0x1b0b
00000d62: JUMP
00000d63: JUMPDEST
00000d64: PUSH1 0x20
00000d66: PUSH1 0x40
00000d68: MLOAD
00000d69: DUP1
00000d6a: DUP4
00000d6b: SUB
00000d6c: DUP2
00000d6d: PUSH0
00000d6e: DUP8
00000d6f: GAS
00000d70: CALL
00000d71: ISZERO
00000d72: DUP1
00000d73: ISZERO
00000d74: PUSH2 0x0d7f
00000d77: JUMPI
00000d78: RETURNDATASIZE
00000d79: PUSH0
00000d7a: DUP1
00000d7b: RETURNDATACOPY
00000d7c: RETURNDATASIZE
00000d7d: PUSH0
00000d7e: REVERT
00000d7f: JUMPDEST
00000d80: POP
00000d81: POP
00000d82: POP
00000d83: POP
00000d84: PUSH1 0x40
00000d86: MLOAD
00000d87: RETURNDATASIZE
00000d88: PUSH1 0x1f
00000d8a: NOT
00000d8b: PUSH1 0x1f
00000d8d: DUP3
00000d8e: ADD
00000d8f: AND
00000d90: DUP3
00000d91: ADD
00000d92: DUP1
00000d93: PUSH1 0x40
00000d95: MSTORE
00000d96: POP
00000d97: DUP2
00000d98: ADD
00000d99: SWAP1
00000d9a: PUSH2 0x0da3
00000d9d: SWAP2
00000d9e: SWAP1
00000d9f: PUSH2 0x1b3f
00000da2: JUMP
00000da3: JUMPDEST
00000da4: SWAP1
00000da5: POP
00000da6: PUSH1 0x03
00000da8: PUSH0
00000da9: SWAP1
00000daa: SLOAD
00000dab: SWAP1
00000dac: PUSH2 0x0100
00000daf: EXP
00000db0: SWAP1
00000db1: DIV
00000db2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dc7: AND
00000dc8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ddd: AND
00000dde: PUSH4 0x2e1a7d4d
00000de3: DUP3
00000de4: PUSH1 0x40
00000de6: MLOAD
00000de7: DUP3
00000de8: PUSH4 0xffffffff
00000ded: AND
00000dee: PUSH1 0xe0
00000df0: SHL
00000df1: DUP2
00000df2: MSTORE
00000df3: PUSH1 0x04
00000df5: ADD
00000df6: PUSH2 0x0dff
00000df9: SWAP2
00000dfa: SWAP1
00000dfb: PUSH2 0x203f
00000dfe: JUMP
00000dff: JUMPDEST
00000e00: PUSH0
00000e01: PUSH1 0x40
00000e03: MLOAD
00000e04: DUP1
00000e05: DUP4
00000e06: SUB
00000e07: DUP2
00000e08: PUSH0
00000e09: DUP8
00000e0a: DUP1
00000e0b: EXTCODESIZE
00000e0c: ISZERO
00000e0d: DUP1
00000e0e: ISZERO
00000e0f: PUSH2 0x0e16
00000e12: JUMPI
00000e13: PUSH0
00000e14: DUP1
00000e15: REVERT
00000e16: JUMPDEST
00000e17: POP
00000e18: GAS
00000e19: CALL
00000e1a: ISZERO
00000e1b: DUP1
00000e1c: ISZERO
00000e1d: PUSH2 0x0e28
00000e20: JUMPI
00000e21: RETURNDATASIZE
00000e22: PUSH0
00000e23: DUP1
00000e24: RETURNDATACOPY
00000e25: RETURNDATASIZE
00000e26: PUSH0
00000e27: REVERT
00000e28: JUMPDEST
00000e29: POP
00000e2a: POP
00000e2b: POP
00000e2c: POP
00000e2d: PUSH0
00000e2e: PUSH2 0x2710
00000e31: DUP7
00000e32: DUP4
00000e33: PUSH2 0x0e3c
00000e36: SWAP2
00000e37: SWAP1
00000e38: PUSH2 0x18ea
00000e3b: JUMP
00000e3c: JUMPDEST
00000e3d: PUSH2 0x0e46
00000e40: SWAP2
00000e41: SWAP1
00000e42: PUSH2 0x1958
00000e45: JUMP
00000e46: JUMPDEST
00000e47: SWAP1
00000e48: POP
00000e49: PUSH0
00000e4a: DUP2
00000e4b: DUP4
00000e4c: PUSH2 0x0e55
00000e4f: SWAP2
00000e50: SWAP1
00000e51: PUSH2 0x18b7
00000e54: JUMP
00000e55: JUMPDEST
00000e56: SWAP1
00000e57: POP
00000e58: PUSH0
00000e59: CALLER
00000e5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e6f: AND
00000e70: DUP3
00000e71: PUSH1 0x40
00000e73: MLOAD
00000e74: PUSH2 0x0e7c
00000e77: SWAP1
00000e78: PUSH2 0x1e78
00000e7b: JUMP
00000e7c: JUMPDEST
00000e7d: PUSH0
00000e7e: PUSH1 0x40
00000e80: MLOAD
00000e81: DUP1
00000e82: DUP4
00000e83: SUB
00000e84: DUP2
00000e85: DUP6
00000e86: DUP8
00000e87: GAS
00000e88: CALL
00000e89: SWAP3
00000e8a: POP
00000e8b: POP
00000e8c: POP
00000e8d: RETURNDATASIZE
00000e8e: DUP1
00000e8f: PUSH0
00000e90: DUP2
00000e91: EQ
00000e92: PUSH2 0x0eb6
00000e95: JUMPI
00000e96: PUSH1 0x40
00000e98: MLOAD
00000e99: SWAP2
00000e9a: POP
00000e9b: PUSH1 0x1f
00000e9d: NOT
00000e9e: PUSH1 0x3f
00000ea0: RETURNDATASIZE
00000ea1: ADD
00000ea2: AND
00000ea3: DUP3
00000ea4: ADD
00000ea5: PUSH1 0x40
00000ea7: MSTORE
00000ea8: RETURNDATASIZE
00000ea9: DUP3
00000eaa: MSTORE
00000eab: RETURNDATASIZE
00000eac: PUSH0
00000ead: PUSH1 0x20
00000eaf: DUP5
00000eb0: ADD
00000eb1: RETURNDATACOPY
00000eb2: PUSH2 0x0ebb
00000eb5: JUMP
00000eb6: JUMPDEST
00000eb7: PUSH1 0x60
00000eb9: SWAP2
00000eba: POP
00000ebb: JUMPDEST
00000ebc: POP
00000ebd: POP
00000ebe: SWAP1
00000ebf: POP
00000ec0: DUP1
00000ec1: PUSH2 0x0eff
00000ec4: JUMPI
00000ec5: PUSH1 0x40
00000ec7: MLOAD
00000ec8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000ee9: DUP2
00000eea: MSTORE
00000eeb: PUSH1 0x04
00000eed: ADD
00000eee: PUSH2 0x0ef6
00000ef1: SWAP1
00000ef2: PUSH2 0x1ed6
00000ef5: JUMP
00000ef6: JUMPDEST
00000ef7: PUSH1 0x40
00000ef9: MLOAD
00000efa: DUP1
00000efb: SWAP2
00000efc: SUB
00000efd: SWAP1
00000efe: REVERT
00000eff: JUMPDEST
00000f00: POP
00000f01: POP
00000f02: POP
00000f03: POP
00000f04: POP
00000f05: POP
00000f06: POP
00000f07: POP
00000f08: POP
00000f09: POP
00000f0a: POP
00000f0b: POP
00000f0c: POP
00000f0d: POP
00000f0e: JUMP
00000f0f: JUMPDEST
00000f10: PUSH0
00000f11: DUP1
00000f12: SLOAD
00000f13: SWAP1
00000f14: PUSH2 0x0100
00000f17: EXP
00000f18: SWAP1
00000f19: DIV
00000f1a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f2f: AND
00000f30: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f45: AND
00000f46: CALLER
00000f47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f5c: AND
00000f5d: EQ
00000f5e: PUSH2 0x0f9c
00000f61: JUMPI
00000f62: PUSH1 0x40
00000f64: MLOAD
00000f65: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000f86: DUP2
00000f87: MSTORE
00000f88: PUSH1 0x04
00000f8a: ADD
00000f8b: PUSH2 0x0f93
00000f8e: SWAP1
00000f8f: PUSH2 0x20c8
00000f92: JUMP
00000f93: JUMPDEST
00000f94: PUSH1 0x40
00000f96: MLOAD
00000f97: DUP1
00000f98: SWAP2
00000f99: SUB
00000f9a: SWAP1
00000f9b: REVERT
00000f9c: JUMPDEST
00000f9d: PUSH0
00000f9e: SELFBALANCE
00000f9f: SWAP1
00000fa0: POP
00000fa1: PUSH0
00000fa2: DUP2
00000fa3: GT
00000fa4: PUSH2 0x0fe2
00000fa7: JUMPI
00000fa8: PUSH1 0x40
00000faa: MLOAD
00000fab: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000fcc: DUP2
00000fcd: MSTORE
00000fce: PUSH1 0x04
00000fd0: ADD
00000fd1: PUSH2 0x0fd9
00000fd4: SWAP1
00000fd5: PUSH2 0x2130
00000fd8: JUMP
00000fd9: JUMPDEST
00000fda: PUSH1 0x40
00000fdc: MLOAD
00000fdd: DUP1
00000fde: SWAP2
00000fdf: SUB
00000fe0: SWAP1
00000fe1: REVERT
00000fe2: JUMPDEST
00000fe3: PUSH0
00000fe4: CALLER
00000fe5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ffa: AND
00000ffb: DUP3
00000ffc: PUSH1 0x40
00000ffe: MLOAD
00000fff: PUSH2 0x1007
00001002: SWAP1
00001003: PUSH2 0x1e78
00001006: JUMP
00001007: JUMPDEST
00001008: PUSH0
00001009: PUSH1 0x40
0000100b: MLOAD
0000100c: DUP1
0000100d: DUP4
0000100e: SUB
0000100f: DUP2
00001010: DUP6
00001011: DUP8
00001012: GAS
00001013: CALL
00001014: SWAP3
00001015: POP
00001016: POP
00001017: POP
00001018: RETURNDATASIZE
00001019: DUP1
0000101a: PUSH0
0000101b: DUP2
0000101c: EQ
0000101d: PUSH2 0x1041
00001020: JUMPI
00001021: PUSH1 0x40
00001023: MLOAD
00001024: SWAP2
00001025: POP
00001026: PUSH1 0x1f
00001028: NOT
00001029: PUSH1 0x3f
0000102b: RETURNDATASIZE
0000102c: ADD
0000102d: AND
0000102e: DUP3
0000102f: ADD
00001030: PUSH1 0x40
00001032: MSTORE
00001033: RETURNDATASIZE
00001034: DUP3
00001035: MSTORE
00001036: RETURNDATASIZE
00001037: PUSH0
00001038: PUSH1 0x20
0000103a: DUP5
0000103b: ADD
0000103c: RETURNDATACOPY
0000103d: PUSH2 0x1046
00001040: JUMP
00001041: JUMPDEST
00001042: PUSH1 0x60
00001044: SWAP2
00001045: POP
00001046: JUMPDEST
00001047: POP
00001048: POP
00001049: SWAP1
0000104a: POP
0000104b: DUP1
0000104c: PUSH2 0x108a
0000104f: JUMPI
00001050: PUSH1 0x40
00001052: MLOAD
00001053: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001074: DUP2
00001075: MSTORE
00001076: PUSH1 0x04
00001078: ADD
00001079: PUSH2 0x1081
0000107c: SWAP1
0000107d: PUSH2 0x2198
00001080: JUMP
00001081: JUMPDEST
00001082: PUSH1 0x40
00001084: MLOAD
00001085: DUP1
00001086: SWAP2
00001087: SUB
00001088: SWAP1
00001089: REVERT
0000108a: JUMPDEST
0000108b: POP
0000108c: POP
0000108d: JUMP
0000108e: JUMPDEST
0000108f: PUSH0
00001090: DUP1
00001091: SLOAD
00001092: SWAP1
00001093: PUSH2 0x0100
00001096: EXP
00001097: SWAP1
00001098: DIV
00001099: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010ae: AND
000010af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010c4: AND
000010c5: CALLER
000010c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010db: AND
000010dc: EQ
000010dd: PUSH2 0x111b
000010e0: JUMPI
000010e1: PUSH1 0x40
000010e3: MLOAD
000010e4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001105: DUP2
00001106: MSTORE
00001107: PUSH1 0x04
00001109: ADD
0000110a: PUSH2 0x1112
0000110d: SWAP1
0000110e: PUSH2 0x20c8
00001111: JUMP
00001112: JUMPDEST
00001113: PUSH1 0x40
00001115: MLOAD
00001116: DUP1
00001117: SWAP2
00001118: SUB
00001119: SWAP1
0000111a: REVERT
0000111b: JUMPDEST
0000111c: DUP1
0000111d: PUSH0
0000111e: DUP1
0000111f: PUSH2 0x0100
00001122: EXP
00001123: DUP2
00001124: SLOAD
00001125: DUP2
00001126: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000113b: MUL
0000113c: NOT
0000113d: AND
0000113e: SWAP1
0000113f: DUP4
00001140: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001155: AND
00001156: MUL
00001157: OR
00001158: SWAP1
00001159: SSTORE
0000115a: POP
0000115b: POP
0000115c: JUMP
0000115d: JUMPDEST
0000115e: PUSH1 0x60
00001160: PUSH0
00001161: DUP1
00001162: DUP5
00001163: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001178: AND
00001179: DUP5
0000117a: PUSH1 0x40
0000117c: MLOAD
0000117d: PUSH2 0x1186
00001180: SWAP2
00001181: SWAP1
00001182: PUSH2 0x21e6
00001185: JUMP
00001186: JUMPDEST
00001187: PUSH0
00001188: PUSH1 0x40
0000118a: MLOAD
0000118b: DUP1
0000118c: DUP4
0000118d: SUB
0000118e: DUP2
0000118f: DUP6
00001190: GAS
00001191: DELEGATECALL
00001192: SWAP2
00001193: POP
00001194: POP
00001195: RETURNDATASIZE
00001196: DUP1
00001197: PUSH0
00001198: DUP2
00001199: EQ
0000119a: PUSH2 0x11be
0000119d: JUMPI
0000119e: PUSH1 0x40
000011a0: MLOAD
000011a1: SWAP2
000011a2: POP
000011a3: PUSH1 0x1f
000011a5: NOT
000011a6: PUSH1 0x3f
000011a8: RETURNDATASIZE
000011a9: ADD
000011aa: AND
000011ab: DUP3
000011ac: ADD
000011ad: PUSH1 0x40
000011af: MSTORE
000011b0: RETURNDATASIZE
000011b1: DUP3
000011b2: MSTORE
000011b3: RETURNDATASIZE
000011b4: PUSH0
000011b5: PUSH1 0x20
000011b7: DUP5
000011b8: ADD
000011b9: RETURNDATACOPY
000011ba: PUSH2 0x11c3
000011bd: JUMP
000011be: JUMPDEST
000011bf: PUSH1 0x60
000011c1: SWAP2
000011c2: POP
000011c3: JUMPDEST
000011c4: POP
000011c5: SWAP2
000011c6: POP
000011c7: SWAP2
000011c8: POP
000011c9: DUP2
000011ca: PUSH2 0x1218
000011cd: JUMPI
000011ce: PUSH0
000011cf: DUP2
000011d0: MLOAD
000011d1: SUB
000011d2: PUSH2 0x1210
000011d5: JUMPI
000011d6: PUSH1 0x40
000011d8: MLOAD
000011d9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000011fa: DUP2
000011fb: MSTORE
000011fc: PUSH1 0x04
000011fe: ADD
000011ff: PUSH2 0x1207
00001202: SWAP1
00001203: PUSH2 0x2246
00001206: JUMP
00001207: JUMPDEST
00001208: PUSH1 0x40
0000120a: MLOAD
0000120b: DUP1
0000120c: SWAP2
0000120d: SUB
0000120e: SWAP1
0000120f: REVERT
00001210: JUMPDEST
00001211: DUP1
00001212: MLOAD
00001213: DUP2
00001214: PUSH1 0x20
00001216: ADD
00001217: REVERT
00001218: JUMPDEST
00001219: DUP1
0000121a: SWAP3
0000121b: POP
0000121c: POP
0000121d: POP
0000121e: SWAP3
0000121f: SWAP2
00001220: POP
00001221: POP
00001222: JUMP
00001223: JUMPDEST
00001224: PUSH0
00001225: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000123a: DUP3
0000123b: AND
0000123c: SWAP1
0000123d: POP
0000123e: SWAP2
0000123f: SWAP1
00001240: POP
00001241: JUMP
00001242: JUMPDEST
00001243: PUSH0
00001244: DUP2
00001245: SWAP1
00001246: POP
00001247: SWAP2
00001248: SWAP1
00001249: POP
0000124a: JUMP
0000124b: JUMPDEST
0000124c: PUSH0
0000124d: PUSH2 0x1265
00001250: PUSH2 0x1260
00001253: PUSH2 0x125b
00001256: DUP5
00001257: PUSH2 0x1223
0000125a: JUMP
0000125b: JUMPDEST
0000125c: PUSH2 0x1242
0000125f: JUMP
00001260: JUMPDEST
00001261: PUSH2 0x1223
00001264: JUMP
00001265: JUMPDEST
00001266: SWAP1
00001267: POP
00001268: SWAP2
00001269: SWAP1
0000126a: POP
0000126b: JUMP
0000126c: JUMPDEST
0000126d: PUSH0
0000126e: PUSH2 0x1276
00001271: DUP3
00001272: PUSH2 0x124b
00001275: JUMP
00001276: JUMPDEST
00001277: SWAP1
00001278: POP
00001279: SWAP2
0000127a: SWAP1
0000127b: POP
0000127c: JUMP
0000127d: JUMPDEST
0000127e: PUSH0
0000127f: PUSH2 0x1287
00001282: DUP3
00001283: PUSH2 0x126c
00001286: JUMP
00001287: JUMPDEST
00001288: SWAP1
00001289: POP
0000128a: SWAP2
0000128b: SWAP1
0000128c: POP
0000128d: JUMP
0000128e: JUMPDEST
0000128f: PUSH2 0x1297
00001292: DUP2
00001293: PUSH2 0x127d
00001296: JUMP
00001297: JUMPDEST
00001298: DUP3
00001299: MSTORE
0000129a: POP
0000129b: POP
0000129c: JUMP
0000129d: JUMPDEST
0000129e: PUSH0
0000129f: PUSH1 0x20
000012a1: DUP3
000012a2: ADD
000012a3: SWAP1
000012a4: POP
000012a5: PUSH2 0x12b0
000012a8: PUSH0
000012a9: DUP4
000012aa: ADD
000012ab: DUP5
000012ac: PUSH2 0x128e
000012af: JUMP
000012b0: JUMPDEST
000012b1: SWAP3
000012b2: SWAP2
000012b3: POP
000012b4: POP
000012b5: JUMP
000012b6: JUMPDEST
000012b7: PUSH0
000012b8: PUSH2 0x12c0
000012bb: DUP3
000012bc: PUSH2 0x126c
000012bf: JUMP
000012c0: JUMPDEST
000012c1: SWAP1
000012c2: POP
000012c3: SWAP2
000012c4: SWAP1
000012c5: POP
000012c6: JUMP
000012c7: JUMPDEST
000012c8: PUSH2 0x12d0
000012cb: DUP2
000012cc: PUSH2 0x12b6
000012cf: JUMP
000012d0: JUMPDEST
000012d1: DUP3
000012d2: MSTORE
000012d3: POP
000012d4: POP
000012d5: JUMP
000012d6: JUMPDEST
000012d7: PUSH0
000012d8: PUSH1 0x20
000012da: DUP3
000012db: ADD
000012dc: SWAP1
000012dd: POP
000012de: PUSH2 0x12e9
000012e1: PUSH0
000012e2: DUP4
000012e3: ADD
000012e4: DUP5
000012e5: PUSH2 0x12c7
000012e8: JUMP
000012e9: JUMPDEST
000012ea: SWAP3
000012eb: SWAP2
000012ec: POP
000012ed: POP
000012ee: JUMP
000012ef: JUMPDEST
000012f0: PUSH0
000012f1: PUSH2 0x12f9
000012f4: DUP3
000012f5: PUSH2 0x126c
000012f8: JUMP
000012f9: JUMPDEST
000012fa: SWAP1
000012fb: POP
000012fc: SWAP2
000012fd: SWAP1
000012fe: POP
000012ff: JUMP
00001300: JUMPDEST
00001301: PUSH2 0x1309
00001304: DUP2
00001305: PUSH2 0x12ef
00001308: JUMP
00001309: JUMPDEST
0000130a: DUP3
0000130b: MSTORE
0000130c: POP
0000130d: POP
0000130e: JUMP
0000130f: JUMPDEST
00001310: PUSH0
00001311: PUSH1 0x20
00001313: DUP3
00001314: ADD
00001315: SWAP1
00001316: POP
00001317: PUSH2 0x1322
0000131a: PUSH0
0000131b: DUP4
0000131c: ADD
0000131d: DUP5
0000131e: PUSH2 0x1300
00001321: JUMP
00001322: JUMPDEST
00001323: SWAP3
00001324: SWAP2
00001325: POP
00001326: POP
00001327: JUMP
00001328: JUMPDEST
00001329: PUSH0
0000132a: PUSH1 0x40
0000132c: MLOAD
0000132d: SWAP1
0000132e: POP
0000132f: SWAP1
00001330: JUMP
00001331: JUMPDEST
00001332: PUSH0
00001333: DUP1
00001334: REVERT
00001335: JUMPDEST
00001336: PUSH0
00001337: DUP1
00001338: REVERT
00001339: JUMPDEST
0000133a: PUSH0
0000133b: DUP1
0000133c: REVERT
0000133d: JUMPDEST
0000133e: PUSH0
0000133f: DUP1
00001340: REVERT
00001341: JUMPDEST
00001342: PUSH0
00001343: DUP1
00001344: REVERT
00001345: JUMPDEST
00001346: PUSH0
00001347: DUP1
00001348: DUP4
00001349: PUSH1 0x1f
0000134b: DUP5
0000134c: ADD
0000134d: SLT
0000134e: PUSH2 0x135a
00001351: JUMPI
00001352: PUSH2 0x1359
00001355: PUSH2 0x1339
00001358: JUMP
00001359: JUMPDEST
0000135a: JUMPDEST
0000135b: DUP3
0000135c: CALLDATALOAD
0000135d: SWAP1
0000135e: POP
0000135f: PUSH8 0xffffffffffffffff
00001368: DUP2
00001369: GT
0000136a: ISZERO
0000136b: PUSH2 0x1377
0000136e: JUMPI
0000136f: PUSH2 0x1376
00001372: PUSH2 0x133d
00001375: JUMP
00001376: JUMPDEST
00001377: JUMPDEST
00001378: PUSH1 0x20
0000137a: DUP4
0000137b: ADD
0000137c: SWAP2
0000137d: POP
0000137e: DUP4
0000137f: PUSH1 0x01
00001381: DUP3
00001382: MUL
00001383: DUP4
00001384: ADD
00001385: GT
00001386: ISZERO
00001387: PUSH2 0x1393
0000138a: JUMPI
0000138b: PUSH2 0x1392
0000138e: PUSH2 0x1341
00001391: JUMP
00001392: JUMPDEST
00001393: JUMPDEST
00001394: SWAP3
00001395: POP
00001396: SWAP3
00001397: SWAP1
00001398: POP
00001399: JUMP
0000139a: JUMPDEST
0000139b: PUSH0
0000139c: DUP2
0000139d: SWAP1
0000139e: POP
0000139f: SWAP2
000013a0: SWAP1
000013a1: POP
000013a2: JUMP
000013a3: JUMPDEST
000013a4: PUSH2 0x13ac
000013a7: DUP2
000013a8: PUSH2 0x139a
000013ab: JUMP
000013ac: JUMPDEST
000013ad: DUP2
000013ae: EQ
000013af: PUSH2 0x13b6
000013b2: JUMPI
000013b3: PUSH0
000013b4: DUP1
000013b5: REVERT
000013b6: JUMPDEST
000013b7: POP
000013b8: JUMP
000013b9: JUMPDEST
000013ba: PUSH0
000013bb: DUP2
000013bc: CALLDATALOAD
000013bd: SWAP1
000013be: POP
000013bf: PUSH2 0x13c7
000013c2: DUP2
000013c3: PUSH2 0x13a3
000013c6: JUMP
000013c7: JUMPDEST
000013c8: SWAP3
000013c9: SWAP2
000013ca: POP
000013cb: POP
000013cc: JUMP
000013cd: JUMPDEST
000013ce: PUSH0
000013cf: DUP1
000013d0: PUSH0
000013d1: DUP1
000013d2: PUSH0
000013d3: DUP1
000013d4: PUSH1 0xa0
000013d6: DUP8
000013d7: DUP10
000013d8: SUB
000013d9: SLT
000013da: ISZERO
000013db: PUSH2 0x13e7
000013de: JUMPI
000013df: PUSH2 0x13e6
000013e2: PUSH2 0x1331
000013e5: JUMP
000013e6: JUMPDEST
000013e7: JUMPDEST
000013e8: PUSH0
000013e9: DUP8
000013ea: ADD
000013eb: CALLDATALOAD
000013ec: PUSH8 0xffffffffffffffff
000013f5: DUP2
000013f6: GT
000013f7: ISZERO
000013f8: PUSH2 0x1404
000013fb: JUMPI
000013fc: PUSH2 0x1403
000013ff: PUSH2 0x1335
00001402: JUMP
00001403: JUMPDEST
00001404: JUMPDEST
00001405: PUSH2 0x1410
00001408: DUP10
00001409: DUP3
0000140a: DUP11
0000140b: ADD
0000140c: PUSH2 0x1345
0000140f: JUMP
00001410: JUMPDEST
00001411: SWAP7
00001412: POP
00001413: SWAP7
00001414: POP
00001415: POP
00001416: PUSH1 0x20
00001418: PUSH2 0x1423
0000141b: DUP10
0000141c: DUP3
0000141d: DUP11
0000141e: ADD
0000141f: PUSH2 0x13b9
00001422: JUMP
00001423: JUMPDEST
00001424: SWAP5
00001425: POP
00001426: POP
00001427: PUSH1 0x40
00001429: PUSH2 0x1434
0000142c: DUP10
0000142d: DUP3
0000142e: DUP11
0000142f: ADD
00001430: PUSH2 0x13b9
00001433: JUMP
00001434: JUMPDEST
00001435: SWAP4
00001436: POP
00001437: POP
00001438: PUSH1 0x60
0000143a: PUSH2 0x1445
0000143d: DUP10
0000143e: DUP3
0000143f: DUP11
00001440: ADD
00001441: PUSH2 0x13b9
00001444: JUMP
00001445: JUMPDEST
00001446: SWAP3
00001447: POP
00001448: POP
00001449: PUSH1 0x80
0000144b: PUSH2 0x1456
0000144e: DUP10
0000144f: DUP3
00001450: DUP11
00001451: ADD
00001452: PUSH2 0x13b9
00001455: JUMP
00001456: JUMPDEST
00001457: SWAP2
00001458: POP
00001459: POP
0000145a: SWAP3
0000145b: SWAP6
0000145c: POP
0000145d: SWAP3
0000145e: SWAP6
0000145f: POP
00001460: SWAP3
00001461: SWAP6
00001462: JUMP
00001463: JUMPDEST
00001464: PUSH0
00001465: PUSH2 0x146d
00001468: DUP3
00001469: PUSH2 0x1223
0000146c: JUMP
0000146d: JUMPDEST
0000146e: SWAP1
0000146f: POP
00001470: SWAP2
00001471: SWAP1
00001472: POP
00001473: JUMP
00001474: JUMPDEST
00001475: PUSH2 0x147d
00001478: DUP2
00001479: PUSH2 0x1463
0000147c: JUMP
0000147d: JUMPDEST
0000147e: DUP3
0000147f: MSTORE
00001480: POP
00001481: POP
00001482: JUMP
00001483: JUMPDEST
00001484: PUSH0
00001485: PUSH1 0x20
00001487: DUP3
00001488: ADD
00001489: SWAP1
0000148a: POP
0000148b: PUSH2 0x1496
0000148e: PUSH0
0000148f: DUP4
00001490: ADD
00001491: DUP5
00001492: PUSH2 0x1474
00001495: JUMP
00001496: JUMPDEST
00001497: SWAP3
00001498: SWAP2
00001499: POP
0000149a: POP
0000149b: JUMP
0000149c: JUMPDEST
0000149d: PUSH0
0000149e: DUP1
0000149f: DUP4
000014a0: PUSH1 0x1f
000014a2: DUP5
000014a3: ADD
000014a4: SLT
000014a5: PUSH2 0x14b1
000014a8: JUMPI
000014a9: PUSH2 0x14b0
000014ac: PUSH2 0x1339
000014af: JUMP
000014b0: JUMPDEST
000014b1: JUMPDEST
000014b2: DUP3
000014b3: CALLDATALOAD
000014b4: SWAP1
000014b5: POP
000014b6: PUSH8 0xffffffffffffffff
000014bf: DUP2
000014c0: GT
000014c1: ISZERO
000014c2: PUSH2 0x14ce
000014c5: JUMPI
000014c6: PUSH2 0x14cd
000014c9: PUSH2 0x133d
000014cc: JUMP
000014cd: JUMPDEST
000014ce: JUMPDEST
000014cf: PUSH1 0x20
000014d1: DUP4
000014d2: ADD
000014d3: SWAP2
000014d4: POP
000014d5: DUP4
000014d6: PUSH1 0x20
000014d8: DUP3
000014d9: MUL
000014da: DUP4
000014db: ADD
000014dc: GT
000014dd: ISZERO
000014de: PUSH2 0x14ea
000014e1: JUMPI
000014e2: PUSH2 0x14e9
000014e5: PUSH2 0x1341
000014e8: JUMP
000014e9: JUMPDEST
000014ea: JUMPDEST
000014eb: SWAP3
000014ec: POP
000014ed: SWAP3
000014ee: SWAP1
000014ef: POP
000014f0: JUMP
000014f1: JUMPDEST
000014f2: PUSH0
000014f3: DUP1
000014f4: PUSH0
000014f5: DUP1
000014f6: PUSH0
000014f7: DUP1
000014f8: PUSH1 0xa0
000014fa: DUP8
000014fb: DUP10
000014fc: SUB
000014fd: SLT
000014fe: ISZERO
000014ff: PUSH2 0x150b
00001502: JUMPI
00001503: PUSH2 0x150a
00001506: PUSH2 0x1331
00001509: JUMP
0000150a: JUMPDEST
0000150b: JUMPDEST
0000150c: PUSH0
0000150d: DUP8
0000150e: ADD
0000150f: CALLDATALOAD
00001510: PUSH8 0xffffffffffffffff
00001519: DUP2
0000151a: GT
0000151b: ISZERO
0000151c: PUSH2 0x1528
0000151f: JUMPI
00001520: PUSH2 0x1527
00001523: PUSH2 0x1335
00001526: JUMP
00001527: JUMPDEST
00001528: JUMPDEST
00001529: PUSH2 0x1534
0000152c: DUP10
0000152d: DUP3
0000152e: DUP11
0000152f: ADD
00001530: PUSH2 0x149c
00001533: JUMP
00001534: JUMPDEST
00001535: SWAP7
00001536: POP
00001537: SWAP7
00001538: POP
00001539: POP
0000153a: PUSH1 0x20
0000153c: PUSH2 0x1547
0000153f: DUP10
00001540: DUP3
00001541: DUP11
00001542: ADD
00001543: PUSH2 0x13b9
00001546: JUMP
00001547: JUMPDEST
00001548: SWAP5
00001549: POP
0000154a: POP
0000154b: PUSH1 0x40
0000154d: PUSH2 0x1558
00001550: DUP10
00001551: DUP3
00001552: DUP11
00001553: ADD
00001554: PUSH2 0x13b9
00001557: JUMP
00001558: JUMPDEST
00001559: SWAP4
0000155a: POP
0000155b: POP
0000155c: PUSH1 0x60
0000155e: PUSH2 0x1569
00001561: DUP10
00001562: DUP3
00001563: DUP11
00001564: ADD
00001565: PUSH2 0x13b9
00001568: JUMP
00001569: JUMPDEST
0000156a: SWAP3
0000156b: POP
0000156c: POP
0000156d: PUSH1 0x80
0000156f: PUSH2 0x157a
00001572: DUP10
00001573: DUP3
00001574: DUP11
00001575: ADD
00001576: PUSH2 0x13b9
00001579: JUMP
0000157a: JUMPDEST
0000157b: SWAP2
0000157c: POP
0000157d: POP
0000157e: SWAP3
0000157f: SWAP6
00001580: POP
00001581: SWAP3
00001582: SWAP6
00001583: POP
00001584: SWAP3
00001585: SWAP6
00001586: JUMP
00001587: JUMPDEST
00001588: PUSH0
00001589: DUP1
0000158a: PUSH0
0000158b: DUP1
0000158c: PUSH0
0000158d: DUP1
0000158e: PUSH1 0xa0
00001590: DUP8
00001591: DUP10
00001592: SUB
00001593: SLT
00001594: ISZERO
00001595: PUSH2 0x15a1
00001598: JUMPI
00001599: PUSH2 0x15a0
0000159c: PUSH2 0x1331
0000159f: JUMP
000015a0: JUMPDEST
000015a1: JUMPDEST
000015a2: PUSH0
000015a3: PUSH2 0x15ae
000015a6: DUP10
000015a7: DUP3
000015a8: DUP11
000015a9: ADD
000015aa: PUSH2 0x13b9
000015ad: JUMP
000015ae: JUMPDEST
000015af: SWAP7
000015b0: POP
000015b1: POP
000015b2: PUSH1 0x20
000015b4: DUP8
000015b5: ADD
000015b6: CALLDATALOAD
000015b7: PUSH8 0xffffffffffffffff
000015c0: DUP2
000015c1: GT
000015c2: ISZERO
000015c3: PUSH2 0x15cf
000015c6: JUMPI
000015c7: PUSH2 0x15ce
000015ca: PUSH2 0x1335
000015cd: JUMP
000015ce: JUMPDEST
000015cf: JUMPDEST
000015d0: PUSH2 0x15db
000015d3: DUP10
000015d4: DUP3
000015d5: DUP11
000015d6: ADD
000015d7: PUSH2 0x149c
000015da: JUMP
000015db: JUMPDEST
000015dc: SWAP6
000015dd: POP
000015de: SWAP6
000015df: POP
000015e0: POP
000015e1: PUSH1 0x40
000015e3: PUSH2 0x15ee
000015e6: DUP10
000015e7: DUP3
000015e8: DUP11
000015e9: ADD
000015ea: PUSH2 0x13b9
000015ed: JUMP
000015ee: JUMPDEST
000015ef: SWAP4
000015f0: POP
000015f1: POP
000015f2: PUSH1 0x60
000015f4: PUSH2 0x15ff
000015f7: DUP10
000015f8: DUP3
000015f9: DUP11
000015fa: ADD
000015fb: PUSH2 0x13b9
000015fe: JUMP
000015ff: JUMPDEST
00001600: SWAP3
00001601: POP
00001602: POP
00001603: PUSH1 0x80
00001605: PUSH2 0x1610
00001608: DUP10
00001609: DUP3
0000160a: DUP11
0000160b: ADD
0000160c: PUSH2 0x13b9
0000160f: JUMP
00001610: JUMPDEST
00001611: SWAP2
00001612: POP
00001613: POP
00001614: SWAP3
00001615: SWAP6
00001616: POP
00001617: SWAP3
00001618: SWAP6
00001619: POP
0000161a: SWAP3
0000161b: SWAP6
0000161c: JUMP
0000161d: JUMPDEST
0000161e: PUSH2 0x1626
00001621: DUP2
00001622: PUSH2 0x1463
00001625: JUMP
00001626: JUMPDEST
00001627: DUP2
00001628: EQ
00001629: PUSH2 0x1630
0000162c: JUMPI
0000162d: PUSH0
0000162e: DUP1
0000162f: REVERT
00001630: JUMPDEST
00001631: POP
00001632: JUMP
00001633: JUMPDEST
00001634: PUSH0
00001635: DUP2
00001636: CALLDATALOAD
00001637: SWAP1
00001638: POP
00001639: PUSH2 0x1641
0000163c: DUP2
0000163d: PUSH2 0x161d
00001640: JUMP
00001641: JUMPDEST
00001642: SWAP3
00001643: SWAP2
00001644: POP
00001645: POP
00001646: JUMP
00001647: JUMPDEST
00001648: PUSH0
00001649: DUP1
0000164a: PUSH0
0000164b: DUP1
0000164c: PUSH0
0000164d: DUP1
0000164e: PUSH0
0000164f: PUSH1 0xc0
00001651: DUP9
00001652: DUP11
00001653: SUB
00001654: SLT
00001655: ISZERO
00001656: PUSH2 0x1662
00001659: JUMPI
0000165a: PUSH2 0x1661
0000165d: PUSH2 0x1331
00001660: JUMP
00001661: JUMPDEST
00001662: JUMPDEST
00001663: PUSH0
00001664: DUP9
00001665: ADD
00001666: CALLDATALOAD
00001667: PUSH8 0xffffffffffffffff
00001670: DUP2
00001671: GT
00001672: ISZERO
00001673: PUSH2 0x167f
00001676: JUMPI
00001677: PUSH2 0x167e
0000167a: PUSH2 0x1335
0000167d: JUMP
0000167e: JUMPDEST
0000167f: JUMPDEST
00001680: PUSH2 0x168b
00001683: DUP11
00001684: DUP3
00001685: DUP12
00001686: ADD
00001687: PUSH2 0x1345
0000168a: JUMP
0000168b: JUMPDEST
0000168c: SWAP8
0000168d: POP
0000168e: SWAP8
0000168f: POP
00001690: POP
00001691: PUSH1 0x20
00001693: PUSH2 0x169e
00001696: DUP11
00001697: DUP3
00001698: DUP12
00001699: ADD
0000169a: PUSH2 0x1633
0000169d: JUMP
0000169e: JUMPDEST
0000169f: SWAP6
000016a0: POP
000016a1: POP
000016a2: PUSH1 0x40
000016a4: PUSH2 0x16af
000016a7: DUP11
000016a8: DUP3
000016a9: DUP12
000016aa: ADD
000016ab: PUSH2 0x13b9
000016ae: JUMP
000016af: JUMPDEST
000016b0: SWAP5
000016b1: POP
000016b2: POP
000016b3: PUSH1 0x60
000016b5: PUSH2 0x16c0
000016b8: DUP11
000016b9: DUP3
000016ba: DUP12
000016bb: ADD
000016bc: PUSH2 0x13b9
000016bf: JUMP
000016c0: JUMPDEST
000016c1: SWAP4
000016c2: POP
000016c3: POP
000016c4: PUSH1 0x80
000016c6: PUSH2 0x16d1
000016c9: DUP11
000016ca: DUP3
000016cb: DUP12
000016cc: ADD
000016cd: PUSH2 0x13b9
000016d0: JUMP
000016d1: JUMPDEST
000016d2: SWAP3
000016d3: POP
000016d4: POP
000016d5: PUSH1 0xa0
000016d7: PUSH2 0x16e2
000016da: DUP11
000016db: DUP3
000016dc: DUP12
000016dd: ADD
000016de: PUSH2 0x13b9
000016e1: JUMP
000016e2: JUMPDEST
000016e3: SWAP2
000016e4: POP
000016e5: POP
000016e6: SWAP3
000016e7: SWAP6
000016e8: SWAP9
000016e9: SWAP2
000016ea: SWAP5
000016eb: SWAP8
000016ec: POP
000016ed: SWAP3
000016ee: SWAP6
000016ef: POP
000016f0: JUMP
000016f1: JUMPDEST
000016f2: PUSH0
000016f3: PUSH1 0x20
000016f5: DUP3
000016f6: DUP5
000016f7: SUB
000016f8: SLT
000016f9: ISZERO
000016fa: PUSH2 0x1706
000016fd: JUMPI
000016fe: PUSH2 0x1705
00001701: PUSH2 0x1331
00001704: JUMP
00001705: JUMPDEST
00001706: JUMPDEST
00001707: PUSH0
00001708: PUSH2 0x1713
0000170b: DUP5
0000170c: DUP3
0000170d: DUP6
0000170e: ADD
0000170f: PUSH2 0x1633
00001712: JUMP
00001713: JUMPDEST
00001714: SWAP2
00001715: POP
00001716: POP
00001717: SWAP3
00001718: SWAP2
00001719: POP
0000171a: POP
0000171b: JUMP
0000171c: JUMPDEST
0000171d: PUSH0
0000171e: DUP3
0000171f: DUP3
00001720: MSTORE
00001721: PUSH1 0x20
00001723: DUP3
00001724: ADD
00001725: SWAP1
00001726: POP
00001727: SWAP3
00001728: SWAP2
00001729: POP
0000172a: POP
0000172b: JUMP
0000172c: JUMPDEST
0000172d: PUSH32 0x416d6f756e74206d7573742062652067726561746572207468616e2030000000
0000174e: PUSH0
0000174f: DUP3
00001750: ADD
00001751: MSTORE
00001752: POP
00001753: JUMP
00001754: JUMPDEST
00001755: PUSH0
00001756: PUSH2 0x1760
00001759: PUSH1 0x1d
0000175b: DUP4
0000175c: PUSH2 0x171c
0000175f: JUMP
00001760: JUMPDEST
00001761: SWAP2
00001762: POP
00001763: PUSH2 0x176b
00001766: DUP3
00001767: PUSH2 0x172c
0000176a: JUMP
0000176b: JUMPDEST
0000176c: PUSH1 0x20
0000176e: DUP3
0000176f: ADD
00001770: SWAP1
00001771: POP
00001772: SWAP2
00001773: SWAP1
00001774: POP
00001775: JUMP
00001776: JUMPDEST
00001777: PUSH0
00001778: PUSH1 0x20
0000177a: DUP3
0000177b: ADD
0000177c: SWAP1
0000177d: POP
0000177e: DUP2
0000177f: DUP2
00001780: SUB
00001781: PUSH0
00001782: DUP4
00001783: ADD
00001784: MSTORE
00001785: PUSH2 0x178d
00001788: DUP2
00001789: PUSH2 0x1754
0000178c: JUMP
0000178d: JUMPDEST
0000178e: SWAP1
0000178f: POP
00001790: SWAP2
00001791: SWAP1
00001792: POP
00001793: JUMP
00001794: JUMPDEST
00001795: PUSH32 0x4665652070657263656e74616765206d757374206265206265747765656e2030
000017b6: PUSH0
000017b7: DUP3
000017b8: ADD
000017b9: MSTORE
000017ba: PUSH32 0x20616e6420313030303000000000000000000000000000000000000000000000
000017db: PUSH1 0x20
000017dd: DUP3
000017de: ADD
000017df: MSTORE
000017e0: POP
000017e1: JUMP
000017e2: JUMPDEST
000017e3: PUSH0
000017e4: PUSH2 0x17ee
000017e7: PUSH1 0x2a
000017e9: DUP4
000017ea: PUSH2 0x171c
000017ed: JUMP
000017ee: JUMPDEST
000017ef: SWAP2
000017f0: POP
000017f1: PUSH2 0x17f9
000017f4: DUP3
000017f5: PUSH2 0x1794
000017f8: JUMP
000017f9: JUMPDEST
000017fa: PUSH1 0x40
000017fc: DUP3
000017fd: ADD
000017fe: SWAP1
000017ff: POP
00001800: SWAP2
00001801: SWAP1
00001802: POP
00001803: JUMP
00001804: JUMPDEST
00001805: PUSH0
00001806: PUSH1 0x20
00001808: DUP3
00001809: ADD
0000180a: SWAP1
0000180b: POP
0000180c: DUP2
0000180d: DUP2
0000180e: SUB
0000180f: PUSH0
00001810: DUP4
00001811: ADD
00001812: MSTORE
00001813: PUSH2 0x181b
00001816: DUP2
00001817: PUSH2 0x17e2
0000181a: JUMP
0000181b: JUMPDEST
0000181c: SWAP1
0000181d: POP
0000181e: SWAP2
0000181f: SWAP1
00001820: POP
00001821: JUMP
00001822: JUMPDEST
00001823: PUSH32 0x4e6f7420656e6f7567682045544820746f207061792074697000000000000000
00001844: PUSH0
00001845: DUP3
00001846: ADD
00001847: MSTORE
00001848: POP
00001849: JUMP
0000184a: JUMPDEST
0000184b: PUSH0
0000184c: PUSH2 0x1856
0000184f: PUSH1 0x19
00001851: DUP4
00001852: PUSH2 0x171c
00001855: JUMP
00001856: JUMPDEST
00001857: SWAP2
00001858: POP
00001859: PUSH2 0x1861
0000185c: DUP3
0000185d: PUSH2 0x1822
00001860: JUMP
00001861: JUMPDEST
00001862: PUSH1 0x20
00001864: DUP3
00001865: ADD
00001866: SWAP1
00001867: POP
00001868: SWAP2
00001869: SWAP1
0000186a: POP
0000186b: JUMP
0000186c: JUMPDEST
0000186d: PUSH0
0000186e: PUSH1 0x20
00001870: DUP3
00001871: ADD
00001872: SWAP1
00001873: POP
00001874: DUP2
00001875: DUP2
00001876: SUB
00001877: PUSH0
00001878: DUP4
00001879: ADD
0000187a: MSTORE
0000187b: PUSH2 0x1883
0000187e: DUP2
0000187f: PUSH2 0x184a
00001882: JUMP
00001883: JUMPDEST
00001884: SWAP1
00001885: POP
00001886: SWAP2
00001887: SWAP1
00001888: POP
00001889: JUMP
0000188a: JUMPDEST
0000188b: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000018ac: PUSH0
000018ad: MSTORE
000018ae: PUSH1 0x11
000018b0: PUSH1 0x04
000018b2: MSTORE
000018b3: PUSH1 0x24
000018b5: PUSH0
000018b6: REVERT
000018b7: JUMPDEST
000018b8: PUSH0
000018b9: PUSH2 0x18c1
000018bc: DUP3
000018bd: PUSH2 0x139a
000018c0: JUMP
000018c1: JUMPDEST
000018c2: SWAP2
000018c3: POP
000018c4: PUSH2 0x18cc
000018c7: DUP4
000018c8: PUSH2 0x139a
000018cb: JUMP
000018cc: JUMPDEST
000018cd: SWAP3
000018ce: POP
000018cf: DUP3
000018d0: DUP3
000018d1: SUB
000018d2: SWAP1
000018d3: POP
000018d4: DUP2
000018d5: DUP2
000018d6: GT
000018d7: ISZERO
000018d8: PUSH2 0x18e4
000018db: JUMPI
000018dc: PUSH2 0x18e3
000018df: PUSH2 0x188a
000018e2: JUMP
000018e3: JUMPDEST
000018e4: JUMPDEST
000018e5: SWAP3
000018e6: SWAP2
000018e7: POP
000018e8: POP
000018e9: JUMP
000018ea: JUMPDEST
000018eb: PUSH0
000018ec: PUSH2 0x18f4
000018ef: DUP3
000018f0: PUSH2 0x139a
000018f3: JUMP
000018f4: JUMPDEST
000018f5: SWAP2
000018f6: POP
000018f7: PUSH2 0x18ff
000018fa: DUP4
000018fb: PUSH2 0x139a
000018fe: JUMP
000018ff: JUMPDEST
00001900: SWAP3
00001901: POP
00001902: DUP3
00001903: DUP3
00001904: MUL
00001905: PUSH2 0x190d
00001908: DUP2
00001909: PUSH2 0x139a
0000190c: JUMP
0000190d: JUMPDEST
0000190e: SWAP2
0000190f: POP
00001910: DUP3
00001911: DUP3
00001912: DIV
00001913: DUP5
00001914: EQ
00001915: DUP4
00001916: ISZERO
00001917: OR
00001918: PUSH2 0x1924
0000191b: JUMPI
0000191c: PUSH2 0x1923
0000191f: PUSH2 0x188a
00001922: JUMP
00001923: JUMPDEST
00001924: JUMPDEST
00001925: POP
00001926: SWAP3
00001927: SWAP2
00001928: POP
00001929: POP
0000192a: JUMP
0000192b: JUMPDEST
0000192c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
0000194d: PUSH0
0000194e: MSTORE
0000194f: PUSH1 0x12
00001951: PUSH1 0x04
00001953: MSTORE
00001954: PUSH1 0x24
00001956: PUSH0
00001957: REVERT
00001958: JUMPDEST
00001959: PUSH0
0000195a: PUSH2 0x1962
0000195d: DUP3
0000195e: PUSH2 0x139a
00001961: JUMP
00001962: JUMPDEST
00001963: SWAP2
00001964: POP
00001965: PUSH2 0x196d
00001968: DUP4
00001969: PUSH2 0x139a
0000196c: JUMP
0000196d: JUMPDEST
0000196e: SWAP3
0000196f: POP
00001970: DUP3
00001971: PUSH2 0x197d
00001974: JUMPI
00001975: PUSH2 0x197c
00001978: PUSH2 0x192b
0000197b: JUMP
0000197c: JUMPDEST
0000197d: JUMPDEST
0000197e: DUP3
0000197f: DUP3
00001980: DIV
00001981: SWAP1
00001982: POP
00001983: SWAP3
00001984: SWAP2
00001985: POP
00001986: POP
00001987: JUMP
00001988: JUMPDEST
00001989: PUSH32 0x4e6f7420656e6f7567682045544820746f206275790000000000000000000000
000019aa: PUSH0
000019ab: DUP3
000019ac: ADD
000019ad: MSTORE
000019ae: POP
000019af: JUMP
000019b0: JUMPDEST
000019b1: PUSH0
000019b2: PUSH2 0x19bc
000019b5: PUSH1 0x15
000019b7: DUP4
000019b8: PUSH2 0x171c
000019bb: JUMP
000019bc: JUMPDEST
000019bd: SWAP2
000019be: POP
000019bf: PUSH2 0x19c7
000019c2: DUP3
000019c3: PUSH2 0x1988
000019c6: JUMP
000019c7: JUMPDEST
000019c8: PUSH1 0x20
000019ca: DUP3
000019cb: ADD
000019cc: SWAP1
000019cd: POP
000019ce: SWAP2
000019cf: SWAP1
000019d0: POP
000019d1: JUMP
000019d2: JUMPDEST
000019d3: PUSH0
000019d4: PUSH1 0x20
000019d6: DUP3
000019d7: ADD
000019d8: SWAP1
000019d9: POP
000019da: DUP2
000019db: DUP2
000019dc: SUB
000019dd: PUSH0
000019de: DUP4
000019df: ADD
000019e0: MSTORE
000019e1: PUSH2 0x19e9
000019e4: DUP2
000019e5: PUSH2 0x19b0
000019e8: JUMP
000019e9: JUMPDEST
000019ea: SWAP1
000019eb: POP
000019ec: SWAP2
000019ed: SWAP1
000019ee: POP
000019ef: JUMP
000019f0: JUMPDEST
000019f1: PUSH0
000019f2: DUP2
000019f3: MLOAD
000019f4: SWAP1
000019f5: POP
000019f6: SWAP2
000019f7: SWAP1
000019f8: POP
000019f9: JUMP
000019fa: JUMPDEST
000019fb: PUSH0
000019fc: DUP3
000019fd: DUP3
000019fe: MSTORE
000019ff: PUSH1 0x20
00001a01: DUP3
00001a02: ADD
00001a03: SWAP1
00001a04: POP
00001a05: SWAP3
00001a06: SWAP2
00001a07: POP
00001a08: POP
00001a09: JUMP
00001a0a: JUMPDEST
00001a0b: PUSH0
00001a0c: JUMPDEST
00001a0d: DUP4
00001a0e: DUP2
00001a0f: LT
00001a10: ISZERO
00001a11: PUSH2 0x1a27
00001a14: JUMPI
00001a15: DUP1
00001a16: DUP3
00001a17: ADD
00001a18: MLOAD
00001a19: DUP2
00001a1a: DUP5
00001a1b: ADD
00001a1c: MSTORE
00001a1d: PUSH1 0x20
00001a1f: DUP2
00001a20: ADD
00001a21: SWAP1
00001a22: POP
00001a23: PUSH2 0x1a0c
00001a26: JUMP
00001a27: JUMPDEST
00001a28: PUSH0
00001a29: DUP5
00001a2a: DUP5
00001a2b: ADD
00001a2c: MSTORE
00001a2d: POP
00001a2e: POP
00001a2f: POP
00001a30: POP
00001a31: JUMP
00001a32: JUMPDEST
00001a33: PUSH0
00001a34: PUSH1 0x1f
00001a36: NOT
00001a37: PUSH1 0x1f
00001a39: DUP4
00001a3a: ADD
00001a3b: AND
00001a3c: SWAP1
00001a3d: POP
00001a3e: SWAP2
00001a3f: SWAP1
00001a40: POP
00001a41: JUMP
00001a42: JUMPDEST
00001a43: PUSH0
00001a44: PUSH2 0x1a4c
00001a47: DUP3
00001a48: PUSH2 0x19f0
00001a4b: JUMP
00001a4c: JUMPDEST
00001a4d: PUSH2 0x1a56
00001a50: DUP2
00001a51: DUP6
00001a52: PUSH2 0x19fa
00001a55: JUMP
00001a56: JUMPDEST
00001a57: SWAP4
00001a58: POP
00001a59: PUSH2 0x1a66
00001a5c: DUP2
00001a5d: DUP6
00001a5e: PUSH1 0x20
00001a60: DUP7
00001a61: ADD
00001a62: PUSH2 0x1a0a
00001a65: JUMP
00001a66: JUMPDEST
00001a67: PUSH2 0x1a6f
00001a6a: DUP2
00001a6b: PUSH2 0x1a32
00001a6e: JUMP
00001a6f: JUMPDEST
00001a70: DUP5
00001a71: ADD
00001a72: SWAP2
00001a73: POP
00001a74: POP
00001a75: SWAP3
00001a76: SWAP2
00001a77: POP
00001a78: POP
00001a79: JUMP
00001a7a: JUMPDEST
00001a7b: PUSH2 0x1a83
00001a7e: DUP2
00001a7f: PUSH2 0x1463
00001a82: JUMP
00001a83: JUMPDEST
00001a84: DUP3
00001a85: MSTORE
00001a86: POP
00001a87: POP
00001a88: JUMP
00001a89: JUMPDEST
00001a8a: PUSH2 0x1a92
00001a8d: DUP2
00001a8e: PUSH2 0x139a
00001a91: JUMP
00001a92: JUMPDEST
00001a93: DUP3
00001a94: MSTORE
00001a95: POP
00001a96: POP
00001a97: JUMP
00001a98: JUMPDEST
00001a99: PUSH0
00001a9a: PUSH1 0xa0
00001a9c: DUP4
00001a9d: ADD
00001a9e: PUSH0
00001a9f: DUP4
00001aa0: ADD
00001aa1: MLOAD
00001aa2: DUP5
00001aa3: DUP3
00001aa4: SUB
00001aa5: PUSH0
00001aa6: DUP7
00001aa7: ADD
00001aa8: MSTORE
00001aa9: PUSH2 0x1ab2
00001aac: DUP3
00001aad: DUP3
00001aae: PUSH2 0x1a42
00001ab1: JUMP
00001ab2: JUMPDEST
00001ab3: SWAP2
00001ab4: POP
00001ab5: POP
00001ab6: PUSH1 0x20
00001ab8: DUP4
00001ab9: ADD
00001aba: MLOAD
00001abb: PUSH2 0x1ac7
00001abe: PUSH1 0x20
00001ac0: DUP7
00001ac1: ADD
00001ac2: DUP3
00001ac3: PUSH2 0x1a7a
00001ac6: JUMP
00001ac7: JUMPDEST
00001ac8: POP
00001ac9: PUSH1 0x40
00001acb: DUP4
00001acc: ADD
00001acd: MLOAD
00001ace: PUSH2 0x1ada
00001ad1: PUSH1 0x40
00001ad3: DUP7
00001ad4: ADD
00001ad5: DUP3
00001ad6: PUSH2 0x1a89
00001ad9: JUMP
00001ada: JUMPDEST
00001adb: POP
00001adc: PUSH1 0x60
00001ade: DUP4
00001adf: ADD
00001ae0: MLOAD
00001ae1: PUSH2 0x1aed
00001ae4: PUSH1 0x60
00001ae6: DUP7
00001ae7: ADD
00001ae8: DUP3
00001ae9: PUSH2 0x1a89
00001aec: JUMP
00001aed: JUMPDEST
00001aee: POP
00001aef: PUSH1 0x80
00001af1: DUP4
00001af2: ADD
00001af3: MLOAD
00001af4: PUSH2 0x1b00
00001af7: PUSH1 0x80
00001af9: DUP7
00001afa: ADD
00001afb: DUP3
00001afc: PUSH2 0x1a89
00001aff: JUMP
00001b00: JUMPDEST
00001b01: POP
00001b02: DUP1
00001b03: SWAP2
00001b04: POP
00001b05: POP
00001b06: SWAP3
00001b07: SWAP2
00001b08: POP
00001b09: POP
00001b0a: JUMP
00001b0b: JUMPDEST
00001b0c: PUSH0
00001b0d: PUSH1 0x20
00001b0f: DUP3
00001b10: ADD
00001b11: SWAP1
00001b12: POP
00001b13: DUP2
00001b14: DUP2
00001b15: SUB
00001b16: PUSH0
00001b17: DUP4
00001b18: ADD
00001b19: MSTORE
00001b1a: PUSH2 0x1b23
00001b1d: DUP2
00001b1e: DUP5
00001b1f: PUSH2 0x1a98
00001b22: JUMP
00001b23: JUMPDEST
00001b24: SWAP1
00001b25: POP
00001b26: SWAP3
00001b27: SWAP2
00001b28: POP
00001b29: POP
00001b2a: JUMP
00001b2b: JUMPDEST
00001b2c: PUSH0
00001b2d: DUP2
00001b2e: MLOAD
00001b2f: SWAP1
00001b30: POP
00001b31: PUSH2 0x1b39
00001b34: DUP2
00001b35: PUSH2 0x13a3
00001b38: JUMP
00001b39: JUMPDEST
00001b3a: SWAP3
00001b3b: SWAP2
00001b3c: POP
00001b3d: POP
00001b3e: JUMP
00001b3f: JUMPDEST
00001b40: PUSH0
00001b41: PUSH1 0x20
00001b43: DUP3
00001b44: DUP5
00001b45: SUB
00001b46: SLT
00001b47: ISZERO
00001b48: PUSH2 0x1b54
00001b4b: JUMPI
00001b4c: PUSH2 0x1b53
00001b4f: PUSH2 0x1331
00001b52: JUMP
00001b53: JUMPDEST
00001b54: JUMPDEST
00001b55: PUSH0
00001b56: PUSH2 0x1b61
00001b59: DUP5
00001b5a: DUP3
00001b5b: DUP6
00001b5c: ADD
00001b5d: PUSH2 0x1b2b
00001b60: JUMP
00001b61: JUMPDEST
00001b62: SWAP2
00001b63: POP
00001b64: POP
00001b65: SWAP3
00001b66: SWAP2
00001b67: POP
00001b68: POP
00001b69: JUMP
00001b6a: JUMPDEST
00001b6b: PUSH2 0x1b73
00001b6e: DUP2
00001b6f: PUSH2 0x139a
00001b72: JUMP
00001b73: JUMPDEST
00001b74: DUP3
00001b75: MSTORE
00001b76: POP
00001b77: POP
00001b78: JUMP
00001b79: JUMPDEST
00001b7a: PUSH0
00001b7b: DUP3
00001b7c: DUP3
00001b7d: MSTORE
00001b7e: PUSH1 0x20
00001b80: DUP3
00001b81: ADD
00001b82: SWAP1
00001b83: POP
00001b84: SWAP3
00001b85: SWAP2
00001b86: POP
00001b87: POP
00001b88: JUMP
00001b89: JUMPDEST
00001b8a: PUSH0
00001b8b: DUP2
00001b8c: SWAP1
00001b8d: POP
00001b8e: SWAP2
00001b8f: SWAP1
00001b90: POP
00001b91: JUMP
00001b92: JUMPDEST
00001b93: PUSH0
00001b94: PUSH2 0x1b9d
00001b97: DUP4
00001b98: DUP4
00001b99: PUSH2 0x1a7a
00001b9c: JUMP
00001b9d: JUMPDEST
00001b9e: PUSH1 0x20
00001ba0: DUP4
00001ba1: ADD
00001ba2: SWAP1
00001ba3: POP
00001ba4: SWAP3
00001ba5: SWAP2
00001ba6: POP
00001ba7: POP
00001ba8: JUMP
00001ba9: JUMPDEST
00001baa: PUSH0
00001bab: PUSH2 0x1bb7
00001bae: PUSH1 0x20
00001bb0: DUP5
00001bb1: ADD
00001bb2: DUP5
00001bb3: PUSH2 0x1633
00001bb6: JUMP
00001bb7: JUMPDEST
00001bb8: SWAP1
00001bb9: POP
00001bba: SWAP3
00001bbb: SWAP2
00001bbc: POP
00001bbd: POP
00001bbe: JUMP
00001bbf: JUMPDEST
00001bc0: PUSH0
00001bc1: PUSH1 0x20
00001bc3: DUP3
00001bc4: ADD
00001bc5: SWAP1
00001bc6: POP
00001bc7: SWAP2
00001bc8: SWAP1
00001bc9: POP
00001bca: JUMP
00001bcb: JUMPDEST
00001bcc: PUSH0
00001bcd: PUSH2 0x1bd6
00001bd0: DUP4
00001bd1: DUP6
00001bd2: PUSH2 0x1b79
00001bd5: JUMP
00001bd6: JUMPDEST
00001bd7: SWAP4
00001bd8: POP
00001bd9: PUSH2 0x1be1
00001bdc: DUP3
00001bdd: PUSH2 0x1b89
00001be0: JUMP
00001be1: JUMPDEST
00001be2: DUP1
00001be3: PUSH0
00001be4: JUMPDEST
00001be5: DUP6
00001be6: DUP2
00001be7: LT
00001be8: ISZERO
00001be9: PUSH2 0x1c19
00001bec: JUMPI
00001bed: PUSH2 0x1bf6
00001bf0: DUP3
00001bf1: DUP5
00001bf2: PUSH2 0x1ba9
00001bf5: JUMP
00001bf6: JUMPDEST
00001bf7: PUSH2 0x1c00
00001bfa: DUP9
00001bfb: DUP3
00001bfc: PUSH2 0x1b92
00001bff: JUMP
00001c00: JUMPDEST
00001c01: SWAP8
00001c02: POP
00001c03: PUSH2 0x1c0b
00001c06: DUP4
00001c07: PUSH2 0x1bbf
00001c0a: JUMP
00001c0b: JUMPDEST
00001c0c: SWAP3
00001c0d: POP
00001c0e: POP
00001c0f: PUSH1 0x01
00001c11: DUP2
00001c12: ADD
00001c13: SWAP1
00001c14: POP
00001c15: PUSH2 0x1be4
00001c18: JUMP
00001c19: JUMPDEST
00001c1a: POP
00001c1b: DUP6
00001c1c: SWAP3
00001c1d: POP
00001c1e: POP
00001c1f: POP
00001c20: SWAP4
00001c21: SWAP3
00001c22: POP
00001c23: POP
00001c24: POP
00001c25: JUMP
00001c26: JUMPDEST
00001c27: PUSH0
00001c28: PUSH1 0x80
00001c2a: DUP3
00001c2b: ADD
00001c2c: SWAP1
00001c2d: POP
00001c2e: PUSH2 0x1c39
00001c31: PUSH0
00001c32: DUP4
00001c33: ADD
00001c34: DUP9
00001c35: PUSH2 0x1b6a
00001c38: JUMP
00001c39: JUMPDEST
00001c3a: DUP2
00001c3b: DUP2
00001c3c: SUB
00001c3d: PUSH1 0x20
00001c3f: DUP4
00001c40: ADD
00001c41: MSTORE
00001c42: PUSH2 0x1c4c
00001c45: DUP2
00001c46: DUP7
00001c47: DUP9
00001c48: PUSH2 0x1bcb
00001c4b: JUMP
00001c4c: JUMPDEST
00001c4d: SWAP1
00001c4e: POP
00001c4f: PUSH2 0x1c5b
00001c52: PUSH1 0x40
00001c54: DUP4
00001c55: ADD
00001c56: DUP6
00001c57: PUSH2 0x1474
00001c5a: JUMP
00001c5b: JUMPDEST
00001c5c: PUSH2 0x1c68
00001c5f: PUSH1 0x60
00001c61: DUP4
00001c62: ADD
00001c63: DUP5
00001c64: PUSH2 0x1b6a
00001c67: JUMP
00001c68: JUMPDEST
00001c69: SWAP7
00001c6a: SWAP6
00001c6b: POP
00001c6c: POP
00001c6d: POP
00001c6e: POP
00001c6f: POP
00001c70: POP
00001c71: JUMP
00001c72: JUMPDEST
00001c73: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00001c94: PUSH0
00001c95: MSTORE
00001c96: PUSH1 0x41
00001c98: PUSH1 0x04
00001c9a: MSTORE
00001c9b: PUSH1 0x24
00001c9d: PUSH0
00001c9e: REVERT
00001c9f: JUMPDEST
00001ca0: PUSH2 0x1ca8
00001ca3: DUP3
00001ca4: PUSH2 0x1a32
00001ca7: JUMP
00001ca8: JUMPDEST
00001ca9: DUP2
00001caa: ADD
00001cab: DUP2
00001cac: DUP2
00001cad: LT
00001cae: PUSH8 0xffffffffffffffff
00001cb7: DUP3
00001cb8: GT
00001cb9: OR
00001cba: ISZERO
00001cbb: PUSH2 0x1cc7
00001cbe: JUMPI
00001cbf: PUSH2 0x1cc6
00001cc2: PUSH2 0x1c72
00001cc5: JUMP
00001cc6: JUMPDEST
00001cc7: JUMPDEST
00001cc8: DUP1
00001cc9: PUSH1 0x40
00001ccb: MSTORE
00001ccc: POP
00001ccd: POP
00001cce: POP
00001ccf: JUMP
00001cd0: JUMPDEST
00001cd1: PUSH0
00001cd2: PUSH2 0x1cd9
00001cd5: PUSH2 0x1328
00001cd8: JUMP
00001cd9: JUMPDEST
00001cda: SWAP1
00001cdb: POP
00001cdc: PUSH2 0x1ce5
00001cdf: DUP3
00001ce0: DUP3
00001ce1: PUSH2 0x1c9f
00001ce4: JUMP
00001ce5: JUMPDEST
00001ce6: SWAP2
00001ce7: SWAP1
00001ce8: POP
00001ce9: JUMP
00001cea: JUMPDEST
00001ceb: PUSH0
00001cec: PUSH8 0xffffffffffffffff
00001cf5: DUP3
00001cf6: GT
00001cf7: ISZERO
00001cf8: PUSH2 0x1d04
00001cfb: JUMPI
00001cfc: PUSH2 0x1d03
00001cff: PUSH2 0x1c72
00001d02: JUMP
00001d03: JUMPDEST
00001d04: JUMPDEST
00001d05: PUSH1 0x20
00001d07: DUP3
00001d08: MUL
00001d09: SWAP1
00001d0a: POP
00001d0b: PUSH1 0x20
00001d0d: DUP2
00001d0e: ADD
00001d0f: SWAP1
00001d10: POP
00001d11: SWAP2
00001d12: SWAP1
00001d13: POP
00001d14: JUMP
00001d15: JUMPDEST
00001d16: PUSH0
00001d17: PUSH2 0x1d27
00001d1a: PUSH2 0x1d22
00001d1d: DUP5
00001d1e: PUSH2 0x1cea
00001d21: JUMP
00001d22: JUMPDEST
00001d23: PUSH2 0x1cd0
00001d26: JUMP
00001d27: JUMPDEST
00001d28: SWAP1
00001d29: POP
00001d2a: DUP1
00001d2b: DUP4
00001d2c: DUP3
00001d2d: MSTORE
00001d2e: PUSH1 0x20
00001d30: DUP3
00001d31: ADD
00001d32: SWAP1
00001d33: POP
00001d34: PUSH1 0x20
00001d36: DUP5
00001d37: MUL
00001d38: DUP4
00001d39: ADD
00001d3a: DUP6
00001d3b: DUP2
00001d3c: GT
00001d3d: ISZERO
00001d3e: PUSH2 0x1d4a
00001d41: JUMPI
00001d42: PUSH2 0x1d49
00001d45: PUSH2 0x1341
00001d48: JUMP
00001d49: JUMPDEST
00001d4a: JUMPDEST
00001d4b: DUP4
00001d4c: JUMPDEST
00001d4d: DUP2
00001d4e: DUP2
00001d4f: LT
00001d50: ISZERO
00001d51: PUSH2 0x1d73
00001d54: JUMPI
00001d55: DUP1
00001d56: PUSH2 0x1d5f
00001d59: DUP9
00001d5a: DUP3
00001d5b: PUSH2 0x1b2b
00001d5e: JUMP
00001d5f: JUMPDEST
00001d60: DUP5
00001d61: MSTORE
00001d62: PUSH1 0x20
00001d64: DUP5
00001d65: ADD
00001d66: SWAP4
00001d67: POP
00001d68: POP
00001d69: PUSH1 0x20
00001d6b: DUP2
00001d6c: ADD
00001d6d: SWAP1
00001d6e: POP
00001d6f: PUSH2 0x1d4c
00001d72: JUMP
00001d73: JUMPDEST
00001d74: POP
00001d75: POP
00001d76: POP
00001d77: SWAP4
00001d78: SWAP3
00001d79: POP
00001d7a: POP
00001d7b: POP
00001d7c: JUMP
00001d7d: JUMPDEST
00001d7e: PUSH0
00001d7f: DUP3
00001d80: PUSH1 0x1f
00001d82: DUP4
00001d83: ADD
00001d84: SLT
00001d85: PUSH2 0x1d91
00001d88: JUMPI
00001d89: PUSH2 0x1d90
00001d8c: PUSH2 0x1339
00001d8f: JUMP
00001d90: JUMPDEST
00001d91: JUMPDEST
00001d92: DUP2
00001d93: MLOAD
00001d94: PUSH2 0x1da1
00001d97: DUP5
00001d98: DUP3
00001d99: PUSH1 0x20
00001d9b: DUP7
00001d9c: ADD
00001d9d: PUSH2 0x1d15
00001da0: JUMP
00001da1: JUMPDEST
00001da2: SWAP2
00001da3: POP
00001da4: POP
00001da5: SWAP3
00001da6: SWAP2
00001da7: POP
00001da8: POP
00001da9: JUMP
00001daa: JUMPDEST
00001dab: PUSH0
00001dac: PUSH1 0x20
00001dae: DUP3
00001daf: DUP5
00001db0: SUB
00001db1: SLT
00001db2: ISZERO
00001db3: PUSH2 0x1dbf
00001db6: JUMPI
00001db7: PUSH2 0x1dbe
00001dba: PUSH2 0x1331
00001dbd: JUMP
00001dbe: JUMPDEST
00001dbf: JUMPDEST
00001dc0: PUSH0
00001dc1: DUP3
00001dc2: ADD
00001dc3: MLOAD
00001dc4: PUSH8 0xffffffffffffffff
00001dcd: DUP2
00001dce: GT
00001dcf: ISZERO
00001dd0: PUSH2 0x1ddc
00001dd3: JUMPI
00001dd4: PUSH2 0x1ddb
00001dd7: PUSH2 0x1335
00001dda: JUMP
00001ddb: JUMPDEST
00001ddc: JUMPDEST
00001ddd: PUSH2 0x1de8
00001de0: DUP5
00001de1: DUP3
00001de2: DUP6
00001de3: ADD
00001de4: PUSH2 0x1d7d
00001de7: JUMP
00001de8: JUMPDEST
00001de9: SWAP2
00001dea: POP
00001deb: POP
00001dec: SWAP3
00001ded: SWAP2
00001dee: POP
00001def: POP
00001df0: JUMP
00001df1: JUMPDEST
00001df2: PUSH0
00001df3: PUSH1 0xa0
00001df5: DUP3
00001df6: ADD
00001df7: SWAP1
00001df8: POP
00001df9: PUSH2 0x1e04
00001dfc: PUSH0
00001dfd: DUP4
00001dfe: ADD
00001dff: DUP10
00001e00: PUSH2 0x1b6a
00001e03: JUMP
00001e04: JUMPDEST
00001e05: PUSH2 0x1e11
00001e08: PUSH1 0x20
00001e0a: DUP4
00001e0b: ADD
00001e0c: DUP9
00001e0d: PUSH2 0x1b6a
00001e10: JUMP
00001e11: JUMPDEST
00001e12: DUP2
00001e13: DUP2
00001e14: SUB
00001e15: PUSH1 0x40
00001e17: DUP4
00001e18: ADD
00001e19: MSTORE
00001e1a: PUSH2 0x1e24
00001e1d: DUP2
00001e1e: DUP7
00001e1f: DUP9
00001e20: PUSH2 0x1bcb
00001e23: JUMP
00001e24: JUMPDEST
00001e25: SWAP1
00001e26: POP
00001e27: PUSH2 0x1e33
00001e2a: PUSH1 0x60
00001e2c: DUP4
00001e2d: ADD
00001e2e: DUP6
00001e2f: PUSH2 0x1474
00001e32: JUMP
00001e33: JUMPDEST
00001e34: PUSH2 0x1e40
00001e37: PUSH1 0x80
00001e39: DUP4
00001e3a: ADD
00001e3b: DUP5
00001e3c: PUSH2 0x1b6a
00001e3f: JUMP
00001e40: JUMPDEST
00001e41: SWAP8
00001e42: SWAP7
00001e43: POP
00001e44: POP
00001e45: POP
00001e46: POP
00001e47: POP
00001e48: POP
00001e49: POP
00001e4a: JUMP
00001e4b: JUMPDEST
00001e4c: PUSH0
00001e4d: DUP2
00001e4e: SWAP1
00001e4f: POP
00001e50: SWAP3
00001e51: SWAP2
00001e52: POP
00001e53: POP
00001e54: JUMP
00001e55: JUMPDEST
00001e56: POP
00001e57: JUMP
00001e58: JUMPDEST
00001e59: PUSH0
00001e5a: PUSH2 0x1e63
00001e5d: PUSH0
00001e5e: DUP4
00001e5f: PUSH2 0x1e4b
00001e62: JUMP
00001e63: JUMPDEST
00001e64: SWAP2
00001e65: POP
00001e66: PUSH2 0x1e6e
00001e69: DUP3
00001e6a: PUSH2 0x1e55
00001e6d: JUMP
00001e6e: JUMPDEST
00001e6f: PUSH0
00001e70: DUP3
00001e71: ADD
00001e72: SWAP1
00001e73: POP
00001e74: SWAP2
00001e75: SWAP1
00001e76: POP
00001e77: JUMP
00001e78: JUMPDEST
00001e79: PUSH0
00001e7a: PUSH2 0x1e82
00001e7d: DUP3
00001e7e: PUSH2 0x1e58
00001e81: JUMP
00001e82: JUMPDEST
00001e83: SWAP2
00001e84: POP
00001e85: DUP2
00001e86: SWAP1
00001e87: POP
00001e88: SWAP2
00001e89: SWAP1
00001e8a: POP
00001e8b: JUMP
00001e8c: JUMPDEST
00001e8d: PUSH32 0x5472616e7366657220746f2075736572206661696c6564000000000000000000
00001eae: PUSH0
00001eaf: DUP3
00001eb0: ADD
00001eb1: MSTORE
00001eb2: POP
00001eb3: JUMP
00001eb4: JUMPDEST
00001eb5: PUSH0
00001eb6: PUSH2 0x1ec0
00001eb9: PUSH1 0x17
00001ebb: DUP4
00001ebc: PUSH2 0x171c
00001ebf: JUMP
00001ec0: JUMPDEST
00001ec1: SWAP2
00001ec2: POP
00001ec3: PUSH2 0x1ecb
00001ec6: DUP3
00001ec7: PUSH2 0x1e8c
00001eca: JUMP
00001ecb: JUMPDEST
00001ecc: PUSH1 0x20
00001ece: DUP3
00001ecf: ADD
00001ed0: SWAP1
00001ed1: POP
00001ed2: SWAP2
00001ed3: SWAP1
00001ed4: POP
00001ed5: JUMP
00001ed6: JUMPDEST
00001ed7: PUSH0
00001ed8: PUSH1 0x20
00001eda: DUP3
00001edb: ADD
00001edc: SWAP1
00001edd: POP
00001ede: DUP2
00001edf: DUP2
00001ee0: SUB
00001ee1: PUSH0
00001ee2: DUP4
00001ee3: ADD
00001ee4: MSTORE
00001ee5: PUSH2 0x1eed
00001ee8: DUP2
00001ee9: PUSH2 0x1eb4
00001eec: JUMP
00001eed: JUMPDEST
00001eee: SWAP1
00001eef: POP
00001ef0: SWAP2
00001ef1: SWAP1
00001ef2: POP
00001ef3: JUMP
00001ef4: JUMPDEST
00001ef5: PUSH0
00001ef6: PUSH1 0x60
00001ef8: DUP3
00001ef9: ADD
00001efa: SWAP1
00001efb: POP
00001efc: PUSH2 0x1f07
00001eff: PUSH0
00001f00: DUP4
00001f01: ADD
00001f02: DUP7
00001f03: PUSH2 0x1474
00001f06: JUMP
00001f07: JUMPDEST
00001f08: PUSH2 0x1f14
00001f0b: PUSH1 0x20
00001f0d: DUP4
00001f0e: ADD
00001f0f: DUP6
00001f10: PUSH2 0x1474
00001f13: JUMP
00001f14: JUMPDEST
00001f15: PUSH2 0x1f21
00001f18: PUSH1 0x40
00001f1a: DUP4
00001f1b: ADD
00001f1c: DUP5
00001f1d: PUSH2 0x1b6a
00001f20: JUMP
00001f21: JUMPDEST
00001f22: SWAP5
00001f23: SWAP4
00001f24: POP
00001f25: POP
00001f26: POP
00001f27: POP
00001f28: JUMP
00001f29: JUMPDEST
00001f2a: PUSH0
00001f2b: DUP2
00001f2c: ISZERO
00001f2d: ISZERO
00001f2e: SWAP1
00001f2f: POP
00001f30: SWAP2
00001f31: SWAP1
00001f32: POP
00001f33: JUMP
00001f34: JUMPDEST
00001f35: PUSH2 0x1f3d
00001f38: DUP2
00001f39: PUSH2 0x1f29
00001f3c: JUMP
00001f3d: JUMPDEST
00001f3e: DUP2
00001f3f: EQ
00001f40: PUSH2 0x1f47
00001f43: JUMPI
00001f44: PUSH0
00001f45: DUP1
00001f46: REVERT
00001f47: JUMPDEST
00001f48: POP
00001f49: JUMP
00001f4a: JUMPDEST
00001f4b: PUSH0
00001f4c: DUP2
00001f4d: MLOAD
00001f4e: SWAP1
00001f4f: POP
00001f50: PUSH2 0x1f58
00001f53: DUP2
00001f54: PUSH2 0x1f34
00001f57: JUMP
00001f58: JUMPDEST
00001f59: SWAP3
00001f5a: SWAP2
00001f5b: POP
00001f5c: POP
00001f5d: JUMP
00001f5e: JUMPDEST
00001f5f: PUSH0
00001f60: PUSH1 0x20
00001f62: DUP3
00001f63: DUP5
00001f64: SUB
00001f65: SLT
00001f66: ISZERO
00001f67: PUSH2 0x1f73
00001f6a: JUMPI
00001f6b: PUSH2 0x1f72
00001f6e: PUSH2 0x1331
00001f71: JUMP
00001f72: JUMPDEST
00001f73: JUMPDEST
00001f74: PUSH0
00001f75: PUSH2 0x1f80
00001f78: DUP5
00001f79: DUP3
00001f7a: DUP6
00001f7b: ADD
00001f7c: PUSH2 0x1f4a
00001f7f: JUMP
00001f80: JUMPDEST
00001f81: SWAP2
00001f82: POP
00001f83: POP
00001f84: SWAP3
00001f85: SWAP2
00001f86: POP
00001f87: POP
00001f88: JUMP
00001f89: JUMPDEST
00001f8a: PUSH32 0x7472616e7366657246726f6d206661696c656400000000000000000000000000
00001fab: PUSH0
00001fac: DUP3
00001fad: ADD
00001fae: MSTORE
00001faf: POP
00001fb0: JUMP
00001fb1: JUMPDEST
00001fb2: PUSH0
00001fb3: PUSH2 0x1fbd
00001fb6: PUSH1 0x13
00001fb8: DUP4
00001fb9: PUSH2 0x171c
00001fbc: JUMP
00001fbd: JUMPDEST
00001fbe: SWAP2
00001fbf: POP
00001fc0: PUSH2 0x1fc8
00001fc3: DUP3
00001fc4: PUSH2 0x1f89
00001fc7: JUMP
00001fc8: JUMPDEST
00001fc9: PUSH1 0x20
00001fcb: DUP3
00001fcc: ADD
00001fcd: SWAP1
00001fce: POP
00001fcf: SWAP2
00001fd0: SWAP1
00001fd1: POP
00001fd2: JUMP
00001fd3: JUMPDEST
00001fd4: PUSH0
00001fd5: PUSH1 0x20
00001fd7: DUP3
00001fd8: ADD
00001fd9: SWAP1
00001fda: POP
00001fdb: DUP2
00001fdc: DUP2
00001fdd: SUB
00001fde: PUSH0
00001fdf: DUP4
00001fe0: ADD
00001fe1: MSTORE
00001fe2: PUSH2 0x1fea
00001fe5: DUP2
00001fe6: PUSH2 0x1fb1
00001fe9: JUMP
00001fea: JUMPDEST
00001feb: SWAP1
00001fec: POP
00001fed: SWAP2
00001fee: SWAP1
00001fef: POP
00001ff0: JUMP
00001ff1: JUMPDEST
00001ff2: PUSH0
00001ff3: PUSH1 0x40
00001ff5: DUP3
00001ff6: ADD
00001ff7: SWAP1
00001ff8: POP
00001ff9: PUSH2 0x2004
00001ffc: PUSH0
00001ffd: DUP4
00001ffe: ADD
00001fff: DUP6
00002000: PUSH2 0x1474
00002003: JUMP
00002004: JUMPDEST
00002005: PUSH2 0x2011
00002008: PUSH1 0x20
0000200a: DUP4
0000200b: ADD
0000200c: DUP5
0000200d: PUSH2 0x1474
00002010: JUMP
00002011: JUMPDEST
00002012: SWAP4
00002013: SWAP3
00002014: POP
00002015: POP
00002016: POP
00002017: JUMP
00002018: JUMPDEST
00002019: PUSH0
0000201a: PUSH1 0x40
0000201c: DUP3
0000201d: ADD
0000201e: SWAP1
0000201f: POP
00002020: PUSH2 0x202b
00002023: PUSH0
00002024: DUP4
00002025: ADD
00002026: DUP6
00002027: PUSH2 0x1474
0000202a: JUMP
0000202b: JUMPDEST
0000202c: PUSH2 0x2038
0000202f: PUSH1 0x20
00002031: DUP4
00002032: ADD
00002033: DUP5
00002034: PUSH2 0x1b6a
00002037: JUMP
00002038: JUMPDEST
00002039: SWAP4
0000203a: SWAP3
0000203b: POP
0000203c: POP
0000203d: POP
0000203e: JUMP
0000203f: JUMPDEST
00002040: PUSH0
00002041: PUSH1 0x20
00002043: DUP3
00002044: ADD
00002045: SWAP1
00002046: POP
00002047: PUSH2 0x2052
0000204a: PUSH0
0000204b: DUP4
0000204c: ADD
0000204d: DUP5
0000204e: PUSH2 0x1b6a
00002051: JUMP
00002052: JUMPDEST
00002053: SWAP3
00002054: SWAP2
00002055: POP
00002056: POP
00002057: JUMP
00002058: JUMPDEST
00002059: PUSH32 0x4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e
0000207a: PUSH0
0000207b: DUP3
0000207c: ADD
0000207d: MSTORE
0000207e: PUSH32 0x6374696f6e000000000000000000000000000000000000000000000000000000
0000209f: PUSH1 0x20
000020a1: DUP3
000020a2: ADD
000020a3: MSTORE
000020a4: POP
000020a5: JUMP
000020a6: JUMPDEST
000020a7: PUSH0
000020a8: PUSH2 0x20b2
000020ab: PUSH1 0x25
000020ad: DUP4
000020ae: PUSH2 0x171c
000020b1: JUMP
000020b2: JUMPDEST
000020b3: SWAP2
000020b4: POP
000020b5: PUSH2 0x20bd
000020b8: DUP3
000020b9: PUSH2 0x2058
000020bc: JUMP
000020bd: JUMPDEST
000020be: PUSH1 0x40
000020c0: DUP3
000020c1: ADD
000020c2: SWAP1
000020c3: POP
000020c4: SWAP2
000020c5: SWAP1
000020c6: POP
000020c7: JUMP
000020c8: JUMPDEST
000020c9: PUSH0
000020ca: PUSH1 0x20
000020cc: DUP3
000020cd: ADD
000020ce: SWAP1
000020cf: POP
000020d0: DUP2
000020d1: DUP2
000020d2: SUB
000020d3: PUSH0
000020d4: DUP4
000020d5: ADD
000020d6: MSTORE
000020d7: PUSH2 0x20df
000020da: DUP2
000020db: PUSH2 0x20a6
000020de: JUMP
000020df: JUMPDEST
000020e0: SWAP1
000020e1: POP
000020e2: SWAP2
000020e3: SWAP1
000020e4: POP
000020e5: JUMP
000020e6: JUMPDEST
000020e7: PUSH32 0x4e6f2062616c616e636520746f20776974686472617700000000000000000000
00002108: PUSH0
00002109: DUP3
0000210a: ADD
0000210b: MSTORE
0000210c: POP
0000210d: JUMP
0000210e: JUMPDEST
0000210f: PUSH0
00002110: PUSH2 0x211a
00002113: PUSH1 0x16
00002115: DUP4
00002116: PUSH2 0x171c
00002119: JUMP
0000211a: JUMPDEST
0000211b: SWAP2
0000211c: POP
0000211d: PUSH2 0x2125
00002120: DUP3
00002121: PUSH2 0x20e6
00002124: JUMP
00002125: JUMPDEST
00002126: PUSH1 0x20
00002128: DUP3
00002129: ADD
0000212a: SWAP1
0000212b: POP
0000212c: SWAP2
0000212d: SWAP1
0000212e: POP
0000212f: JUMP
00002130: JUMPDEST
00002131: PUSH0
00002132: PUSH1 0x20
00002134: DUP3
00002135: ADD
00002136: SWAP1
00002137: POP
00002138: DUP2
00002139: DUP2
0000213a: SUB
0000213b: PUSH0
0000213c: DUP4
0000213d: ADD
0000213e: MSTORE
0000213f: PUSH2 0x2147
00002142: DUP2
00002143: PUSH2 0x210e
00002146: JUMP
00002147: JUMPDEST
00002148: SWAP1
00002149: POP
0000214a: SWAP2
0000214b: SWAP1
0000214c: POP
0000214d: JUMP
0000214e: JUMPDEST
0000214f: PUSH32 0x5769746864726177616c206661696c6564000000000000000000000000000000
00002170: PUSH0
00002171: DUP3
00002172: ADD
00002173: MSTORE
00002174: POP
00002175: JUMP
00002176: JUMPDEST
00002177: PUSH0
00002178: PUSH2 0x2182
0000217b: PUSH1 0x11
0000217d: DUP4
0000217e: PUSH2 0x171c
00002181: JUMP
00002182: JUMPDEST
00002183: SWAP2
00002184: POP
00002185: PUSH2 0x218d
00002188: DUP3
00002189: PUSH2 0x214e
0000218c: JUMP
0000218d: JUMPDEST
0000218e: PUSH1 0x20
00002190: DUP3
00002191: ADD
00002192: SWAP1
00002193: POP
00002194: SWAP2
00002195: SWAP1
00002196: POP
00002197: JUMP
00002198: JUMPDEST
00002199: PUSH0
0000219a: PUSH1 0x20
0000219c: DUP3
0000219d: ADD
0000219e: SWAP1
0000219f: POP
000021a0: DUP2
000021a1: DUP2
000021a2: SUB
000021a3: PUSH0
000021a4: DUP4
000021a5: ADD
000021a6: MSTORE
000021a7: PUSH2 0x21af
000021aa: DUP2
000021ab: PUSH2 0x2176
000021ae: JUMP
000021af: JUMPDEST
000021b0: SWAP1
000021b1: POP
000021b2: SWAP2
000021b3: SWAP1
000021b4: POP
000021b5: JUMP
000021b6: JUMPDEST
000021b7: PUSH0
000021b8: PUSH2 0x21c0
000021bb: DUP3
000021bc: PUSH2 0x19f0
000021bf: JUMP
000021c0: JUMPDEST
000021c1: PUSH2 0x21ca
000021c4: DUP2
000021c5: DUP6
000021c6: PUSH2 0x1e4b
000021c9: JUMP
000021ca: JUMPDEST
000021cb: SWAP4
000021cc: POP
000021cd: PUSH2 0x21da
000021d0: DUP2
000021d1: DUP6
000021d2: PUSH1 0x20
000021d4: DUP7
000021d5: ADD
000021d6: PUSH2 0x1a0a
000021d9: JUMP
000021da: JUMPDEST
000021db: DUP1
000021dc: DUP5
000021dd: ADD
000021de: SWAP2
000021df: POP
000021e0: POP
000021e1: SWAP3
000021e2: SWAP2
000021e3: POP
000021e4: POP
000021e5: JUMP
000021e6: JUMPDEST
000021e7: PUSH0
000021e8: PUSH2 0x21f1
000021eb: DUP3
000021ec: DUP5
000021ed: PUSH2 0x21b6
000021f0: JUMP
000021f1: JUMPDEST
000021f2: SWAP2
000021f3: POP
000021f4: DUP2
000021f5: SWAP1
000021f6: POP
000021f7: SWAP3
000021f8: SWAP2
000021f9: POP
000021fa: POP
000021fb: JUMP
000021fc: JUMPDEST
000021fd: PUSH32 0x64656c656761746563616c6c206572726f7220776974686f7574206461746100
0000221e: PUSH0
0000221f: DUP3
00002220: ADD
00002221: MSTORE
00002222: POP
00002223: JUMP
00002224: JUMPDEST
00002225: PUSH0
00002226: PUSH2 0x2230
00002229: PUSH1 0x1f
0000222b: DUP4
0000222c: PUSH2 0x171c
0000222f: JUMP
00002230: JUMPDEST
00002231: SWAP2
00002232: POP
00002233: PUSH2 0x223b
00002236: DUP3
00002237: PUSH2 0x21fc
0000223a: JUMP
0000223b: JUMPDEST
0000223c: PUSH1 0x20
0000223e: DUP3
0000223f: ADD
00002240: SWAP1
00002241: POP
00002242: SWAP2
00002243: SWAP1
00002244: POP
00002245: JUMP
00002246: JUMPDEST
00002247: PUSH0
00002248: PUSH1 0x20
0000224a: DUP3
0000224b: ADD
0000224c: SWAP1
0000224d: POP
0000224e: DUP2
0000224f: DUP2
00002250: SUB
00002251: PUSH0
00002252: DUP4
00002253: ADD
00002254: MSTORE
00002255: PUSH2 0x225d
00002258: DUP2
00002259: PUSH2 0x2224
0000225c: JUMP
0000225d: JUMPDEST
0000225e: SWAP1
0000225f: POP
00002260: SWAP2
00002261: SWAP1
00002262: POP
00002263: JUMP
00002264: INVALID
00002265: LOG2
00002266: PUSH5 0x6970667358
0000226c: UNKNOWN(0x22)
0000226d: SLT
0000226e: KECCAK256
0000226f: MLOAD
00002270: UNKNOWN(0x0E)
00002271: UNKNOWN(0xD1)
00002272: BLOBBASEFEE
00002273: UNKNOWN(0xB1)
00002274: CODECOPY
00002275: PUSH13 0xe5447cce8a39bd28ff749b9428
00002283: UNKNOWN(0xBB)
00002284: MCOPY
00002285: COINBASE
00002286: UNKNOWN(0xA8)
00002287: UNKNOWN(0xC6)
00002288: UNKNOWN(0xC4)
00002289: UNKNOWN(0xAC)
0000228a: UNKNOWN(0xB9)
0000228b: CODESIZE
0000228c: ISZERO
0000228d: SSTORE
0000228e: TLOAD
0000228f: PUSH5 0x736f6c6343
00002295: STOP
00002296: ADDMOD
00002297: XOR
00002298: STOP
00002299: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other codex Delegatecall to computed target enables arbitrary code execution if reachable 85 no
view
evidence_json
{
    "evidence": "Detector evidence flags DELEGATECALL at pc 4497 with target_expression_category=\"computed\" and untrusted_delegatecall_count=1. Disassembly around pc 4445\u20134497 shows masking a stack\u2011provided address before DELEGATECALL; no explicit caller check appears in that block, and guard detection is heuristic.",
    "locations": [
        "pc:4497"
    ],
    "recommendation": "Restrict the delegatecall entrypoint to a strict admin/allowlist, validate target addresses, and prefer regular CALL for untrusted contracts. Add explicit access checks at the entrypoint and emit events for delegatecall usage.",
    "exploit_scenario": "A caller who can reach the delegatecall path and influence the target (and calldata) can execute arbitrary code in this contract\u2019s storage context, potentially overwriting ownership/config slots or draining funds. If the entrypoint is owner\u2011only this risk is confined to a compromised owner or misconfiguration, but from bytecode alone the access control cannot be confirmed."
}
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0x3e87d86ffbf4c724bf90a3ff09c2ccadac29e7be8743e6496cfceca526eaba7d
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 132,
    "trace_id": "0x3e87d86ffbf4c724bf90a3ff09c2ccadac29e7be8743e6496cfceca526eaba7d",
    "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": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x970fd18c",
            "selector": "0x970fd18c",
            "calldata_variants": [
                "0x970fd18c",
                "0x970fd18c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde05e6a0",
            "selector": "0xde05e6a0",
            "calldata_variants": [
                "0xde05e6a0",
                "0xde05e6a00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe3cbfe9d",
            "selector": "0xe3cbfe9d",
            "calldata_variants": [
                "0xe3cbfe9d",
                "0xe3cbfe9d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe941fa78",
            "selector": "0xe941fa78",
            "calldata_variants": [
                "0xe941fa78",
                "0xe941fa780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1694505e",
            "selector": "0x1694505e",
            "calldata_variants": [
                "0x1694505e",
                "0x1694505e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2c76d7a6",
            "selector": "0x2c76d7a6",
            "calldata_variants": [
                "0x2c76d7a6",
                "0x2c76d7a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4497,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 3910,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4293,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x44ab04037bc855c2539ce4db50ed0869e7cb9f554cb1d7899c9421b6ce523371
call_targets: 0x95fe5961368664c3da8879d7542149ddf0738d82
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x44ab04037bc855c2539ce4db50ed0869e7cb9f554cb1d7899c9421b6ce523371",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x95fe5961368664c3da8879d7542149ddf0738d82"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x970fd18c",
            "selector": "0x970fd18c",
            "calldata_variants": [
                "0x970fd18c",
                "0x970fd18c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde05e6a0",
            "selector": "0xde05e6a0",
            "calldata_variants": [
                "0xde05e6a0",
                "0xde05e6a00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe3cbfe9d",
            "selector": "0xe3cbfe9d",
            "calldata_variants": [
                "0xe3cbfe9d",
                "0xe3cbfe9d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe941fa78",
            "selector": "0xe941fa78",
            "calldata_variants": [
                "0xe941fa78",
                "0xe941fa780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1694505e",
            "selector": "0x1694505e",
            "calldata_variants": [
                "0x1694505e",
                "0x1694505e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2c76d7a6",
            "selector": "0x2c76d7a6",
            "calldata_variants": [
                "0x2c76d7a6",
                "0x2c76d7a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 932,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1320,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1725,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 11,
    "guards_detected": [
        {
            "pc": 3910,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4293,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 11
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x44ab04037bc855c2539ce4db50ed0869e7cb9f554cb1d7899c9421b6ce523371
call_targets: 0x95fe5961368664c3da8879d7542149ddf0738d82
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x44ab04037bc855c2539ce4db50ed0869e7cb9f554cb1d7899c9421b6ce523371",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x95fe5961368664c3da8879d7542149ddf0738d82"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x970fd18c",
            "selector": "0x970fd18c",
            "calldata_variants": [
                "0x970fd18c",
                "0x970fd18c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde05e6a0",
            "selector": "0xde05e6a0",
            "calldata_variants": [
                "0xde05e6a0",
                "0xde05e6a00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe3cbfe9d",
            "selector": "0xe3cbfe9d",
            "calldata_variants": [
                "0xe3cbfe9d",
                "0xe3cbfe9d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe941fa78",
            "selector": "0xe941fa78",
            "calldata_variants": [
                "0xe941fa78",
                "0xe941fa780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1694505e",
            "selector": "0x1694505e",
            "calldata_variants": [
                "0x1694505e",
                "0x1694505e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2c76d7a6",
            "selector": "0x2c76d7a6",
            "calldata_variants": [
                "0x2c76d7a6",
                "0x2c76d7a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 932,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1320,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1725,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 11,
    "guards_detected": [
        {
            "pc": 3910,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4293,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 12
}