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

Analysis Run

70e078fa-4aa6-414c-b83f-052b0b47a8c7

complete
Chain ID
1
Address
Block Number
Created
Wed, Dec 31, 2025 10:08 PM
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
Not yet
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 0 proxy context implementation known
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
30943 report.consolidate complete 1 / 1 3 months ago
94669 artifact.fetch complete 1 / 3 1 week ago
94670 tool.cast_disasm complete 1 / 3 1 week ago
94671 analysis.bundle complete 1 / 3 1 week ago
94672 capability.graph complete 1 / 3 1 week ago
94673 detector.run complete 1 / 3 1 week ago
94674 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes
Verified Source: no

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
Analyzed the runtime bytecode in BYTECODE_BUNDLE.txt; external calls, token/ETH transfers, and delegatecalls appear gated by owner/whitelist/signature checks, and there is no observable selfdestruct or unprotected upgrade path. I did not find a concrete, exploitable value‑extraction path from bytecode alone.
View stderr
[codex:1300326] OpenAI Codex v0.77.0 (research preview)
[codex:1300326] --------
[codex:1300326] workdir: /tmp/codex-multi-crqf3hz7
[codex:1300326] model: gpt-5.2-codex
[codex:1300326] provider: openai
[codex:1300326] approval: never
[codex:1300326] sandbox: read-only
[codex:1300326] reasoning effort: xhigh
[codex:1300326] reasoning summaries: auto
[codex:1300326] session id: 019b766d-1868-79f1-9d32-a77e4f7aeff7
[codex:1300326] --------
[codex:1300326] user
[codex:1300326] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1300326] 
[codex:1300326] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:1300326] 
[codex:1300326] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1300326] - Gas inefficiency, code quality, or best practices
[codex:1300326] - Theoretical vulnerabilities without a clear extraction path
[codex:1300326] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:1300326] - Issues requiring social engineering or off-chain coordination
[codex:1300326] 
[codex:1300326] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:1300326] - CALL/DELEGATECALL with controllable destination or calldata
[codex:1300326] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:1300326] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:1300326] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:1300326] - External calls before state updates (reentrancy)
[codex:1300326] - SELFDESTRUCT with controllable beneficiary
[codex:1300326] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:1300326] 
[codex:1300326] For each finding, you MUST explain:
[codex:1300326] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:1300326] 2. The concrete sequence of transactions to extract value
[codex:1300326] 3. Why you believe this is exploitable (not just suspicious)
[codex:1300326] 
[codex:1300326] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:1300326] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:1300326] 
[codex:1300326] Output MUST be valid JSON matching the provided schema.
[codex:1300326] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1300326] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1300326] mcp startup: no servers
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Reading BYTECODE_BUNDLE.txt content**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc ls in /tmp/codex-multi-crqf3hz7 succeeded in 9ms:
[codex:1300326] BYTECODE_BUNDLE.txt
[codex:1300326] codex-output-schema.json
[codex:1300326] exec
[codex:1300326] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-crqf3hz7 succeeded in 5ms:
[codex:1300326] Runtime bytecode bundle for best-effort auditing.
[codex:1300326] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1300326] 
[codex:1300326] FILE: runtime_bytecode.hex
[codex:1300326] 0x6080604052600436101561001e575b361561001c5761001c61218e565b005b5f3560e01c80630eb9142f1461023d57806314b7c124146102385780631626ba7e14610233578063261423351461022e57806334efb1e914610229578063388bb62c146102245780633fc8cef31461021f5780634cf3fe9c1461021a578063567aa1ba1461021557806361acbdcb1461021057806361bb41a71461020b57806369328dec146102065780636d70f7ae14610201578063715018a6146101fc5780637d6a4568146101f75780637dadbe8c146101f25780638594ac40146101ed5780638da5cb5b146101e857806395ccea67146101e35780639e165a78146101de5780639f273fbc146101d9578063a07aea1c146101d4578063a908183d146101cf578063ab06e403146101ca578063af38bf11146101c5578063b9f9fc41146101c0578063d365a377146101bb578063d49d5181146101b6578063d911c632146101b1578063e3fa62d6146101ac578063ecb9e11a146101a7578063f00baf3e146101a2578063f2fde38b1461019d5763fee1303c0361000e57611a2d565b6119e3565b611954565b611937565b6118fa565b611876565b61185b565b6117cf565b611731565b611695565b61163d565b61159f565b61150e565b611446565b6113d2565b61138f565b611367565b611180565b6110e2565b611074565b61100c565b610fc4565b610e1f565b610da2565b610d7a565b610bdb565b6108f3565b610834565b610798565b6104f1565b61048a565b610429565b61031a565b610257565b6001600160a01b0381160361025357565b5f80fd5b346102535760203660031901126102535760043561027481610242565b61028960018060a01b03603354163314611a71565b6001600160a01b031661029b8161267c565b6102a157005b60207f1886ee5ead024938d4f3f3251d2252fc79d5cea5adf88326e227cc271cdcd09091604051908152a1005b5f91031261025357565b60206040818301928281528451809452019201905f5b8181106102fb5750505090565b82516001600160a01b03168452602093840193909201916001016102ee565b34610253575f36600319011261025357604051806020609d54918281520190609d5f527fd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf7b905f5b8181106103885761038485610378818703826103b2565b604051918291826102d8565b0390f35b8254845260209093019260019283019201610361565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176103d357604052565b61039e565b6001600160401b0381116103d357601f01601f191660200190565b9291926103ff826103d8565b9161040d60405193846103b2565b829481845281830111610253578281602093845f960137010152565b34610253576040366003190112610253576024356001600160401b03811161025357366023820112156102535761047761046f60209236906024816004013591016103f3565b600435611abc565b6040516001600160e01b03199091168152f35b346102535760203660031901126102535760206104a8600435612632565b905460405160039290921b1c6001600160a01b03168152f35b9181601f84011215610253578235916001600160401b038311610253576020808501948460051b01011161025357565b34610253576060366003190112610253576004356001600160401b038111610253576105219036906004016104c1565b906024359161052f83610242565b6044359261054860018060a01b03603354163314611a71565b5f8415928315915b81811061055957005b610564818388611b44565b359061056f82610242565b85846105ce575b6001926105856105c892612368565b60405163095ea7b360e01b60208201526001600160a01b0388166024820152604481018b9052906105c382606481015b03601f1981018452836103b2565b6128a6565b01610550565b50604051636eb1769f60e11b81523060048201526001600160a01b038616602482015291602083806044810103816001600160a01b0385165afa90811561065a576105856105c8926001955f9161062c575b50159250509250610576565b61064d915060203d8111610653575b61064581836103b2565b810190612359565b5f610620565b503d61063b565b611f0d565b6001600160401b0381116103d35760051b60200190565b6001600160e01b031981160361025357565b9080601f8301121561025357813561069f8161065f565b926106ad60405194856103b2565b81845260208085019260051b82010192831161025357602001905b8282106106d55750505090565b6020809183356106e481610242565b8152019101906106c8565b906040600319830112610253576004356001600160401b0381116102535782602382011215610253578060040135906107278261065f565b9161073560405193846103b2565b8083526024602084019160051b8301019185831161025357602401905b82821061077e5750505091602435906001600160401b0382116102535761077b91600401610688565b90565b60208091833561078d81610676565b815201910190610752565b34610253576107a6366106ef565b6107bb60018060a01b03603354163314611a71565b6107c88251825114611b59565b5f5b825181101561001c5760019061082e6001600160a01b036107eb8386611ba5565b51166001600160e01b03196108008488611ba5565b51165f52609f60205260405f209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b016107ca565b34610253575f366003190112610253576040517f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03168152602090f35b9181601f84011215610253578235916001600160401b038311610253576020838186019501011161025357565b906040600319830112610253576004356001600160401b038111610253576004016080818403126102535791602435906001600160401b038211610253576108ef91600401610878565b9091565b6108fc366108a5565b9061091a610915335f52609c60205260405f2054151590565b611bb9565b610a6e610a40602085019361094361093186611bfc565b6001600160801b034291161015611c10565b61095f336001600160a01b0361095889611c50565b1614611c5a565b610a3a6060870194610a3261099c61098e61097a898c611c99565b604093919351928391602083019586611d1f565b03601f1981018352826103b2565b519020976109b26109ac8b611c50565b91611bfc565b98610a2a60408c019a61098e6109c78d611bfc565b93604051948593602085019788909493926001600160801b03908160809460a08501987f7e2137b52a88cc72d113166dcedbf48e41ea4ae592924fe4f494d74ca5a0095f865260018060a01b031660208601521660408401521660608201520152565b5190206123d3565b9236916103f3565b9061247e565b609a54610a5d906001600160a01b03165b6001600160a01b031690565b6001600160a01b0390911614611dbd565b5f5b610a7a8285611c99565b9050811015610b915780610aa5610a51610aa0600194610a9a878a611c99565b90611e08565b611c50565b610b2957610b23610afa610aed610ad6610ad0610ac686610a9a8a8d611c99565b6020810190611e6a565b90611e9c565b63ffffffff60e01b165f52609f60205260405f2090565b546001600160a01b031690565b610b0c848060a01b0382161515611ed2565b610b1d610ac684610a9a888b611c99565b916124dd565b01610a70565b610b61610b5c610b40610aa084610a9a888b611c99565b6001600160a01b03165f908152609e6020526040902054151590565b611e2a565b610b8c610b75610aa083610a9a878a611c99565b610b86610ac684610a9a888b611c99565b91612493565b610b23565b826001600160801b03610ba382611bfc565b16610baa57005b5f8080610bb78194611bfc565b6001600160801b0316818115610bd2575b4190f11561065a57005b506108fc610bc8565b3461025357602036600319011261025357600435610bf881610242565b5f5460ff8160081c1690815f14610d6d5750610c15303b15611f18565b159081610d46575b610c3660ff5f5460081c16610c31816124f3565b6124f3565b610c3f336125ea565b5f5460ff8160081c1690815f14610d395750610c5c303b15611f18565b1580610d12575b610cff575b603354610c7f906001600160a01b03163314611a71565b6001600160a01b03811615610cab57610c97906125ea565b610c9d57005b61001c61ff00195f54165f55565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b610d0d61ff00195f54165f55565b610c68565b610d2461010061ff00195f5416175f55565b610d34600160ff195f5416175f55565b610c63565b60ff610c5c911615611f18565b610d5861010061ff00195f5416175f55565b610d68600160ff195f5416175f55565b610c1d565b60ff610c15911615611f18565b34610253575f36600319011261025357609a546040516001600160a01b039091168152602090f35b34610253576020366003190112610253577fb0f5cdd73db8ff444fea735d243faf354a928879825665bf4f2f67600cbac97c6020600435610de281610242565b610df760018060a01b03603354163314611a71565b609a80546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b3461025357606036600319011261025357600435610e3c81610242565b60243590604435610e4c81610242565b610e69610e64335f52606660205260405f2054151590565b611f7b565b6001600160a01b0381165f90815260a26020526040902054610e8c901515611fc0565b6001600160a01b03821691839073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8403610f8f5750507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031690813b1561025357604051632e1a7d4d60e01b815260048101859052915f908390602490829084905af190811561065a577fb67719fc33c1f17d31bf3a698690d62066b1e0bae28fcd3c56cf2c015c2863d692610f7092610f75575b50610f565f80808089865af1610f5061200c565b5061203b565b6040519485526001600160a01b0316939081906020820190565b0390a3005b80610f835f610f89936103b2565b806102ce565b5f610f3c565b91610fbf610f7092827fb67719fc33c1f17d31bf3a698690d62066b1e0bae28fcd3c56cf2c015c2863d695612553565b610f56565b34610253576020366003190112610253576020611002600435610fe681610242565b6001600160a01b03165f90815260666020526040902054151590565b6040519015158152f35b34610253575f3660031901126102535761103160018060a01b03603354163314611a71565b603380546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102535760203660031901126102535760043561109181610676565b63ffffffff60e01b165f5260a0602052602060018060a01b0360405f205416604051908152f35b602060031982011261025357600435906001600160401b0382116102535761077b91600401610688565b34610253576110f0366110b8565b61110560018060a01b03603354163314611a71565b5f5b815181101561001c5760019061112f6001600160a01b036111288386611ba5565b5116612b8c565b61113a575b01611107565b7fa30b4a30819461802ef73f5bd8d14569b88b857d9d64f0c5bbb33ea910ebe6896040838060a01b0361116d8487611ba5565b511681519081525f6020820152a1611134565b611189366108a5565b906111a2610915335f52609c60205260405f2054151590565b611285610a4060208501936111b961093186611bfc565b6111ce336001600160a01b0361095889611c50565b610a3a6060870194610a326111fd61098e6111e9898c611c99565b60409391935192839160208301958661207d565b5190209761120d6109ac8b611c50565b98610a2a60408c019a61098e6112228d611bfc565b93604051948593602085019788909493926001600160801b03908160809460a08501987f0ee0e02696fd63599be55592245d9b2ac8d74503d0669f8ca4cea2984abaadcc865260018060a01b031660208601521660408401521660608201520152565b5f5b6112918285611c99565b9050811015610b9157806112b7610a51610aa06001946112b1878a611c99565b90612125565b61130b576113056112e2610aed610ad6610ad06112d8866112b18a8d611c99565b6040810190611e6a565b6112f4848060a01b0382161515611ed2565b610b1d6112d8846112b1888b611c99565b01611287565b611322610b5c610b40610aa0846112b1888b611c99565b611362611336610aa0836112b1878a611c99565b6020611346846112b1888b611c99565b01359061135a6112d8856112b1898c611c99565b9290916124b2565b611305565b34610253575f366003190112610253576033546040516001600160a01b039091168152602090f35b346102535760403660031901126102535761001c6004356113af81610242565b603354602435916001600160a01b03909116906113cd338314611a71565b612553565b34610253575f36600319011261025357604051806020609b54918281520190609b5f527fbba9db4cdbea0a37c207bbb83e20f828cd4441c49891101dc94fd20dc8efc349905f5b8181106114305761038485610378818703826103b2565b8254845260209093019260019283019201611419565b3461025357611454366110b8565b61146960018060a01b03603354163314611a71565b5f5b815181101561001c576001906114936001600160a01b0361148c8386611ba5565b51166126e5565b61149e575b0161146b565b7f6df0471095ad1292c74e0f3615a3b6927ee7b5b7e925423a38cb8c23625ca07d6040838060a01b036114d18487611ba5565b51168151908152846020820152a1611498565b602060031982011261025357600435906001600160401b038211610253576108ef916004016104c1565b346102535761151c366114e4565b61153160018060a01b03603354163314611a71565b5f5b81811061157157507f4c022f03c292dfa42133bfa9f90bbf55089da679c2df97df205f337c12ab7b7c9161156c60405192839283612147565b0390a1005b806115986115826001938587611b44565b3561158c81610242565b838060a01b0316612733565b5001611533565b34610253576115ad366110b8565b6115c260018060a01b03603354163314611a71565b5f5b815181101561001c576001906115ec6001600160a01b036115e58386611ba5565b5116612781565b6115f7575b016115c4565b7fa30b4a30819461802ef73f5bd8d14569b88b857d9d64f0c5bbb33ea910ebe6896040838060a01b0361162a8487611ba5565b51168151908152846020820152a16115f1565b60403660031901126102535760043561165581610242565b602435906001600160401b0382116102535761167861001c923690600401610878565b9161168e60018060a01b03603354163314611a71565b34906124b2565b34610253576116a3366106ef565b6116b860018060a01b03603354163314611a71565b6116c58251825114611b59565b5f5b825181101561001c5760019061172b6001600160a01b036116e88386611ba5565b51166001600160e01b03196116fd8488611ba5565b51165f5260a060205260405f209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b016116c7565b346102535761173f366110b8565b61175460018060a01b03603354163314611a71565b5f5b815181101561001c5760019061177e6001600160a01b036117778386611ba5565b5116612c2a565b611789575b01611756565b7f6df0471095ad1292c74e0f3615a3b6927ee7b5b7e925423a38cb8c23625ca07d6040838060a01b036117bc8487611ba5565b511681519081525f6020820152a1611783565b34610253576117dd366114e4565b6117f260018060a01b03603354163314611a71565b5f5b81811061182d57507fd045926746dab8a5acf225487f413b986460165cf50f6052689a2e471198e0599161156c60405192839283612147565b8061185461183e6001938587611b44565b3561184881610242565b838060a01b0316612cac565b50016117f4565b34610253575f3660031901126102535760206040515f198152f35b34610253575f366003190112610253576065546118928161065f565b906118a060405192836103b2565b8082526118af601f199161065f565b013660208301375f5b81518110156118ec57806118cd600192612632565b838060a01b0391549060031b1c166118e58285611ba5565b52016118b8565b6040518061038484826102d8565b346102535760203660031901126102535760043561191781610242565b60018060a01b03165f5260a2602052602060405f20541515604051908152f35b34610253575f366003190112610253576020606554604051908152f35b34610253575f602036600319011261025357600435611981610e64335f52606660205260405f2054151590565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316803b15610253575f90600460405180948193630d0e30db60e41b83525af1801561065a576119d7575080f35b61001c91505f906103b2565b3461025357602036600319011261025357600435611a0081610242565b611a1560018060a01b03603354163314611a71565b6001600160a01b03811615610cab5761001c906125ea565b3461025357602036600319011261025357600435611a4a81610676565b63ffffffff60e01b165f52609f602052602060018060a01b0360405f205416604051908152f35b15611a7857565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b90611b159160018060a01b03609a54169060405160208101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c8152611b0c605c826103b2565b5190209061229c565b611b25576001600160e01b031990565b630b135d3f60e11b90565b634e487b7160e01b5f52603260045260245ffd5b9190811015611b545760051b0190565b611b30565b15611b6057565b60405162461bcd60e51b815260206004820152601860248201527f4578656375746f723a20696e76616c6964206c656e67746800000000000000006044820152606490fd5b8051821015611b545760209160051b010190565b15611bc057565b60405162461bcd60e51b81526020600482015260146024820152734f6e6c7920666f7277617264657220616c6c6f7760601b6044820152606490fd5b356001600160801b03811681036102535790565b15611c1757565b60405162461bcd60e51b815260206004820152601160248201527014da59db985d1d5c9948195e1c1a5c9959607a1b6044820152606490fd5b3561077b81610242565b15611c6157565b60405162461bcd60e51b815260206004820152601060248201526f24b731b7b93932b1ba1039b2b73232b960811b6044820152606490fd5b903590601e198136030182121561025357018035906001600160401b03821161025357602001918160051b3603831361025357565b9035601e19823603018112156102535701602081359101916001600160401b03821161025357813603831361025357565b908060209392818452848401375f828201840152601f01601f1916010190565b82602082016020835252604081019260408160051b83010193835f91603e1982360301945b848410611d55575050505050505090565b90919293949596603f19828203018352873587811215610253576020611dac6001936040611d9d898596018035611d8b81610242565b888060a01b0316845285810190611cce565b91909281868201520191611cff565b990193019401929195949390611d44565b15611dc457565b606460405162461bcd60e51b815260206004820152602060248201527f5369676e617475726520646f6573206e6f74206d6174636820726571756573746044820152fd5b9190811015611b545760051b81013590603e1981360301821215610253570190565b15611e3157565b60405162461bcd60e51b8152602060048201526011602482015270139bdd081858d8d95c1d19590819195cdd607a1b6044820152606490fd5b903590601e198136030182121561025357018035906001600160401b0382116102535760200191813603831361025357565b356001600160e01b0319811692919060048210611eb7575050565b6001600160e01b031960049290920360031b82901b16169150565b15611ed957565b60405162461bcd60e51b815260206004820152600c60248201526b2737ba103932b3b4b9ba32b960a11b6044820152606490fd5b6040513d5f823e3d90fd5b15611f1f57565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b15611f8257565b60405162461bcd60e51b815260206004820152601660248201527531b0b63632b91034b9903737ba1037b832b930ba37b960511b6044820152606490fd5b15611fc757565b60405162461bcd60e51b815260206004820152601b60248201527f64657374696e6174696f6e206973206e6f7420617070726f76656400000000006044820152606490fd5b3d15612036573d9061201d826103d8565b9161202b60405193846103b2565b82523d5f602084013e565b606090565b1561204257565b60405162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8195d1a0819985a5b1959606a1b6044820152606490fd5b82602082016020835252604081019260408160051b83010193835f91605e1982360301945b8484106120b3575050505050505090565b90919293949596603f1982820301835287358781121561025357602061211460019360606121048985960180356120e981610242565b888060a01b0316845285810135868501526040810190611cce565b9190928160408201520191611cff565b9901930194019291959493906120a2565b9190811015611b545760051b81013590605e1981360301821215610253570190565b60208082528101839052604001915f5b8181106121645750505090565b909192602080600192863561217881610242565b848060a01b031681520194019101919091612157565b5f356001600160e01b03198116906004361061220f575b506001600160e01b0319165f90815260a060205260409020546001600160a01b031680156121da576121d89036906124c8565b565b60405162461bcd60e51b815260206004820152600d60248201526c2737ba103932b3b4b9ba3932b960991b6044820152606490fd5b6001600160e01b03193660040360031b81901b9091161690505f6121a5565b6005111561223857565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60409061077b93928152816020820152019061224c565b90816020910312610253575161077b81610676565b9190916122a982846127cf565b6122b28161222e565b159081612343575b5061233b575f9261098e6122e785946040519283916020830195630b135d3f60e11b875260248401612270565b51915afa6122f361200c565b8161232f575b81612302575090565b8051630b135d3f60e11b92506001600160e01b03199161232a91810160209081019101612287565b161490565b805160201491506122f9565b505050600190565b6001600160a01b0383811691161490505f6122ba565b90816020910312610253575190565b1561236f57565b60405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b61077b906040600b602082516123e984826103b2565b828152016a14995cd95c9d99519d5b9960aa1b81522061247660036020845161241286826103b2565b828152620322e360ec1b91019081522083517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208083019182526040830195909552948101909301524660808301523060a080840191909152825260c0826103b2565b519020612978565b61077b9161248b916127cf565b9190916129a9565b915f9291838093836040519384375af1156124aa57565b3d5f803e3d5ffd5b915f93918493836040519384375af1156124aa57565b5f91829160405190828483375af4156124aa57565b915f92918392826040519283375af4156124aa57565b156124fa57565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b6001600160a01b0381166125b157505f80809381935af161257261200c565b501561257a57565b60405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526121d8916105c382606481016105b5565b603380546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b606554811015611b545760655f5260205f2001905f90565b8054821015611b54575f5260205f2001905f90565b916126789183549060031b91821b915f19901b19161790565b9055565b5f81815260a260205260409020546126e05760a154600160401b8110156103d3576126c96126b382600185940160a15560a161264a565b819391549060031b91821b915f19901b19161790565b905560a154905f5260a260205260405f2055600190565b505f90565b5f818152609c60205260409020546126e057609b54600160401b8110156103d35761271c6126b3826001859401609b55609b61264a565b9055609b54905f52609c60205260405f2055600190565b5f818152606660205260409020546126e057606554600160401b8110156103d35761276a6126b3826001859401606555606561264a565b9055606554905f52606660205260405f2055600190565b5f818152609e60205260409020546126e057609d54600160401b8110156103d3576127b86126b3826001859401609d55609d61264a565b9055609d54905f52609e60205260405f2055600190565b8151604181036127f75750906108ef91602082015190606060408401519301515f1a90612d2e565b6040036128265760208201516040909201516108ef926001600160ff1b03821692909160ff1c601b0190612d2e565b50505f90600290565b90816020910312610253575180151581036102535790565b1561284e57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b60018060a01b031690604051906128be6040836103b2565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152823b15612933575f8161290e948260208195519301915af161290861200c565b90612dd7565b805180612919575050565b8160208061292e936121d8950101910161282f565b612847565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b9060405190602082019261190160f01b845260228301526042820152604281526129a36062826103b2565b51902090565b6129b28161222e565b806129ba5750565b6129c38161222e565b60018103612a155760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015280606481015b0390fd5b612a1e8161222e565b60028103612a6b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b612a748161222e565b60038103612acc5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b80612ad860049261222e565b14612adf57565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608490fd5b5f19810191908211612b3d57565b634e487b7160e01b5f52601160045260245ffd5b80548015612b78575f190190612b67828261264a565b8154905f199060031b1b1916905555565b634e487b7160e01b5f52603160045260245ffd5b5f818152609e6020526040902054908115612c24575f19820190828211612b3d575f92612be392612bbe609d54612b2f565b90808203612be9575b505050612bd4609d612b51565b609e905f5260205260405f2090565b55600190565b612bd4612c1591612c0b612c01612c1b95609d61264a565b90549060031b1c90565b928391609d61264a565b9061265f565b555f8080612bc7565b50505f90565b5f818152609c6020526040902054908115612c24575f19820190828211612b3d575f92612be392612c5c609b54612b2f565b90808203612c81575b505050612c72609b612b51565b609c905f5260205260405f2090565b612c72612c1591612c99612c01612ca395609b61264a565b928391609b61264a565b555f8080612c65565b5f81815260666020526040902054908115612c24575f19820190828211612b3d575f92612be392612cde606554612b2f565b90808203612d03575b505050612cf46065612b51565b6066905f5260205260405f2090565b612cf4612c1591612d1b612c01612d2595606561264a565b928391606561264a565b555f8080612ce7565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311612dcc5760ff16601b81141580612dc1575b612db6576020935f93604051938493608085019385528785015260408401526060830152838052039060015afa1561065a575f516001600160a01b03811615612dae57905f90565b505f90600190565b505050505f90600490565b50601c811415612d66565b505050505f90600390565b90919015612de3575090565b815115612df35750805190602001fd5b60405162461bcd60e51b815260206004820152908190612a1190602483019061224c56fea26469706673582212206923132e935b0fcc093d7d8f210767ef7b7fe916bd5fe8dc5a176db62f69117464736f6c634300081c0033
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Evaluating bytecode for exploitable paths**
[codex:1300326] 
[codex:1300326] I'm carefully analyzing the bytecode to identify any concrete, exploitable sequence that could lead to profit. I focus on function selectors, error messages, delegate calls, and signature verification patterns to detect vulnerabilities like uncontrolled calls or value transfers while ensuring findings are solid before reporting.
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import sha3
[codex:1300326] sig='isValidSignature(bytes32,bytes)'
[codex:1300326] print(hex(int.from_bytes(sha3.keccak_256(sig.encode()).digest()[:4],'big')))
[codex:1300326] print(hex(int.from_bytes(sha3.keccak_256('isValidSignature(bytes,bytes)'.encode()).digest()[:4],'big')))
[codex:1300326] print(hex(int.from_bytes(sha3.keccak_256('execute(bytes)'.encode()).digest()[:4],'big')))
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 exited 1 in 40ms:
[codex:1300326] Traceback (most recent call last):
[codex:1300326]   File "<stdin>", line 1, in <module>
[codex:1300326] ModuleNotFoundError: No module named 'sha3'
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Evaluating keccak-256 alternatives**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] try:
[codex:1300326]     from Crypto.Hash import keccak
[codex:1300326]     k=keccak.new(digest_bits=256)
[codex:1300326]     k.update(b'isValidSignature(bytes32,bytes)')
[codex:1300326]     print(k.hexdigest()[:8])
[codex:1300326]     k=keccak.new(digest_bits=256); k.update(b'isValidSignature(bytes,bytes)'); print(k.hexdigest()[:8])
[codex:1300326] except Exception as e:
[codex:1300326]     print('err',e)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 37ms:
[codex:1300326] 1626ba7e
[codex:1300326] 20c13b0b
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing function selectors and signatures**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] from Crypto.Hash import keccak
[codex:1300326] sigs=['execute(bytes)','execute(bytes,bytes)','execute(bytes,bytes32)','execute(address,bytes)','execute(address,uint256,bytes)','execute(address,uint256,bytes,uint8)','execute(address,uint256,bytes,uint8,bytes32,bytes32)','execute(address,bytes,bytes)','execute(address,bytes,bytes32)','execute(address,bytes,uint256)','execute(address,bytes,uint256,bytes)','executeBatch(bytes[])','executeBatch(address[],uint256[],bytes[])','forward(bytes)','forward(bytes32,bytes)','forward(address,bytes)','verify(bytes,bytes)','verify(bytes32,bytes)','validate(bytes,bytes)','validate(bytes32,bytes)','swap(bytes)','isValidSignature(bytes32,bytes)','executeTransaction(address,uint256,bytes)','executeTransaction(address,uint256,bytes,bytes32)']
[codex:1300326] for sig in sigs:
[codex:1300326]     k=keccak.new(digest_bits=256); k.update(sig.encode()); sel=k.hexdigest()[:8]
[codex:1300326]     if sel=='0b135d3f':
[codex:1300326]         print('match',sig)
[codex:1300326]         break
[codex:1300326] else:
[codex:1300326]     print('no match in list')
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 40ms:
[codex:1300326] no match in list
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing external call patterns and access controls**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0]
[codex:1300326] # Remove non-hex? Actually file has note; we need parse from runtime bytecode hex line after 'FILE: runtime_bytecode.hex' etc
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] # find positions of byte 0xf4
[codex:1300326] positions=[i for i in range(0,len(hexdata),2) if hexdata[i:i+2].lower()=='f4']
[codex:1300326] print('f4 count',len(positions))
[codex:1300326] print(positions[:20])
[codex:1300326] # also for f1 (CALL) and ff (SELFDESTRUCT)
[codex:1300326] for b in ['f1','f2','f4','ff']:
[codex:1300326]     pos=[i for i in range(0,len(hexdata),2) if hexdata[i:i+2].lower()==b]
[codex:1300326]     print(b,len(pos))
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 33ms:
[codex:1300326] f4 count 8
[codex:1300326] [5108, 5128, 9674, 12466, 18860, 18904, 23002, 23052]
[codex:1300326] f1 12
[codex:1300326] f2 6
[codex:1300326] f4 8
[codex:1300326] ff 71
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Planning disassembler for delegatecall analysis**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] from collections import defaultdict
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # opcode names
[codex:1300326] opnames={
[codex:1300326] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1300326] 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',
[codex:1300326] 0x20:'SHA3',
[codex:1300326] 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',
[codex:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326] 
[codex:1300326] # disassemble and store
[codex:1300326] instrs=[]
[codex:1300326] pc=0
[codex:1300326] while pc < len(code):
[codex:1300326]     op=code[pc]
[codex:1300326]     name=opnames.get(op,f'OP{op:02x}')
[codex:1300326]     if 0x60 <= op <= 0x7f:
[codex:1300326]         n=op-0x5f
[codex:1300326]         data=code[pc+1:pc+1+n]
[codex:1300326]         instrs.append((pc,name,data))
[codex:1300326]         pc += 1+n
[codex:1300326]     else:
[codex:1300326]         instrs.append((pc,name,None))
[codex:1300326]         pc += 1
[codex:1300326] 
[codex:1300326] # index by pc
[codex:1300326] idx={pc:i for i,(pc,_,_) in enumerate(instrs)}
[codex:1300326] 
[codex:1300326] # find delegatecall
[codex:1300326] for pc_i,(pc,name,data) in enumerate(instrs):
[codex:1300326]     if name=='DELEGATECALL':
[codex:1300326]         start=max(pc_i-8,0); end=min(pc_i+5,len(instrs))
[codex:1300326]         print('--- DELEGATECALL at',hex(pc))
[codex:1300326]         for j in range(start,end):
[codex:1300326]             pc2,name2,data2=instrs[j]
[codex:1300326]             if data2 is not None:
[codex:1300326]                 print(hex(pc2),name2,data2.hex())
[codex:1300326]             else:
[codex:1300326]                 print(hex(pc2),name2)
[codex:1300326] 
[codex:1300326] print('done')
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 34ms:
[codex:1300326] --- DELEGATECALL at 0x24d6
[codex:1300326] 0x24cd OP60 40
[codex:1300326] 0x24cf MLOAD
[codex:1300326] 0x24d0 OP90
[codex:1300326] 0x24d1 OP82
[codex:1300326] 0x24d2 OP84
[codex:1300326] 0x24d3 OP83
[codex:1300326] 0x24d4 CALLDATACOPY
[codex:1300326] 0x24d5 GAS
[codex:1300326] 0x24d6 DELEGATECALL
[codex:1300326] 0x24d7 ISZERO
[codex:1300326] 0x24d8 OP61 24aa
[codex:1300326] 0x24db JUMPI
[codex:1300326] 0x24dc JUMP
[codex:1300326] --- DELEGATECALL at 0x24ec
[codex:1300326] 0x24e3 OP92
[codex:1300326] 0x24e4 OP82
[codex:1300326] 0x24e5 OP60 40
[codex:1300326] 0x24e7 MLOAD
[codex:1300326] 0x24e8 OP92
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing delegatecall occurrences and patterns**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # simple disassembler
[codex:1300326] opnames={
[codex:1300326] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1300326] 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',
[codex:1300326] 0x20:'SHA3',
[codex:1300326] 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',
[codex:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326] 
[codex:1300326] def disasm(start,end):
[codex:1300326]     pc=start
[codex:1300326]     while pc<end:
[codex:1300326]         op=code[pc]
[codex:1300326]         name=opnames.get(op,f'OP{op:02x}')
[codex:1300326]         if 0x60<=op<=0x7f:
[codex:1300326]             n=op-0x5f
[codex:1300326]             data=code[pc+1:pc+1+n]
[codex:1300326]             print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326]             pc+=1+n
[codex:1300326]         else:
[codex:1300326]             print(f\"{pc:04x} {name}\")
[codex:1300326]             pc+=1
[codex:1300326] 
[codex:1300326] # find region around 0x24c0-0x2500
[codex:1300326] start=0x24b0; end=0x2505
[codex:1300326] print('disasm',hex(start),hex(end))
[codex:1300326] disasm(start,end)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 24ms:
[codex:1300326] disasm 0x24b0 0x2505
[codex:1300326] 24b0 OP5f
[codex:1300326] 24b1 REVERT
[codex:1300326] 24b2 JUMPDEST
[codex:1300326] 24b3 OP91
[codex:1300326] 24b4 OP5f
[codex:1300326] 24b5 OP93
[codex:1300326] 24b6 OP91
[codex:1300326] 24b7 OP84
[codex:1300326] 24b8 OP93
[codex:1300326] 24b9 OP83
[codex:1300326] 24ba OP60 0x40
[codex:1300326] 24bc MLOAD
[codex:1300326] 24bd OP93
[codex:1300326] 24be OP84
[codex:1300326] 24bf CALLDATACOPY
[codex:1300326] 24c0 GAS
[codex:1300326] 24c1 CALL
[codex:1300326] 24c2 ISZERO
[codex:1300326] 24c3 OP61 0x24aa
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing delegatecall usage and permissions**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler
[codex:1300326] opnames={
[codex:1300326] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1300326] 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',
[codex:1300326] 0x20:'SHA3',
[codex:1300326] 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',
[codex:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326] 
[codex:1300326] instrs=[]
[codex:1300326] pc=0
[codex:1300326] while pc < len(code):
[codex:1300326]     op=code[pc]
[codex:1300326]     name=opnames.get(op,f'OP{op:02x}')
[codex:1300326]     if 0x60<=op<=0x7f:
[codex:1300326]         n=op-0x5f
[codex:1300326]         data=code[pc+1:pc+1+n]
[codex:1300326]         instrs.append((pc,name,data))
[codex:1300326]         pc += 1+n
[codex:1300326]     else:
[codex:1300326]         instrs.append((pc,name,None))
[codex:1300326]         pc += 1
[codex:1300326] 
[codex:1300326] # find CALL instructions
[codex:1300326] for i,(pc,name,data) in enumerate(instrs):
[codex:1300326]     if name=='CALL':
[codex:1300326]         print('--- CALL at',hex(pc))
[codex:1300326]         start=max(i-8,0); end=min(i+6,len(instrs))
[codex:1300326]         for j in range(start,end):
[codex:1300326]             pc2,name2,data2=instrs[j]
[codex:1300326]             if data2 is not None:
[codex:1300326]                 print(hex(pc2),name2,data2.hex())
[codex:1300326]             else:
[codex:1300326]                 print(hex(pc2),name2)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 31ms:
[codex:1300326] --- CALL at 0xbcb
[codex:1300326] 0xbc1 OP81
[codex:1300326] 0xbc2 OP81
[codex:1300326] 0xbc3 ISZERO
[codex:1300326] 0xbc4 OP61 0bd2
[codex:1300326] 0xbc7 JUMPI
[codex:1300326] 0xbc8 JUMPDEST
[codex:1300326] 0xbc9 COINBASE
[codex:1300326] 0xbca OP90
[codex:1300326] 0xbcb CALL
[codex:1300326] 0xbcc ISZERO
[codex:1300326] 0xbcd OP61 065a
[codex:1300326] 0xbd0 JUMPI
[codex:1300326] 0xbd1 STOP
[codex:1300326] 0xbd2 JUMPDEST
[codex:1300326] --- CALL at 0xf0a
[codex:1300326] 0xf01 OP90
[codex:1300326] 0xf02 OP60 24
[codex:1300326] 0xf04 OP90
[codex:1300326] 0xf05 OP82
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing CALL opcodes and suspicious COINBASE usage**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler
[codex:1300326] opnames={
[codex:1300326] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1300326] 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',
[codex:1300326] 0x20:'SHA3',
[codex:1300326] 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',
[codex:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326] 
[codex:1300326] def disasm(start,end):
[codex:1300326]     pc=start
[codex:1300326]     while pc<end:
[codex:1300326]         op=code[pc]
[codex:1300326]         name=opnames.get(op,f'OP{op:02x}')
[codex:1300326]         if 0x60<=op<=0x7f:
[codex:1300326]             n=op-0x5f
[codex:1300326]             data=code[pc+1:pc+1+n]
[codex:1300326]             print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326]             pc+=1+n
[codex:1300326]         else:
[codex:1300326]             print(f\"{pc:04x} {name}\")
[codex:1300326]             pc+=1
[codex:1300326] 
[codex:1300326] print('region around 0x0b90')
[codex:1300326] disasm(0x0b80,0x0be5)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 23ms:
[codex:1300326] region around 0x0b90
[codex:1300326] 0b80 OP88
[codex:1300326] 0b81 OP8b
[codex:1300326] 0b82 OP61 0x1c99
[codex:1300326] 0b85 JUMP
[codex:1300326] 0b86 JUMPDEST
[codex:1300326] 0b87 OP91
[codex:1300326] 0b88 OP61 0x2493
[codex:1300326] 0b8b JUMP
[codex:1300326] 0b8c JUMPDEST
[codex:1300326] 0b8d OP61 0x0b23
[codex:1300326] 0b90 JUMP
[codex:1300326] 0b91 JUMPDEST
[codex:1300326] 0b92 OP82
[codex:1300326] 0b93 OP60 0x01
[codex:1300326] 0b95 OP60 0x01
[codex:1300326] 0b97 OP60 0x80
[codex:1300326] 0b99 SHL
[codex:1300326] 0b9a SUB
[codex:1300326] 0b9b OP61 0x0ba3
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing potential miner tip function**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler
[codex:1300326] opnames={
[codex:1300326] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1300326] 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',
[codex:1300326] 0x20:'SHA3',
[codex:1300326] 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',
[codex:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326] 
[codex:1300326] def disasm(start,end):
[codex:1300326]     pc=start
[codex:1300326]     while pc<end:
[codex:1300326]         op=code[pc]
[codex:1300326]         name=opnames.get(op,f'OP{op:02x}')
[codex:1300326]         if 0x60<=op<=0x7f:
[codex:1300326]             n=op-0x5f
[codex:1300326]             data=code[pc+1:pc+1+n]
[codex:1300326]             print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326]             pc+=1+n
[codex:1300326]         else:
[codex:1300326]             print(f\"{pc:04x} {name}\")
[codex:1300326]             pc+=1
[codex:1300326] 
[codex:1300326] print('region around 0x0e90-0x0f90')
[codex:1300326] disasm(0x0e90,0x0f90)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 46ms:
[codex:1300326] region around 0x0e90-0x0f90
[codex:1300326] 0e90 ADD
[codex:1300326] 0e91 OP60 0xa0
[codex:1300326] 0e93 SHL
[codex:1300326] 0e94 SUB
[codex:1300326] 0e95 OP82
[codex:1300326] 0e96 AND
[codex:1300326] 0e97 OP91
[codex:1300326] 0e98 OP83
[codex:1300326] 0e99 OP90
[codex:1300326] 0e9a OP73 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
[codex:1300326] 0eaf OP84
[codex:1300326] 0eb0 SUB
[codex:1300326] 0eb1 OP61 0x0f8f
[codex:1300326] 0eb4 JUMPI
[codex:1300326] 0eb5 POP
[codex:1300326] 0eb6 POP
[codex:1300326] 0eb7 OP7f 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
[codex:1300326] 0ed8 OP60 0x01
[codex:1300326] 0eda OP60 0x01
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing ETH withdrawal logic**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler
[codex:1300326] opnames={
[codex:1300326] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1300326] 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',
[codex:1300326] 0x20:'SHA3',
[codex:1300326] 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',
[codex:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326] 
[codex:1300326] def disasm(start,end):
[codex:1300326]     pc=start
[codex:1300326]     while pc<end:
[codex:1300326]         op=code[pc]
[codex:1300326]         name=opnames.get(op,f'OP{op:02x}')
[codex:1300326]         if 0x60<=op<=0x7f:
[codex:1300326]             n=op-0x5f
[codex:1300326]             data=code[pc+1:pc+1+n]
[codex:1300326]             print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326]             pc+=1+n
[codex:1300326]         else:
[codex:1300326]             print(f\"{pc:04x} {name}\")
[codex:1300326]             pc+=1
[codex:1300326] 
[codex:1300326] print('region around 0x0e20-0x0ff0')
[codex:1300326] disasm(0x0e20,0x0ff0)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 23ms:
[codex:1300326] region around 0x0e20-0x0ff0
[codex:1300326] 0e20 CALLVALUE
[codex:1300326] 0e21 OP61 0x0253
[codex:1300326] 0e24 JUMPI
[codex:1300326] 0e25 OP60 0x60
[codex:1300326] 0e27 CALLDATASIZE
[codex:1300326] 0e28 OP60 0x03
[codex:1300326] 0e2a NOT
[codex:1300326] 0e2b ADD
[codex:1300326] 0e2c SLT
[codex:1300326] 0e2d OP61 0x0253
[codex:1300326] 0e30 JUMPI
[codex:1300326] 0e31 OP60 0x04
[codex:1300326] 0e33 CALLDATALOAD
[codex:1300326] 0e34 OP61 0x0e3c
[codex:1300326] 0e37 OP81
[codex:1300326] 0e38 OP61 0x0242
[codex:1300326] 0e3b JUMP
[codex:1300326] 0e3c JUMPDEST
[codex:1300326] 0e3d OP60 0x24
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing authorization and transfer functions**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] print('a9059cbb occurrences',hexdata.lower().count('a9059cbb'))
[codex:1300326] print('23b872dd occurrences',hexdata.lower().count('23b872dd'))
[codex:1300326] print('095ea7b3 occurrences',hexdata.lower().count('095ea7b3'))
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 28ms:
[codex:1300326] a9059cbb occurrences 1
[codex:1300326] 23b872dd occurrences 0
[codex:1300326] 095ea7b3 occurrences 1
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing token transfer methods**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler
[codex:1300326] opnames={
[codex:1300326] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1300326] 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',
[codex:1300326] 0x20:'SHA3',
[codex:1300326] 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',
[codex:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326] 
[codex:1300326] def disasm(start,end):
[codex:1300326]     pc=start
[codex:1300326]     while pc<end:
[codex:1300326]         op=code[pc]
[codex:1300326]         name=opnames.get(op,f'OP{op:02x}')
[codex:1300326]         if 0x60<=op<=0x7f:
[codex:1300326]             n=op-0x5f
[codex:1300326]             data=code[pc+1:pc+1+n]
[codex:1300326]             print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326]             pc+=1+n
[codex:1300326]         else:
[codex:1300326]             print(f\"{pc:04x} {name}\")
[codex:1300326]             pc+=1
[codex:1300326] 
[codex:1300326] print('region around 0x0500')
[codex:1300326] disasm(0x0500,0x05f0)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 31ms:
[codex:1300326] region around 0x0500
[codex:1300326] 0500 MUL
[codex:1300326] 0501 MSTORE8
[codex:1300326] 0502 JUMPI
[codex:1300326] 0503 OP60 0x04
[codex:1300326] 0505 CALLDATALOAD
[codex:1300326] 0506 OP60 0x01
[codex:1300326] 0508 OP60 0x01
[codex:1300326] 050a OP60 0x40
[codex:1300326] 050c SHL
[codex:1300326] 050d SUB
[codex:1300326] 050e OP81
[codex:1300326] 050f GT
[codex:1300326] 0510 OP61 0x0253
[codex:1300326] 0513 JUMPI
[codex:1300326] 0514 OP61 0x0521
[codex:1300326] 0517 OP90
[codex:1300326] 0518 CALLDATASIZE
[codex:1300326] 0519 OP90
[codex:1300326] 051a OP60 0x04
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing function selectors and approvals**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] from Crypto.Hash import keccak
[codex:1300326] sig='balanceOf(address)'
[codex:1300326] k=keccak.new(digest_bits=256);k.update(sig.encode());print('balanceOf',k.hexdigest()[:8])
[codex:1300326] for sig in ['totalSupply()','decimals()','symbol()','name()','allowance(address,address)','increaseAllowance(address,uint256)','decreaseAllowance(address,uint256)','permit(address,address,uint256,uint256,uint8,bytes32,bytes32)','nonces(address)','DOMAIN_SEPARATOR()']:
[codex:1300326]     k=keccak.new(digest_bits=256);k.update(sig.encode());print(sig,k.hexdigest()[:8])
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 52ms:
[codex:1300326] balanceOf 70a08231
[codex:1300326] totalSupply() 18160ddd
[codex:1300326] decimals() 313ce567
[codex:1300326] symbol() 95d89b41
[codex:1300326] name() 06fdde03
[codex:1300326] allowance(address,address) dd62ed3e
[codex:1300326] increaseAllowance(address,uint256) 39509351
[codex:1300326] decreaseAllowance(address,uint256) a457c2d7
[codex:1300326] permit(address,address,uint256,uint256,uint8,bytes32,bytes32) d505accf
[codex:1300326] nonces(address) 7ecebe00
[codex:1300326] DOMAIN_SEPARATOR() 3644e515
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing function access and signature checks**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassemble and find STATICCALL
[codex:1300326] opnames={0xfa:'STATICCALL'}
[codex:1300326] # parse instructions quickly to find staticcall offsets
[codex:1300326] pc=0
[codex:1300326] instrs=[]
[codex:1300326] while pc < len(code):
[codex:1300326]     op=code[pc]
[codex:1300326]     if 0x60<=op<=0x7f:
[codex:1300326]         n=op-0x5f
[codex:1300326]         pc += 1+n
[codex:1300326]     else:
[codex:1300326]         if op==0xfa:
[codex:1300326]             instrs.append(pc)
[codex:1300326]         pc+=1
[codex:1300326] print('STATICCALLs',len(instrs),instrs)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 26ms:
[codex:1300326] STATICCALLs 3 [1544, 8939, 11667]
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Disassembling around staticcall addresses**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler mapping
[codex:1300326] opnames={
[codex:1300326] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1300326] 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',
[codex:1300326] 0x20:'SHA3',
[codex:1300326] 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',
[codex:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326] 
[codex:1300326] def disasm(start,end):
[codex:1300326]     pc=start
[codex:1300326]     while pc<end:
[codex:1300326]         op=code[pc]
[codex:1300326]         name=opnames.get(op,f'OP{op:02x}')
[codex:1300326]         if 0x60<=op<=0x7f:
[codex:1300326]             n=op-0x5f
[codex:1300326]             data=code[pc+1:pc+1+n]
[codex:1300326]             print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326]             pc+=1+n
[codex:1300326]         else:
[codex:1300326]             print(f\"{pc:04x} {name}\")
[codex:1300326]             pc+=1
[codex:1300326] 
[codex:1300326] for start in [0x0600,0x22c0,0x2d00]:
[codex:1300326]     print('\\nregion',hex(start))
[codex:1300326]     disasm(start,start+0x80)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 27ms:
[codex:1300326] 
[codex:1300326] region 0x600
[codex:1300326] 0600 ADD
[codex:1300326] 0601 OP60 0xa0
[codex:1300326] 0603 SHL
[codex:1300326] 0604 SUB
[codex:1300326] 0605 OP85
[codex:1300326] 0606 AND
[codex:1300326] 0607 GAS
[codex:1300326] 0608 STATICCALL
[codex:1300326] 0609 OP90
[codex:1300326] 060a OP81
[codex:1300326] 060b ISZERO
[codex:1300326] 060c OP61 0x065a
[codex:1300326] 060f JUMPI
[codex:1300326] 0610 OP61 0x0585
[codex:1300326] 0613 OP61 0x05c8
[codex:1300326] 0616 OP92
[codex:1300326] 0617 OP60 0x01
[codex:1300326] 0619 OP95
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing signature verification calls**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassemble and find actual SELFDESTRUCT opcodes (0xff not in push data)
[codex:1300326] opcodes=[]
[codex:1300326] pc=0
[codex:1300326] while pc < len(code):
[codex:1300326]     op=code[pc]
[codex:1300326]     if 0x60<=op<=0x7f:
[codex:1300326]         pc += 1 + (op-0x5f)
[codex:1300326]     else:
[codex:1300326]         if op==0xff:
[codex:1300326]             opcodes.append(pc)
[codex:1300326]         pc+=1
[codex:1300326] print('SELFDESTRUCT opcodes',opcodes)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 25ms:
[codex:1300326] SELFDESTRUCT opcodes []
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Investigating CALLCODE usage**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # find actual CALLCODE opcodes (0xf2)
[codex:1300326] pcs=[]
[codex:1300326] pc=0
[codex:1300326] while pc < len(code):
[codex:1300326]     op=code[pc]
[codex:1300326]     if 0x60<=op<=0x7f:
[codex:1300326]         pc+=1+(op-0x5f)
[codex:1300326]     else:
[codex:1300326]         if op==0xf2:
[codex:1300326]             pcs.append(pc)
[codex:1300326]         pc+=1
[codex:1300326] print('CALLCODE opcodes',pcs)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 31ms:
[codex:1300326] CALLCODE opcodes []
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing storage slot access and ownership checks**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # parse instructions with immediate data
[codex:1300326] instrs=[]
[codex:1300326] pc=0
[codex:1300326] while pc < len(code):
[codex:1300326]     op=code[pc]
[codex:1300326]     if 0x60<=op<=0x7f:
[codex:1300326]         n=op-0x5f
[codex:1300326]         data=code[pc+1:pc+1+n]
[codex:1300326]         instrs.append((pc,op,data))
[codex:1300326]         pc+=1+n
[codex:1300326]     else:
[codex:1300326]         instrs.append((pc,op,None))
[codex:1300326]         pc+=1
[codex:1300326] 
[codex:1300326] # find push const then SSTORE/SLOAD
[codex:1300326] slots_sstore=set(); slots_sload=set();
[codex:1300326] for i,(pc,op,data) in enumerate(instrs[:-1]):
[codex:1300326]     if 0x60<=op<=0x7f and data is not None:
[codex:1300326]         # check next non-push? Actually immediate next instruction
[codex:1300326]         nxt=instrs[i+1]
[codex:1300326]         if nxt[1]==0x55: # SSTORE
[codex:1300326]             val=int.from_bytes(data,'big')
[codex:1300326]             slots_sstore.add(val)
[codex:1300326]         if nxt[1]==0x54:
[codex:1300326]             val=int.from_bytes(data,'big')
[codex:1300326]             slots_sload.add(val)
[codex:1300326] 
[codex:1300326] print('const sstore slots',sorted(slots_sstore)[:20],'... total',len(slots_sstore))
[codex:1300326] print('const sload slots',sorted(slots_sload)[:20],'... total',len(slots_sload))
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 29ms:
[codex:1300326] const sstore slots [101, 155, 157, 161] ... total 4
[codex:1300326] const sload slots [51, 101, 154, 155, 157, 161] ... total 6
[codex:1300326] 
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Analyzing potential contract vulnerabilities**
[codex:1300326] thinking
[codex:1300326] **Investigating CALL patterns and function selectors**
[codex:1300326] 
[codex:1300326] I’m looking into whether any contract functions enable calls with value using user inputs, focusing on identifying `execute`-style functions by analyzing known selectors and matching them against the dispatch table. I’ll try computing candidate selectors for common function names to narrow down what functions might exist.
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] from Crypto.Hash import keccak
[codex:1300326] 
[codex:1300326] def sel(sig):
[codex:1300326]     k=keccak.new(digest_bits=256); k.update(sig.encode());
[codex:1300326]     return k.hexdigest()[:8]
[codex:1300326] 
[codex:1300326] candidates=[
[codex:1300326] 'execute(bytes)','execute(bytes,bytes)','execute(bytes32,bytes)','execute(address,bytes)','execute(address,uint256,bytes)','execute(address,uint256,bytes,bytes)','execute(address,uint256,bytes,uint8,bytes32,bytes32)','execute((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'executeRequest((address,address,uint256,uint256,bytes),bytes)','executeRequest((address,address,uint256,uint256,address,bytes),bytes)',
[codex:1300326] 'executeCalls(bytes)','executeCall(address,bytes)','executeTransaction(address,uint256,bytes)',
[codex:1300326] 'executeTransaction(address,uint256,bytes,uint8,bytes32,bytes32)','forward(bytes)','forward(bytes,bytes)',
[codex:1300326] 'forward(address,bytes)','forward(address,uint256,bytes)',
[codex:1300326] 'fulfill((address,address,uint256,uint256,bytes),bytes)','fill((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'route((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'relay((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'send((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'swap((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'executeSwap(address,address,uint256,uint256,bytes)',
[codex:1300326] 'execute(bytes32,uint256,address,address,address,bytes)',
[codex:1300326] 'execute((address,address,uint256,uint256,bytes32),bytes)',
[codex:1300326] 'execute((address,address,uint256,uint256,address,bytes32),bytes)',
[codex:1300326] 'execute((address,address,uint256,uint256,address,address,bytes32),bytes)',
[codex:1300326] 'execute((address,address,uint256,uint256,address,address,bytes),bytes)'
[codex:1300326] ]
[codex:1300326] 
[codex:1300326] selectors={sig:sel(sig) for sig in candidates}
[codex:1300326] # print those matching known list
[codex:1300326] known=['0eb9142f','14b7c124','1626ba7e','26142335','34efb1e9','388bb62c','3fc8cef3','4cf3fe9c','567aa1ba','61acbdcb','61bb41a7','69328dec','6d70f7ae','715018a6','7d6a4568','7dadbe8c','8594ac40','8da5cb5b','95ccea67','9e165a78','9f273fbc','a07aea1c','a908183d','ab06e403','af38bf11','b9f9fc41','d365a377','d49d5181','d911c632','e3fa62d6','ecb9e11a','f00baf3e','f2fde38b','fee1303c']
[codex:1300326] for sig,s in selectors.items():
[codex:1300326]     if s in known:
[codex:1300326]         print(s, sig)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 44ms:
[codex:1300326] 
[codex:1300326] 
[codex:1300326] thinking
[codex:1300326] **Summarizing no exploit findings**
[codex:1300326] codex
[codex:1300326] {"no_findings":true,"summary":"Analyzed the runtime bytecode in BYTECODE_BUNDLE.txt; external calls, token/ETH transfers, and delegatecalls appear gated by owner/whitelist/signature checks, and there is no observable selfdestruct or unprotected upgrade path. I did not find a concrete, exploitable value‑extraction path from bytecode alone.","findings":[]}
[codex:1300326] tokens used
[codex:1300326] 88,716
[codex:1300326] {"no_findings":true,"summary":"Analyzed the runtime bytecode in BYTECODE_BUNDLE.txt; external calls, token/ETH transfers, and delegatecalls appear gated by owner/whitelist/signature checks, and there is no observable selfdestruct or unprotected upgrade path. I did not find a concrete, exploitable value‑extraction path from bytecode alone.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-31T22:08:31.428047+00:00",
        "returncode": 0
    },
    "summary": "Analyzed the runtime bytecode in BYTECODE_BUNDLE.txt; external calls, token/ETH transfers, and delegatecalls appear gated by owner/whitelist/signature checks, and there is no observable selfdestruct or unprotected upgrade path. I did not find a concrete, exploitable value\u2011extraction path from bytecode alone.",
    "raw_final": {
        "summary": "Analyzed the runtime bytecode in BYTECODE_BUNDLE.txt; external calls, token/ETH transfers, and delegatecalls appear gated by owner/whitelist/signature checks, and there is no observable selfdestruct or unprotected upgrade path. I did not find a concrete, exploitable value\u2011extraction path from bytecode alone.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
2
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
11
EXT*/BALANCE
5
Total opcodes
7221
Flags
delegatecall_present heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: ISZERO
0000000a: PUSH2 0x001e
0000000d: JUMPI
0000000e: JUMPDEST
0000000f: CALLDATASIZE
00000010: ISZERO
00000011: PUSH2 0x001c
00000014: JUMPI
00000015: PUSH2 0x001c
00000018: PUSH2 0x218e
0000001b: JUMP
0000001c: JUMPDEST
0000001d: STOP
0000001e: JUMPDEST
0000001f: PUSH0
00000020: CALLDATALOAD
00000021: PUSH1 0xe0
00000023: SHR
00000024: DUP1
00000025: PUSH4 0x0eb9142f
0000002a: EQ
0000002b: PUSH2 0x023d
0000002e: JUMPI
0000002f: DUP1
00000030: PUSH4 0x14b7c124
00000035: EQ
00000036: PUSH2 0x0238
00000039: JUMPI
0000003a: DUP1
0000003b: PUSH4 0x1626ba7e
00000040: EQ
00000041: PUSH2 0x0233
00000044: JUMPI
00000045: DUP1
00000046: PUSH4 0x26142335
0000004b: EQ
0000004c: PUSH2 0x022e
0000004f: JUMPI
00000050: DUP1
00000051: PUSH4 0x34efb1e9
00000056: EQ
00000057: PUSH2 0x0229
0000005a: JUMPI
0000005b: DUP1
0000005c: PUSH4 0x388bb62c
00000061: EQ
00000062: PUSH2 0x0224
00000065: JUMPI
00000066: DUP1
00000067: PUSH4 0x3fc8cef3
0000006c: EQ
0000006d: PUSH2 0x021f
00000070: JUMPI
00000071: DUP1
00000072: PUSH4 0x4cf3fe9c
00000077: EQ
00000078: PUSH2 0x021a
0000007b: JUMPI
0000007c: DUP1
0000007d: PUSH4 0x567aa1ba
00000082: EQ
00000083: PUSH2 0x0215
00000086: JUMPI
00000087: DUP1
00000088: PUSH4 0x61acbdcb
0000008d: EQ
0000008e: PUSH2 0x0210
00000091: JUMPI
00000092: DUP1
00000093: PUSH4 0x61bb41a7
00000098: EQ
00000099: PUSH2 0x020b
0000009c: JUMPI
0000009d: DUP1
0000009e: PUSH4 0x69328dec
000000a3: EQ
000000a4: PUSH2 0x0206
000000a7: JUMPI
000000a8: DUP1
000000a9: PUSH4 0x6d70f7ae
000000ae: EQ
000000af: PUSH2 0x0201
000000b2: JUMPI
000000b3: DUP1
000000b4: PUSH4 0x715018a6
000000b9: EQ
000000ba: PUSH2 0x01fc
000000bd: JUMPI
000000be: DUP1
000000bf: PUSH4 0x7d6a4568
000000c4: EQ
000000c5: PUSH2 0x01f7
000000c8: JUMPI
000000c9: DUP1
000000ca: PUSH4 0x7dadbe8c
000000cf: EQ
000000d0: PUSH2 0x01f2
000000d3: JUMPI
000000d4: DUP1
000000d5: PUSH4 0x8594ac40
000000da: EQ
000000db: PUSH2 0x01ed
000000de: JUMPI
000000df: DUP1
000000e0: PUSH4 0x8da5cb5b
000000e5: EQ
000000e6: PUSH2 0x01e8
000000e9: JUMPI
000000ea: DUP1
000000eb: PUSH4 0x95ccea67
000000f0: EQ
000000f1: PUSH2 0x01e3
000000f4: JUMPI
000000f5: DUP1
000000f6: PUSH4 0x9e165a78
000000fb: EQ
000000fc: PUSH2 0x01de
000000ff: JUMPI
00000100: DUP1
00000101: PUSH4 0x9f273fbc
00000106: EQ
00000107: PUSH2 0x01d9
0000010a: JUMPI
0000010b: DUP1
0000010c: PUSH4 0xa07aea1c
00000111: EQ
00000112: PUSH2 0x01d4
00000115: JUMPI
00000116: DUP1
00000117: PUSH4 0xa908183d
0000011c: EQ
0000011d: PUSH2 0x01cf
00000120: JUMPI
00000121: DUP1
00000122: PUSH4 0xab06e403
00000127: EQ
00000128: PUSH2 0x01ca
0000012b: JUMPI
0000012c: DUP1
0000012d: PUSH4 0xaf38bf11
00000132: EQ
00000133: PUSH2 0x01c5
00000136: JUMPI
00000137: DUP1
00000138: PUSH4 0xb9f9fc41
0000013d: EQ
0000013e: PUSH2 0x01c0
00000141: JUMPI
00000142: DUP1
00000143: PUSH4 0xd365a377
00000148: EQ
00000149: PUSH2 0x01bb
0000014c: JUMPI
0000014d: DUP1
0000014e: PUSH4 0xd49d5181
00000153: EQ
00000154: PUSH2 0x01b6
00000157: JUMPI
00000158: DUP1
00000159: PUSH4 0xd911c632
0000015e: EQ
0000015f: PUSH2 0x01b1
00000162: JUMPI
00000163: DUP1
00000164: PUSH4 0xe3fa62d6
00000169: EQ
0000016a: PUSH2 0x01ac
0000016d: JUMPI
0000016e: DUP1
0000016f: PUSH4 0xecb9e11a
00000174: EQ
00000175: PUSH2 0x01a7
00000178: JUMPI
00000179: DUP1
0000017a: PUSH4 0xf00baf3e
0000017f: EQ
00000180: PUSH2 0x01a2
00000183: JUMPI
00000184: DUP1
00000185: PUSH4 0xf2fde38b
0000018a: EQ
0000018b: PUSH2 0x019d
0000018e: JUMPI
0000018f: PUSH4 0xfee1303c
00000194: SUB
00000195: PUSH2 0x000e
00000198: JUMPI
00000199: PUSH2 0x1a2d
0000019c: JUMP
0000019d: JUMPDEST
0000019e: PUSH2 0x19e3
000001a1: JUMP
000001a2: JUMPDEST
000001a3: PUSH2 0x1954
000001a6: JUMP
000001a7: JUMPDEST
000001a8: PUSH2 0x1937
000001ab: JUMP
000001ac: JUMPDEST
000001ad: PUSH2 0x18fa
000001b0: JUMP
000001b1: JUMPDEST
000001b2: PUSH2 0x1876
000001b5: JUMP
000001b6: JUMPDEST
000001b7: PUSH2 0x185b
000001ba: JUMP
000001bb: JUMPDEST
000001bc: PUSH2 0x17cf
000001bf: JUMP
000001c0: JUMPDEST
000001c1: PUSH2 0x1731
000001c4: JUMP
000001c5: JUMPDEST
000001c6: PUSH2 0x1695
000001c9: JUMP
000001ca: JUMPDEST
000001cb: PUSH2 0x163d
000001ce: JUMP
000001cf: JUMPDEST
000001d0: PUSH2 0x159f
000001d3: JUMP
000001d4: JUMPDEST
000001d5: PUSH2 0x150e
000001d8: JUMP
000001d9: JUMPDEST
000001da: PUSH2 0x1446
000001dd: JUMP
000001de: JUMPDEST
000001df: PUSH2 0x13d2
000001e2: JUMP
000001e3: JUMPDEST
000001e4: PUSH2 0x138f
000001e7: JUMP
000001e8: JUMPDEST
000001e9: PUSH2 0x1367
000001ec: JUMP
000001ed: JUMPDEST
000001ee: PUSH2 0x1180
000001f1: JUMP
000001f2: JUMPDEST
000001f3: PUSH2 0x10e2
000001f6: JUMP
000001f7: JUMPDEST
000001f8: PUSH2 0x1074
000001fb: JUMP
000001fc: JUMPDEST
000001fd: PUSH2 0x100c
00000200: JUMP
00000201: JUMPDEST
00000202: PUSH2 0x0fc4
00000205: JUMP
00000206: JUMPDEST
00000207: PUSH2 0x0e1f
0000020a: JUMP
0000020b: JUMPDEST
0000020c: PUSH2 0x0da2
0000020f: JUMP
00000210: JUMPDEST
00000211: PUSH2 0x0d7a
00000214: JUMP
00000215: JUMPDEST
00000216: PUSH2 0x0bdb
00000219: JUMP
0000021a: JUMPDEST
0000021b: PUSH2 0x08f3
0000021e: JUMP
0000021f: JUMPDEST
00000220: PUSH2 0x0834
00000223: JUMP
00000224: JUMPDEST
00000225: PUSH2 0x0798
00000228: JUMP
00000229: JUMPDEST
0000022a: PUSH2 0x04f1
0000022d: JUMP
0000022e: JUMPDEST
0000022f: PUSH2 0x048a
00000232: JUMP
00000233: JUMPDEST
00000234: PUSH2 0x0429
00000237: JUMP
00000238: JUMPDEST
00000239: PUSH2 0x031a
0000023c: JUMP
0000023d: JUMPDEST
0000023e: PUSH2 0x0257
00000241: JUMP
00000242: JUMPDEST
00000243: PUSH1 0x01
00000245: PUSH1 0x01
00000247: PUSH1 0xa0
00000249: SHL
0000024a: SUB
0000024b: DUP2
0000024c: AND
0000024d: SUB
0000024e: PUSH2 0x0253
00000251: JUMPI
00000252: JUMP
00000253: JUMPDEST
00000254: PUSH0
00000255: DUP1
00000256: REVERT
00000257: JUMPDEST
00000258: CALLVALUE
00000259: PUSH2 0x0253
0000025c: JUMPI
0000025d: PUSH1 0x20
0000025f: CALLDATASIZE
00000260: PUSH1 0x03
00000262: NOT
00000263: ADD
00000264: SLT
00000265: PUSH2 0x0253
00000268: JUMPI
00000269: PUSH1 0x04
0000026b: CALLDATALOAD
0000026c: PUSH2 0x0274
0000026f: DUP2
00000270: PUSH2 0x0242
00000273: JUMP
00000274: JUMPDEST
00000275: PUSH2 0x0289
00000278: PUSH1 0x01
0000027a: DUP1
0000027b: PUSH1 0xa0
0000027d: SHL
0000027e: SUB
0000027f: PUSH1 0x33
00000281: SLOAD
00000282: AND
00000283: CALLER
00000284: EQ
00000285: PUSH2 0x1a71
00000288: JUMP
00000289: JUMPDEST
0000028a: PUSH1 0x01
0000028c: PUSH1 0x01
0000028e: PUSH1 0xa0
00000290: SHL
00000291: SUB
00000292: AND
00000293: PUSH2 0x029b
00000296: DUP2
00000297: PUSH2 0x267c
0000029a: JUMP
0000029b: JUMPDEST
0000029c: PUSH2 0x02a1
0000029f: JUMPI
000002a0: STOP
000002a1: JUMPDEST
000002a2: PUSH1 0x20
000002a4: PUSH32 0x1886ee5ead024938d4f3f3251d2252fc79d5cea5adf88326e227cc271cdcd090
000002c5: SWAP2
000002c6: PUSH1 0x40
000002c8: MLOAD
000002c9: SWAP1
000002ca: DUP2
000002cb: MSTORE
000002cc: LOG1
000002cd: STOP
000002ce: JUMPDEST
000002cf: PUSH0
000002d0: SWAP2
000002d1: SUB
000002d2: SLT
000002d3: PUSH2 0x0253
000002d6: JUMPI
000002d7: JUMP
000002d8: JUMPDEST
000002d9: PUSH1 0x20
000002db: PUSH1 0x40
000002dd: DUP2
000002de: DUP4
000002df: ADD
000002e0: SWAP3
000002e1: DUP3
000002e2: DUP2
000002e3: MSTORE
000002e4: DUP5
000002e5: MLOAD
000002e6: DUP1
000002e7: SWAP5
000002e8: MSTORE
000002e9: ADD
000002ea: SWAP3
000002eb: ADD
000002ec: SWAP1
000002ed: PUSH0
000002ee: JUMPDEST
000002ef: DUP2
000002f0: DUP2
000002f1: LT
000002f2: PUSH2 0x02fb
000002f5: JUMPI
000002f6: POP
000002f7: POP
000002f8: POP
000002f9: SWAP1
000002fa: JUMP
000002fb: JUMPDEST
000002fc: DUP3
000002fd: MLOAD
000002fe: PUSH1 0x01
00000300: PUSH1 0x01
00000302: PUSH1 0xa0
00000304: SHL
00000305: SUB
00000306: AND
00000307: DUP5
00000308: MSTORE
00000309: PUSH1 0x20
0000030b: SWAP4
0000030c: DUP5
0000030d: ADD
0000030e: SWAP4
0000030f: SWAP1
00000310: SWAP3
00000311: ADD
00000312: SWAP2
00000313: PUSH1 0x01
00000315: ADD
00000316: PUSH2 0x02ee
00000319: JUMP
0000031a: JUMPDEST
0000031b: CALLVALUE
0000031c: PUSH2 0x0253
0000031f: JUMPI
00000320: PUSH0
00000321: CALLDATASIZE
00000322: PUSH1 0x03
00000324: NOT
00000325: ADD
00000326: SLT
00000327: PUSH2 0x0253
0000032a: JUMPI
0000032b: PUSH1 0x40
0000032d: MLOAD
0000032e: DUP1
0000032f: PUSH1 0x20
00000331: PUSH1 0x9d
00000333: SLOAD
00000334: SWAP2
00000335: DUP3
00000336: DUP2
00000337: MSTORE
00000338: ADD
00000339: SWAP1
0000033a: PUSH1 0x9d
0000033c: PUSH0
0000033d: MSTORE
0000033e: PUSH32 0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf7b
0000035f: SWAP1
00000360: PUSH0
00000361: JUMPDEST
00000362: DUP2
00000363: DUP2
00000364: LT
00000365: PUSH2 0x0388
00000368: JUMPI
00000369: PUSH2 0x0384
0000036c: DUP6
0000036d: PUSH2 0x0378
00000370: DUP2
00000371: DUP8
00000372: SUB
00000373: DUP3
00000374: PUSH2 0x03b2
00000377: JUMP
00000378: JUMPDEST
00000379: PUSH1 0x40
0000037b: MLOAD
0000037c: SWAP2
0000037d: DUP3
0000037e: SWAP2
0000037f: DUP3
00000380: PUSH2 0x02d8
00000383: JUMP
00000384: JUMPDEST
00000385: SUB
00000386: SWAP1
00000387: RETURN
00000388: JUMPDEST
00000389: DUP3
0000038a: SLOAD
0000038b: DUP5
0000038c: MSTORE
0000038d: PUSH1 0x20
0000038f: SWAP1
00000390: SWAP4
00000391: ADD
00000392: SWAP3
00000393: PUSH1 0x01
00000395: SWAP3
00000396: DUP4
00000397: ADD
00000398: SWAP3
00000399: ADD
0000039a: PUSH2 0x0361
0000039d: JUMP
0000039e: JUMPDEST
0000039f: PUSH4 0x4e487b71
000003a4: PUSH1 0xe0
000003a6: SHL
000003a7: PUSH0
000003a8: MSTORE
000003a9: PUSH1 0x41
000003ab: PUSH1 0x04
000003ad: MSTORE
000003ae: PUSH1 0x24
000003b0: PUSH0
000003b1: REVERT
000003b2: JUMPDEST
000003b3: SWAP1
000003b4: PUSH1 0x1f
000003b6: DUP1
000003b7: NOT
000003b8: SWAP2
000003b9: ADD
000003ba: AND
000003bb: DUP2
000003bc: ADD
000003bd: SWAP1
000003be: DUP2
000003bf: LT
000003c0: PUSH1 0x01
000003c2: PUSH1 0x01
000003c4: PUSH1 0x40
000003c6: SHL
000003c7: SUB
000003c8: DUP3
000003c9: GT
000003ca: OR
000003cb: PUSH2 0x03d3
000003ce: JUMPI
000003cf: PUSH1 0x40
000003d1: MSTORE
000003d2: JUMP
000003d3: JUMPDEST
000003d4: PUSH2 0x039e
000003d7: JUMP
000003d8: JUMPDEST
000003d9: PUSH1 0x01
000003db: PUSH1 0x01
000003dd: PUSH1 0x40
000003df: SHL
000003e0: SUB
000003e1: DUP2
000003e2: GT
000003e3: PUSH2 0x03d3
000003e6: JUMPI
000003e7: PUSH1 0x1f
000003e9: ADD
000003ea: PUSH1 0x1f
000003ec: NOT
000003ed: AND
000003ee: PUSH1 0x20
000003f0: ADD
000003f1: SWAP1
000003f2: JUMP
000003f3: JUMPDEST
000003f4: SWAP3
000003f5: SWAP2
000003f6: SWAP3
000003f7: PUSH2 0x03ff
000003fa: DUP3
000003fb: PUSH2 0x03d8
000003fe: JUMP
000003ff: JUMPDEST
00000400: SWAP2
00000401: PUSH2 0x040d
00000404: PUSH1 0x40
00000406: MLOAD
00000407: SWAP4
00000408: DUP5
00000409: PUSH2 0x03b2
0000040c: JUMP
0000040d: JUMPDEST
0000040e: DUP3
0000040f: SWAP5
00000410: DUP2
00000411: DUP5
00000412: MSTORE
00000413: DUP2
00000414: DUP4
00000415: ADD
00000416: GT
00000417: PUSH2 0x0253
0000041a: JUMPI
0000041b: DUP3
0000041c: DUP2
0000041d: PUSH1 0x20
0000041f: SWAP4
00000420: DUP5
00000421: PUSH0
00000422: SWAP7
00000423: ADD
00000424: CALLDATACOPY
00000425: ADD
00000426: ADD
00000427: MSTORE
00000428: JUMP
00000429: JUMPDEST
0000042a: CALLVALUE
0000042b: PUSH2 0x0253
0000042e: JUMPI
0000042f: PUSH1 0x40
00000431: CALLDATASIZE
00000432: PUSH1 0x03
00000434: NOT
00000435: ADD
00000436: SLT
00000437: PUSH2 0x0253
0000043a: JUMPI
0000043b: PUSH1 0x24
0000043d: CALLDATALOAD
0000043e: PUSH1 0x01
00000440: PUSH1 0x01
00000442: PUSH1 0x40
00000444: SHL
00000445: SUB
00000446: DUP2
00000447: GT
00000448: PUSH2 0x0253
0000044b: JUMPI
0000044c: CALLDATASIZE
0000044d: PUSH1 0x23
0000044f: DUP3
00000450: ADD
00000451: SLT
00000452: ISZERO
00000453: PUSH2 0x0253
00000456: JUMPI
00000457: PUSH2 0x0477
0000045a: PUSH2 0x046f
0000045d: PUSH1 0x20
0000045f: SWAP3
00000460: CALLDATASIZE
00000461: SWAP1
00000462: PUSH1 0x24
00000464: DUP2
00000465: PUSH1 0x04
00000467: ADD
00000468: CALLDATALOAD
00000469: SWAP2
0000046a: ADD
0000046b: PUSH2 0x03f3
0000046e: JUMP
0000046f: JUMPDEST
00000470: PUSH1 0x04
00000472: CALLDATALOAD
00000473: PUSH2 0x1abc
00000476: JUMP
00000477: JUMPDEST
00000478: PUSH1 0x40
0000047a: MLOAD
0000047b: PUSH1 0x01
0000047d: PUSH1 0x01
0000047f: PUSH1 0xe0
00000481: SHL
00000482: SUB
00000483: NOT
00000484: SWAP1
00000485: SWAP2
00000486: AND
00000487: DUP2
00000488: MSTORE
00000489: RETURN
0000048a: JUMPDEST
0000048b: CALLVALUE
0000048c: PUSH2 0x0253
0000048f: JUMPI
00000490: PUSH1 0x20
00000492: CALLDATASIZE
00000493: PUSH1 0x03
00000495: NOT
00000496: ADD
00000497: SLT
00000498: PUSH2 0x0253
0000049b: JUMPI
0000049c: PUSH1 0x20
0000049e: PUSH2 0x04a8
000004a1: PUSH1 0x04
000004a3: CALLDATALOAD
000004a4: PUSH2 0x2632
000004a7: JUMP
000004a8: JUMPDEST
000004a9: SWAP1
000004aa: SLOAD
000004ab: PUSH1 0x40
000004ad: MLOAD
000004ae: PUSH1 0x03
000004b0: SWAP3
000004b1: SWAP1
000004b2: SWAP3
000004b3: SHL
000004b4: SHR
000004b5: PUSH1 0x01
000004b7: PUSH1 0x01
000004b9: PUSH1 0xa0
000004bb: SHL
000004bc: SUB
000004bd: AND
000004be: DUP2
000004bf: MSTORE
000004c0: RETURN
000004c1: JUMPDEST
000004c2: SWAP2
000004c3: DUP2
000004c4: PUSH1 0x1f
000004c6: DUP5
000004c7: ADD
000004c8: SLT
000004c9: ISZERO
000004ca: PUSH2 0x0253
000004cd: JUMPI
000004ce: DUP3
000004cf: CALLDATALOAD
000004d0: SWAP2
000004d1: PUSH1 0x01
000004d3: PUSH1 0x01
000004d5: PUSH1 0x40
000004d7: SHL
000004d8: SUB
000004d9: DUP4
000004da: GT
000004db: PUSH2 0x0253
000004de: JUMPI
000004df: PUSH1 0x20
000004e1: DUP1
000004e2: DUP6
000004e3: ADD
000004e4: SWAP5
000004e5: DUP5
000004e6: PUSH1 0x05
000004e8: SHL
000004e9: ADD
000004ea: ADD
000004eb: GT
000004ec: PUSH2 0x0253
000004ef: JUMPI
000004f0: JUMP
000004f1: JUMPDEST
000004f2: CALLVALUE
000004f3: PUSH2 0x0253
000004f6: JUMPI
000004f7: PUSH1 0x60
000004f9: CALLDATASIZE
000004fa: PUSH1 0x03
000004fc: NOT
000004fd: ADD
000004fe: SLT
000004ff: PUSH2 0x0253
00000502: JUMPI
00000503: PUSH1 0x04
00000505: CALLDATALOAD
00000506: PUSH1 0x01
00000508: PUSH1 0x01
0000050a: PUSH1 0x40
0000050c: SHL
0000050d: SUB
0000050e: DUP2
0000050f: GT
00000510: PUSH2 0x0253
00000513: JUMPI
00000514: PUSH2 0x0521
00000517: SWAP1
00000518: CALLDATASIZE
00000519: SWAP1
0000051a: PUSH1 0x04
0000051c: ADD
0000051d: PUSH2 0x04c1
00000520: JUMP
00000521: JUMPDEST
00000522: SWAP1
00000523: PUSH1 0x24
00000525: CALLDATALOAD
00000526: SWAP2
00000527: PUSH2 0x052f
0000052a: DUP4
0000052b: PUSH2 0x0242
0000052e: JUMP
0000052f: JUMPDEST
00000530: PUSH1 0x44
00000532: CALLDATALOAD
00000533: SWAP3
00000534: PUSH2 0x0548
00000537: PUSH1 0x01
00000539: DUP1
0000053a: PUSH1 0xa0
0000053c: SHL
0000053d: SUB
0000053e: PUSH1 0x33
00000540: SLOAD
00000541: AND
00000542: CALLER
00000543: EQ
00000544: PUSH2 0x1a71
00000547: JUMP
00000548: JUMPDEST
00000549: PUSH0
0000054a: DUP5
0000054b: ISZERO
0000054c: SWAP3
0000054d: DUP4
0000054e: ISZERO
0000054f: SWAP2
00000550: JUMPDEST
00000551: DUP2
00000552: DUP2
00000553: LT
00000554: PUSH2 0x0559
00000557: JUMPI
00000558: STOP
00000559: JUMPDEST
0000055a: PUSH2 0x0564
0000055d: DUP2
0000055e: DUP4
0000055f: DUP9
00000560: PUSH2 0x1b44
00000563: JUMP
00000564: JUMPDEST
00000565: CALLDATALOAD
00000566: SWAP1
00000567: PUSH2 0x056f
0000056a: DUP3
0000056b: PUSH2 0x0242
0000056e: JUMP
0000056f: JUMPDEST
00000570: DUP6
00000571: DUP5
00000572: PUSH2 0x05ce
00000575: JUMPI
00000576: JUMPDEST
00000577: PUSH1 0x01
00000579: SWAP3
0000057a: PUSH2 0x0585
0000057d: PUSH2 0x05c8
00000580: SWAP3
00000581: PUSH2 0x2368
00000584: JUMP
00000585: JUMPDEST
00000586: PUSH1 0x40
00000588: MLOAD
00000589: PUSH4 0x095ea7b3
0000058e: PUSH1 0xe0
00000590: SHL
00000591: PUSH1 0x20
00000593: DUP3
00000594: ADD
00000595: MSTORE
00000596: PUSH1 0x01
00000598: PUSH1 0x01
0000059a: PUSH1 0xa0
0000059c: SHL
0000059d: SUB
0000059e: DUP9
0000059f: AND
000005a0: PUSH1 0x24
000005a2: DUP3
000005a3: ADD
000005a4: MSTORE
000005a5: PUSH1 0x44
000005a7: DUP2
000005a8: ADD
000005a9: DUP12
000005aa: SWAP1
000005ab: MSTORE
000005ac: SWAP1
000005ad: PUSH2 0x05c3
000005b0: DUP3
000005b1: PUSH1 0x64
000005b3: DUP2
000005b4: ADD
000005b5: JUMPDEST
000005b6: SUB
000005b7: PUSH1 0x1f
000005b9: NOT
000005ba: DUP2
000005bb: ADD
000005bc: DUP5
000005bd: MSTORE
000005be: DUP4
000005bf: PUSH2 0x03b2
000005c2: JUMP
000005c3: JUMPDEST
000005c4: PUSH2 0x28a6
000005c7: JUMP
000005c8: JUMPDEST
000005c9: ADD
000005ca: PUSH2 0x0550
000005cd: JUMP
000005ce: JUMPDEST
000005cf: POP
000005d0: PUSH1 0x40
000005d2: MLOAD
000005d3: PUSH4 0x6eb1769f
000005d8: PUSH1 0xe1
000005da: SHL
000005db: DUP2
000005dc: MSTORE
000005dd: ADDRESS
000005de: PUSH1 0x04
000005e0: DUP3
000005e1: ADD
000005e2: MSTORE
000005e3: PUSH1 0x01
000005e5: PUSH1 0x01
000005e7: PUSH1 0xa0
000005e9: SHL
000005ea: SUB
000005eb: DUP7
000005ec: AND
000005ed: PUSH1 0x24
000005ef: DUP3
000005f0: ADD
000005f1: MSTORE
000005f2: SWAP2
000005f3: PUSH1 0x20
000005f5: DUP4
000005f6: DUP1
000005f7: PUSH1 0x44
000005f9: DUP2
000005fa: ADD
000005fb: SUB
000005fc: DUP2
000005fd: PUSH1 0x01
000005ff: PUSH1 0x01
00000601: PUSH1 0xa0
00000603: SHL
00000604: SUB
00000605: DUP6
00000606: AND
00000607: GAS
00000608: STATICCALL
00000609: SWAP1
0000060a: DUP2
0000060b: ISZERO
0000060c: PUSH2 0x065a
0000060f: JUMPI
00000610: PUSH2 0x0585
00000613: PUSH2 0x05c8
00000616: SWAP3
00000617: PUSH1 0x01
00000619: SWAP6
0000061a: PUSH0
0000061b: SWAP2
0000061c: PUSH2 0x062c
0000061f: JUMPI
00000620: JUMPDEST
00000621: POP
00000622: ISZERO
00000623: SWAP3
00000624: POP
00000625: POP
00000626: SWAP3
00000627: POP
00000628: PUSH2 0x0576
0000062b: JUMP
0000062c: JUMPDEST
0000062d: PUSH2 0x064d
00000630: SWAP2
00000631: POP
00000632: PUSH1 0x20
00000634: RETURNDATASIZE
00000635: DUP2
00000636: GT
00000637: PUSH2 0x0653
0000063a: JUMPI
0000063b: JUMPDEST
0000063c: PUSH2 0x0645
0000063f: DUP2
00000640: DUP4
00000641: PUSH2 0x03b2
00000644: JUMP
00000645: JUMPDEST
00000646: DUP2
00000647: ADD
00000648: SWAP1
00000649: PUSH2 0x2359
0000064c: JUMP
0000064d: JUMPDEST
0000064e: PUSH0
0000064f: PUSH2 0x0620
00000652: JUMP
00000653: JUMPDEST
00000654: POP
00000655: RETURNDATASIZE
00000656: PUSH2 0x063b
00000659: JUMP
0000065a: JUMPDEST
0000065b: PUSH2 0x1f0d
0000065e: JUMP
0000065f: JUMPDEST
00000660: PUSH1 0x01
00000662: PUSH1 0x01
00000664: PUSH1 0x40
00000666: SHL
00000667: SUB
00000668: DUP2
00000669: GT
0000066a: PUSH2 0x03d3
0000066d: JUMPI
0000066e: PUSH1 0x05
00000670: SHL
00000671: PUSH1 0x20
00000673: ADD
00000674: SWAP1
00000675: JUMP
00000676: JUMPDEST
00000677: PUSH1 0x01
00000679: PUSH1 0x01
0000067b: PUSH1 0xe0
0000067d: SHL
0000067e: SUB
0000067f: NOT
00000680: DUP2
00000681: AND
00000682: SUB
00000683: PUSH2 0x0253
00000686: JUMPI
00000687: JUMP
00000688: JUMPDEST
00000689: SWAP1
0000068a: DUP1
0000068b: PUSH1 0x1f
0000068d: DUP4
0000068e: ADD
0000068f: SLT
00000690: ISZERO
00000691: PUSH2 0x0253
00000694: JUMPI
00000695: DUP2
00000696: CALLDATALOAD
00000697: PUSH2 0x069f
0000069a: DUP2
0000069b: PUSH2 0x065f
0000069e: JUMP
0000069f: JUMPDEST
000006a0: SWAP3
000006a1: PUSH2 0x06ad
000006a4: PUSH1 0x40
000006a6: MLOAD
000006a7: SWAP5
000006a8: DUP6
000006a9: PUSH2 0x03b2
000006ac: JUMP
000006ad: JUMPDEST
000006ae: DUP2
000006af: DUP5
000006b0: MSTORE
000006b1: PUSH1 0x20
000006b3: DUP1
000006b4: DUP6
000006b5: ADD
000006b6: SWAP3
000006b7: PUSH1 0x05
000006b9: SHL
000006ba: DUP3
000006bb: ADD
000006bc: ADD
000006bd: SWAP3
000006be: DUP4
000006bf: GT
000006c0: PUSH2 0x0253
000006c3: JUMPI
000006c4: PUSH1 0x20
000006c6: ADD
000006c7: SWAP1
000006c8: JUMPDEST
000006c9: DUP3
000006ca: DUP3
000006cb: LT
000006cc: PUSH2 0x06d5
000006cf: JUMPI
000006d0: POP
000006d1: POP
000006d2: POP
000006d3: SWAP1
000006d4: JUMP
000006d5: JUMPDEST
000006d6: PUSH1 0x20
000006d8: DUP1
000006d9: SWAP2
000006da: DUP4
000006db: CALLDATALOAD
000006dc: PUSH2 0x06e4
000006df: DUP2
000006e0: PUSH2 0x0242
000006e3: JUMP
000006e4: JUMPDEST
000006e5: DUP2
000006e6: MSTORE
000006e7: ADD
000006e8: SWAP2
000006e9: ADD
000006ea: SWAP1
000006eb: PUSH2 0x06c8
000006ee: JUMP
000006ef: JUMPDEST
000006f0: SWAP1
000006f1: PUSH1 0x40
000006f3: PUSH1 0x03
000006f5: NOT
000006f6: DUP4
000006f7: ADD
000006f8: SLT
000006f9: PUSH2 0x0253
000006fc: JUMPI
000006fd: PUSH1 0x04
000006ff: CALLDATALOAD
00000700: PUSH1 0x01
00000702: PUSH1 0x01
00000704: PUSH1 0x40
00000706: SHL
00000707: SUB
00000708: DUP2
00000709: GT
0000070a: PUSH2 0x0253
0000070d: JUMPI
0000070e: DUP3
0000070f: PUSH1 0x23
00000711: DUP3
00000712: ADD
00000713: SLT
00000714: ISZERO
00000715: PUSH2 0x0253
00000718: JUMPI
00000719: DUP1
0000071a: PUSH1 0x04
0000071c: ADD
0000071d: CALLDATALOAD
0000071e: SWAP1
0000071f: PUSH2 0x0727
00000722: DUP3
00000723: PUSH2 0x065f
00000726: JUMP
00000727: JUMPDEST
00000728: SWAP2
00000729: PUSH2 0x0735
0000072c: PUSH1 0x40
0000072e: MLOAD
0000072f: SWAP4
00000730: DUP5
00000731: PUSH2 0x03b2
00000734: JUMP
00000735: JUMPDEST
00000736: DUP1
00000737: DUP4
00000738: MSTORE
00000739: PUSH1 0x24
0000073b: PUSH1 0x20
0000073d: DUP5
0000073e: ADD
0000073f: SWAP2
00000740: PUSH1 0x05
00000742: SHL
00000743: DUP4
00000744: ADD
00000745: ADD
00000746: SWAP2
00000747: DUP6
00000748: DUP4
00000749: GT
0000074a: PUSH2 0x0253
0000074d: JUMPI
0000074e: PUSH1 0x24
00000750: ADD
00000751: SWAP1
00000752: JUMPDEST
00000753: DUP3
00000754: DUP3
00000755: LT
00000756: PUSH2 0x077e
00000759: JUMPI
0000075a: POP
0000075b: POP
0000075c: POP
0000075d: SWAP2
0000075e: PUSH1 0x24
00000760: CALLDATALOAD
00000761: SWAP1
00000762: PUSH1 0x01
00000764: PUSH1 0x01
00000766: PUSH1 0x40
00000768: SHL
00000769: SUB
0000076a: DUP3
0000076b: GT
0000076c: PUSH2 0x0253
0000076f: JUMPI
00000770: PUSH2 0x077b
00000773: SWAP2
00000774: PUSH1 0x04
00000776: ADD
00000777: PUSH2 0x0688
0000077a: JUMP
0000077b: JUMPDEST
0000077c: SWAP1
0000077d: JUMP
0000077e: JUMPDEST
0000077f: PUSH1 0x20
00000781: DUP1
00000782: SWAP2
00000783: DUP4
00000784: CALLDATALOAD
00000785: PUSH2 0x078d
00000788: DUP2
00000789: PUSH2 0x0676
0000078c: JUMP
0000078d: JUMPDEST
0000078e: DUP2
0000078f: MSTORE
00000790: ADD
00000791: SWAP2
00000792: ADD
00000793: SWAP1
00000794: PUSH2 0x0752
00000797: JUMP
00000798: JUMPDEST
00000799: CALLVALUE
0000079a: PUSH2 0x0253
0000079d: JUMPI
0000079e: PUSH2 0x07a6
000007a1: CALLDATASIZE
000007a2: PUSH2 0x06ef
000007a5: JUMP
000007a6: JUMPDEST
000007a7: PUSH2 0x07bb
000007aa: PUSH1 0x01
000007ac: DUP1
000007ad: PUSH1 0xa0
000007af: SHL
000007b0: SUB
000007b1: PUSH1 0x33
000007b3: SLOAD
000007b4: AND
000007b5: CALLER
000007b6: EQ
000007b7: PUSH2 0x1a71
000007ba: JUMP
000007bb: JUMPDEST
000007bc: PUSH2 0x07c8
000007bf: DUP3
000007c0: MLOAD
000007c1: DUP3
000007c2: MLOAD
000007c3: EQ
000007c4: PUSH2 0x1b59
000007c7: JUMP
000007c8: JUMPDEST
000007c9: PUSH0
000007ca: JUMPDEST
000007cb: DUP3
000007cc: MLOAD
000007cd: DUP2
000007ce: LT
000007cf: ISZERO
000007d0: PUSH2 0x001c
000007d3: JUMPI
000007d4: PUSH1 0x01
000007d6: SWAP1
000007d7: PUSH2 0x082e
000007da: PUSH1 0x01
000007dc: PUSH1 0x01
000007de: PUSH1 0xa0
000007e0: SHL
000007e1: SUB
000007e2: PUSH2 0x07eb
000007e5: DUP4
000007e6: DUP7
000007e7: PUSH2 0x1ba5
000007ea: JUMP
000007eb: JUMPDEST
000007ec: MLOAD
000007ed: AND
000007ee: PUSH1 0x01
000007f0: PUSH1 0x01
000007f2: PUSH1 0xe0
000007f4: SHL
000007f5: SUB
000007f6: NOT
000007f7: PUSH2 0x0800
000007fa: DUP5
000007fb: DUP9
000007fc: PUSH2 0x1ba5
000007ff: JUMP
00000800: JUMPDEST
00000801: MLOAD
00000802: AND
00000803: PUSH0
00000804: MSTORE
00000805: PUSH1 0x9f
00000807: PUSH1 0x20
00000809: MSTORE
0000080a: PUSH1 0x40
0000080c: PUSH0
0000080d: KECCAK256
0000080e: SWAP1
0000080f: PUSH1 0x01
00000811: DUP1
00000812: PUSH1 0xa0
00000814: SHL
00000815: SUB
00000816: AND
00000817: PUSH12 0xffffffffffffffffffffffff
00000824: PUSH1 0xa0
00000826: SHL
00000827: DUP3
00000828: SLOAD
00000829: AND
0000082a: OR
0000082b: SWAP1
0000082c: SSTORE
0000082d: JUMP
0000082e: JUMPDEST
0000082f: ADD
00000830: PUSH2 0x07ca
00000833: JUMP
00000834: JUMPDEST
00000835: CALLVALUE
00000836: PUSH2 0x0253
00000839: JUMPI
0000083a: PUSH0
0000083b: CALLDATASIZE
0000083c: PUSH1 0x03
0000083e: NOT
0000083f: ADD
00000840: SLT
00000841: PUSH2 0x0253
00000844: JUMPI
00000845: PUSH1 0x40
00000847: MLOAD
00000848: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000869: PUSH1 0x01
0000086b: PUSH1 0x01
0000086d: PUSH1 0xa0
0000086f: SHL
00000870: SUB
00000871: AND
00000872: DUP2
00000873: MSTORE
00000874: PUSH1 0x20
00000876: SWAP1
00000877: RETURN
00000878: JUMPDEST
00000879: SWAP2
0000087a: DUP2
0000087b: PUSH1 0x1f
0000087d: DUP5
0000087e: ADD
0000087f: SLT
00000880: ISZERO
00000881: PUSH2 0x0253
00000884: JUMPI
00000885: DUP3
00000886: CALLDATALOAD
00000887: SWAP2
00000888: PUSH1 0x01
0000088a: PUSH1 0x01
0000088c: PUSH1 0x40
0000088e: SHL
0000088f: SUB
00000890: DUP4
00000891: GT
00000892: PUSH2 0x0253
00000895: JUMPI
00000896: PUSH1 0x20
00000898: DUP4
00000899: DUP2
0000089a: DUP7
0000089b: ADD
0000089c: SWAP6
0000089d: ADD
0000089e: ADD
0000089f: GT
000008a0: PUSH2 0x0253
000008a3: JUMPI
000008a4: JUMP
000008a5: JUMPDEST
000008a6: SWAP1
000008a7: PUSH1 0x40
000008a9: PUSH1 0x03
000008ab: NOT
000008ac: DUP4
000008ad: ADD
000008ae: SLT
000008af: PUSH2 0x0253
000008b2: JUMPI
000008b3: PUSH1 0x04
000008b5: CALLDATALOAD
000008b6: PUSH1 0x01
000008b8: PUSH1 0x01
000008ba: PUSH1 0x40
000008bc: SHL
000008bd: SUB
000008be: DUP2
000008bf: GT
000008c0: PUSH2 0x0253
000008c3: JUMPI
000008c4: PUSH1 0x04
000008c6: ADD
000008c7: PUSH1 0x80
000008c9: DUP2
000008ca: DUP5
000008cb: SUB
000008cc: SLT
000008cd: PUSH2 0x0253
000008d0: JUMPI
000008d1: SWAP2
000008d2: PUSH1 0x24
000008d4: CALLDATALOAD
000008d5: SWAP1
000008d6: PUSH1 0x01
000008d8: PUSH1 0x01
000008da: PUSH1 0x40
000008dc: SHL
000008dd: SUB
000008de: DUP3
000008df: GT
000008e0: PUSH2 0x0253
000008e3: JUMPI
000008e4: PUSH2 0x08ef
000008e7: SWAP2
000008e8: PUSH1 0x04
000008ea: ADD
000008eb: PUSH2 0x0878
000008ee: JUMP
000008ef: JUMPDEST
000008f0: SWAP1
000008f1: SWAP2
000008f2: JUMP
000008f3: JUMPDEST
000008f4: PUSH2 0x08fc
000008f7: CALLDATASIZE
000008f8: PUSH2 0x08a5
000008fb: JUMP
000008fc: JUMPDEST
000008fd: SWAP1
000008fe: PUSH2 0x091a
00000901: PUSH2 0x0915
00000904: CALLER
00000905: PUSH0
00000906: MSTORE
00000907: PUSH1 0x9c
00000909: PUSH1 0x20
0000090b: MSTORE
0000090c: PUSH1 0x40
0000090e: PUSH0
0000090f: KECCAK256
00000910: SLOAD
00000911: ISZERO
00000912: ISZERO
00000913: SWAP1
00000914: JUMP
00000915: JUMPDEST
00000916: PUSH2 0x1bb9
00000919: JUMP
0000091a: JUMPDEST
0000091b: PUSH2 0x0a6e
0000091e: PUSH2 0x0a40
00000921: PUSH1 0x20
00000923: DUP6
00000924: ADD
00000925: SWAP4
00000926: PUSH2 0x0943
00000929: PUSH2 0x0931
0000092c: DUP7
0000092d: PUSH2 0x1bfc
00000930: JUMP
00000931: JUMPDEST
00000932: PUSH1 0x01
00000934: PUSH1 0x01
00000936: PUSH1 0x80
00000938: SHL
00000939: SUB
0000093a: TIMESTAMP
0000093b: SWAP2
0000093c: AND
0000093d: LT
0000093e: ISZERO
0000093f: PUSH2 0x1c10
00000942: JUMP
00000943: JUMPDEST
00000944: PUSH2 0x095f
00000947: CALLER
00000948: PUSH1 0x01
0000094a: PUSH1 0x01
0000094c: PUSH1 0xa0
0000094e: SHL
0000094f: SUB
00000950: PUSH2 0x0958
00000953: DUP10
00000954: PUSH2 0x1c50
00000957: JUMP
00000958: JUMPDEST
00000959: AND
0000095a: EQ
0000095b: PUSH2 0x1c5a
0000095e: JUMP
0000095f: JUMPDEST
00000960: PUSH2 0x0a3a
00000963: PUSH1 0x60
00000965: DUP8
00000966: ADD
00000967: SWAP5
00000968: PUSH2 0x0a32
0000096b: PUSH2 0x099c
0000096e: PUSH2 0x098e
00000971: PUSH2 0x097a
00000974: DUP10
00000975: DUP13
00000976: PUSH2 0x1c99
00000979: JUMP
0000097a: JUMPDEST
0000097b: PUSH1 0x40
0000097d: SWAP4
0000097e: SWAP2
0000097f: SWAP4
00000980: MLOAD
00000981: SWAP3
00000982: DUP4
00000983: SWAP2
00000984: PUSH1 0x20
00000986: DUP4
00000987: ADD
00000988: SWAP6
00000989: DUP7
0000098a: PUSH2 0x1d1f
0000098d: JUMP
0000098e: JUMPDEST
0000098f: SUB
00000990: PUSH1 0x1f
00000992: NOT
00000993: DUP2
00000994: ADD
00000995: DUP4
00000996: MSTORE
00000997: DUP3
00000998: PUSH2 0x03b2
0000099b: JUMP
0000099c: JUMPDEST
0000099d: MLOAD
0000099e: SWAP1
0000099f: KECCAK256
000009a0: SWAP8
000009a1: PUSH2 0x09b2
000009a4: PUSH2 0x09ac
000009a7: DUP12
000009a8: PUSH2 0x1c50
000009ab: JUMP
000009ac: JUMPDEST
000009ad: SWAP2
000009ae: PUSH2 0x1bfc
000009b1: JUMP
000009b2: JUMPDEST
000009b3: SWAP9
000009b4: PUSH2 0x0a2a
000009b7: PUSH1 0x40
000009b9: DUP13
000009ba: ADD
000009bb: SWAP11
000009bc: PUSH2 0x098e
000009bf: PUSH2 0x09c7
000009c2: DUP14
000009c3: PUSH2 0x1bfc
000009c6: JUMP
000009c7: JUMPDEST
000009c8: SWAP4
000009c9: PUSH1 0x40
000009cb: MLOAD
000009cc: SWAP5
000009cd: DUP6
000009ce: SWAP4
000009cf: PUSH1 0x20
000009d1: DUP6
000009d2: ADD
000009d3: SWAP8
000009d4: DUP9
000009d5: SWAP1
000009d6: SWAP5
000009d7: SWAP4
000009d8: SWAP3
000009d9: PUSH1 0x01
000009db: PUSH1 0x01
000009dd: PUSH1 0x80
000009df: SHL
000009e0: SUB
000009e1: SWAP1
000009e2: DUP2
000009e3: PUSH1 0x80
000009e5: SWAP5
000009e6: PUSH1 0xa0
000009e8: DUP6
000009e9: ADD
000009ea: SWAP9
000009eb: PUSH32 0x7e2137b52a88cc72d113166dcedbf48e41ea4ae592924fe4f494d74ca5a0095f
00000a0c: DUP7
00000a0d: MSTORE
00000a0e: PUSH1 0x01
00000a10: DUP1
00000a11: PUSH1 0xa0
00000a13: SHL
00000a14: SUB
00000a15: AND
00000a16: PUSH1 0x20
00000a18: DUP7
00000a19: ADD
00000a1a: MSTORE
00000a1b: AND
00000a1c: PUSH1 0x40
00000a1e: DUP5
00000a1f: ADD
00000a20: MSTORE
00000a21: AND
00000a22: PUSH1 0x60
00000a24: DUP3
00000a25: ADD
00000a26: MSTORE
00000a27: ADD
00000a28: MSTORE
00000a29: JUMP
00000a2a: JUMPDEST
00000a2b: MLOAD
00000a2c: SWAP1
00000a2d: KECCAK256
00000a2e: PUSH2 0x23d3
00000a31: JUMP
00000a32: JUMPDEST
00000a33: SWAP3
00000a34: CALLDATASIZE
00000a35: SWAP2
00000a36: PUSH2 0x03f3
00000a39: JUMP
00000a3a: JUMPDEST
00000a3b: SWAP1
00000a3c: PUSH2 0x247e
00000a3f: JUMP
00000a40: JUMPDEST
00000a41: PUSH1 0x9a
00000a43: SLOAD
00000a44: PUSH2 0x0a5d
00000a47: SWAP1
00000a48: PUSH1 0x01
00000a4a: PUSH1 0x01
00000a4c: PUSH1 0xa0
00000a4e: SHL
00000a4f: SUB
00000a50: AND
00000a51: JUMPDEST
00000a52: PUSH1 0x01
00000a54: PUSH1 0x01
00000a56: PUSH1 0xa0
00000a58: SHL
00000a59: SUB
00000a5a: AND
00000a5b: SWAP1
00000a5c: JUMP
00000a5d: JUMPDEST
00000a5e: PUSH1 0x01
00000a60: PUSH1 0x01
00000a62: PUSH1 0xa0
00000a64: SHL
00000a65: SUB
00000a66: SWAP1
00000a67: SWAP2
00000a68: AND
00000a69: EQ
00000a6a: PUSH2 0x1dbd
00000a6d: JUMP
00000a6e: JUMPDEST
00000a6f: PUSH0
00000a70: JUMPDEST
00000a71: PUSH2 0x0a7a
00000a74: DUP3
00000a75: DUP6
00000a76: PUSH2 0x1c99
00000a79: JUMP
00000a7a: JUMPDEST
00000a7b: SWAP1
00000a7c: POP
00000a7d: DUP2
00000a7e: LT
00000a7f: ISZERO
00000a80: PUSH2 0x0b91
00000a83: JUMPI
00000a84: DUP1
00000a85: PUSH2 0x0aa5
00000a88: PUSH2 0x0a51
00000a8b: PUSH2 0x0aa0
00000a8e: PUSH1 0x01
00000a90: SWAP5
00000a91: PUSH2 0x0a9a
00000a94: DUP8
00000a95: DUP11
00000a96: PUSH2 0x1c99
00000a99: JUMP
00000a9a: JUMPDEST
00000a9b: SWAP1
00000a9c: PUSH2 0x1e08
00000a9f: JUMP
00000aa0: JUMPDEST
00000aa1: PUSH2 0x1c50
00000aa4: JUMP
00000aa5: JUMPDEST
00000aa6: PUSH2 0x0b29
00000aa9: JUMPI
00000aaa: PUSH2 0x0b23
00000aad: PUSH2 0x0afa
00000ab0: PUSH2 0x0aed
00000ab3: PUSH2 0x0ad6
00000ab6: PUSH2 0x0ad0
00000ab9: PUSH2 0x0ac6
00000abc: DUP7
00000abd: PUSH2 0x0a9a
00000ac0: DUP11
00000ac1: DUP14
00000ac2: PUSH2 0x1c99
00000ac5: JUMP
00000ac6: JUMPDEST
00000ac7: PUSH1 0x20
00000ac9: DUP2
00000aca: ADD
00000acb: SWAP1
00000acc: PUSH2 0x1e6a
00000acf: JUMP
00000ad0: JUMPDEST
00000ad1: SWAP1
00000ad2: PUSH2 0x1e9c
00000ad5: JUMP
00000ad6: JUMPDEST
00000ad7: PUSH4 0xffffffff
00000adc: PUSH1 0xe0
00000ade: SHL
00000adf: AND
00000ae0: PUSH0
00000ae1: MSTORE
00000ae2: PUSH1 0x9f
00000ae4: PUSH1 0x20
00000ae6: MSTORE
00000ae7: PUSH1 0x40
00000ae9: PUSH0
00000aea: KECCAK256
00000aeb: SWAP1
00000aec: JUMP
00000aed: JUMPDEST
00000aee: SLOAD
00000aef: PUSH1 0x01
00000af1: PUSH1 0x01
00000af3: PUSH1 0xa0
00000af5: SHL
00000af6: SUB
00000af7: AND
00000af8: SWAP1
00000af9: JUMP
00000afa: JUMPDEST
00000afb: PUSH2 0x0b0c
00000afe: DUP5
00000aff: DUP1
00000b00: PUSH1 0xa0
00000b02: SHL
00000b03: SUB
00000b04: DUP3
00000b05: AND
00000b06: ISZERO
00000b07: ISZERO
00000b08: PUSH2 0x1ed2
00000b0b: JUMP
00000b0c: JUMPDEST
00000b0d: PUSH2 0x0b1d
00000b10: PUSH2 0x0ac6
00000b13: DUP5
00000b14: PUSH2 0x0a9a
00000b17: DUP9
00000b18: DUP12
00000b19: PUSH2 0x1c99
00000b1c: JUMP
00000b1d: JUMPDEST
00000b1e: SWAP2
00000b1f: PUSH2 0x24dd
00000b22: JUMP
00000b23: JUMPDEST
00000b24: ADD
00000b25: PUSH2 0x0a70
00000b28: JUMP
00000b29: JUMPDEST
00000b2a: PUSH2 0x0b61
00000b2d: PUSH2 0x0b5c
00000b30: PUSH2 0x0b40
00000b33: PUSH2 0x0aa0
00000b36: DUP5
00000b37: PUSH2 0x0a9a
00000b3a: DUP9
00000b3b: DUP12
00000b3c: PUSH2 0x1c99
00000b3f: JUMP
00000b40: JUMPDEST
00000b41: PUSH1 0x01
00000b43: PUSH1 0x01
00000b45: PUSH1 0xa0
00000b47: SHL
00000b48: SUB
00000b49: AND
00000b4a: PUSH0
00000b4b: SWAP1
00000b4c: DUP2
00000b4d: MSTORE
00000b4e: PUSH1 0x9e
00000b50: PUSH1 0x20
00000b52: MSTORE
00000b53: PUSH1 0x40
00000b55: SWAP1
00000b56: KECCAK256
00000b57: SLOAD
00000b58: ISZERO
00000b59: ISZERO
00000b5a: SWAP1
00000b5b: JUMP
00000b5c: JUMPDEST
00000b5d: PUSH2 0x1e2a
00000b60: JUMP
00000b61: JUMPDEST
00000b62: PUSH2 0x0b8c
00000b65: PUSH2 0x0b75
00000b68: PUSH2 0x0aa0
00000b6b: DUP4
00000b6c: PUSH2 0x0a9a
00000b6f: DUP8
00000b70: DUP11
00000b71: PUSH2 0x1c99
00000b74: JUMP
00000b75: JUMPDEST
00000b76: PUSH2 0x0b86
00000b79: PUSH2 0x0ac6
00000b7c: DUP5
00000b7d: PUSH2 0x0a9a
00000b80: DUP9
00000b81: DUP12
00000b82: PUSH2 0x1c99
00000b85: JUMP
00000b86: JUMPDEST
00000b87: SWAP2
00000b88: PUSH2 0x2493
00000b8b: JUMP
00000b8c: JUMPDEST
00000b8d: PUSH2 0x0b23
00000b90: JUMP
00000b91: JUMPDEST
00000b92: DUP3
00000b93: PUSH1 0x01
00000b95: PUSH1 0x01
00000b97: PUSH1 0x80
00000b99: SHL
00000b9a: SUB
00000b9b: PUSH2 0x0ba3
00000b9e: DUP3
00000b9f: PUSH2 0x1bfc
00000ba2: JUMP
00000ba3: JUMPDEST
00000ba4: AND
00000ba5: PUSH2 0x0baa
00000ba8: JUMPI
00000ba9: STOP
00000baa: JUMPDEST
00000bab: PUSH0
00000bac: DUP1
00000bad: DUP1
00000bae: PUSH2 0x0bb7
00000bb1: DUP2
00000bb2: SWAP5
00000bb3: PUSH2 0x1bfc
00000bb6: JUMP
00000bb7: JUMPDEST
00000bb8: PUSH1 0x01
00000bba: PUSH1 0x01
00000bbc: PUSH1 0x80
00000bbe: SHL
00000bbf: SUB
00000bc0: AND
00000bc1: DUP2
00000bc2: DUP2
00000bc3: ISZERO
00000bc4: PUSH2 0x0bd2
00000bc7: JUMPI
00000bc8: JUMPDEST
00000bc9: COINBASE
00000bca: SWAP1
00000bcb: CALL
00000bcc: ISZERO
00000bcd: PUSH2 0x065a
00000bd0: JUMPI
00000bd1: STOP
00000bd2: JUMPDEST
00000bd3: POP
00000bd4: PUSH2 0x08fc
00000bd7: PUSH2 0x0bc8
00000bda: JUMP
00000bdb: JUMPDEST
00000bdc: CALLVALUE
00000bdd: PUSH2 0x0253
00000be0: JUMPI
00000be1: PUSH1 0x20
00000be3: CALLDATASIZE
00000be4: PUSH1 0x03
00000be6: NOT
00000be7: ADD
00000be8: SLT
00000be9: PUSH2 0x0253
00000bec: JUMPI
00000bed: PUSH1 0x04
00000bef: CALLDATALOAD
00000bf0: PUSH2 0x0bf8
00000bf3: DUP2
00000bf4: PUSH2 0x0242
00000bf7: JUMP
00000bf8: JUMPDEST
00000bf9: PUSH0
00000bfa: SLOAD
00000bfb: PUSH1 0xff
00000bfd: DUP2
00000bfe: PUSH1 0x08
00000c00: SHR
00000c01: AND
00000c02: SWAP1
00000c03: DUP2
00000c04: PUSH0
00000c05: EQ
00000c06: PUSH2 0x0d6d
00000c09: JUMPI
00000c0a: POP
00000c0b: PUSH2 0x0c15
00000c0e: ADDRESS
00000c0f: EXTCODESIZE
00000c10: ISZERO
00000c11: PUSH2 0x1f18
00000c14: JUMP
00000c15: JUMPDEST
00000c16: ISZERO
00000c17: SWAP1
00000c18: DUP2
00000c19: PUSH2 0x0d46
00000c1c: JUMPI
00000c1d: JUMPDEST
00000c1e: PUSH2 0x0c36
00000c21: PUSH1 0xff
00000c23: PUSH0
00000c24: SLOAD
00000c25: PUSH1 0x08
00000c27: SHR
00000c28: AND
00000c29: PUSH2 0x0c31
00000c2c: DUP2
00000c2d: PUSH2 0x24f3
00000c30: JUMP
00000c31: JUMPDEST
00000c32: PUSH2 0x24f3
00000c35: JUMP
00000c36: JUMPDEST
00000c37: PUSH2 0x0c3f
00000c3a: CALLER
00000c3b: PUSH2 0x25ea
00000c3e: JUMP
00000c3f: JUMPDEST
00000c40: PUSH0
00000c41: SLOAD
00000c42: PUSH1 0xff
00000c44: DUP2
00000c45: PUSH1 0x08
00000c47: SHR
00000c48: AND
00000c49: SWAP1
00000c4a: DUP2
00000c4b: PUSH0
00000c4c: EQ
00000c4d: PUSH2 0x0d39
00000c50: JUMPI
00000c51: POP
00000c52: PUSH2 0x0c5c
00000c55: ADDRESS
00000c56: EXTCODESIZE
00000c57: ISZERO
00000c58: PUSH2 0x1f18
00000c5b: JUMP
00000c5c: JUMPDEST
00000c5d: ISZERO
00000c5e: DUP1
00000c5f: PUSH2 0x0d12
00000c62: JUMPI
00000c63: JUMPDEST
00000c64: PUSH2 0x0cff
00000c67: JUMPI
00000c68: JUMPDEST
00000c69: PUSH1 0x33
00000c6b: SLOAD
00000c6c: PUSH2 0x0c7f
00000c6f: SWAP1
00000c70: PUSH1 0x01
00000c72: PUSH1 0x01
00000c74: PUSH1 0xa0
00000c76: SHL
00000c77: SUB
00000c78: AND
00000c79: CALLER
00000c7a: EQ
00000c7b: PUSH2 0x1a71
00000c7e: JUMP
00000c7f: JUMPDEST
00000c80: PUSH1 0x01
00000c82: PUSH1 0x01
00000c84: PUSH1 0xa0
00000c86: SHL
00000c87: SUB
00000c88: DUP2
00000c89: AND
00000c8a: ISZERO
00000c8b: PUSH2 0x0cab
00000c8e: JUMPI
00000c8f: PUSH2 0x0c97
00000c92: SWAP1
00000c93: PUSH2 0x25ea
00000c96: JUMP
00000c97: JUMPDEST
00000c98: PUSH2 0x0c9d
00000c9b: JUMPI
00000c9c: STOP
00000c9d: JUMPDEST
00000c9e: PUSH2 0x001c
00000ca1: PUSH2 0xff00
00000ca4: NOT
00000ca5: PUSH0
00000ca6: SLOAD
00000ca7: AND
00000ca8: PUSH0
00000ca9: SSTORE
00000caa: JUMP
00000cab: JUMPDEST
00000cac: PUSH1 0x40
00000cae: MLOAD
00000caf: PUSH3 0x461bcd
00000cb3: PUSH1 0xe5
00000cb5: SHL
00000cb6: DUP2
00000cb7: MSTORE
00000cb8: PUSH1 0x20
00000cba: PUSH1 0x04
00000cbc: DUP3
00000cbd: ADD
00000cbe: MSTORE
00000cbf: PUSH1 0x26
00000cc1: PUSH1 0x24
00000cc3: DUP3
00000cc4: ADD
00000cc5: MSTORE
00000cc6: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061
00000ce7: PUSH1 0x44
00000ce9: DUP3
00000cea: ADD
00000ceb: MSTORE
00000cec: PUSH6 0x646472657373
00000cf3: PUSH1 0xd0
00000cf5: SHL
00000cf6: PUSH1 0x64
00000cf8: DUP3
00000cf9: ADD
00000cfa: MSTORE
00000cfb: PUSH1 0x84
00000cfd: SWAP1
00000cfe: REVERT
00000cff: JUMPDEST
00000d00: PUSH2 0x0d0d
00000d03: PUSH2 0xff00
00000d06: NOT
00000d07: PUSH0
00000d08: SLOAD
00000d09: AND
00000d0a: PUSH0
00000d0b: SSTORE
00000d0c: JUMP
00000d0d: JUMPDEST
00000d0e: PUSH2 0x0c68
00000d11: JUMP
00000d12: JUMPDEST
00000d13: PUSH2 0x0d24
00000d16: PUSH2 0x0100
00000d19: PUSH2 0xff00
00000d1c: NOT
00000d1d: PUSH0
00000d1e: SLOAD
00000d1f: AND
00000d20: OR
00000d21: PUSH0
00000d22: SSTORE
00000d23: JUMP
00000d24: JUMPDEST
00000d25: PUSH2 0x0d34
00000d28: PUSH1 0x01
00000d2a: PUSH1 0xff
00000d2c: NOT
00000d2d: PUSH0
00000d2e: SLOAD
00000d2f: AND
00000d30: OR
00000d31: PUSH0
00000d32: SSTORE
00000d33: JUMP
00000d34: JUMPDEST
00000d35: PUSH2 0x0c63
00000d38: JUMP
00000d39: JUMPDEST
00000d3a: PUSH1 0xff
00000d3c: PUSH2 0x0c5c
00000d3f: SWAP2
00000d40: AND
00000d41: ISZERO
00000d42: PUSH2 0x1f18
00000d45: JUMP
00000d46: JUMPDEST
00000d47: PUSH2 0x0d58
00000d4a: PUSH2 0x0100
00000d4d: PUSH2 0xff00
00000d50: NOT
00000d51: PUSH0
00000d52: SLOAD
00000d53: AND
00000d54: OR
00000d55: PUSH0
00000d56: SSTORE
00000d57: JUMP
00000d58: JUMPDEST
00000d59: PUSH2 0x0d68
00000d5c: PUSH1 0x01
00000d5e: PUSH1 0xff
00000d60: NOT
00000d61: PUSH0
00000d62: SLOAD
00000d63: AND
00000d64: OR
00000d65: PUSH0
00000d66: SSTORE
00000d67: JUMP
00000d68: JUMPDEST
00000d69: PUSH2 0x0c1d
00000d6c: JUMP
00000d6d: JUMPDEST
00000d6e: PUSH1 0xff
00000d70: PUSH2 0x0c15
00000d73: SWAP2
00000d74: AND
00000d75: ISZERO
00000d76: PUSH2 0x1f18
00000d79: JUMP
00000d7a: JUMPDEST
00000d7b: CALLVALUE
00000d7c: PUSH2 0x0253
00000d7f: JUMPI
00000d80: PUSH0
00000d81: CALLDATASIZE
00000d82: PUSH1 0x03
00000d84: NOT
00000d85: ADD
00000d86: SLT
00000d87: PUSH2 0x0253
00000d8a: JUMPI
00000d8b: PUSH1 0x9a
00000d8d: SLOAD
00000d8e: PUSH1 0x40
00000d90: MLOAD
00000d91: PUSH1 0x01
00000d93: PUSH1 0x01
00000d95: PUSH1 0xa0
00000d97: SHL
00000d98: SUB
00000d99: SWAP1
00000d9a: SWAP2
00000d9b: AND
00000d9c: DUP2
00000d9d: MSTORE
00000d9e: PUSH1 0x20
00000da0: SWAP1
00000da1: RETURN
00000da2: JUMPDEST
00000da3: CALLVALUE
00000da4: PUSH2 0x0253
00000da7: JUMPI
00000da8: PUSH1 0x20
00000daa: CALLDATASIZE
00000dab: PUSH1 0x03
00000dad: NOT
00000dae: ADD
00000daf: SLT
00000db0: PUSH2 0x0253
00000db3: JUMPI
00000db4: PUSH32 0xb0f5cdd73db8ff444fea735d243faf354a928879825665bf4f2f67600cbac97c
00000dd5: PUSH1 0x20
00000dd7: PUSH1 0x04
00000dd9: CALLDATALOAD
00000dda: PUSH2 0x0de2
00000ddd: DUP2
00000dde: PUSH2 0x0242
00000de1: JUMP
00000de2: JUMPDEST
00000de3: PUSH2 0x0df7
00000de6: PUSH1 0x01
00000de8: DUP1
00000de9: PUSH1 0xa0
00000deb: SHL
00000dec: SUB
00000ded: PUSH1 0x33
00000def: SLOAD
00000df0: AND
00000df1: CALLER
00000df2: EQ
00000df3: PUSH2 0x1a71
00000df6: JUMP
00000df7: JUMPDEST
00000df8: PUSH1 0x9a
00000dfa: DUP1
00000dfb: SLOAD
00000dfc: PUSH1 0x01
00000dfe: PUSH1 0x01
00000e00: PUSH1 0xa0
00000e02: SHL
00000e03: SUB
00000e04: NOT
00000e05: AND
00000e06: PUSH1 0x01
00000e08: PUSH1 0x01
00000e0a: PUSH1 0xa0
00000e0c: SHL
00000e0d: SUB
00000e0e: SWAP3
00000e0f: SWAP1
00000e10: SWAP3
00000e11: AND
00000e12: SWAP2
00000e13: DUP3
00000e14: OR
00000e15: SWAP1
00000e16: SSTORE
00000e17: PUSH1 0x40
00000e19: MLOAD
00000e1a: SWAP1
00000e1b: DUP2
00000e1c: MSTORE
00000e1d: LOG1
00000e1e: STOP
00000e1f: JUMPDEST
00000e20: CALLVALUE
00000e21: PUSH2 0x0253
00000e24: JUMPI
00000e25: PUSH1 0x60
00000e27: CALLDATASIZE
00000e28: PUSH1 0x03
00000e2a: NOT
00000e2b: ADD
00000e2c: SLT
00000e2d: PUSH2 0x0253
00000e30: JUMPI
00000e31: PUSH1 0x04
00000e33: CALLDATALOAD
00000e34: PUSH2 0x0e3c
00000e37: DUP2
00000e38: PUSH2 0x0242
00000e3b: JUMP
00000e3c: JUMPDEST
00000e3d: PUSH1 0x24
00000e3f: CALLDATALOAD
00000e40: SWAP1
00000e41: PUSH1 0x44
00000e43: CALLDATALOAD
00000e44: PUSH2 0x0e4c
00000e47: DUP2
00000e48: PUSH2 0x0242
00000e4b: JUMP
00000e4c: JUMPDEST
00000e4d: PUSH2 0x0e69
00000e50: PUSH2 0x0e64
00000e53: CALLER
00000e54: PUSH0
00000e55: MSTORE
00000e56: PUSH1 0x66
00000e58: PUSH1 0x20
00000e5a: MSTORE
00000e5b: PUSH1 0x40
00000e5d: PUSH0
00000e5e: KECCAK256
00000e5f: SLOAD
00000e60: ISZERO
00000e61: ISZERO
00000e62: SWAP1
00000e63: JUMP
00000e64: JUMPDEST
00000e65: PUSH2 0x1f7b
00000e68: JUMP
00000e69: JUMPDEST
00000e6a: PUSH1 0x01
00000e6c: PUSH1 0x01
00000e6e: PUSH1 0xa0
00000e70: SHL
00000e71: SUB
00000e72: DUP2
00000e73: AND
00000e74: PUSH0
00000e75: SWAP1
00000e76: DUP2
00000e77: MSTORE
00000e78: PUSH1 0xa2
00000e7a: PUSH1 0x20
00000e7c: MSTORE
00000e7d: PUSH1 0x40
00000e7f: SWAP1
00000e80: KECCAK256
00000e81: SLOAD
00000e82: PUSH2 0x0e8c
00000e85: SWAP1
00000e86: ISZERO
00000e87: ISZERO
00000e88: PUSH2 0x1fc0
00000e8b: JUMP
00000e8c: JUMPDEST
00000e8d: PUSH1 0x01
00000e8f: PUSH1 0x01
00000e91: PUSH1 0xa0
00000e93: SHL
00000e94: SUB
00000e95: DUP3
00000e96: AND
00000e97: SWAP2
00000e98: DUP4
00000e99: SWAP1
00000e9a: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
00000eaf: DUP5
00000eb0: SUB
00000eb1: PUSH2 0x0f8f
00000eb4: JUMPI
00000eb5: POP
00000eb6: POP
00000eb7: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000ed8: PUSH1 0x01
00000eda: PUSH1 0x01
00000edc: PUSH1 0xa0
00000ede: SHL
00000edf: SUB
00000ee0: AND
00000ee1: SWAP1
00000ee2: DUP2
00000ee3: EXTCODESIZE
00000ee4: ISZERO
00000ee5: PUSH2 0x0253
00000ee8: JUMPI
00000ee9: PUSH1 0x40
00000eeb: MLOAD
00000eec: PUSH4 0x2e1a7d4d
00000ef1: PUSH1 0xe0
00000ef3: SHL
00000ef4: DUP2
00000ef5: MSTORE
00000ef6: PUSH1 0x04
00000ef8: DUP2
00000ef9: ADD
00000efa: DUP6
00000efb: SWAP1
00000efc: MSTORE
00000efd: SWAP2
00000efe: PUSH0
00000eff: SWAP1
00000f00: DUP4
00000f01: SWAP1
00000f02: PUSH1 0x24
00000f04: SWAP1
00000f05: DUP3
00000f06: SWAP1
00000f07: DUP5
00000f08: SWAP1
00000f09: GAS
00000f0a: CALL
00000f0b: SWAP1
00000f0c: DUP2
00000f0d: ISZERO
00000f0e: PUSH2 0x065a
00000f11: JUMPI
00000f12: PUSH32 0xb67719fc33c1f17d31bf3a698690d62066b1e0bae28fcd3c56cf2c015c2863d6
00000f33: SWAP3
00000f34: PUSH2 0x0f70
00000f37: SWAP3
00000f38: PUSH2 0x0f75
00000f3b: JUMPI
00000f3c: JUMPDEST
00000f3d: POP
00000f3e: PUSH2 0x0f56
00000f41: PUSH0
00000f42: DUP1
00000f43: DUP1
00000f44: DUP1
00000f45: DUP10
00000f46: DUP7
00000f47: GAS
00000f48: CALL
00000f49: PUSH2 0x0f50
00000f4c: PUSH2 0x200c
00000f4f: JUMP
00000f50: JUMPDEST
00000f51: POP
00000f52: PUSH2 0x203b
00000f55: JUMP
00000f56: JUMPDEST
00000f57: PUSH1 0x40
00000f59: MLOAD
00000f5a: SWAP5
00000f5b: DUP6
00000f5c: MSTORE
00000f5d: PUSH1 0x01
00000f5f: PUSH1 0x01
00000f61: PUSH1 0xa0
00000f63: SHL
00000f64: SUB
00000f65: AND
00000f66: SWAP4
00000f67: SWAP1
00000f68: DUP2
00000f69: SWAP1
00000f6a: PUSH1 0x20
00000f6c: DUP3
00000f6d: ADD
00000f6e: SWAP1
00000f6f: JUMP
00000f70: JUMPDEST
00000f71: SUB
00000f72: SWAP1
00000f73: LOG3
00000f74: STOP
00000f75: JUMPDEST
00000f76: DUP1
00000f77: PUSH2 0x0f83
00000f7a: PUSH0
00000f7b: PUSH2 0x0f89
00000f7e: SWAP4
00000f7f: PUSH2 0x03b2
00000f82: JUMP
00000f83: JUMPDEST
00000f84: DUP1
00000f85: PUSH2 0x02ce
00000f88: JUMP
00000f89: JUMPDEST
00000f8a: PUSH0
00000f8b: PUSH2 0x0f3c
00000f8e: JUMP
00000f8f: JUMPDEST
00000f90: SWAP2
00000f91: PUSH2 0x0fbf
00000f94: PUSH2 0x0f70
00000f97: SWAP3
00000f98: DUP3
00000f99: PUSH32 0xb67719fc33c1f17d31bf3a698690d62066b1e0bae28fcd3c56cf2c015c2863d6
00000fba: SWAP6
00000fbb: PUSH2 0x2553
00000fbe: JUMP
00000fbf: JUMPDEST
00000fc0: PUSH2 0x0f56
00000fc3: JUMP
00000fc4: JUMPDEST
00000fc5: CALLVALUE
00000fc6: PUSH2 0x0253
00000fc9: JUMPI
00000fca: PUSH1 0x20
00000fcc: CALLDATASIZE
00000fcd: PUSH1 0x03
00000fcf: NOT
00000fd0: ADD
00000fd1: SLT
00000fd2: PUSH2 0x0253
00000fd5: JUMPI
00000fd6: PUSH1 0x20
00000fd8: PUSH2 0x1002
00000fdb: PUSH1 0x04
00000fdd: CALLDATALOAD
00000fde: PUSH2 0x0fe6
00000fe1: DUP2
00000fe2: PUSH2 0x0242
00000fe5: JUMP
00000fe6: JUMPDEST
00000fe7: PUSH1 0x01
00000fe9: PUSH1 0x01
00000feb: PUSH1 0xa0
00000fed: SHL
00000fee: SUB
00000fef: AND
00000ff0: PUSH0
00000ff1: SWAP1
00000ff2: DUP2
00000ff3: MSTORE
00000ff4: PUSH1 0x66
00000ff6: PUSH1 0x20
00000ff8: MSTORE
00000ff9: PUSH1 0x40
00000ffb: SWAP1
00000ffc: KECCAK256
00000ffd: SLOAD
00000ffe: ISZERO
00000fff: ISZERO
00001000: SWAP1
00001001: JUMP
00001002: JUMPDEST
00001003: PUSH1 0x40
00001005: MLOAD
00001006: SWAP1
00001007: ISZERO
00001008: ISZERO
00001009: DUP2
0000100a: MSTORE
0000100b: RETURN
0000100c: JUMPDEST
0000100d: CALLVALUE
0000100e: PUSH2 0x0253
00001011: JUMPI
00001012: PUSH0
00001013: CALLDATASIZE
00001014: PUSH1 0x03
00001016: NOT
00001017: ADD
00001018: SLT
00001019: PUSH2 0x0253
0000101c: JUMPI
0000101d: PUSH2 0x1031
00001020: PUSH1 0x01
00001022: DUP1
00001023: PUSH1 0xa0
00001025: SHL
00001026: SUB
00001027: PUSH1 0x33
00001029: SLOAD
0000102a: AND
0000102b: CALLER
0000102c: EQ
0000102d: PUSH2 0x1a71
00001030: JUMP
00001031: JUMPDEST
00001032: PUSH1 0x33
00001034: DUP1
00001035: SLOAD
00001036: PUSH1 0x01
00001038: PUSH1 0x01
0000103a: PUSH1 0xa0
0000103c: SHL
0000103d: SUB
0000103e: NOT
0000103f: DUP2
00001040: AND
00001041: SWAP1
00001042: SWAP2
00001043: SSTORE
00001044: PUSH0
00001045: SWAP1
00001046: PUSH1 0x01
00001048: PUSH1 0x01
0000104a: PUSH1 0xa0
0000104c: SHL
0000104d: SUB
0000104e: AND
0000104f: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001070: DUP3
00001071: DUP1
00001072: LOG3
00001073: STOP
00001074: JUMPDEST
00001075: CALLVALUE
00001076: PUSH2 0x0253
00001079: JUMPI
0000107a: PUSH1 0x20
0000107c: CALLDATASIZE
0000107d: PUSH1 0x03
0000107f: NOT
00001080: ADD
00001081: SLT
00001082: PUSH2 0x0253
00001085: JUMPI
00001086: PUSH1 0x04
00001088: CALLDATALOAD
00001089: PUSH2 0x1091
0000108c: DUP2
0000108d: PUSH2 0x0676
00001090: JUMP
00001091: JUMPDEST
00001092: PUSH4 0xffffffff
00001097: PUSH1 0xe0
00001099: SHL
0000109a: AND
0000109b: PUSH0
0000109c: MSTORE
0000109d: PUSH1 0xa0
0000109f: PUSH1 0x20
000010a1: MSTORE
000010a2: PUSH1 0x20
000010a4: PUSH1 0x01
000010a6: DUP1
000010a7: PUSH1 0xa0
000010a9: SHL
000010aa: SUB
000010ab: PUSH1 0x40
000010ad: PUSH0
000010ae: KECCAK256
000010af: SLOAD
000010b0: AND
000010b1: PUSH1 0x40
000010b3: MLOAD
000010b4: SWAP1
000010b5: DUP2
000010b6: MSTORE
000010b7: RETURN
000010b8: JUMPDEST
000010b9: PUSH1 0x20
000010bb: PUSH1 0x03
000010bd: NOT
000010be: DUP3
000010bf: ADD
000010c0: SLT
000010c1: PUSH2 0x0253
000010c4: JUMPI
000010c5: PUSH1 0x04
000010c7: CALLDATALOAD
000010c8: SWAP1
000010c9: PUSH1 0x01
000010cb: PUSH1 0x01
000010cd: PUSH1 0x40
000010cf: SHL
000010d0: SUB
000010d1: DUP3
000010d2: GT
000010d3: PUSH2 0x0253
000010d6: JUMPI
000010d7: PUSH2 0x077b
000010da: SWAP2
000010db: PUSH1 0x04
000010dd: ADD
000010de: PUSH2 0x0688
000010e1: JUMP
000010e2: JUMPDEST
000010e3: CALLVALUE
000010e4: PUSH2 0x0253
000010e7: JUMPI
000010e8: PUSH2 0x10f0
000010eb: CALLDATASIZE
000010ec: PUSH2 0x10b8
000010ef: JUMP
000010f0: JUMPDEST
000010f1: PUSH2 0x1105
000010f4: PUSH1 0x01
000010f6: DUP1
000010f7: PUSH1 0xa0
000010f9: SHL
000010fa: SUB
000010fb: PUSH1 0x33
000010fd: SLOAD
000010fe: AND
000010ff: CALLER
00001100: EQ
00001101: PUSH2 0x1a71
00001104: JUMP
00001105: JUMPDEST
00001106: PUSH0
00001107: JUMPDEST
00001108: DUP2
00001109: MLOAD
0000110a: DUP2
0000110b: LT
0000110c: ISZERO
0000110d: PUSH2 0x001c
00001110: JUMPI
00001111: PUSH1 0x01
00001113: SWAP1
00001114: PUSH2 0x112f
00001117: PUSH1 0x01
00001119: PUSH1 0x01
0000111b: PUSH1 0xa0
0000111d: SHL
0000111e: SUB
0000111f: PUSH2 0x1128
00001122: DUP4
00001123: DUP7
00001124: PUSH2 0x1ba5
00001127: JUMP
00001128: JUMPDEST
00001129: MLOAD
0000112a: AND
0000112b: PUSH2 0x2b8c
0000112e: JUMP
0000112f: JUMPDEST
00001130: PUSH2 0x113a
00001133: JUMPI
00001134: JUMPDEST
00001135: ADD
00001136: PUSH2 0x1107
00001139: JUMP
0000113a: JUMPDEST
0000113b: PUSH32 0xa30b4a30819461802ef73f5bd8d14569b88b857d9d64f0c5bbb33ea910ebe689
0000115c: PUSH1 0x40
0000115e: DUP4
0000115f: DUP1
00001160: PUSH1 0xa0
00001162: SHL
00001163: SUB
00001164: PUSH2 0x116d
00001167: DUP5
00001168: DUP8
00001169: PUSH2 0x1ba5
0000116c: JUMP
0000116d: JUMPDEST
0000116e: MLOAD
0000116f: AND
00001170: DUP2
00001171: MLOAD
00001172: SWAP1
00001173: DUP2
00001174: MSTORE
00001175: PUSH0
00001176: PUSH1 0x20
00001178: DUP3
00001179: ADD
0000117a: MSTORE
0000117b: LOG1
0000117c: PUSH2 0x1134
0000117f: JUMP
00001180: JUMPDEST
00001181: PUSH2 0x1189
00001184: CALLDATASIZE
00001185: PUSH2 0x08a5
00001188: JUMP
00001189: JUMPDEST
0000118a: SWAP1
0000118b: PUSH2 0x11a2
0000118e: PUSH2 0x0915
00001191: CALLER
00001192: PUSH0
00001193: MSTORE
00001194: PUSH1 0x9c
00001196: PUSH1 0x20
00001198: MSTORE
00001199: PUSH1 0x40
0000119b: PUSH0
0000119c: KECCAK256
0000119d: SLOAD
0000119e: ISZERO
0000119f: ISZERO
000011a0: SWAP1
000011a1: JUMP
000011a2: JUMPDEST
000011a3: PUSH2 0x1285
000011a6: PUSH2 0x0a40
000011a9: PUSH1 0x20
000011ab: DUP6
000011ac: ADD
000011ad: SWAP4
000011ae: PUSH2 0x11b9
000011b1: PUSH2 0x0931
000011b4: DUP7
000011b5: PUSH2 0x1bfc
000011b8: JUMP
000011b9: JUMPDEST
000011ba: PUSH2 0x11ce
000011bd: CALLER
000011be: PUSH1 0x01
000011c0: PUSH1 0x01
000011c2: PUSH1 0xa0
000011c4: SHL
000011c5: SUB
000011c6: PUSH2 0x0958
000011c9: DUP10
000011ca: PUSH2 0x1c50
000011cd: JUMP
000011ce: JUMPDEST
000011cf: PUSH2 0x0a3a
000011d2: PUSH1 0x60
000011d4: DUP8
000011d5: ADD
000011d6: SWAP5
000011d7: PUSH2 0x0a32
000011da: PUSH2 0x11fd
000011dd: PUSH2 0x098e
000011e0: PUSH2 0x11e9
000011e3: DUP10
000011e4: DUP13
000011e5: PUSH2 0x1c99
000011e8: JUMP
000011e9: JUMPDEST
000011ea: PUSH1 0x40
000011ec: SWAP4
000011ed: SWAP2
000011ee: SWAP4
000011ef: MLOAD
000011f0: SWAP3
000011f1: DUP4
000011f2: SWAP2
000011f3: PUSH1 0x20
000011f5: DUP4
000011f6: ADD
000011f7: SWAP6
000011f8: DUP7
000011f9: PUSH2 0x207d
000011fc: JUMP
000011fd: JUMPDEST
000011fe: MLOAD
000011ff: SWAP1
00001200: KECCAK256
00001201: SWAP8
00001202: PUSH2 0x120d
00001205: PUSH2 0x09ac
00001208: DUP12
00001209: PUSH2 0x1c50
0000120c: JUMP
0000120d: JUMPDEST
0000120e: SWAP9
0000120f: PUSH2 0x0a2a
00001212: PUSH1 0x40
00001214: DUP13
00001215: ADD
00001216: SWAP11
00001217: PUSH2 0x098e
0000121a: PUSH2 0x1222
0000121d: DUP14
0000121e: PUSH2 0x1bfc
00001221: JUMP
00001222: JUMPDEST
00001223: SWAP4
00001224: PUSH1 0x40
00001226: MLOAD
00001227: SWAP5
00001228: DUP6
00001229: SWAP4
0000122a: PUSH1 0x20
0000122c: DUP6
0000122d: ADD
0000122e: SWAP8
0000122f: DUP9
00001230: SWAP1
00001231: SWAP5
00001232: SWAP4
00001233: SWAP3
00001234: PUSH1 0x01
00001236: PUSH1 0x01
00001238: PUSH1 0x80
0000123a: SHL
0000123b: SUB
0000123c: SWAP1
0000123d: DUP2
0000123e: PUSH1 0x80
00001240: SWAP5
00001241: PUSH1 0xa0
00001243: DUP6
00001244: ADD
00001245: SWAP9
00001246: PUSH32 0x0ee0e02696fd63599be55592245d9b2ac8d74503d0669f8ca4cea2984abaadcc
00001267: DUP7
00001268: MSTORE
00001269: PUSH1 0x01
0000126b: DUP1
0000126c: PUSH1 0xa0
0000126e: SHL
0000126f: SUB
00001270: AND
00001271: PUSH1 0x20
00001273: DUP7
00001274: ADD
00001275: MSTORE
00001276: AND
00001277: PUSH1 0x40
00001279: DUP5
0000127a: ADD
0000127b: MSTORE
0000127c: AND
0000127d: PUSH1 0x60
0000127f: DUP3
00001280: ADD
00001281: MSTORE
00001282: ADD
00001283: MSTORE
00001284: JUMP
00001285: JUMPDEST
00001286: PUSH0
00001287: JUMPDEST
00001288: PUSH2 0x1291
0000128b: DUP3
0000128c: DUP6
0000128d: PUSH2 0x1c99
00001290: JUMP
00001291: JUMPDEST
00001292: SWAP1
00001293: POP
00001294: DUP2
00001295: LT
00001296: ISZERO
00001297: PUSH2 0x0b91
0000129a: JUMPI
0000129b: DUP1
0000129c: PUSH2 0x12b7
0000129f: PUSH2 0x0a51
000012a2: PUSH2 0x0aa0
000012a5: PUSH1 0x01
000012a7: SWAP5
000012a8: PUSH2 0x12b1
000012ab: DUP8
000012ac: DUP11
000012ad: PUSH2 0x1c99
000012b0: JUMP
000012b1: JUMPDEST
000012b2: SWAP1
000012b3: PUSH2 0x2125
000012b6: JUMP
000012b7: JUMPDEST
000012b8: PUSH2 0x130b
000012bb: JUMPI
000012bc: PUSH2 0x1305
000012bf: PUSH2 0x12e2
000012c2: PUSH2 0x0aed
000012c5: PUSH2 0x0ad6
000012c8: PUSH2 0x0ad0
000012cb: PUSH2 0x12d8
000012ce: DUP7
000012cf: PUSH2 0x12b1
000012d2: DUP11
000012d3: DUP14
000012d4: PUSH2 0x1c99
000012d7: JUMP
000012d8: JUMPDEST
000012d9: PUSH1 0x40
000012db: DUP2
000012dc: ADD
000012dd: SWAP1
000012de: PUSH2 0x1e6a
000012e1: JUMP
000012e2: JUMPDEST
000012e3: PUSH2 0x12f4
000012e6: DUP5
000012e7: DUP1
000012e8: PUSH1 0xa0
000012ea: SHL
000012eb: SUB
000012ec: DUP3
000012ed: AND
000012ee: ISZERO
000012ef: ISZERO
000012f0: PUSH2 0x1ed2
000012f3: JUMP
000012f4: JUMPDEST
000012f5: PUSH2 0x0b1d
000012f8: PUSH2 0x12d8
000012fb: DUP5
000012fc: PUSH2 0x12b1
000012ff: DUP9
00001300: DUP12
00001301: PUSH2 0x1c99
00001304: JUMP
00001305: JUMPDEST
00001306: ADD
00001307: PUSH2 0x1287
0000130a: JUMP
0000130b: JUMPDEST
0000130c: PUSH2 0x1322
0000130f: PUSH2 0x0b5c
00001312: PUSH2 0x0b40
00001315: PUSH2 0x0aa0
00001318: DUP5
00001319: PUSH2 0x12b1
0000131c: DUP9
0000131d: DUP12
0000131e: PUSH2 0x1c99
00001321: JUMP
00001322: JUMPDEST
00001323: PUSH2 0x1362
00001326: PUSH2 0x1336
00001329: PUSH2 0x0aa0
0000132c: DUP4
0000132d: PUSH2 0x12b1
00001330: DUP8
00001331: DUP11
00001332: PUSH2 0x1c99
00001335: JUMP
00001336: JUMPDEST
00001337: PUSH1 0x20
00001339: PUSH2 0x1346
0000133c: DUP5
0000133d: PUSH2 0x12b1
00001340: DUP9
00001341: DUP12
00001342: PUSH2 0x1c99
00001345: JUMP
00001346: JUMPDEST
00001347: ADD
00001348: CALLDATALOAD
00001349: SWAP1
0000134a: PUSH2 0x135a
0000134d: PUSH2 0x12d8
00001350: DUP6
00001351: PUSH2 0x12b1
00001354: DUP10
00001355: DUP13
00001356: PUSH2 0x1c99
00001359: JUMP
0000135a: JUMPDEST
0000135b: SWAP3
0000135c: SWAP1
0000135d: SWAP2
0000135e: PUSH2 0x24b2
00001361: JUMP
00001362: JUMPDEST
00001363: PUSH2 0x1305
00001366: JUMP
00001367: JUMPDEST
00001368: CALLVALUE
00001369: PUSH2 0x0253
0000136c: JUMPI
0000136d: PUSH0
0000136e: CALLDATASIZE
0000136f: PUSH1 0x03
00001371: NOT
00001372: ADD
00001373: SLT
00001374: PUSH2 0x0253
00001377: JUMPI
00001378: PUSH1 0x33
0000137a: SLOAD
0000137b: PUSH1 0x40
0000137d: MLOAD
0000137e: PUSH1 0x01
00001380: PUSH1 0x01
00001382: PUSH1 0xa0
00001384: SHL
00001385: SUB
00001386: SWAP1
00001387: SWAP2
00001388: AND
00001389: DUP2
0000138a: MSTORE
0000138b: PUSH1 0x20
0000138d: SWAP1
0000138e: RETURN
0000138f: JUMPDEST
00001390: CALLVALUE
00001391: PUSH2 0x0253
00001394: JUMPI
00001395: PUSH1 0x40
00001397: CALLDATASIZE
00001398: PUSH1 0x03
0000139a: NOT
0000139b: ADD
0000139c: SLT
0000139d: PUSH2 0x0253
000013a0: JUMPI
000013a1: PUSH2 0x001c
000013a4: PUSH1 0x04
000013a6: CALLDATALOAD
000013a7: PUSH2 0x13af
000013aa: DUP2
000013ab: PUSH2 0x0242
000013ae: JUMP
000013af: JUMPDEST
000013b0: PUSH1 0x33
000013b2: SLOAD
000013b3: PUSH1 0x24
000013b5: CALLDATALOAD
000013b6: SWAP2
000013b7: PUSH1 0x01
000013b9: PUSH1 0x01
000013bb: PUSH1 0xa0
000013bd: SHL
000013be: SUB
000013bf: SWAP1
000013c0: SWAP2
000013c1: AND
000013c2: SWAP1
000013c3: PUSH2 0x13cd
000013c6: CALLER
000013c7: DUP4
000013c8: EQ
000013c9: PUSH2 0x1a71
000013cc: JUMP
000013cd: JUMPDEST
000013ce: PUSH2 0x2553
000013d1: JUMP
000013d2: JUMPDEST
000013d3: CALLVALUE
000013d4: PUSH2 0x0253
000013d7: JUMPI
000013d8: PUSH0
000013d9: CALLDATASIZE
000013da: PUSH1 0x03
000013dc: NOT
000013dd: ADD
000013de: SLT
000013df: PUSH2 0x0253
000013e2: JUMPI
000013e3: PUSH1 0x40
000013e5: MLOAD
000013e6: DUP1
000013e7: PUSH1 0x20
000013e9: PUSH1 0x9b
000013eb: SLOAD
000013ec: SWAP2
000013ed: DUP3
000013ee: DUP2
000013ef: MSTORE
000013f0: ADD
000013f1: SWAP1
000013f2: PUSH1 0x9b
000013f4: PUSH0
000013f5: MSTORE
000013f6: PUSH32 0xbba9db4cdbea0a37c207bbb83e20f828cd4441c49891101dc94fd20dc8efc349
00001417: SWAP1
00001418: PUSH0
00001419: JUMPDEST
0000141a: DUP2
0000141b: DUP2
0000141c: LT
0000141d: PUSH2 0x1430
00001420: JUMPI
00001421: PUSH2 0x0384
00001424: DUP6
00001425: PUSH2 0x0378
00001428: DUP2
00001429: DUP8
0000142a: SUB
0000142b: DUP3
0000142c: PUSH2 0x03b2
0000142f: JUMP
00001430: JUMPDEST
00001431: DUP3
00001432: SLOAD
00001433: DUP5
00001434: MSTORE
00001435: PUSH1 0x20
00001437: SWAP1
00001438: SWAP4
00001439: ADD
0000143a: SWAP3
0000143b: PUSH1 0x01
0000143d: SWAP3
0000143e: DUP4
0000143f: ADD
00001440: SWAP3
00001441: ADD
00001442: PUSH2 0x1419
00001445: JUMP
00001446: JUMPDEST
00001447: CALLVALUE
00001448: PUSH2 0x0253
0000144b: JUMPI
0000144c: PUSH2 0x1454
0000144f: CALLDATASIZE
00001450: PUSH2 0x10b8
00001453: JUMP
00001454: JUMPDEST
00001455: PUSH2 0x1469
00001458: PUSH1 0x01
0000145a: DUP1
0000145b: PUSH1 0xa0
0000145d: SHL
0000145e: SUB
0000145f: PUSH1 0x33
00001461: SLOAD
00001462: AND
00001463: CALLER
00001464: EQ
00001465: PUSH2 0x1a71
00001468: JUMP
00001469: JUMPDEST
0000146a: PUSH0
0000146b: JUMPDEST
0000146c: DUP2
0000146d: MLOAD
0000146e: DUP2
0000146f: LT
00001470: ISZERO
00001471: PUSH2 0x001c
00001474: JUMPI
00001475: PUSH1 0x01
00001477: SWAP1
00001478: PUSH2 0x1493
0000147b: PUSH1 0x01
0000147d: PUSH1 0x01
0000147f: PUSH1 0xa0
00001481: SHL
00001482: SUB
00001483: PUSH2 0x148c
00001486: DUP4
00001487: DUP7
00001488: PUSH2 0x1ba5
0000148b: JUMP
0000148c: JUMPDEST
0000148d: MLOAD
0000148e: AND
0000148f: PUSH2 0x26e5
00001492: JUMP
00001493: JUMPDEST
00001494: PUSH2 0x149e
00001497: JUMPI
00001498: JUMPDEST
00001499: ADD
0000149a: PUSH2 0x146b
0000149d: JUMP
0000149e: JUMPDEST
0000149f: PUSH32 0x6df0471095ad1292c74e0f3615a3b6927ee7b5b7e925423a38cb8c23625ca07d
000014c0: PUSH1 0x40
000014c2: DUP4
000014c3: DUP1
000014c4: PUSH1 0xa0
000014c6: SHL
000014c7: SUB
000014c8: PUSH2 0x14d1
000014cb: DUP5
000014cc: DUP8
000014cd: PUSH2 0x1ba5
000014d0: JUMP
000014d1: JUMPDEST
000014d2: MLOAD
000014d3: AND
000014d4: DUP2
000014d5: MLOAD
000014d6: SWAP1
000014d7: DUP2
000014d8: MSTORE
000014d9: DUP5
000014da: PUSH1 0x20
000014dc: DUP3
000014dd: ADD
000014de: MSTORE
000014df: LOG1
000014e0: PUSH2 0x1498
000014e3: JUMP
000014e4: JUMPDEST
000014e5: PUSH1 0x20
000014e7: PUSH1 0x03
000014e9: NOT
000014ea: DUP3
000014eb: ADD
000014ec: SLT
000014ed: PUSH2 0x0253
000014f0: JUMPI
000014f1: PUSH1 0x04
000014f3: CALLDATALOAD
000014f4: SWAP1
000014f5: PUSH1 0x01
000014f7: PUSH1 0x01
000014f9: PUSH1 0x40
000014fb: SHL
000014fc: SUB
000014fd: DUP3
000014fe: GT
000014ff: PUSH2 0x0253
00001502: JUMPI
00001503: PUSH2 0x08ef
00001506: SWAP2
00001507: PUSH1 0x04
00001509: ADD
0000150a: PUSH2 0x04c1
0000150d: JUMP
0000150e: JUMPDEST
0000150f: CALLVALUE
00001510: PUSH2 0x0253
00001513: JUMPI
00001514: PUSH2 0x151c
00001517: CALLDATASIZE
00001518: PUSH2 0x14e4
0000151b: JUMP
0000151c: JUMPDEST
0000151d: PUSH2 0x1531
00001520: PUSH1 0x01
00001522: DUP1
00001523: PUSH1 0xa0
00001525: SHL
00001526: SUB
00001527: PUSH1 0x33
00001529: SLOAD
0000152a: AND
0000152b: CALLER
0000152c: EQ
0000152d: PUSH2 0x1a71
00001530: JUMP
00001531: JUMPDEST
00001532: PUSH0
00001533: JUMPDEST
00001534: DUP2
00001535: DUP2
00001536: LT
00001537: PUSH2 0x1571
0000153a: JUMPI
0000153b: POP
0000153c: PUSH32 0x4c022f03c292dfa42133bfa9f90bbf55089da679c2df97df205f337c12ab7b7c
0000155d: SWAP2
0000155e: PUSH2 0x156c
00001561: PUSH1 0x40
00001563: MLOAD
00001564: SWAP3
00001565: DUP4
00001566: SWAP3
00001567: DUP4
00001568: PUSH2 0x2147
0000156b: JUMP
0000156c: JUMPDEST
0000156d: SUB
0000156e: SWAP1
0000156f: LOG1
00001570: STOP
00001571: JUMPDEST
00001572: DUP1
00001573: PUSH2 0x1598
00001576: PUSH2 0x1582
00001579: PUSH1 0x01
0000157b: SWAP4
0000157c: DUP6
0000157d: DUP8
0000157e: PUSH2 0x1b44
00001581: JUMP
00001582: JUMPDEST
00001583: CALLDATALOAD
00001584: PUSH2 0x158c
00001587: DUP2
00001588: PUSH2 0x0242
0000158b: JUMP
0000158c: JUMPDEST
0000158d: DUP4
0000158e: DUP1
0000158f: PUSH1 0xa0
00001591: SHL
00001592: SUB
00001593: AND
00001594: PUSH2 0x2733
00001597: JUMP
00001598: JUMPDEST
00001599: POP
0000159a: ADD
0000159b: PUSH2 0x1533
0000159e: JUMP
0000159f: JUMPDEST
000015a0: CALLVALUE
000015a1: PUSH2 0x0253
000015a4: JUMPI
000015a5: PUSH2 0x15ad
000015a8: CALLDATASIZE
000015a9: PUSH2 0x10b8
000015ac: JUMP
000015ad: JUMPDEST
000015ae: PUSH2 0x15c2
000015b1: PUSH1 0x01
000015b3: DUP1
000015b4: PUSH1 0xa0
000015b6: SHL
000015b7: SUB
000015b8: PUSH1 0x33
000015ba: SLOAD
000015bb: AND
000015bc: CALLER
000015bd: EQ
000015be: PUSH2 0x1a71
000015c1: JUMP
000015c2: JUMPDEST
000015c3: PUSH0
000015c4: JUMPDEST
000015c5: DUP2
000015c6: MLOAD
000015c7: DUP2
000015c8: LT
000015c9: ISZERO
000015ca: PUSH2 0x001c
000015cd: JUMPI
000015ce: PUSH1 0x01
000015d0: SWAP1
000015d1: PUSH2 0x15ec
000015d4: PUSH1 0x01
000015d6: PUSH1 0x01
000015d8: PUSH1 0xa0
000015da: SHL
000015db: SUB
000015dc: PUSH2 0x15e5
000015df: DUP4
000015e0: DUP7
000015e1: PUSH2 0x1ba5
000015e4: JUMP
000015e5: JUMPDEST
000015e6: MLOAD
000015e7: AND
000015e8: PUSH2 0x2781
000015eb: JUMP
000015ec: JUMPDEST
000015ed: PUSH2 0x15f7
000015f0: JUMPI
000015f1: JUMPDEST
000015f2: ADD
000015f3: PUSH2 0x15c4
000015f6: JUMP
000015f7: JUMPDEST
000015f8: PUSH32 0xa30b4a30819461802ef73f5bd8d14569b88b857d9d64f0c5bbb33ea910ebe689
00001619: PUSH1 0x40
0000161b: DUP4
0000161c: DUP1
0000161d: PUSH1 0xa0
0000161f: SHL
00001620: SUB
00001621: PUSH2 0x162a
00001624: DUP5
00001625: DUP8
00001626: PUSH2 0x1ba5
00001629: JUMP
0000162a: JUMPDEST
0000162b: MLOAD
0000162c: AND
0000162d: DUP2
0000162e: MLOAD
0000162f: SWAP1
00001630: DUP2
00001631: MSTORE
00001632: DUP5
00001633: PUSH1 0x20
00001635: DUP3
00001636: ADD
00001637: MSTORE
00001638: LOG1
00001639: PUSH2 0x15f1
0000163c: JUMP
0000163d: JUMPDEST
0000163e: PUSH1 0x40
00001640: CALLDATASIZE
00001641: PUSH1 0x03
00001643: NOT
00001644: ADD
00001645: SLT
00001646: PUSH2 0x0253
00001649: JUMPI
0000164a: PUSH1 0x04
0000164c: CALLDATALOAD
0000164d: PUSH2 0x1655
00001650: DUP2
00001651: PUSH2 0x0242
00001654: JUMP
00001655: JUMPDEST
00001656: PUSH1 0x24
00001658: CALLDATALOAD
00001659: SWAP1
0000165a: PUSH1 0x01
0000165c: PUSH1 0x01
0000165e: PUSH1 0x40
00001660: SHL
00001661: SUB
00001662: DUP3
00001663: GT
00001664: PUSH2 0x0253
00001667: JUMPI
00001668: PUSH2 0x1678
0000166b: PUSH2 0x001c
0000166e: SWAP3
0000166f: CALLDATASIZE
00001670: SWAP1
00001671: PUSH1 0x04
00001673: ADD
00001674: PUSH2 0x0878
00001677: JUMP
00001678: JUMPDEST
00001679: SWAP2
0000167a: PUSH2 0x168e
0000167d: PUSH1 0x01
0000167f: DUP1
00001680: PUSH1 0xa0
00001682: SHL
00001683: SUB
00001684: PUSH1 0x33
00001686: SLOAD
00001687: AND
00001688: CALLER
00001689: EQ
0000168a: PUSH2 0x1a71
0000168d: JUMP
0000168e: JUMPDEST
0000168f: CALLVALUE
00001690: SWAP1
00001691: PUSH2 0x24b2
00001694: JUMP
00001695: JUMPDEST
00001696: CALLVALUE
00001697: PUSH2 0x0253
0000169a: JUMPI
0000169b: PUSH2 0x16a3
0000169e: CALLDATASIZE
0000169f: PUSH2 0x06ef
000016a2: JUMP
000016a3: JUMPDEST
000016a4: PUSH2 0x16b8
000016a7: PUSH1 0x01
000016a9: DUP1
000016aa: PUSH1 0xa0
000016ac: SHL
000016ad: SUB
000016ae: PUSH1 0x33
000016b0: SLOAD
000016b1: AND
000016b2: CALLER
000016b3: EQ
000016b4: PUSH2 0x1a71
000016b7: JUMP
000016b8: JUMPDEST
000016b9: PUSH2 0x16c5
000016bc: DUP3
000016bd: MLOAD
000016be: DUP3
000016bf: MLOAD
000016c0: EQ
000016c1: PUSH2 0x1b59
000016c4: JUMP
000016c5: JUMPDEST
000016c6: PUSH0
000016c7: JUMPDEST
000016c8: DUP3
000016c9: MLOAD
000016ca: DUP2
000016cb: LT
000016cc: ISZERO
000016cd: PUSH2 0x001c
000016d0: JUMPI
000016d1: PUSH1 0x01
000016d3: SWAP1
000016d4: PUSH2 0x172b
000016d7: PUSH1 0x01
000016d9: PUSH1 0x01
000016db: PUSH1 0xa0
000016dd: SHL
000016de: SUB
000016df: PUSH2 0x16e8
000016e2: DUP4
000016e3: DUP7
000016e4: PUSH2 0x1ba5
000016e7: JUMP
000016e8: JUMPDEST
000016e9: MLOAD
000016ea: AND
000016eb: PUSH1 0x01
000016ed: PUSH1 0x01
000016ef: PUSH1 0xe0
000016f1: SHL
000016f2: SUB
000016f3: NOT
000016f4: PUSH2 0x16fd
000016f7: DUP5
000016f8: DUP9
000016f9: PUSH2 0x1ba5
000016fc: JUMP
000016fd: JUMPDEST
000016fe: MLOAD
000016ff: AND
00001700: PUSH0
00001701: MSTORE
00001702: PUSH1 0xa0
00001704: PUSH1 0x20
00001706: MSTORE
00001707: PUSH1 0x40
00001709: PUSH0
0000170a: KECCAK256
0000170b: SWAP1
0000170c: PUSH1 0x01
0000170e: DUP1
0000170f: PUSH1 0xa0
00001711: SHL
00001712: SUB
00001713: AND
00001714: PUSH12 0xffffffffffffffffffffffff
00001721: PUSH1 0xa0
00001723: SHL
00001724: DUP3
00001725: SLOAD
00001726: AND
00001727: OR
00001728: SWAP1
00001729: SSTORE
0000172a: JUMP
0000172b: JUMPDEST
0000172c: ADD
0000172d: PUSH2 0x16c7
00001730: JUMP
00001731: JUMPDEST
00001732: CALLVALUE
00001733: PUSH2 0x0253
00001736: JUMPI
00001737: PUSH2 0x173f
0000173a: CALLDATASIZE
0000173b: PUSH2 0x10b8
0000173e: JUMP
0000173f: JUMPDEST
00001740: PUSH2 0x1754
00001743: PUSH1 0x01
00001745: DUP1
00001746: PUSH1 0xa0
00001748: SHL
00001749: SUB
0000174a: PUSH1 0x33
0000174c: SLOAD
0000174d: AND
0000174e: CALLER
0000174f: EQ
00001750: PUSH2 0x1a71
00001753: JUMP
00001754: JUMPDEST
00001755: PUSH0
00001756: JUMPDEST
00001757: DUP2
00001758: MLOAD
00001759: DUP2
0000175a: LT
0000175b: ISZERO
0000175c: PUSH2 0x001c
0000175f: JUMPI
00001760: PUSH1 0x01
00001762: SWAP1
00001763: PUSH2 0x177e
00001766: PUSH1 0x01
00001768: PUSH1 0x01
0000176a: PUSH1 0xa0
0000176c: SHL
0000176d: SUB
0000176e: PUSH2 0x1777
00001771: DUP4
00001772: DUP7
00001773: PUSH2 0x1ba5
00001776: JUMP
00001777: JUMPDEST
00001778: MLOAD
00001779: AND
0000177a: PUSH2 0x2c2a
0000177d: JUMP
0000177e: JUMPDEST
0000177f: PUSH2 0x1789
00001782: JUMPI
00001783: JUMPDEST
00001784: ADD
00001785: PUSH2 0x1756
00001788: JUMP
00001789: JUMPDEST
0000178a: PUSH32 0x6df0471095ad1292c74e0f3615a3b6927ee7b5b7e925423a38cb8c23625ca07d
000017ab: PUSH1 0x40
000017ad: DUP4
000017ae: DUP1
000017af: PUSH1 0xa0
000017b1: SHL
000017b2: SUB
000017b3: PUSH2 0x17bc
000017b6: DUP5
000017b7: DUP8
000017b8: PUSH2 0x1ba5
000017bb: JUMP
000017bc: JUMPDEST
000017bd: MLOAD
000017be: AND
000017bf: DUP2
000017c0: MLOAD
000017c1: SWAP1
000017c2: DUP2
000017c3: MSTORE
000017c4: PUSH0
000017c5: PUSH1 0x20
000017c7: DUP3
000017c8: ADD
000017c9: MSTORE
000017ca: LOG1
000017cb: PUSH2 0x1783
000017ce: JUMP
000017cf: JUMPDEST
000017d0: CALLVALUE
000017d1: PUSH2 0x0253
000017d4: JUMPI
000017d5: PUSH2 0x17dd
000017d8: CALLDATASIZE
000017d9: PUSH2 0x14e4
000017dc: JUMP
000017dd: JUMPDEST
000017de: PUSH2 0x17f2
000017e1: PUSH1 0x01
000017e3: DUP1
000017e4: PUSH1 0xa0
000017e6: SHL
000017e7: SUB
000017e8: PUSH1 0x33
000017ea: SLOAD
000017eb: AND
000017ec: CALLER
000017ed: EQ
000017ee: PUSH2 0x1a71
000017f1: JUMP
000017f2: JUMPDEST
000017f3: PUSH0
000017f4: JUMPDEST
000017f5: DUP2
000017f6: DUP2
000017f7: LT
000017f8: PUSH2 0x182d
000017fb: JUMPI
000017fc: POP
000017fd: PUSH32 0xd045926746dab8a5acf225487f413b986460165cf50f6052689a2e471198e059
0000181e: SWAP2
0000181f: PUSH2 0x156c
00001822: PUSH1 0x40
00001824: MLOAD
00001825: SWAP3
00001826: DUP4
00001827: SWAP3
00001828: DUP4
00001829: PUSH2 0x2147
0000182c: JUMP
0000182d: JUMPDEST
0000182e: DUP1
0000182f: PUSH2 0x1854
00001832: PUSH2 0x183e
00001835: PUSH1 0x01
00001837: SWAP4
00001838: DUP6
00001839: DUP8
0000183a: PUSH2 0x1b44
0000183d: JUMP
0000183e: JUMPDEST
0000183f: CALLDATALOAD
00001840: PUSH2 0x1848
00001843: DUP2
00001844: PUSH2 0x0242
00001847: JUMP
00001848: JUMPDEST
00001849: DUP4
0000184a: DUP1
0000184b: PUSH1 0xa0
0000184d: SHL
0000184e: SUB
0000184f: AND
00001850: PUSH2 0x2cac
00001853: JUMP
00001854: JUMPDEST
00001855: POP
00001856: ADD
00001857: PUSH2 0x17f4
0000185a: JUMP
0000185b: JUMPDEST
0000185c: CALLVALUE
0000185d: PUSH2 0x0253
00001860: JUMPI
00001861: PUSH0
00001862: CALLDATASIZE
00001863: PUSH1 0x03
00001865: NOT
00001866: ADD
00001867: SLT
00001868: PUSH2 0x0253
0000186b: JUMPI
0000186c: PUSH1 0x20
0000186e: PUSH1 0x40
00001870: MLOAD
00001871: PUSH0
00001872: NOT
00001873: DUP2
00001874: MSTORE
00001875: RETURN
00001876: JUMPDEST
00001877: CALLVALUE
00001878: PUSH2 0x0253
0000187b: JUMPI
0000187c: PUSH0
0000187d: CALLDATASIZE
0000187e: PUSH1 0x03
00001880: NOT
00001881: ADD
00001882: SLT
00001883: PUSH2 0x0253
00001886: JUMPI
00001887: PUSH1 0x65
00001889: SLOAD
0000188a: PUSH2 0x1892
0000188d: DUP2
0000188e: PUSH2 0x065f
00001891: JUMP
00001892: JUMPDEST
00001893: SWAP1
00001894: PUSH2 0x18a0
00001897: PUSH1 0x40
00001899: MLOAD
0000189a: SWAP3
0000189b: DUP4
0000189c: PUSH2 0x03b2
0000189f: JUMP
000018a0: JUMPDEST
000018a1: DUP1
000018a2: DUP3
000018a3: MSTORE
000018a4: PUSH2 0x18af
000018a7: PUSH1 0x1f
000018a9: NOT
000018aa: SWAP2
000018ab: PUSH2 0x065f
000018ae: JUMP
000018af: JUMPDEST
000018b0: ADD
000018b1: CALLDATASIZE
000018b2: PUSH1 0x20
000018b4: DUP4
000018b5: ADD
000018b6: CALLDATACOPY
000018b7: PUSH0
000018b8: JUMPDEST
000018b9: DUP2
000018ba: MLOAD
000018bb: DUP2
000018bc: LT
000018bd: ISZERO
000018be: PUSH2 0x18ec
000018c1: JUMPI
000018c2: DUP1
000018c3: PUSH2 0x18cd
000018c6: PUSH1 0x01
000018c8: SWAP3
000018c9: PUSH2 0x2632
000018cc: JUMP
000018cd: JUMPDEST
000018ce: DUP4
000018cf: DUP1
000018d0: PUSH1 0xa0
000018d2: SHL
000018d3: SUB
000018d4: SWAP2
000018d5: SLOAD
000018d6: SWAP1
000018d7: PUSH1 0x03
000018d9: SHL
000018da: SHR
000018db: AND
000018dc: PUSH2 0x18e5
000018df: DUP3
000018e0: DUP6
000018e1: PUSH2 0x1ba5
000018e4: JUMP
000018e5: JUMPDEST
000018e6: MSTORE
000018e7: ADD
000018e8: PUSH2 0x18b8
000018eb: JUMP
000018ec: JUMPDEST
000018ed: PUSH1 0x40
000018ef: MLOAD
000018f0: DUP1
000018f1: PUSH2 0x0384
000018f4: DUP5
000018f5: DUP3
000018f6: PUSH2 0x02d8
000018f9: JUMP
000018fa: JUMPDEST
000018fb: CALLVALUE
000018fc: PUSH2 0x0253
000018ff: JUMPI
00001900: PUSH1 0x20
00001902: CALLDATASIZE
00001903: PUSH1 0x03
00001905: NOT
00001906: ADD
00001907: SLT
00001908: PUSH2 0x0253
0000190b: JUMPI
0000190c: PUSH1 0x04
0000190e: CALLDATALOAD
0000190f: PUSH2 0x1917
00001912: DUP2
00001913: PUSH2 0x0242
00001916: JUMP
00001917: JUMPDEST
00001918: PUSH1 0x01
0000191a: DUP1
0000191b: PUSH1 0xa0
0000191d: SHL
0000191e: SUB
0000191f: AND
00001920: PUSH0
00001921: MSTORE
00001922: PUSH1 0xa2
00001924: PUSH1 0x20
00001926: MSTORE
00001927: PUSH1 0x20
00001929: PUSH1 0x40
0000192b: PUSH0
0000192c: KECCAK256
0000192d: SLOAD
0000192e: ISZERO
0000192f: ISZERO
00001930: PUSH1 0x40
00001932: MLOAD
00001933: SWAP1
00001934: DUP2
00001935: MSTORE
00001936: RETURN
00001937: JUMPDEST
00001938: CALLVALUE
00001939: PUSH2 0x0253
0000193c: JUMPI
0000193d: PUSH0
0000193e: CALLDATASIZE
0000193f: PUSH1 0x03
00001941: NOT
00001942: ADD
00001943: SLT
00001944: PUSH2 0x0253
00001947: JUMPI
00001948: PUSH1 0x20
0000194a: PUSH1 0x65
0000194c: SLOAD
0000194d: PUSH1 0x40
0000194f: MLOAD
00001950: SWAP1
00001951: DUP2
00001952: MSTORE
00001953: RETURN
00001954: JUMPDEST
00001955: CALLVALUE
00001956: PUSH2 0x0253
00001959: JUMPI
0000195a: PUSH0
0000195b: PUSH1 0x20
0000195d: CALLDATASIZE
0000195e: PUSH1 0x03
00001960: NOT
00001961: ADD
00001962: SLT
00001963: PUSH2 0x0253
00001966: JUMPI
00001967: PUSH1 0x04
00001969: CALLDATALOAD
0000196a: PUSH2 0x1981
0000196d: PUSH2 0x0e64
00001970: CALLER
00001971: PUSH0
00001972: MSTORE
00001973: PUSH1 0x66
00001975: PUSH1 0x20
00001977: MSTORE
00001978: PUSH1 0x40
0000197a: PUSH0
0000197b: KECCAK256
0000197c: SLOAD
0000197d: ISZERO
0000197e: ISZERO
0000197f: SWAP1
00001980: JUMP
00001981: JUMPDEST
00001982: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000019a3: PUSH1 0x01
000019a5: PUSH1 0x01
000019a7: PUSH1 0xa0
000019a9: SHL
000019aa: SUB
000019ab: AND
000019ac: DUP1
000019ad: EXTCODESIZE
000019ae: ISZERO
000019af: PUSH2 0x0253
000019b2: JUMPI
000019b3: PUSH0
000019b4: SWAP1
000019b5: PUSH1 0x04
000019b7: PUSH1 0x40
000019b9: MLOAD
000019ba: DUP1
000019bb: SWAP5
000019bc: DUP2
000019bd: SWAP4
000019be: PUSH4 0x0d0e30db
000019c3: PUSH1 0xe4
000019c5: SHL
000019c6: DUP4
000019c7: MSTORE
000019c8: GAS
000019c9: CALL
000019ca: DUP1
000019cb: ISZERO
000019cc: PUSH2 0x065a
000019cf: JUMPI
000019d0: PUSH2 0x19d7
000019d3: JUMPI
000019d4: POP
000019d5: DUP1
000019d6: RETURN
000019d7: JUMPDEST
000019d8: PUSH2 0x001c
000019db: SWAP2
000019dc: POP
000019dd: PUSH0
000019de: SWAP1
000019df: PUSH2 0x03b2
000019e2: JUMP
000019e3: JUMPDEST
000019e4: CALLVALUE
000019e5: PUSH2 0x0253
000019e8: JUMPI
000019e9: PUSH1 0x20
000019eb: CALLDATASIZE
000019ec: PUSH1 0x03
000019ee: NOT
000019ef: ADD
000019f0: SLT
000019f1: PUSH2 0x0253
000019f4: JUMPI
000019f5: PUSH1 0x04
000019f7: CALLDATALOAD
000019f8: PUSH2 0x1a00
000019fb: DUP2
000019fc: PUSH2 0x0242
000019ff: JUMP
00001a00: JUMPDEST
00001a01: PUSH2 0x1a15
00001a04: PUSH1 0x01
00001a06: DUP1
00001a07: PUSH1 0xa0
00001a09: SHL
00001a0a: SUB
00001a0b: PUSH1 0x33
00001a0d: SLOAD
00001a0e: AND
00001a0f: CALLER
00001a10: EQ
00001a11: PUSH2 0x1a71
00001a14: JUMP
00001a15: JUMPDEST
00001a16: PUSH1 0x01
00001a18: PUSH1 0x01
00001a1a: PUSH1 0xa0
00001a1c: SHL
00001a1d: SUB
00001a1e: DUP2
00001a1f: AND
00001a20: ISZERO
00001a21: PUSH2 0x0cab
00001a24: JUMPI
00001a25: PUSH2 0x001c
00001a28: SWAP1
00001a29: PUSH2 0x25ea
00001a2c: JUMP
00001a2d: JUMPDEST
00001a2e: CALLVALUE
00001a2f: PUSH2 0x0253
00001a32: JUMPI
00001a33: PUSH1 0x20
00001a35: CALLDATASIZE
00001a36: PUSH1 0x03
00001a38: NOT
00001a39: ADD
00001a3a: SLT
00001a3b: PUSH2 0x0253
00001a3e: JUMPI
00001a3f: PUSH1 0x04
00001a41: CALLDATALOAD
00001a42: PUSH2 0x1a4a
00001a45: DUP2
00001a46: PUSH2 0x0676
00001a49: JUMP
00001a4a: JUMPDEST
00001a4b: PUSH4 0xffffffff
00001a50: PUSH1 0xe0
00001a52: SHL
00001a53: AND
00001a54: PUSH0
00001a55: MSTORE
00001a56: PUSH1 0x9f
00001a58: PUSH1 0x20
00001a5a: MSTORE
00001a5b: PUSH1 0x20
00001a5d: PUSH1 0x01
00001a5f: DUP1
00001a60: PUSH1 0xa0
00001a62: SHL
00001a63: SUB
00001a64: PUSH1 0x40
00001a66: PUSH0
00001a67: KECCAK256
00001a68: SLOAD
00001a69: AND
00001a6a: PUSH1 0x40
00001a6c: MLOAD
00001a6d: SWAP1
00001a6e: DUP2
00001a6f: MSTORE
00001a70: RETURN
00001a71: JUMPDEST
00001a72: ISZERO
00001a73: PUSH2 0x1a78
00001a76: JUMPI
00001a77: JUMP
00001a78: JUMPDEST
00001a79: PUSH1 0x64
00001a7b: PUSH1 0x40
00001a7d: MLOAD
00001a7e: PUSH3 0x461bcd
00001a82: PUSH1 0xe5
00001a84: SHL
00001a85: DUP2
00001a86: MSTORE
00001a87: PUSH1 0x20
00001a89: PUSH1 0x04
00001a8b: DUP3
00001a8c: ADD
00001a8d: MSTORE
00001a8e: PUSH1 0x20
00001a90: PUSH1 0x24
00001a92: DUP3
00001a93: ADD
00001a94: MSTORE
00001a95: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00001ab6: PUSH1 0x44
00001ab8: DUP3
00001ab9: ADD
00001aba: MSTORE
00001abb: REVERT
00001abc: JUMPDEST
00001abd: SWAP1
00001abe: PUSH2 0x1b15
00001ac1: SWAP2
00001ac2: PUSH1 0x01
00001ac4: DUP1
00001ac5: PUSH1 0xa0
00001ac7: SHL
00001ac8: SUB
00001ac9: PUSH1 0x9a
00001acb: SLOAD
00001acc: AND
00001acd: SWAP1
00001ace: PUSH1 0x40
00001ad0: MLOAD
00001ad1: PUSH1 0x20
00001ad3: DUP2
00001ad4: ADD
00001ad5: SWAP2
00001ad6: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
00001af7: DUP4
00001af8: MSTORE
00001af9: PUSH1 0x3c
00001afb: DUP3
00001afc: ADD
00001afd: MSTORE
00001afe: PUSH1 0x3c
00001b00: DUP2
00001b01: MSTORE
00001b02: PUSH2 0x1b0c
00001b05: PUSH1 0x5c
00001b07: DUP3
00001b08: PUSH2 0x03b2
00001b0b: JUMP
00001b0c: JUMPDEST
00001b0d: MLOAD
00001b0e: SWAP1
00001b0f: KECCAK256
00001b10: SWAP1
00001b11: PUSH2 0x229c
00001b14: JUMP
00001b15: JUMPDEST
00001b16: PUSH2 0x1b25
00001b19: JUMPI
00001b1a: PUSH1 0x01
00001b1c: PUSH1 0x01
00001b1e: PUSH1 0xe0
00001b20: SHL
00001b21: SUB
00001b22: NOT
00001b23: SWAP1
00001b24: JUMP
00001b25: JUMPDEST
00001b26: PUSH4 0x0b135d3f
00001b2b: PUSH1 0xe1
00001b2d: SHL
00001b2e: SWAP1
00001b2f: JUMP
00001b30: JUMPDEST
00001b31: PUSH4 0x4e487b71
00001b36: PUSH1 0xe0
00001b38: SHL
00001b39: PUSH0
00001b3a: MSTORE
00001b3b: PUSH1 0x32
00001b3d: PUSH1 0x04
00001b3f: MSTORE
00001b40: PUSH1 0x24
00001b42: PUSH0
00001b43: REVERT
00001b44: JUMPDEST
00001b45: SWAP2
00001b46: SWAP1
00001b47: DUP2
00001b48: LT
00001b49: ISZERO
00001b4a: PUSH2 0x1b54
00001b4d: JUMPI
00001b4e: PUSH1 0x05
00001b50: SHL
00001b51: ADD
00001b52: SWAP1
00001b53: JUMP
00001b54: JUMPDEST
00001b55: PUSH2 0x1b30
00001b58: JUMP
00001b59: JUMPDEST
00001b5a: ISZERO
00001b5b: PUSH2 0x1b60
00001b5e: JUMPI
00001b5f: JUMP
00001b60: JUMPDEST
00001b61: PUSH1 0x40
00001b63: MLOAD
00001b64: PUSH3 0x461bcd
00001b68: PUSH1 0xe5
00001b6a: SHL
00001b6b: DUP2
00001b6c: MSTORE
00001b6d: PUSH1 0x20
00001b6f: PUSH1 0x04
00001b71: DUP3
00001b72: ADD
00001b73: MSTORE
00001b74: PUSH1 0x18
00001b76: PUSH1 0x24
00001b78: DUP3
00001b79: ADD
00001b7a: MSTORE
00001b7b: PUSH32 0x4578656375746f723a20696e76616c6964206c656e6774680000000000000000
00001b9c: PUSH1 0x44
00001b9e: DUP3
00001b9f: ADD
00001ba0: MSTORE
00001ba1: PUSH1 0x64
00001ba3: SWAP1
00001ba4: REVERT
00001ba5: JUMPDEST
00001ba6: DUP1
00001ba7: MLOAD
00001ba8: DUP3
00001ba9: LT
00001baa: ISZERO
00001bab: PUSH2 0x1b54
00001bae: JUMPI
00001baf: PUSH1 0x20
00001bb1: SWAP2
00001bb2: PUSH1 0x05
00001bb4: SHL
00001bb5: ADD
00001bb6: ADD
00001bb7: SWAP1
00001bb8: JUMP
00001bb9: JUMPDEST
00001bba: ISZERO
00001bbb: PUSH2 0x1bc0
00001bbe: JUMPI
00001bbf: JUMP
00001bc0: JUMPDEST
00001bc1: PUSH1 0x40
00001bc3: MLOAD
00001bc4: PUSH3 0x461bcd
00001bc8: PUSH1 0xe5
00001bca: SHL
00001bcb: DUP2
00001bcc: MSTORE
00001bcd: PUSH1 0x20
00001bcf: PUSH1 0x04
00001bd1: DUP3
00001bd2: ADD
00001bd3: MSTORE
00001bd4: PUSH1 0x14
00001bd6: PUSH1 0x24
00001bd8: DUP3
00001bd9: ADD
00001bda: MSTORE
00001bdb: PUSH20 0x4f6e6c7920666f7277617264657220616c6c6f77
00001bf0: PUSH1 0x60
00001bf2: SHL
00001bf3: PUSH1 0x44
00001bf5: DUP3
00001bf6: ADD
00001bf7: MSTORE
00001bf8: PUSH1 0x64
00001bfa: SWAP1
00001bfb: REVERT
00001bfc: JUMPDEST
00001bfd: CALLDATALOAD
00001bfe: PUSH1 0x01
00001c00: PUSH1 0x01
00001c02: PUSH1 0x80
00001c04: SHL
00001c05: SUB
00001c06: DUP2
00001c07: AND
00001c08: DUP2
00001c09: SUB
00001c0a: PUSH2 0x0253
00001c0d: JUMPI
00001c0e: SWAP1
00001c0f: JUMP
00001c10: JUMPDEST
00001c11: ISZERO
00001c12: PUSH2 0x1c17
00001c15: JUMPI
00001c16: JUMP
00001c17: JUMPDEST
00001c18: PUSH1 0x40
00001c1a: MLOAD
00001c1b: PUSH3 0x461bcd
00001c1f: PUSH1 0xe5
00001c21: SHL
00001c22: DUP2
00001c23: MSTORE
00001c24: PUSH1 0x20
00001c26: PUSH1 0x04
00001c28: DUP3
00001c29: ADD
00001c2a: MSTORE
00001c2b: PUSH1 0x11
00001c2d: PUSH1 0x24
00001c2f: DUP3
00001c30: ADD
00001c31: MSTORE
00001c32: PUSH17 0x14da59db985d1d5c9948195e1c1a5c9959
00001c44: PUSH1 0x7a
00001c46: SHL
00001c47: PUSH1 0x44
00001c49: DUP3
00001c4a: ADD
00001c4b: MSTORE
00001c4c: PUSH1 0x64
00001c4e: SWAP1
00001c4f: REVERT
00001c50: JUMPDEST
00001c51: CALLDATALOAD
00001c52: PUSH2 0x077b
00001c55: DUP2
00001c56: PUSH2 0x0242
00001c59: JUMP
00001c5a: JUMPDEST
00001c5b: ISZERO
00001c5c: PUSH2 0x1c61
00001c5f: JUMPI
00001c60: JUMP
00001c61: JUMPDEST
00001c62: PUSH1 0x40
00001c64: MLOAD
00001c65: PUSH3 0x461bcd
00001c69: PUSH1 0xe5
00001c6b: SHL
00001c6c: DUP2
00001c6d: MSTORE
00001c6e: PUSH1 0x20
00001c70: PUSH1 0x04
00001c72: DUP3
00001c73: ADD
00001c74: MSTORE
00001c75: PUSH1 0x10
00001c77: PUSH1 0x24
00001c79: DUP3
00001c7a: ADD
00001c7b: MSTORE
00001c7c: PUSH16 0x24b731b7b93932b1ba1039b2b73232b9
00001c8d: PUSH1 0x81
00001c8f: SHL
00001c90: PUSH1 0x44
00001c92: DUP3
00001c93: ADD
00001c94: MSTORE
00001c95: PUSH1 0x64
00001c97: SWAP1
00001c98: REVERT
00001c99: JUMPDEST
00001c9a: SWAP1
00001c9b: CALLDATALOAD
00001c9c: SWAP1
00001c9d: PUSH1 0x1e
00001c9f: NOT
00001ca0: DUP2
00001ca1: CALLDATASIZE
00001ca2: SUB
00001ca3: ADD
00001ca4: DUP3
00001ca5: SLT
00001ca6: ISZERO
00001ca7: PUSH2 0x0253
00001caa: JUMPI
00001cab: ADD
00001cac: DUP1
00001cad: CALLDATALOAD
00001cae: SWAP1
00001caf: PUSH1 0x01
00001cb1: PUSH1 0x01
00001cb3: PUSH1 0x40
00001cb5: SHL
00001cb6: SUB
00001cb7: DUP3
00001cb8: GT
00001cb9: PUSH2 0x0253
00001cbc: JUMPI
00001cbd: PUSH1 0x20
00001cbf: ADD
00001cc0: SWAP2
00001cc1: DUP2
00001cc2: PUSH1 0x05
00001cc4: SHL
00001cc5: CALLDATASIZE
00001cc6: SUB
00001cc7: DUP4
00001cc8: SGT
00001cc9: PUSH2 0x0253
00001ccc: JUMPI
00001ccd: JUMP
00001cce: JUMPDEST
00001ccf: SWAP1
00001cd0: CALLDATALOAD
00001cd1: PUSH1 0x1e
00001cd3: NOT
00001cd4: DUP3
00001cd5: CALLDATASIZE
00001cd6: SUB
00001cd7: ADD
00001cd8: DUP2
00001cd9: SLT
00001cda: ISZERO
00001cdb: PUSH2 0x0253
00001cde: JUMPI
00001cdf: ADD
00001ce0: PUSH1 0x20
00001ce2: DUP2
00001ce3: CALLDATALOAD
00001ce4: SWAP2
00001ce5: ADD
00001ce6: SWAP2
00001ce7: PUSH1 0x01
00001ce9: PUSH1 0x01
00001ceb: PUSH1 0x40
00001ced: SHL
00001cee: SUB
00001cef: DUP3
00001cf0: GT
00001cf1: PUSH2 0x0253
00001cf4: JUMPI
00001cf5: DUP2
00001cf6: CALLDATASIZE
00001cf7: SUB
00001cf8: DUP4
00001cf9: SGT
00001cfa: PUSH2 0x0253
00001cfd: JUMPI
00001cfe: JUMP
00001cff: JUMPDEST
00001d00: SWAP1
00001d01: DUP1
00001d02: PUSH1 0x20
00001d04: SWAP4
00001d05: SWAP3
00001d06: DUP2
00001d07: DUP5
00001d08: MSTORE
00001d09: DUP5
00001d0a: DUP5
00001d0b: ADD
00001d0c: CALLDATACOPY
00001d0d: PUSH0
00001d0e: DUP3
00001d0f: DUP3
00001d10: ADD
00001d11: DUP5
00001d12: ADD
00001d13: MSTORE
00001d14: PUSH1 0x1f
00001d16: ADD
00001d17: PUSH1 0x1f
00001d19: NOT
00001d1a: AND
00001d1b: ADD
00001d1c: ADD
00001d1d: SWAP1
00001d1e: JUMP
00001d1f: JUMPDEST
00001d20: DUP3
00001d21: PUSH1 0x20
00001d23: DUP3
00001d24: ADD
00001d25: PUSH1 0x20
00001d27: DUP4
00001d28: MSTORE
00001d29: MSTORE
00001d2a: PUSH1 0x40
00001d2c: DUP2
00001d2d: ADD
00001d2e: SWAP3
00001d2f: PUSH1 0x40
00001d31: DUP2
00001d32: PUSH1 0x05
00001d34: SHL
00001d35: DUP4
00001d36: ADD
00001d37: ADD
00001d38: SWAP4
00001d39: DUP4
00001d3a: PUSH0
00001d3b: SWAP2
00001d3c: PUSH1 0x3e
00001d3e: NOT
00001d3f: DUP3
00001d40: CALLDATASIZE
00001d41: SUB
00001d42: ADD
00001d43: SWAP5
00001d44: JUMPDEST
00001d45: DUP5
00001d46: DUP5
00001d47: LT
00001d48: PUSH2 0x1d55
00001d4b: JUMPI
00001d4c: POP
00001d4d: POP
00001d4e: POP
00001d4f: POP
00001d50: POP
00001d51: POP
00001d52: POP
00001d53: SWAP1
00001d54: JUMP
00001d55: JUMPDEST
00001d56: SWAP1
00001d57: SWAP2
00001d58: SWAP3
00001d59: SWAP4
00001d5a: SWAP5
00001d5b: SWAP6
00001d5c: SWAP7
00001d5d: PUSH1 0x3f
00001d5f: NOT
00001d60: DUP3
00001d61: DUP3
00001d62: SUB
00001d63: ADD
00001d64: DUP4
00001d65: MSTORE
00001d66: DUP8
00001d67: CALLDATALOAD
00001d68: DUP8
00001d69: DUP2
00001d6a: SLT
00001d6b: ISZERO
00001d6c: PUSH2 0x0253
00001d6f: JUMPI
00001d70: PUSH1 0x20
00001d72: PUSH2 0x1dac
00001d75: PUSH1 0x01
00001d77: SWAP4
00001d78: PUSH1 0x40
00001d7a: PUSH2 0x1d9d
00001d7d: DUP10
00001d7e: DUP6
00001d7f: SWAP7
00001d80: ADD
00001d81: DUP1
00001d82: CALLDATALOAD
00001d83: PUSH2 0x1d8b
00001d86: DUP2
00001d87: PUSH2 0x0242
00001d8a: JUMP
00001d8b: JUMPDEST
00001d8c: DUP9
00001d8d: DUP1
00001d8e: PUSH1 0xa0
00001d90: SHL
00001d91: SUB
00001d92: AND
00001d93: DUP5
00001d94: MSTORE
00001d95: DUP6
00001d96: DUP2
00001d97: ADD
00001d98: SWAP1
00001d99: PUSH2 0x1cce
00001d9c: JUMP
00001d9d: JUMPDEST
00001d9e: SWAP2
00001d9f: SWAP1
00001da0: SWAP3
00001da1: DUP2
00001da2: DUP7
00001da3: DUP3
00001da4: ADD
00001da5: MSTORE
00001da6: ADD
00001da7: SWAP2
00001da8: PUSH2 0x1cff
00001dab: JUMP
00001dac: JUMPDEST
00001dad: SWAP10
00001dae: ADD
00001daf: SWAP4
00001db0: ADD
00001db1: SWAP5
00001db2: ADD
00001db3: SWAP3
00001db4: SWAP2
00001db5: SWAP6
00001db6: SWAP5
00001db7: SWAP4
00001db8: SWAP1
00001db9: PUSH2 0x1d44
00001dbc: JUMP
00001dbd: JUMPDEST
00001dbe: ISZERO
00001dbf: PUSH2 0x1dc4
00001dc2: JUMPI
00001dc3: JUMP
00001dc4: JUMPDEST
00001dc5: PUSH1 0x64
00001dc7: PUSH1 0x40
00001dc9: MLOAD
00001dca: PUSH3 0x461bcd
00001dce: PUSH1 0xe5
00001dd0: SHL
00001dd1: DUP2
00001dd2: MSTORE
00001dd3: PUSH1 0x20
00001dd5: PUSH1 0x04
00001dd7: DUP3
00001dd8: ADD
00001dd9: MSTORE
00001dda: PUSH1 0x20
00001ddc: PUSH1 0x24
00001dde: DUP3
00001ddf: ADD
00001de0: MSTORE
00001de1: PUSH32 0x5369676e617475726520646f6573206e6f74206d617463682072657175657374
00001e02: PUSH1 0x44
00001e04: DUP3
00001e05: ADD
00001e06: MSTORE
00001e07: REVERT
00001e08: JUMPDEST
00001e09: SWAP2
00001e0a: SWAP1
00001e0b: DUP2
00001e0c: LT
00001e0d: ISZERO
00001e0e: PUSH2 0x1b54
00001e11: JUMPI
00001e12: PUSH1 0x05
00001e14: SHL
00001e15: DUP2
00001e16: ADD
00001e17: CALLDATALOAD
00001e18: SWAP1
00001e19: PUSH1 0x3e
00001e1b: NOT
00001e1c: DUP2
00001e1d: CALLDATASIZE
00001e1e: SUB
00001e1f: ADD
00001e20: DUP3
00001e21: SLT
00001e22: ISZERO
00001e23: PUSH2 0x0253
00001e26: JUMPI
00001e27: ADD
00001e28: SWAP1
00001e29: JUMP
00001e2a: JUMPDEST
00001e2b: ISZERO
00001e2c: PUSH2 0x1e31
00001e2f: JUMPI
00001e30: JUMP
00001e31: JUMPDEST
00001e32: PUSH1 0x40
00001e34: MLOAD
00001e35: PUSH3 0x461bcd
00001e39: PUSH1 0xe5
00001e3b: SHL
00001e3c: DUP2
00001e3d: MSTORE
00001e3e: PUSH1 0x20
00001e40: PUSH1 0x04
00001e42: DUP3
00001e43: ADD
00001e44: MSTORE
00001e45: PUSH1 0x11
00001e47: PUSH1 0x24
00001e49: DUP3
00001e4a: ADD
00001e4b: MSTORE
00001e4c: PUSH17 0x139bdd081858d8d95c1d19590819195cdd
00001e5e: PUSH1 0x7a
00001e60: SHL
00001e61: PUSH1 0x44
00001e63: DUP3
00001e64: ADD
00001e65: MSTORE
00001e66: PUSH1 0x64
00001e68: SWAP1
00001e69: REVERT
00001e6a: JUMPDEST
00001e6b: SWAP1
00001e6c: CALLDATALOAD
00001e6d: SWAP1
00001e6e: PUSH1 0x1e
00001e70: NOT
00001e71: DUP2
00001e72: CALLDATASIZE
00001e73: SUB
00001e74: ADD
00001e75: DUP3
00001e76: SLT
00001e77: ISZERO
00001e78: PUSH2 0x0253
00001e7b: JUMPI
00001e7c: ADD
00001e7d: DUP1
00001e7e: CALLDATALOAD
00001e7f: SWAP1
00001e80: PUSH1 0x01
00001e82: PUSH1 0x01
00001e84: PUSH1 0x40
00001e86: SHL
00001e87: SUB
00001e88: DUP3
00001e89: GT
00001e8a: PUSH2 0x0253
00001e8d: JUMPI
00001e8e: PUSH1 0x20
00001e90: ADD
00001e91: SWAP2
00001e92: DUP2
00001e93: CALLDATASIZE
00001e94: SUB
00001e95: DUP4
00001e96: SGT
00001e97: PUSH2 0x0253
00001e9a: JUMPI
00001e9b: JUMP
00001e9c: JUMPDEST
00001e9d: CALLDATALOAD
00001e9e: PUSH1 0x01
00001ea0: PUSH1 0x01
00001ea2: PUSH1 0xe0
00001ea4: SHL
00001ea5: SUB
00001ea6: NOT
00001ea7: DUP2
00001ea8: AND
00001ea9: SWAP3
00001eaa: SWAP2
00001eab: SWAP1
00001eac: PUSH1 0x04
00001eae: DUP3
00001eaf: LT
00001eb0: PUSH2 0x1eb7
00001eb3: JUMPI
00001eb4: POP
00001eb5: POP
00001eb6: JUMP
00001eb7: JUMPDEST
00001eb8: PUSH1 0x01
00001eba: PUSH1 0x01
00001ebc: PUSH1 0xe0
00001ebe: SHL
00001ebf: SUB
00001ec0: NOT
00001ec1: PUSH1 0x04
00001ec3: SWAP3
00001ec4: SWAP1
00001ec5: SWAP3
00001ec6: SUB
00001ec7: PUSH1 0x03
00001ec9: SHL
00001eca: DUP3
00001ecb: SWAP1
00001ecc: SHL
00001ecd: AND
00001ece: AND
00001ecf: SWAP2
00001ed0: POP
00001ed1: JUMP
00001ed2: JUMPDEST
00001ed3: ISZERO
00001ed4: PUSH2 0x1ed9
00001ed7: JUMPI
00001ed8: JUMP
00001ed9: JUMPDEST
00001eda: PUSH1 0x40
00001edc: MLOAD
00001edd: PUSH3 0x461bcd
00001ee1: PUSH1 0xe5
00001ee3: SHL
00001ee4: DUP2
00001ee5: MSTORE
00001ee6: PUSH1 0x20
00001ee8: PUSH1 0x04
00001eea: DUP3
00001eeb: ADD
00001eec: MSTORE
00001eed: PUSH1 0x0c
00001eef: PUSH1 0x24
00001ef1: DUP3
00001ef2: ADD
00001ef3: MSTORE
00001ef4: PUSH12 0x2737ba103932b3b4b9ba32b9
00001f01: PUSH1 0xa1
00001f03: SHL
00001f04: PUSH1 0x44
00001f06: DUP3
00001f07: ADD
00001f08: MSTORE
00001f09: PUSH1 0x64
00001f0b: SWAP1
00001f0c: REVERT
00001f0d: JUMPDEST
00001f0e: PUSH1 0x40
00001f10: MLOAD
00001f11: RETURNDATASIZE
00001f12: PUSH0
00001f13: DUP3
00001f14: RETURNDATACOPY
00001f15: RETURNDATASIZE
00001f16: SWAP1
00001f17: REVERT
00001f18: JUMPDEST
00001f19: ISZERO
00001f1a: PUSH2 0x1f1f
00001f1d: JUMPI
00001f1e: JUMP
00001f1f: JUMPDEST
00001f20: PUSH1 0x40
00001f22: MLOAD
00001f23: PUSH3 0x461bcd
00001f27: PUSH1 0xe5
00001f29: SHL
00001f2a: DUP2
00001f2b: MSTORE
00001f2c: PUSH1 0x20
00001f2e: PUSH1 0x04
00001f30: DUP3
00001f31: ADD
00001f32: MSTORE
00001f33: PUSH1 0x2e
00001f35: PUSH1 0x24
00001f37: DUP3
00001f38: ADD
00001f39: MSTORE
00001f3a: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
00001f5b: PUSH1 0x44
00001f5d: DUP3
00001f5e: ADD
00001f5f: MSTORE
00001f60: PUSH14 0x191e481a5b9a5d1a585b1a5e9959
00001f6f: PUSH1 0x92
00001f71: SHL
00001f72: PUSH1 0x64
00001f74: DUP3
00001f75: ADD
00001f76: MSTORE
00001f77: PUSH1 0x84
00001f79: SWAP1
00001f7a: REVERT
00001f7b: JUMPDEST
00001f7c: ISZERO
00001f7d: PUSH2 0x1f82
00001f80: JUMPI
00001f81: JUMP
00001f82: JUMPDEST
00001f83: PUSH1 0x40
00001f85: MLOAD
00001f86: PUSH3 0x461bcd
00001f8a: PUSH1 0xe5
00001f8c: SHL
00001f8d: DUP2
00001f8e: MSTORE
00001f8f: PUSH1 0x20
00001f91: PUSH1 0x04
00001f93: DUP3
00001f94: ADD
00001f95: MSTORE
00001f96: PUSH1 0x16
00001f98: PUSH1 0x24
00001f9a: DUP3
00001f9b: ADD
00001f9c: MSTORE
00001f9d: PUSH22 0x31b0b63632b91034b9903737ba1037b832b930ba37b9
00001fb4: PUSH1 0x51
00001fb6: SHL
00001fb7: PUSH1 0x44
00001fb9: DUP3
00001fba: ADD
00001fbb: MSTORE
00001fbc: PUSH1 0x64
00001fbe: SWAP1
00001fbf: REVERT
00001fc0: JUMPDEST
00001fc1: ISZERO
00001fc2: PUSH2 0x1fc7
00001fc5: JUMPI
00001fc6: JUMP
00001fc7: JUMPDEST
00001fc8: PUSH1 0x40
00001fca: MLOAD
00001fcb: PUSH3 0x461bcd
00001fcf: PUSH1 0xe5
00001fd1: SHL
00001fd2: DUP2
00001fd3: MSTORE
00001fd4: PUSH1 0x20
00001fd6: PUSH1 0x04
00001fd8: DUP3
00001fd9: ADD
00001fda: MSTORE
00001fdb: PUSH1 0x1b
00001fdd: PUSH1 0x24
00001fdf: DUP3
00001fe0: ADD
00001fe1: MSTORE
00001fe2: PUSH32 0x64657374696e6174696f6e206973206e6f7420617070726f7665640000000000
00002003: PUSH1 0x44
00002005: DUP3
00002006: ADD
00002007: MSTORE
00002008: PUSH1 0x64
0000200a: SWAP1
0000200b: REVERT
0000200c: JUMPDEST
0000200d: RETURNDATASIZE
0000200e: ISZERO
0000200f: PUSH2 0x2036
00002012: JUMPI
00002013: RETURNDATASIZE
00002014: SWAP1
00002015: PUSH2 0x201d
00002018: DUP3
00002019: PUSH2 0x03d8
0000201c: JUMP
0000201d: JUMPDEST
0000201e: SWAP2
0000201f: PUSH2 0x202b
00002022: PUSH1 0x40
00002024: MLOAD
00002025: SWAP4
00002026: DUP5
00002027: PUSH2 0x03b2
0000202a: JUMP
0000202b: JUMPDEST
0000202c: DUP3
0000202d: MSTORE
0000202e: RETURNDATASIZE
0000202f: PUSH0
00002030: PUSH1 0x20
00002032: DUP5
00002033: ADD
00002034: RETURNDATACOPY
00002035: JUMP
00002036: JUMPDEST
00002037: PUSH1 0x60
00002039: SWAP1
0000203a: JUMP
0000203b: JUMPDEST
0000203c: ISZERO
0000203d: PUSH2 0x2042
00002040: JUMPI
00002041: JUMP
00002042: JUMPDEST
00002043: PUSH1 0x40
00002045: MLOAD
00002046: PUSH3 0x461bcd
0000204a: PUSH1 0xe5
0000204c: SHL
0000204d: DUP2
0000204e: MSTORE
0000204f: PUSH1 0x20
00002051: PUSH1 0x04
00002053: DUP3
00002054: ADD
00002055: MSTORE
00002056: PUSH1 0x13
00002058: PUSH1 0x24
0000205a: DUP3
0000205b: ADD
0000205c: MSTORE
0000205d: PUSH19 0x1dda5d1a191c985dc8195d1a0819985a5b1959
00002071: PUSH1 0x6a
00002073: SHL
00002074: PUSH1 0x44
00002076: DUP3
00002077: ADD
00002078: MSTORE
00002079: PUSH1 0x64
0000207b: SWAP1
0000207c: REVERT
0000207d: JUMPDEST
0000207e: DUP3
0000207f: PUSH1 0x20
00002081: DUP3
00002082: ADD
00002083: PUSH1 0x20
00002085: DUP4
00002086: MSTORE
00002087: MSTORE
00002088: PUSH1 0x40
0000208a: DUP2
0000208b: ADD
0000208c: SWAP3
0000208d: PUSH1 0x40
0000208f: DUP2
00002090: PUSH1 0x05
00002092: SHL
00002093: DUP4
00002094: ADD
00002095: ADD
00002096: SWAP4
00002097: DUP4
00002098: PUSH0
00002099: SWAP2
0000209a: PUSH1 0x5e
0000209c: NOT
0000209d: DUP3
0000209e: CALLDATASIZE
0000209f: SUB
000020a0: ADD
000020a1: SWAP5
000020a2: JUMPDEST
000020a3: DUP5
000020a4: DUP5
000020a5: LT
000020a6: PUSH2 0x20b3
000020a9: JUMPI
000020aa: POP
000020ab: POP
000020ac: POP
000020ad: POP
000020ae: POP
000020af: POP
000020b0: POP
000020b1: SWAP1
000020b2: JUMP
000020b3: JUMPDEST
000020b4: SWAP1
000020b5: SWAP2
000020b6: SWAP3
000020b7: SWAP4
000020b8: SWAP5
000020b9: SWAP6
000020ba: SWAP7
000020bb: PUSH1 0x3f
000020bd: NOT
000020be: DUP3
000020bf: DUP3
000020c0: SUB
000020c1: ADD
000020c2: DUP4
000020c3: MSTORE
000020c4: DUP8
000020c5: CALLDATALOAD
000020c6: DUP8
000020c7: DUP2
000020c8: SLT
000020c9: ISZERO
000020ca: PUSH2 0x0253
000020cd: JUMPI
000020ce: PUSH1 0x20
000020d0: PUSH2 0x2114
000020d3: PUSH1 0x01
000020d5: SWAP4
000020d6: PUSH1 0x60
000020d8: PUSH2 0x2104
000020db: DUP10
000020dc: DUP6
000020dd: SWAP7
000020de: ADD
000020df: DUP1
000020e0: CALLDATALOAD
000020e1: PUSH2 0x20e9
000020e4: DUP2
000020e5: PUSH2 0x0242
000020e8: JUMP
000020e9: JUMPDEST
000020ea: DUP9
000020eb: DUP1
000020ec: PUSH1 0xa0
000020ee: SHL
000020ef: SUB
000020f0: AND
000020f1: DUP5
000020f2: MSTORE
000020f3: DUP6
000020f4: DUP2
000020f5: ADD
000020f6: CALLDATALOAD
000020f7: DUP7
000020f8: DUP6
000020f9: ADD
000020fa: MSTORE
000020fb: PUSH1 0x40
000020fd: DUP2
000020fe: ADD
000020ff: SWAP1
00002100: PUSH2 0x1cce
00002103: JUMP
00002104: JUMPDEST
00002105: SWAP2
00002106: SWAP1
00002107: SWAP3
00002108: DUP2
00002109: PUSH1 0x40
0000210b: DUP3
0000210c: ADD
0000210d: MSTORE
0000210e: ADD
0000210f: SWAP2
00002110: PUSH2 0x1cff
00002113: JUMP
00002114: JUMPDEST
00002115: SWAP10
00002116: ADD
00002117: SWAP4
00002118: ADD
00002119: SWAP5
0000211a: ADD
0000211b: SWAP3
0000211c: SWAP2
0000211d: SWAP6
0000211e: SWAP5
0000211f: SWAP4
00002120: SWAP1
00002121: PUSH2 0x20a2
00002124: JUMP
00002125: JUMPDEST
00002126: SWAP2
00002127: SWAP1
00002128: DUP2
00002129: LT
0000212a: ISZERO
0000212b: PUSH2 0x1b54
0000212e: JUMPI
0000212f: PUSH1 0x05
00002131: SHL
00002132: DUP2
00002133: ADD
00002134: CALLDATALOAD
00002135: SWAP1
00002136: PUSH1 0x5e
00002138: NOT
00002139: DUP2
0000213a: CALLDATASIZE
0000213b: SUB
0000213c: ADD
0000213d: DUP3
0000213e: SLT
0000213f: ISZERO
00002140: PUSH2 0x0253
00002143: JUMPI
00002144: ADD
00002145: SWAP1
00002146: JUMP
00002147: JUMPDEST
00002148: PUSH1 0x20
0000214a: DUP1
0000214b: DUP3
0000214c: MSTORE
0000214d: DUP2
0000214e: ADD
0000214f: DUP4
00002150: SWAP1
00002151: MSTORE
00002152: PUSH1 0x40
00002154: ADD
00002155: SWAP2
00002156: PUSH0
00002157: JUMPDEST
00002158: DUP2
00002159: DUP2
0000215a: LT
0000215b: PUSH2 0x2164
0000215e: JUMPI
0000215f: POP
00002160: POP
00002161: POP
00002162: SWAP1
00002163: JUMP
00002164: JUMPDEST
00002165: SWAP1
00002166: SWAP2
00002167: SWAP3
00002168: PUSH1 0x20
0000216a: DUP1
0000216b: PUSH1 0x01
0000216d: SWAP3
0000216e: DUP7
0000216f: CALLDATALOAD
00002170: PUSH2 0x2178
00002173: DUP2
00002174: PUSH2 0x0242
00002177: JUMP
00002178: JUMPDEST
00002179: DUP5
0000217a: DUP1
0000217b: PUSH1 0xa0
0000217d: SHL
0000217e: SUB
0000217f: AND
00002180: DUP2
00002181: MSTORE
00002182: ADD
00002183: SWAP5
00002184: ADD
00002185: SWAP2
00002186: ADD
00002187: SWAP2
00002188: SWAP1
00002189: SWAP2
0000218a: PUSH2 0x2157
0000218d: JUMP
0000218e: JUMPDEST
0000218f: PUSH0
00002190: CALLDATALOAD
00002191: PUSH1 0x01
00002193: PUSH1 0x01
00002195: PUSH1 0xe0
00002197: SHL
00002198: SUB
00002199: NOT
0000219a: DUP2
0000219b: AND
0000219c: SWAP1
0000219d: PUSH1 0x04
0000219f: CALLDATASIZE
000021a0: LT
000021a1: PUSH2 0x220f
000021a4: JUMPI
000021a5: JUMPDEST
000021a6: POP
000021a7: PUSH1 0x01
000021a9: PUSH1 0x01
000021ab: PUSH1 0xe0
000021ad: SHL
000021ae: SUB
000021af: NOT
000021b0: AND
000021b1: PUSH0
000021b2: SWAP1
000021b3: DUP2
000021b4: MSTORE
000021b5: PUSH1 0xa0
000021b7: PUSH1 0x20
000021b9: MSTORE
000021ba: PUSH1 0x40
000021bc: SWAP1
000021bd: KECCAK256
000021be: SLOAD
000021bf: PUSH1 0x01
000021c1: PUSH1 0x01
000021c3: PUSH1 0xa0
000021c5: SHL
000021c6: SUB
000021c7: AND
000021c8: DUP1
000021c9: ISZERO
000021ca: PUSH2 0x21da
000021cd: JUMPI
000021ce: PUSH2 0x21d8
000021d1: SWAP1
000021d2: CALLDATASIZE
000021d3: SWAP1
000021d4: PUSH2 0x24c8
000021d7: JUMP
000021d8: JUMPDEST
000021d9: JUMP
000021da: JUMPDEST
000021db: PUSH1 0x40
000021dd: MLOAD
000021de: PUSH3 0x461bcd
000021e2: PUSH1 0xe5
000021e4: SHL
000021e5: DUP2
000021e6: MSTORE
000021e7: PUSH1 0x20
000021e9: PUSH1 0x04
000021eb: DUP3
000021ec: ADD
000021ed: MSTORE
000021ee: PUSH1 0x0d
000021f0: PUSH1 0x24
000021f2: DUP3
000021f3: ADD
000021f4: MSTORE
000021f5: PUSH13 0x2737ba103932b3b4b9ba3932b9
00002203: PUSH1 0x99
00002205: SHL
00002206: PUSH1 0x44
00002208: DUP3
00002209: ADD
0000220a: MSTORE
0000220b: PUSH1 0x64
0000220d: SWAP1
0000220e: REVERT
0000220f: JUMPDEST
00002210: PUSH1 0x01
00002212: PUSH1 0x01
00002214: PUSH1 0xe0
00002216: SHL
00002217: SUB
00002218: NOT
00002219: CALLDATASIZE
0000221a: PUSH1 0x04
0000221c: SUB
0000221d: PUSH1 0x03
0000221f: SHL
00002220: DUP2
00002221: SWAP1
00002222: SHL
00002223: SWAP1
00002224: SWAP2
00002225: AND
00002226: AND
00002227: SWAP1
00002228: POP
00002229: PUSH0
0000222a: PUSH2 0x21a5
0000222d: JUMP
0000222e: JUMPDEST
0000222f: PUSH1 0x05
00002231: GT
00002232: ISZERO
00002233: PUSH2 0x2238
00002236: JUMPI
00002237: JUMP
00002238: JUMPDEST
00002239: PUSH4 0x4e487b71
0000223e: PUSH1 0xe0
00002240: SHL
00002241: PUSH0
00002242: MSTORE
00002243: PUSH1 0x21
00002245: PUSH1 0x04
00002247: MSTORE
00002248: PUSH1 0x24
0000224a: PUSH0
0000224b: REVERT
0000224c: JUMPDEST
0000224d: DUP1
0000224e: MLOAD
0000224f: DUP1
00002250: DUP4
00002251: MSTORE
00002252: PUSH1 0x20
00002254: SWAP3
00002255: SWAP2
00002256: DUP2
00002257: SWAP1
00002258: DUP5
00002259: ADD
0000225a: DUP5
0000225b: DUP5
0000225c: ADD
0000225d: MCOPY
0000225e: PUSH0
0000225f: DUP3
00002260: DUP3
00002261: ADD
00002262: DUP5
00002263: ADD
00002264: MSTORE
00002265: PUSH1 0x1f
00002267: ADD
00002268: PUSH1 0x1f
0000226a: NOT
0000226b: AND
0000226c: ADD
0000226d: ADD
0000226e: SWAP1
0000226f: JUMP
00002270: JUMPDEST
00002271: PUSH1 0x40
00002273: SWAP1
00002274: PUSH2 0x077b
00002277: SWAP4
00002278: SWAP3
00002279: DUP2
0000227a: MSTORE
0000227b: DUP2
0000227c: PUSH1 0x20
0000227e: DUP3
0000227f: ADD
00002280: MSTORE
00002281: ADD
00002282: SWAP1
00002283: PUSH2 0x224c
00002286: JUMP
00002287: JUMPDEST
00002288: SWAP1
00002289: DUP2
0000228a: PUSH1 0x20
0000228c: SWAP2
0000228d: SUB
0000228e: SLT
0000228f: PUSH2 0x0253
00002292: JUMPI
00002293: MLOAD
00002294: PUSH2 0x077b
00002297: DUP2
00002298: PUSH2 0x0676
0000229b: JUMP
0000229c: JUMPDEST
0000229d: SWAP2
0000229e: SWAP1
0000229f: SWAP2
000022a0: PUSH2 0x22a9
000022a3: DUP3
000022a4: DUP5
000022a5: PUSH2 0x27cf
000022a8: JUMP
000022a9: JUMPDEST
000022aa: PUSH2 0x22b2
000022ad: DUP2
000022ae: PUSH2 0x222e
000022b1: JUMP
000022b2: JUMPDEST
000022b3: ISZERO
000022b4: SWAP1
000022b5: DUP2
000022b6: PUSH2 0x2343
000022b9: JUMPI
000022ba: JUMPDEST
000022bb: POP
000022bc: PUSH2 0x233b
000022bf: JUMPI
000022c0: PUSH0
000022c1: SWAP3
000022c2: PUSH2 0x098e
000022c5: PUSH2 0x22e7
000022c8: DUP6
000022c9: SWAP5
000022ca: PUSH1 0x40
000022cc: MLOAD
000022cd: SWAP3
000022ce: DUP4
000022cf: SWAP2
000022d0: PUSH1 0x20
000022d2: DUP4
000022d3: ADD
000022d4: SWAP6
000022d5: PUSH4 0x0b135d3f
000022da: PUSH1 0xe1
000022dc: SHL
000022dd: DUP8
000022de: MSTORE
000022df: PUSH1 0x24
000022e1: DUP5
000022e2: ADD
000022e3: PUSH2 0x2270
000022e6: JUMP
000022e7: JUMPDEST
000022e8: MLOAD
000022e9: SWAP2
000022ea: GAS
000022eb: STATICCALL
000022ec: PUSH2 0x22f3
000022ef: PUSH2 0x200c
000022f2: JUMP
000022f3: JUMPDEST
000022f4: DUP2
000022f5: PUSH2 0x232f
000022f8: JUMPI
000022f9: JUMPDEST
000022fa: DUP2
000022fb: PUSH2 0x2302
000022fe: JUMPI
000022ff: POP
00002300: SWAP1
00002301: JUMP
00002302: JUMPDEST
00002303: DUP1
00002304: MLOAD
00002305: PUSH4 0x0b135d3f
0000230a: PUSH1 0xe1
0000230c: SHL
0000230d: SWAP3
0000230e: POP
0000230f: PUSH1 0x01
00002311: PUSH1 0x01
00002313: PUSH1 0xe0
00002315: SHL
00002316: SUB
00002317: NOT
00002318: SWAP2
00002319: PUSH2 0x232a
0000231c: SWAP2
0000231d: DUP2
0000231e: ADD
0000231f: PUSH1 0x20
00002321: SWAP1
00002322: DUP2
00002323: ADD
00002324: SWAP2
00002325: ADD
00002326: PUSH2 0x2287
00002329: JUMP
0000232a: JUMPDEST
0000232b: AND
0000232c: EQ
0000232d: SWAP1
0000232e: JUMP
0000232f: JUMPDEST
00002330: DUP1
00002331: MLOAD
00002332: PUSH1 0x20
00002334: EQ
00002335: SWAP2
00002336: POP
00002337: PUSH2 0x22f9
0000233a: JUMP
0000233b: JUMPDEST
0000233c: POP
0000233d: POP
0000233e: POP
0000233f: PUSH1 0x01
00002341: SWAP1
00002342: JUMP
00002343: JUMPDEST
00002344: PUSH1 0x01
00002346: PUSH1 0x01
00002348: PUSH1 0xa0
0000234a: SHL
0000234b: SUB
0000234c: DUP4
0000234d: DUP2
0000234e: AND
0000234f: SWAP2
00002350: AND
00002351: EQ
00002352: SWAP1
00002353: POP
00002354: PUSH0
00002355: PUSH2 0x22ba
00002358: JUMP
00002359: JUMPDEST
0000235a: SWAP1
0000235b: DUP2
0000235c: PUSH1 0x20
0000235e: SWAP2
0000235f: SUB
00002360: SLT
00002361: PUSH2 0x0253
00002364: JUMPI
00002365: MLOAD
00002366: SWAP1
00002367: JUMP
00002368: JUMPDEST
00002369: ISZERO
0000236a: PUSH2 0x236f
0000236d: JUMPI
0000236e: JUMP
0000236f: JUMPDEST
00002370: PUSH1 0x40
00002372: MLOAD
00002373: PUSH3 0x461bcd
00002377: PUSH1 0xe5
00002379: SHL
0000237a: DUP2
0000237b: MSTORE
0000237c: PUSH1 0x20
0000237e: PUSH1 0x04
00002380: DUP3
00002381: ADD
00002382: MSTORE
00002383: PUSH1 0x36
00002385: PUSH1 0x24
00002387: DUP3
00002388: ADD
00002389: MSTORE
0000238a: PUSH32 0x5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f
000023ab: PUSH1 0x44
000023ad: DUP3
000023ae: ADD
000023af: MSTORE
000023b0: PUSH22 0x20746f206e6f6e2d7a65726f20616c6c6f77616e6365
000023c7: PUSH1 0x50
000023c9: SHL
000023ca: PUSH1 0x64
000023cc: DUP3
000023cd: ADD
000023ce: MSTORE
000023cf: PUSH1 0x84
000023d1: SWAP1
000023d2: REVERT
000023d3: JUMPDEST
000023d4: PUSH2 0x077b
000023d7: SWAP1
000023d8: PUSH1 0x40
000023da: PUSH1 0x0b
000023dc: PUSH1 0x20
000023de: DUP3
000023df: MLOAD
000023e0: PUSH2 0x23e9
000023e3: DUP5
000023e4: DUP3
000023e5: PUSH2 0x03b2
000023e8: JUMP
000023e9: JUMPDEST
000023ea: DUP3
000023eb: DUP2
000023ec: MSTORE
000023ed: ADD
000023ee: PUSH11 0x14995cd95c9d99519d5b99
000023fa: PUSH1 0xaa
000023fc: SHL
000023fd: DUP2
000023fe: MSTORE
000023ff: KECCAK256
00002400: PUSH2 0x2476
00002403: PUSH1 0x03
00002405: PUSH1 0x20
00002407: DUP5
00002408: MLOAD
00002409: PUSH2 0x2412
0000240c: DUP7
0000240d: DUP3
0000240e: PUSH2 0x03b2
00002411: JUMP
00002412: JUMPDEST
00002413: DUP3
00002414: DUP2
00002415: MSTORE
00002416: PUSH3 0x0322e3
0000241a: PUSH1 0xec
0000241c: SHL
0000241d: SWAP2
0000241e: ADD
0000241f: SWAP1
00002420: DUP2
00002421: MSTORE
00002422: KECCAK256
00002423: DUP4
00002424: MLOAD
00002425: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00002446: PUSH1 0x20
00002448: DUP1
00002449: DUP4
0000244a: ADD
0000244b: SWAP2
0000244c: DUP3
0000244d: MSTORE
0000244e: PUSH1 0x40
00002450: DUP4
00002451: ADD
00002452: SWAP6
00002453: SWAP1
00002454: SWAP6
00002455: MSTORE
00002456: SWAP5
00002457: DUP2
00002458: ADD
00002459: SWAP1
0000245a: SWAP4
0000245b: ADD
0000245c: MSTORE
0000245d: CHAINID
0000245e: PUSH1 0x80
00002460: DUP4
00002461: ADD
00002462: MSTORE
00002463: ADDRESS
00002464: PUSH1 0xa0
00002466: DUP1
00002467: DUP5
00002468: ADD
00002469: SWAP2
0000246a: SWAP1
0000246b: SWAP2
0000246c: MSTORE
0000246d: DUP3
0000246e: MSTORE
0000246f: PUSH1 0xc0
00002471: DUP3
00002472: PUSH2 0x03b2
00002475: JUMP
00002476: JUMPDEST
00002477: MLOAD
00002478: SWAP1
00002479: KECCAK256
0000247a: PUSH2 0x2978
0000247d: JUMP
0000247e: JUMPDEST
0000247f: PUSH2 0x077b
00002482: SWAP2
00002483: PUSH2 0x248b
00002486: SWAP2
00002487: PUSH2 0x27cf
0000248a: JUMP
0000248b: JUMPDEST
0000248c: SWAP2
0000248d: SWAP1
0000248e: SWAP2
0000248f: PUSH2 0x29a9
00002492: JUMP
00002493: JUMPDEST
00002494: SWAP2
00002495: PUSH0
00002496: SWAP3
00002497: SWAP2
00002498: DUP4
00002499: DUP1
0000249a: SWAP4
0000249b: DUP4
0000249c: PUSH1 0x40
0000249e: MLOAD
0000249f: SWAP4
000024a0: DUP5
000024a1: CALLDATACOPY
000024a2: GAS
000024a3: CALL
000024a4: ISZERO
000024a5: PUSH2 0x24aa
000024a8: JUMPI
000024a9: JUMP
000024aa: JUMPDEST
000024ab: RETURNDATASIZE
000024ac: PUSH0
000024ad: DUP1
000024ae: RETURNDATACOPY
000024af: RETURNDATASIZE
000024b0: PUSH0
000024b1: REVERT
000024b2: JUMPDEST
000024b3: SWAP2
000024b4: PUSH0
000024b5: SWAP4
000024b6: SWAP2
000024b7: DUP5
000024b8: SWAP4
000024b9: DUP4
000024ba: PUSH1 0x40
000024bc: MLOAD
000024bd: SWAP4
000024be: DUP5
000024bf: CALLDATACOPY
000024c0: GAS
000024c1: CALL
000024c2: ISZERO
000024c3: PUSH2 0x24aa
000024c6: JUMPI
000024c7: JUMP
000024c8: JUMPDEST
000024c9: PUSH0
000024ca: SWAP2
000024cb: DUP3
000024cc: SWAP2
000024cd: PUSH1 0x40
000024cf: MLOAD
000024d0: SWAP1
000024d1: DUP3
000024d2: DUP5
000024d3: DUP4
000024d4: CALLDATACOPY
000024d5: GAS
000024d6: DELEGATECALL
000024d7: ISZERO
000024d8: PUSH2 0x24aa
000024db: JUMPI
000024dc: JUMP
000024dd: JUMPDEST
000024de: SWAP2
000024df: PUSH0
000024e0: SWAP3
000024e1: SWAP2
000024e2: DUP4
000024e3: SWAP3
000024e4: DUP3
000024e5: PUSH1 0x40
000024e7: MLOAD
000024e8: SWAP3
000024e9: DUP4
000024ea: CALLDATACOPY
000024eb: GAS
000024ec: DELEGATECALL
000024ed: ISZERO
000024ee: PUSH2 0x24aa
000024f1: JUMPI
000024f2: JUMP
000024f3: JUMPDEST
000024f4: ISZERO
000024f5: PUSH2 0x24fa
000024f8: JUMPI
000024f9: JUMP
000024fa: JUMPDEST
000024fb: PUSH1 0x40
000024fd: MLOAD
000024fe: PUSH3 0x461bcd
00002502: PUSH1 0xe5
00002504: SHL
00002505: DUP2
00002506: MSTORE
00002507: PUSH1 0x20
00002509: PUSH1 0x04
0000250b: DUP3
0000250c: ADD
0000250d: MSTORE
0000250e: PUSH1 0x2b
00002510: PUSH1 0x24
00002512: DUP3
00002513: ADD
00002514: MSTORE
00002515: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
00002536: PUSH1 0x44
00002538: DUP3
00002539: ADD
0000253a: MSTORE
0000253b: PUSH11 0x6e697469616c697a696e67
00002547: PUSH1 0xa8
00002549: SHL
0000254a: PUSH1 0x64
0000254c: DUP3
0000254d: ADD
0000254e: MSTORE
0000254f: PUSH1 0x84
00002551: SWAP1
00002552: REVERT
00002553: JUMPDEST
00002554: PUSH1 0x01
00002556: PUSH1 0x01
00002558: PUSH1 0xa0
0000255a: SHL
0000255b: SUB
0000255c: DUP2
0000255d: AND
0000255e: PUSH2 0x25b1
00002561: JUMPI
00002562: POP
00002563: PUSH0
00002564: DUP1
00002565: DUP1
00002566: SWAP4
00002567: DUP2
00002568: SWAP4
00002569: GAS
0000256a: CALL
0000256b: PUSH2 0x2572
0000256e: PUSH2 0x200c
00002571: JUMP
00002572: JUMPDEST
00002573: POP
00002574: ISZERO
00002575: PUSH2 0x257a
00002578: JUMPI
00002579: JUMP
0000257a: JUMPDEST
0000257b: PUSH1 0x40
0000257d: MLOAD
0000257e: PUSH3 0x461bcd
00002582: PUSH1 0xe5
00002584: SHL
00002585: DUP2
00002586: MSTORE
00002587: PUSH1 0x20
00002589: PUSH1 0x04
0000258b: DUP3
0000258c: ADD
0000258d: MSTORE
0000258e: PUSH1 0x0f
00002590: PUSH1 0x24
00002592: DUP3
00002593: ADD
00002594: MSTORE
00002595: PUSH15 0x1d1c985b9cd9995c8819985a5b1959
000025a5: PUSH1 0x8a
000025a7: SHL
000025a8: PUSH1 0x44
000025aa: DUP3
000025ab: ADD
000025ac: MSTORE
000025ad: PUSH1 0x64
000025af: SWAP1
000025b0: REVERT
000025b1: JUMPDEST
000025b2: PUSH1 0x40
000025b4: MLOAD
000025b5: PUSH4 0xa9059cbb
000025ba: PUSH1 0xe0
000025bc: SHL
000025bd: PUSH1 0x20
000025bf: DUP3
000025c0: ADD
000025c1: MSTORE
000025c2: PUSH1 0x01
000025c4: PUSH1 0x01
000025c6: PUSH1 0xa0
000025c8: SHL
000025c9: SUB
000025ca: SWAP1
000025cb: SWAP3
000025cc: AND
000025cd: PUSH1 0x24
000025cf: DUP4
000025d0: ADD
000025d1: MSTORE
000025d2: PUSH1 0x44
000025d4: DUP3
000025d5: ADD
000025d6: SWAP3
000025d7: SWAP1
000025d8: SWAP3
000025d9: MSTORE
000025da: PUSH2 0x21d8
000025dd: SWAP2
000025de: PUSH2 0x05c3
000025e1: DUP3
000025e2: PUSH1 0x64
000025e4: DUP2
000025e5: ADD
000025e6: PUSH2 0x05b5
000025e9: JUMP
000025ea: JUMPDEST
000025eb: PUSH1 0x33
000025ed: DUP1
000025ee: SLOAD
000025ef: PUSH1 0x01
000025f1: PUSH1 0x01
000025f3: PUSH1 0xa0
000025f5: SHL
000025f6: SUB
000025f7: SWAP3
000025f8: DUP4
000025f9: AND
000025fa: PUSH1 0x01
000025fc: PUSH1 0x01
000025fe: PUSH1 0xa0
00002600: SHL
00002601: SUB
00002602: NOT
00002603: DUP3
00002604: AND
00002605: DUP2
00002606: OR
00002607: SWAP1
00002608: SWAP3
00002609: SSTORE
0000260a: SWAP1
0000260b: SWAP2
0000260c: AND
0000260d: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
0000262e: PUSH0
0000262f: DUP1
00002630: LOG3
00002631: JUMP
00002632: JUMPDEST
00002633: PUSH1 0x65
00002635: SLOAD
00002636: DUP2
00002637: LT
00002638: ISZERO
00002639: PUSH2 0x1b54
0000263c: JUMPI
0000263d: PUSH1 0x65
0000263f: PUSH0
00002640: MSTORE
00002641: PUSH1 0x20
00002643: PUSH0
00002644: KECCAK256
00002645: ADD
00002646: SWAP1
00002647: PUSH0
00002648: SWAP1
00002649: JUMP
0000264a: JUMPDEST
0000264b: DUP1
0000264c: SLOAD
0000264d: DUP3
0000264e: LT
0000264f: ISZERO
00002650: PUSH2 0x1b54
00002653: JUMPI
00002654: PUSH0
00002655: MSTORE
00002656: PUSH1 0x20
00002658: PUSH0
00002659: KECCAK256
0000265a: ADD
0000265b: SWAP1
0000265c: PUSH0
0000265d: SWAP1
0000265e: JUMP
0000265f: JUMPDEST
00002660: SWAP2
00002661: PUSH2 0x2678
00002664: SWAP2
00002665: DUP4
00002666: SLOAD
00002667: SWAP1
00002668: PUSH1 0x03
0000266a: SHL
0000266b: SWAP2
0000266c: DUP3
0000266d: SHL
0000266e: SWAP2
0000266f: PUSH0
00002670: NOT
00002671: SWAP1
00002672: SHL
00002673: NOT
00002674: AND
00002675: OR
00002676: SWAP1
00002677: JUMP
00002678: JUMPDEST
00002679: SWAP1
0000267a: SSTORE
0000267b: JUMP
0000267c: JUMPDEST
0000267d: PUSH0
0000267e: DUP2
0000267f: DUP2
00002680: MSTORE
00002681: PUSH1 0xa2
00002683: PUSH1 0x20
00002685: MSTORE
00002686: PUSH1 0x40
00002688: SWAP1
00002689: KECCAK256
0000268a: SLOAD
0000268b: PUSH2 0x26e0
0000268e: JUMPI
0000268f: PUSH1 0xa1
00002691: SLOAD
00002692: PUSH1 0x01
00002694: PUSH1 0x40
00002696: SHL
00002697: DUP2
00002698: LT
00002699: ISZERO
0000269a: PUSH2 0x03d3
0000269d: JUMPI
0000269e: PUSH2 0x26c9
000026a1: PUSH2 0x26b3
000026a4: DUP3
000026a5: PUSH1 0x01
000026a7: DUP6
000026a8: SWAP5
000026a9: ADD
000026aa: PUSH1 0xa1
000026ac: SSTORE
000026ad: PUSH1 0xa1
000026af: PUSH2 0x264a
000026b2: JUMP
000026b3: JUMPDEST
000026b4: DUP2
000026b5: SWAP4
000026b6: SWAP2
000026b7: SLOAD
000026b8: SWAP1
000026b9: PUSH1 0x03
000026bb: SHL
000026bc: SWAP2
000026bd: DUP3
000026be: SHL
000026bf: SWAP2
000026c0: PUSH0
000026c1: NOT
000026c2: SWAP1
000026c3: SHL
000026c4: NOT
000026c5: AND
000026c6: OR
000026c7: SWAP1
000026c8: JUMP
000026c9: JUMPDEST
000026ca: SWAP1
000026cb: SSTORE
000026cc: PUSH1 0xa1
000026ce: SLOAD
000026cf: SWAP1
000026d0: PUSH0
000026d1: MSTORE
000026d2: PUSH1 0xa2
000026d4: PUSH1 0x20
000026d6: MSTORE
000026d7: PUSH1 0x40
000026d9: PUSH0
000026da: KECCAK256
000026db: SSTORE
000026dc: PUSH1 0x01
000026de: SWAP1
000026df: JUMP
000026e0: JUMPDEST
000026e1: POP
000026e2: PUSH0
000026e3: SWAP1
000026e4: JUMP
000026e5: JUMPDEST
000026e6: PUSH0
000026e7: DUP2
000026e8: DUP2
000026e9: MSTORE
000026ea: PUSH1 0x9c
000026ec: PUSH1 0x20
000026ee: MSTORE
000026ef: PUSH1 0x40
000026f1: SWAP1
000026f2: KECCAK256
000026f3: SLOAD
000026f4: PUSH2 0x26e0
000026f7: JUMPI
000026f8: PUSH1 0x9b
000026fa: SLOAD
000026fb: PUSH1 0x01
000026fd: PUSH1 0x40
000026ff: SHL
00002700: DUP2
00002701: LT
00002702: ISZERO
00002703: PUSH2 0x03d3
00002706: JUMPI
00002707: PUSH2 0x271c
0000270a: PUSH2 0x26b3
0000270d: DUP3
0000270e: PUSH1 0x01
00002710: DUP6
00002711: SWAP5
00002712: ADD
00002713: PUSH1 0x9b
00002715: SSTORE
00002716: PUSH1 0x9b
00002718: PUSH2 0x264a
0000271b: JUMP
0000271c: JUMPDEST
0000271d: SWAP1
0000271e: SSTORE
0000271f: PUSH1 0x9b
00002721: SLOAD
00002722: SWAP1
00002723: PUSH0
00002724: MSTORE
00002725: PUSH1 0x9c
00002727: PUSH1 0x20
00002729: MSTORE
0000272a: PUSH1 0x40
0000272c: PUSH0
0000272d: KECCAK256
0000272e: SSTORE
0000272f: PUSH1 0x01
00002731: SWAP1
00002732: JUMP
00002733: JUMPDEST
00002734: PUSH0
00002735: DUP2
00002736: DUP2
00002737: MSTORE
00002738: PUSH1 0x66
0000273a: PUSH1 0x20
0000273c: MSTORE
0000273d: PUSH1 0x40
0000273f: SWAP1
00002740: KECCAK256
00002741: SLOAD
00002742: PUSH2 0x26e0
00002745: JUMPI
00002746: PUSH1 0x65
00002748: SLOAD
00002749: PUSH1 0x01
0000274b: PUSH1 0x40
0000274d: SHL
0000274e: DUP2
0000274f: LT
00002750: ISZERO
00002751: PUSH2 0x03d3
00002754: JUMPI
00002755: PUSH2 0x276a
00002758: PUSH2 0x26b3
0000275b: DUP3
0000275c: PUSH1 0x01
0000275e: DUP6
0000275f: SWAP5
00002760: ADD
00002761: PUSH1 0x65
00002763: SSTORE
00002764: PUSH1 0x65
00002766: PUSH2 0x264a
00002769: JUMP
0000276a: JUMPDEST
0000276b: SWAP1
0000276c: SSTORE
0000276d: PUSH1 0x65
0000276f: SLOAD
00002770: SWAP1
00002771: PUSH0
00002772: MSTORE
00002773: PUSH1 0x66
00002775: PUSH1 0x20
00002777: MSTORE
00002778: PUSH1 0x40
0000277a: PUSH0
0000277b: KECCAK256
0000277c: SSTORE
0000277d: PUSH1 0x01
0000277f: SWAP1
00002780: JUMP
00002781: JUMPDEST
00002782: PUSH0
00002783: DUP2
00002784: DUP2
00002785: MSTORE
00002786: PUSH1 0x9e
00002788: PUSH1 0x20
0000278a: MSTORE
0000278b: PUSH1 0x40
0000278d: SWAP1
0000278e: KECCAK256
0000278f: SLOAD
00002790: PUSH2 0x26e0
00002793: JUMPI
00002794: PUSH1 0x9d
00002796: SLOAD
00002797: PUSH1 0x01
00002799: PUSH1 0x40
0000279b: SHL
0000279c: DUP2
0000279d: LT
0000279e: ISZERO
0000279f: PUSH2 0x03d3
000027a2: JUMPI
000027a3: PUSH2 0x27b8
000027a6: PUSH2 0x26b3
000027a9: DUP3
000027aa: PUSH1 0x01
000027ac: DUP6
000027ad: SWAP5
000027ae: ADD
000027af: PUSH1 0x9d
000027b1: SSTORE
000027b2: PUSH1 0x9d
000027b4: PUSH2 0x264a
000027b7: JUMP
000027b8: JUMPDEST
000027b9: SWAP1
000027ba: SSTORE
000027bb: PUSH1 0x9d
000027bd: SLOAD
000027be: SWAP1
000027bf: PUSH0
000027c0: MSTORE
000027c1: PUSH1 0x9e
000027c3: PUSH1 0x20
000027c5: MSTORE
000027c6: PUSH1 0x40
000027c8: PUSH0
000027c9: KECCAK256
000027ca: SSTORE
000027cb: PUSH1 0x01
000027cd: SWAP1
000027ce: JUMP
000027cf: JUMPDEST
000027d0: DUP2
000027d1: MLOAD
000027d2: PUSH1 0x41
000027d4: DUP2
000027d5: SUB
000027d6: PUSH2 0x27f7
000027d9: JUMPI
000027da: POP
000027db: SWAP1
000027dc: PUSH2 0x08ef
000027df: SWAP2
000027e0: PUSH1 0x20
000027e2: DUP3
000027e3: ADD
000027e4: MLOAD
000027e5: SWAP1
000027e6: PUSH1 0x60
000027e8: PUSH1 0x40
000027ea: DUP5
000027eb: ADD
000027ec: MLOAD
000027ed: SWAP4
000027ee: ADD
000027ef: MLOAD
000027f0: PUSH0
000027f1: BYTE
000027f2: SWAP1
000027f3: PUSH2 0x2d2e
000027f6: JUMP
000027f7: JUMPDEST
000027f8: PUSH1 0x40
000027fa: SUB
000027fb: PUSH2 0x2826
000027fe: JUMPI
000027ff: PUSH1 0x20
00002801: DUP3
00002802: ADD
00002803: MLOAD
00002804: PUSH1 0x40
00002806: SWAP1
00002807: SWAP3
00002808: ADD
00002809: MLOAD
0000280a: PUSH2 0x08ef
0000280d: SWAP3
0000280e: PUSH1 0x01
00002810: PUSH1 0x01
00002812: PUSH1 0xff
00002814: SHL
00002815: SUB
00002816: DUP3
00002817: AND
00002818: SWAP3
00002819: SWAP1
0000281a: SWAP2
0000281b: PUSH1 0xff
0000281d: SHR
0000281e: PUSH1 0x1b
00002820: ADD
00002821: SWAP1
00002822: PUSH2 0x2d2e
00002825: JUMP
00002826: JUMPDEST
00002827: POP
00002828: POP
00002829: PUSH0
0000282a: SWAP1
0000282b: PUSH1 0x02
0000282d: SWAP1
0000282e: JUMP
0000282f: JUMPDEST
00002830: SWAP1
00002831: DUP2
00002832: PUSH1 0x20
00002834: SWAP2
00002835: SUB
00002836: SLT
00002837: PUSH2 0x0253
0000283a: JUMPI
0000283b: MLOAD
0000283c: DUP1
0000283d: ISZERO
0000283e: ISZERO
0000283f: DUP2
00002840: SUB
00002841: PUSH2 0x0253
00002844: JUMPI
00002845: SWAP1
00002846: JUMP
00002847: JUMPDEST
00002848: ISZERO
00002849: PUSH2 0x284e
0000284c: JUMPI
0000284d: JUMP
0000284e: JUMPDEST
0000284f: PUSH1 0x40
00002851: MLOAD
00002852: PUSH3 0x461bcd
00002856: PUSH1 0xe5
00002858: SHL
00002859: DUP2
0000285a: MSTORE
0000285b: PUSH1 0x20
0000285d: PUSH1 0x04
0000285f: DUP3
00002860: ADD
00002861: MSTORE
00002862: PUSH1 0x2a
00002864: PUSH1 0x24
00002866: DUP3
00002867: ADD
00002868: MSTORE
00002869: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
0000288a: PUSH1 0x44
0000288c: DUP3
0000288d: ADD
0000288e: MSTORE
0000288f: PUSH10 0x1bdd081cdd58d8d95959
0000289a: PUSH1 0xb2
0000289c: SHL
0000289d: PUSH1 0x64
0000289f: DUP3
000028a0: ADD
000028a1: MSTORE
000028a2: PUSH1 0x84
000028a4: SWAP1
000028a5: REVERT
000028a6: JUMPDEST
000028a7: PUSH1 0x01
000028a9: DUP1
000028aa: PUSH1 0xa0
000028ac: SHL
000028ad: SUB
000028ae: AND
000028af: SWAP1
000028b0: PUSH1 0x40
000028b2: MLOAD
000028b3: SWAP1
000028b4: PUSH2 0x28be
000028b7: PUSH1 0x40
000028b9: DUP4
000028ba: PUSH2 0x03b2
000028bd: JUMP
000028be: JUMPDEST
000028bf: PUSH1 0x20
000028c1: DUP3
000028c2: MSTORE
000028c3: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
000028e4: PUSH1 0x20
000028e6: DUP4
000028e7: ADD
000028e8: MSTORE
000028e9: DUP3
000028ea: EXTCODESIZE
000028eb: ISZERO
000028ec: PUSH2 0x2933
000028ef: JUMPI
000028f0: PUSH0
000028f1: DUP2
000028f2: PUSH2 0x290e
000028f5: SWAP5
000028f6: DUP3
000028f7: PUSH1 0x20
000028f9: DUP2
000028fa: SWAP6
000028fb: MLOAD
000028fc: SWAP4
000028fd: ADD
000028fe: SWAP2
000028ff: GAS
00002900: CALL
00002901: PUSH2 0x2908
00002904: PUSH2 0x200c
00002907: JUMP
00002908: JUMPDEST
00002909: SWAP1
0000290a: PUSH2 0x2dd7
0000290d: JUMP
0000290e: JUMPDEST
0000290f: DUP1
00002910: MLOAD
00002911: DUP1
00002912: PUSH2 0x2919
00002915: JUMPI
00002916: POP
00002917: POP
00002918: JUMP
00002919: JUMPDEST
0000291a: DUP2
0000291b: PUSH1 0x20
0000291d: DUP1
0000291e: PUSH2 0x292e
00002921: SWAP4
00002922: PUSH2 0x21d8
00002925: SWAP6
00002926: ADD
00002927: ADD
00002928: SWAP2
00002929: ADD
0000292a: PUSH2 0x282f
0000292d: JUMP
0000292e: JUMPDEST
0000292f: PUSH2 0x2847
00002932: JUMP
00002933: JUMPDEST
00002934: PUSH1 0x40
00002936: MLOAD
00002937: PUSH3 0x461bcd
0000293b: PUSH1 0xe5
0000293d: SHL
0000293e: DUP2
0000293f: MSTORE
00002940: PUSH1 0x20
00002942: PUSH1 0x04
00002944: DUP3
00002945: ADD
00002946: MSTORE
00002947: PUSH1 0x1d
00002949: PUSH1 0x24
0000294b: DUP3
0000294c: ADD
0000294d: MSTORE
0000294e: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
0000296f: PUSH1 0x44
00002971: DUP3
00002972: ADD
00002973: MSTORE
00002974: PUSH1 0x64
00002976: SWAP1
00002977: REVERT
00002978: JUMPDEST
00002979: SWAP1
0000297a: PUSH1 0x40
0000297c: MLOAD
0000297d: SWAP1
0000297e: PUSH1 0x20
00002980: DUP3
00002981: ADD
00002982: SWAP3
00002983: PUSH2 0x1901
00002986: PUSH1 0xf0
00002988: SHL
00002989: DUP5
0000298a: MSTORE
0000298b: PUSH1 0x22
0000298d: DUP4
0000298e: ADD
0000298f: MSTORE
00002990: PUSH1 0x42
00002992: DUP3
00002993: ADD
00002994: MSTORE
00002995: PUSH1 0x42
00002997: DUP2
00002998: MSTORE
00002999: PUSH2 0x29a3
0000299c: PUSH1 0x62
0000299e: DUP3
0000299f: PUSH2 0x03b2
000029a2: JUMP
000029a3: JUMPDEST
000029a4: MLOAD
000029a5: SWAP1
000029a6: KECCAK256
000029a7: SWAP1
000029a8: JUMP
000029a9: JUMPDEST
000029aa: PUSH2 0x29b2
000029ad: DUP2
000029ae: PUSH2 0x222e
000029b1: JUMP
000029b2: JUMPDEST
000029b3: DUP1
000029b4: PUSH2 0x29ba
000029b7: JUMPI
000029b8: POP
000029b9: JUMP
000029ba: JUMPDEST
000029bb: PUSH2 0x29c3
000029be: DUP2
000029bf: PUSH2 0x222e
000029c2: JUMP
000029c3: JUMPDEST
000029c4: PUSH1 0x01
000029c6: DUP2
000029c7: SUB
000029c8: PUSH2 0x2a15
000029cb: JUMPI
000029cc: PUSH1 0x40
000029ce: MLOAD
000029cf: PUSH3 0x461bcd
000029d3: PUSH1 0xe5
000029d5: SHL
000029d6: DUP2
000029d7: MSTORE
000029d8: PUSH1 0x20
000029da: PUSH1 0x04
000029dc: DUP3
000029dd: ADD
000029de: MSTORE
000029df: PUSH1 0x18
000029e1: PUSH1 0x24
000029e3: DUP3
000029e4: ADD
000029e5: MSTORE
000029e6: PUSH32 0x45434453413a20696e76616c6964207369676e61747572650000000000000000
00002a07: PUSH1 0x44
00002a09: DUP3
00002a0a: ADD
00002a0b: MSTORE
00002a0c: DUP1
00002a0d: PUSH1 0x64
00002a0f: DUP2
00002a10: ADD
00002a11: JUMPDEST
00002a12: SUB
00002a13: SWAP1
00002a14: REVERT
00002a15: JUMPDEST
00002a16: PUSH2 0x2a1e
00002a19: DUP2
00002a1a: PUSH2 0x222e
00002a1d: JUMP
00002a1e: JUMPDEST
00002a1f: PUSH1 0x02
00002a21: DUP2
00002a22: SUB
00002a23: PUSH2 0x2a6b
00002a26: JUMPI
00002a27: PUSH1 0x40
00002a29: MLOAD
00002a2a: PUSH3 0x461bcd
00002a2e: PUSH1 0xe5
00002a30: SHL
00002a31: DUP2
00002a32: MSTORE
00002a33: PUSH1 0x20
00002a35: PUSH1 0x04
00002a37: DUP3
00002a38: ADD
00002a39: MSTORE
00002a3a: PUSH1 0x1f
00002a3c: PUSH1 0x24
00002a3e: DUP3
00002a3f: ADD
00002a40: MSTORE
00002a41: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265206c656e67746800
00002a62: PUSH1 0x44
00002a64: DUP3
00002a65: ADD
00002a66: MSTORE
00002a67: PUSH1 0x64
00002a69: SWAP1
00002a6a: REVERT
00002a6b: JUMPDEST
00002a6c: PUSH2 0x2a74
00002a6f: DUP2
00002a70: PUSH2 0x222e
00002a73: JUMP
00002a74: JUMPDEST
00002a75: PUSH1 0x03
00002a77: DUP2
00002a78: SUB
00002a79: PUSH2 0x2acc
00002a7c: JUMPI
00002a7d: PUSH1 0x40
00002a7f: MLOAD
00002a80: PUSH3 0x461bcd
00002a84: PUSH1 0xe5
00002a86: SHL
00002a87: DUP2
00002a88: MSTORE
00002a89: PUSH1 0x20
00002a8b: PUSH1 0x04
00002a8d: DUP3
00002a8e: ADD
00002a8f: MSTORE
00002a90: PUSH1 0x22
00002a92: PUSH1 0x24
00002a94: DUP3
00002a95: ADD
00002a96: MSTORE
00002a97: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265202773272076616c
00002ab8: PUSH1 0x44
00002aba: DUP3
00002abb: ADD
00002abc: MSTORE
00002abd: PUSH2 0x7565
00002ac0: PUSH1 0xf0
00002ac2: SHL
00002ac3: PUSH1 0x64
00002ac5: DUP3
00002ac6: ADD
00002ac7: MSTORE
00002ac8: PUSH1 0x84
00002aca: SWAP1
00002acb: REVERT
00002acc: JUMPDEST
00002acd: DUP1
00002ace: PUSH2 0x2ad8
00002ad1: PUSH1 0x04
00002ad3: SWAP3
00002ad4: PUSH2 0x222e
00002ad7: JUMP
00002ad8: JUMPDEST
00002ad9: EQ
00002ada: PUSH2 0x2adf
00002add: JUMPI
00002ade: JUMP
00002adf: JUMPDEST
00002ae0: PUSH1 0x40
00002ae2: MLOAD
00002ae3: PUSH3 0x461bcd
00002ae7: PUSH1 0xe5
00002ae9: SHL
00002aea: DUP2
00002aeb: MSTORE
00002aec: PUSH1 0x20
00002aee: PUSH1 0x04
00002af0: DUP3
00002af1: ADD
00002af2: MSTORE
00002af3: PUSH1 0x22
00002af5: PUSH1 0x24
00002af7: DUP3
00002af8: ADD
00002af9: MSTORE
00002afa: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265202776272076616c
00002b1b: PUSH1 0x44
00002b1d: DUP3
00002b1e: ADD
00002b1f: MSTORE
00002b20: PUSH2 0x7565
00002b23: PUSH1 0xf0
00002b25: SHL
00002b26: PUSH1 0x64
00002b28: DUP3
00002b29: ADD
00002b2a: MSTORE
00002b2b: PUSH1 0x84
00002b2d: SWAP1
00002b2e: REVERT
00002b2f: JUMPDEST
00002b30: PUSH0
00002b31: NOT
00002b32: DUP2
00002b33: ADD
00002b34: SWAP2
00002b35: SWAP1
00002b36: DUP3
00002b37: GT
00002b38: PUSH2 0x2b3d
00002b3b: JUMPI
00002b3c: JUMP
00002b3d: JUMPDEST
00002b3e: PUSH4 0x4e487b71
00002b43: PUSH1 0xe0
00002b45: SHL
00002b46: PUSH0
00002b47: MSTORE
00002b48: PUSH1 0x11
00002b4a: PUSH1 0x04
00002b4c: MSTORE
00002b4d: PUSH1 0x24
00002b4f: PUSH0
00002b50: REVERT
00002b51: JUMPDEST
00002b52: DUP1
00002b53: SLOAD
00002b54: DUP1
00002b55: ISZERO
00002b56: PUSH2 0x2b78
00002b59: JUMPI
00002b5a: PUSH0
00002b5b: NOT
00002b5c: ADD
00002b5d: SWAP1
00002b5e: PUSH2 0x2b67
00002b61: DUP3
00002b62: DUP3
00002b63: PUSH2 0x264a
00002b66: JUMP
00002b67: JUMPDEST
00002b68: DUP2
00002b69: SLOAD
00002b6a: SWAP1
00002b6b: PUSH0
00002b6c: NOT
00002b6d: SWAP1
00002b6e: PUSH1 0x03
00002b70: SHL
00002b71: SHL
00002b72: NOT
00002b73: AND
00002b74: SWAP1
00002b75: SSTORE
00002b76: SSTORE
00002b77: JUMP
00002b78: JUMPDEST
00002b79: PUSH4 0x4e487b71
00002b7e: PUSH1 0xe0
00002b80: SHL
00002b81: PUSH0
00002b82: MSTORE
00002b83: PUSH1 0x31
00002b85: PUSH1 0x04
00002b87: MSTORE
00002b88: PUSH1 0x24
00002b8a: PUSH0
00002b8b: REVERT
00002b8c: JUMPDEST
00002b8d: PUSH0
00002b8e: DUP2
00002b8f: DUP2
00002b90: MSTORE
00002b91: PUSH1 0x9e
00002b93: PUSH1 0x20
00002b95: MSTORE
00002b96: PUSH1 0x40
00002b98: SWAP1
00002b99: KECCAK256
00002b9a: SLOAD
00002b9b: SWAP1
00002b9c: DUP2
00002b9d: ISZERO
00002b9e: PUSH2 0x2c24
00002ba1: JUMPI
00002ba2: PUSH0
00002ba3: NOT
00002ba4: DUP3
00002ba5: ADD
00002ba6: SWAP1
00002ba7: DUP3
00002ba8: DUP3
00002ba9: GT
00002baa: PUSH2 0x2b3d
00002bad: JUMPI
00002bae: PUSH0
00002baf: SWAP3
00002bb0: PUSH2 0x2be3
00002bb3: SWAP3
00002bb4: PUSH2 0x2bbe
00002bb7: PUSH1 0x9d
00002bb9: SLOAD
00002bba: PUSH2 0x2b2f
00002bbd: JUMP
00002bbe: JUMPDEST
00002bbf: SWAP1
00002bc0: DUP1
00002bc1: DUP3
00002bc2: SUB
00002bc3: PUSH2 0x2be9
00002bc6: JUMPI
00002bc7: JUMPDEST
00002bc8: POP
00002bc9: POP
00002bca: POP
00002bcb: PUSH2 0x2bd4
00002bce: PUSH1 0x9d
00002bd0: PUSH2 0x2b51
00002bd3: JUMP
00002bd4: JUMPDEST
00002bd5: PUSH1 0x9e
00002bd7: SWAP1
00002bd8: PUSH0
00002bd9: MSTORE
00002bda: PUSH1 0x20
00002bdc: MSTORE
00002bdd: PUSH1 0x40
00002bdf: PUSH0
00002be0: KECCAK256
00002be1: SWAP1
00002be2: JUMP
00002be3: JUMPDEST
00002be4: SSTORE
00002be5: PUSH1 0x01
00002be7: SWAP1
00002be8: JUMP
00002be9: JUMPDEST
00002bea: PUSH2 0x2bd4
00002bed: PUSH2 0x2c15
00002bf0: SWAP2
00002bf1: PUSH2 0x2c0b
00002bf4: PUSH2 0x2c01
00002bf7: PUSH2 0x2c1b
00002bfa: SWAP6
00002bfb: PUSH1 0x9d
00002bfd: PUSH2 0x264a
00002c00: JUMP
00002c01: JUMPDEST
00002c02: SWAP1
00002c03: SLOAD
00002c04: SWAP1
00002c05: PUSH1 0x03
00002c07: SHL
00002c08: SHR
00002c09: SWAP1
00002c0a: JUMP
00002c0b: JUMPDEST
00002c0c: SWAP3
00002c0d: DUP4
00002c0e: SWAP2
00002c0f: PUSH1 0x9d
00002c11: PUSH2 0x264a
00002c14: JUMP
00002c15: JUMPDEST
00002c16: SWAP1
00002c17: PUSH2 0x265f
00002c1a: JUMP
00002c1b: JUMPDEST
00002c1c: SSTORE
00002c1d: PUSH0
00002c1e: DUP1
00002c1f: DUP1
00002c20: PUSH2 0x2bc7
00002c23: JUMP
00002c24: JUMPDEST
00002c25: POP
00002c26: POP
00002c27: PUSH0
00002c28: SWAP1
00002c29: JUMP
00002c2a: JUMPDEST
00002c2b: PUSH0
00002c2c: DUP2
00002c2d: DUP2
00002c2e: MSTORE
00002c2f: PUSH1 0x9c
00002c31: PUSH1 0x20
00002c33: MSTORE
00002c34: PUSH1 0x40
00002c36: SWAP1
00002c37: KECCAK256
00002c38: SLOAD
00002c39: SWAP1
00002c3a: DUP2
00002c3b: ISZERO
00002c3c: PUSH2 0x2c24
00002c3f: JUMPI
00002c40: PUSH0
00002c41: NOT
00002c42: DUP3
00002c43: ADD
00002c44: SWAP1
00002c45: DUP3
00002c46: DUP3
00002c47: GT
00002c48: PUSH2 0x2b3d
00002c4b: JUMPI
00002c4c: PUSH0
00002c4d: SWAP3
00002c4e: PUSH2 0x2be3
00002c51: SWAP3
00002c52: PUSH2 0x2c5c
00002c55: PUSH1 0x9b
00002c57: SLOAD
00002c58: PUSH2 0x2b2f
00002c5b: JUMP
00002c5c: JUMPDEST
00002c5d: SWAP1
00002c5e: DUP1
00002c5f: DUP3
00002c60: SUB
00002c61: PUSH2 0x2c81
00002c64: JUMPI
00002c65: JUMPDEST
00002c66: POP
00002c67: POP
00002c68: POP
00002c69: PUSH2 0x2c72
00002c6c: PUSH1 0x9b
00002c6e: PUSH2 0x2b51
00002c71: JUMP
00002c72: JUMPDEST
00002c73: PUSH1 0x9c
00002c75: SWAP1
00002c76: PUSH0
00002c77: MSTORE
00002c78: PUSH1 0x20
00002c7a: MSTORE
00002c7b: PUSH1 0x40
00002c7d: PUSH0
00002c7e: KECCAK256
00002c7f: SWAP1
00002c80: JUMP
00002c81: JUMPDEST
00002c82: PUSH2 0x2c72
00002c85: PUSH2 0x2c15
00002c88: SWAP2
00002c89: PUSH2 0x2c99
00002c8c: PUSH2 0x2c01
00002c8f: PUSH2 0x2ca3
00002c92: SWAP6
00002c93: PUSH1 0x9b
00002c95: PUSH2 0x264a
00002c98: JUMP
00002c99: JUMPDEST
00002c9a: SWAP3
00002c9b: DUP4
00002c9c: SWAP2
00002c9d: PUSH1 0x9b
00002c9f: PUSH2 0x264a
00002ca2: JUMP
00002ca3: JUMPDEST
00002ca4: SSTORE
00002ca5: PUSH0
00002ca6: DUP1
00002ca7: DUP1
00002ca8: PUSH2 0x2c65
00002cab: JUMP
00002cac: JUMPDEST
00002cad: PUSH0
00002cae: DUP2
00002caf: DUP2
00002cb0: MSTORE
00002cb1: PUSH1 0x66
00002cb3: PUSH1 0x20
00002cb5: MSTORE
00002cb6: PUSH1 0x40
00002cb8: SWAP1
00002cb9: KECCAK256
00002cba: SLOAD
00002cbb: SWAP1
00002cbc: DUP2
00002cbd: ISZERO
00002cbe: PUSH2 0x2c24
00002cc1: JUMPI
00002cc2: PUSH0
00002cc3: NOT
00002cc4: DUP3
00002cc5: ADD
00002cc6: SWAP1
00002cc7: DUP3
00002cc8: DUP3
00002cc9: GT
00002cca: PUSH2 0x2b3d
00002ccd: JUMPI
00002cce: PUSH0
00002ccf: SWAP3
00002cd0: PUSH2 0x2be3
00002cd3: SWAP3
00002cd4: PUSH2 0x2cde
00002cd7: PUSH1 0x65
00002cd9: SLOAD
00002cda: PUSH2 0x2b2f
00002cdd: JUMP
00002cde: JUMPDEST
00002cdf: SWAP1
00002ce0: DUP1
00002ce1: DUP3
00002ce2: SUB
00002ce3: PUSH2 0x2d03
00002ce6: JUMPI
00002ce7: JUMPDEST
00002ce8: POP
00002ce9: POP
00002cea: POP
00002ceb: PUSH2 0x2cf4
00002cee: PUSH1 0x65
00002cf0: PUSH2 0x2b51
00002cf3: JUMP
00002cf4: JUMPDEST
00002cf5: PUSH1 0x66
00002cf7: SWAP1
00002cf8: PUSH0
00002cf9: MSTORE
00002cfa: PUSH1 0x20
00002cfc: MSTORE
00002cfd: PUSH1 0x40
00002cff: PUSH0
00002d00: KECCAK256
00002d01: SWAP1
00002d02: JUMP
00002d03: JUMPDEST
00002d04: PUSH2 0x2cf4
00002d07: PUSH2 0x2c15
00002d0a: SWAP2
00002d0b: PUSH2 0x2d1b
00002d0e: PUSH2 0x2c01
00002d11: PUSH2 0x2d25
00002d14: SWAP6
00002d15: PUSH1 0x65
00002d17: PUSH2 0x264a
00002d1a: JUMP
00002d1b: JUMPDEST
00002d1c: SWAP3
00002d1d: DUP4
00002d1e: SWAP2
00002d1f: PUSH1 0x65
00002d21: PUSH2 0x264a
00002d24: JUMP
00002d25: JUMPDEST
00002d26: SSTORE
00002d27: PUSH0
00002d28: DUP1
00002d29: DUP1
00002d2a: PUSH2 0x2ce7
00002d2d: JUMP
00002d2e: JUMPDEST
00002d2f: SWAP3
00002d30: SWAP2
00002d31: SWAP1
00002d32: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
00002d53: DUP4
00002d54: GT
00002d55: PUSH2 0x2dcc
00002d58: JUMPI
00002d59: PUSH1 0xff
00002d5b: AND
00002d5c: PUSH1 0x1b
00002d5e: DUP2
00002d5f: EQ
00002d60: ISZERO
00002d61: DUP1
00002d62: PUSH2 0x2dc1
00002d65: JUMPI
00002d66: JUMPDEST
00002d67: PUSH2 0x2db6
00002d6a: JUMPI
00002d6b: PUSH1 0x20
00002d6d: SWAP4
00002d6e: PUSH0
00002d6f: SWAP4
00002d70: PUSH1 0x40
00002d72: MLOAD
00002d73: SWAP4
00002d74: DUP5
00002d75: SWAP4
00002d76: PUSH1 0x80
00002d78: DUP6
00002d79: ADD
00002d7a: SWAP4
00002d7b: DUP6
00002d7c: MSTORE
00002d7d: DUP8
00002d7e: DUP6
00002d7f: ADD
00002d80: MSTORE
00002d81: PUSH1 0x40
00002d83: DUP5
00002d84: ADD
00002d85: MSTORE
00002d86: PUSH1 0x60
00002d88: DUP4
00002d89: ADD
00002d8a: MSTORE
00002d8b: DUP4
00002d8c: DUP1
00002d8d: MSTORE
00002d8e: SUB
00002d8f: SWAP1
00002d90: PUSH1 0x01
00002d92: GAS
00002d93: STATICCALL
00002d94: ISZERO
00002d95: PUSH2 0x065a
00002d98: JUMPI
00002d99: PUSH0
00002d9a: MLOAD
00002d9b: PUSH1 0x01
00002d9d: PUSH1 0x01
00002d9f: PUSH1 0xa0
00002da1: SHL
00002da2: SUB
00002da3: DUP2
00002da4: AND
00002da5: ISZERO
00002da6: PUSH2 0x2dae
00002da9: JUMPI
00002daa: SWAP1
00002dab: PUSH0
00002dac: SWAP1
00002dad: JUMP
00002dae: JUMPDEST
00002daf: POP
00002db0: PUSH0
00002db1: SWAP1
00002db2: PUSH1 0x01
00002db4: SWAP1
00002db5: JUMP
00002db6: JUMPDEST
00002db7: POP
00002db8: POP
00002db9: POP
00002dba: POP
00002dbb: PUSH0
00002dbc: SWAP1
00002dbd: PUSH1 0x04
00002dbf: SWAP1
00002dc0: JUMP
00002dc1: JUMPDEST
00002dc2: POP
00002dc3: PUSH1 0x1c
00002dc5: DUP2
00002dc6: EQ
00002dc7: ISZERO
00002dc8: PUSH2 0x2d66
00002dcb: JUMP
00002dcc: JUMPDEST
00002dcd: POP
00002dce: POP
00002dcf: POP
00002dd0: POP
00002dd1: PUSH0
00002dd2: SWAP1
00002dd3: PUSH1 0x03
00002dd5: SWAP1
00002dd6: JUMP
00002dd7: JUMPDEST
00002dd8: SWAP1
00002dd9: SWAP2
00002dda: SWAP1
00002ddb: ISZERO
00002ddc: PUSH2 0x2de3
00002ddf: JUMPI
00002de0: POP
00002de1: SWAP1
00002de2: JUMP
00002de3: JUMPDEST
00002de4: DUP2
00002de5: MLOAD
00002de6: ISZERO
00002de7: PUSH2 0x2df3
00002dea: JUMPI
00002deb: POP
00002dec: DUP1
00002ded: MLOAD
00002dee: SWAP1
00002def: PUSH1 0x20
00002df1: ADD
00002df2: REVERT
00002df3: JUMPDEST
00002df4: PUSH1 0x40
00002df6: MLOAD
00002df7: PUSH3 0x461bcd
00002dfb: PUSH1 0xe5
00002dfd: SHL
00002dfe: DUP2
00002dff: MSTORE
00002e00: PUSH1 0x20
00002e02: PUSH1 0x04
00002e04: DUP3
00002e05: ADD
00002e06: MSTORE
00002e07: SWAP1
00002e08: DUP2
00002e09: SWAP1
00002e0a: PUSH2 0x2a11
00002e0d: SWAP1
00002e0e: PUSH1 0x24
00002e10: DUP4
00002e11: ADD
00002e12: SWAP1
00002e13: PUSH2 0x224c
00002e16: JUMP
00002e17: INVALID
00002e18: LOG2
00002e19: PUSH5 0x6970667358
00002e1f: UNKNOWN(0x22)
00002e20: SLT
00002e21: KECCAK256
00002e22: PUSH10 0x23132e935b0fcc093d7d
00002e2d: DUP16
00002e2e: UNKNOWN(0x21)
00002e2f: SMOD
00002e30: PUSH8 0xef7b7fe916bd5fe8
00002e39: UNKNOWN(0xDC)
00002e3a: GAS
00002e3b: OR
00002e3c: PUSH14 0xb62f69117464736f6c634300081c
00002e4b: STOP
00002e4c: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0x88263b61c1180627c60ad2385a9edb23412ceb46c57bc5deb6e39975b20ef430
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0x88263b61c1180627c60ad2385a9edb23412ceb46c57bc5deb6e39975b20ef430",
    "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": "0x0eb9142f",
            "selector": "0x0eb9142f",
            "calldata_variants": [
                "0x0eb9142f",
                "0x0eb9142f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x14b7c124",
            "selector": "0x14b7c124",
            "calldata_variants": [
                "0x14b7c124",
                "0x14b7c1240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1626ba7e",
            "selector": "0x1626ba7e",
            "calldata_variants": [
                "0x1626ba7e",
                "0x1626ba7e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x26142335",
            "selector": "0x26142335",
            "calldata_variants": [
                "0x26142335",
                "0x261423350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x34efb1e9",
            "selector": "0x34efb1e9",
            "calldata_variants": [
                "0x34efb1e9",
                "0x34efb1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x388bb62c",
            "selector": "0x388bb62c",
            "calldata_variants": [
                "0x388bb62c",
                "0x388bb62c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3fc8cef3",
            "selector": "0x3fc8cef3",
            "calldata_variants": [
                "0x3fc8cef3",
                "0x3fc8cef30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4cf3fe9c",
            "selector": "0x4cf3fe9c",
            "calldata_variants": [
                "0x4cf3fe9c",
                "0x4cf3fe9c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 9430,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 9452,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 5064,
            "type": "msg_sender_eq_const",
            "value": 5069
        }
    ],
    "delegatecall_count": 2,
    "untrusted_delegatecall_count": 2
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 2
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xbfedc62dd4ff9dd3ee0409f7195dee2f221384fb2ef7995050b6d04db151f37d
call_targets: 0x4dffeb6b78e57aab41d09e88c796e27cf314de6b
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xbfedc62dd4ff9dd3ee0409f7195dee2f221384fb2ef7995050b6d04db151f37d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x4dffeb6b78e57aab41d09e88c796e27cf314de6b"
    ],
    "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": "0x0eb9142f",
            "selector": "0x0eb9142f",
            "calldata_variants": [
                "0x0eb9142f",
                "0x0eb9142f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x14b7c124",
            "selector": "0x14b7c124",
            "calldata_variants": [
                "0x14b7c124",
                "0x14b7c1240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1626ba7e",
            "selector": "0x1626ba7e",
            "calldata_variants": [
                "0x1626ba7e",
                "0x1626ba7e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x26142335",
            "selector": "0x26142335",
            "calldata_variants": [
                "0x26142335",
                "0x261423350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x34efb1e9",
            "selector": "0x34efb1e9",
            "calldata_variants": [
                "0x34efb1e9",
                "0x34efb1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x388bb62c",
            "selector": "0x388bb62c",
            "calldata_variants": [
                "0x388bb62c",
                "0x388bb62c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3fc8cef3",
            "selector": "0x3fc8cef3",
            "calldata_variants": [
                "0x3fc8cef3",
                "0x3fc8cef30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4cf3fe9c",
            "selector": "0x4cf3fe9c",
            "calldata_variants": [
                "0x4cf3fe9c",
                "0x4cf3fe9c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3019,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3850,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3912,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 8,
    "guards_detected": [
        {
            "pc": 5064,
            "type": "msg_sender_eq_const",
            "value": 5069
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xbfedc62dd4ff9dd3ee0409f7195dee2f221384fb2ef7995050b6d04db151f37d
call_targets: 0x4dffeb6b78e57aab41d09e88c796e27cf314de6b
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xbfedc62dd4ff9dd3ee0409f7195dee2f221384fb2ef7995050b6d04db151f37d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x4dffeb6b78e57aab41d09e88c796e27cf314de6b"
    ],
    "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": "0x0eb9142f",
            "selector": "0x0eb9142f",
            "calldata_variants": [
                "0x0eb9142f",
                "0x0eb9142f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x14b7c124",
            "selector": "0x14b7c124",
            "calldata_variants": [
                "0x14b7c124",
                "0x14b7c1240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1626ba7e",
            "selector": "0x1626ba7e",
            "calldata_variants": [
                "0x1626ba7e",
                "0x1626ba7e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x26142335",
            "selector": "0x26142335",
            "calldata_variants": [
                "0x26142335",
                "0x261423350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x34efb1e9",
            "selector": "0x34efb1e9",
            "calldata_variants": [
                "0x34efb1e9",
                "0x34efb1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x388bb62c",
            "selector": "0x388bb62c",
            "calldata_variants": [
                "0x388bb62c",
                "0x388bb62c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3fc8cef3",
            "selector": "0x3fc8cef3",
            "calldata_variants": [
                "0x3fc8cef3",
                "0x3fc8cef30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4cf3fe9c",
            "selector": "0x4cf3fe9c",
            "calldata_variants": [
                "0x4cf3fe9c",
                "0x4cf3fe9c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3019,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3850,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3912,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 8,
    "guards_detected": [
        {
            "pc": 5064,
            "type": "msg_sender_eq_const",
            "value": 5069
        }
    ],
    "untrusted_call_count": 8
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 5
}