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

Analysis Run

2416e8cc-9d13-457e-86d4-d4508072ea06

complete
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 8:28 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
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
30472 report.consolidate complete 1 / 1 3 months ago
103691 artifact.fetch complete 1 / 3 1 week ago
103692 tool.cast_disasm complete 1 / 3 1 week ago
103693 analysis.bundle complete 1 / 3 1 week ago
103694 capability.graph complete 1 / 3 1 week ago
103695 detector.run complete 1 / 3 1 week ago
103696 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
No concrete security issues could be determined from the bytecode/disassembly patterns alone.
View stderr
[codex:1257358] OpenAI Codex v0.77.0 (research preview)
[codex:1257358] --------
[codex:1257358] workdir: /tmp/codex-multi-yg56dzmp
[codex:1257358] model: gpt-5.2-codex
[codex:1257358] provider: openai
[codex:1257358] approval: never
[codex:1257358] sandbox: read-only
[codex:1257358] reasoning effort: xhigh
[codex:1257358] reasoning summaries: auto
[codex:1257358] session id: 019b6930-27a1-7061-a898-0b8bfa16cada
[codex:1257358] --------
[codex:1257358] user
[codex:1257358] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:1257358] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:1257358] 
[codex:1257358] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:1257358] 
[codex:1257358] Output MUST be valid JSON matching the provided schema.
[codex:1257358] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:1257358] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:1257358] 
[codex:1257358] Output constraints (IMPORTANT):
[codex:1257358] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1257358] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1257358] mcp startup: no servers
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Reading BYTECODE_BUNDLE file**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc ls in /tmp/codex-multi-yg56dzmp succeeded in 5ms:
[codex:1257358] BYTECODE_BUNDLE.txt
[codex:1257358] codex-output-schema.json
[codex:1257358] exec
[codex:1257358] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-yg56dzmp succeeded in 5ms:
[codex:1257358] Runtime bytecode bundle for best-effort auditing.
[codex:1257358] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1257358] 
[codex:1257358] FILE: runtime_bytecode.hex
[codex:1257358] 0x60806040526004361015610011575f80fd5b5f3560e01c80630130c4d21461356457806301ffc9a71461350e57806306fdde0314613451578063095ea7b31461342b5780630f45684a14612725578063106e846b1461340057806310a470ab14612f43578063113ac8f614612f2857806315770f9214612eff57806318160ddd14612ed65780631820cabb14612e9c5780631e8e51da14612e7357806323b872dd14612d34578063248a9ca314612cfd57806327f9237614612ccf57806328f079c214612c9e5780632b3afdb01461279b5780632f2ff15d14612751578063313ce5671461272557806336448777146126fc5780633644e515146126e257806336568abe1461269e57806338898ca21461264a5780633dc69f2c146123d75780633e0dc34e1461239b5780633f668d6f1461234d5780633fc03c261461222857806340c10f1914611f6257806343469f3214611f115780634f1ef28614611d2657806351fe0e1814611cf157806352d1902d14611c8b5780635879445614611c62578063601c186114611b7f57806360b71d4e14611b5657806361b01b5d14611b1a578063641ffaa1146119c75780636780a3111461199657806370a082311461195257806372e30f6a1461186d578063754f56e21461183f578063785ffb37146118055780637ecebe00146117ae5780637fb652651461178557806384b0196e1461163357806388cb0df7146115175780638c66d04f146114c05780638cdc1f24146113b95780638d55de631461132f57806390c83e94146112c557806391d148541461126f57806392c883fb146110e957806395d89b4114610ff357806396c82e5714610fca57806399a22d6814610f995780639bb8111914610f705780639c3701a014610f505780639d3c38c514610ed0578063a217fddf14610eb6578063a9059cbb14610e85578063ad3cb1cc14610e3e578063af8214ef14610e04578063b00eb9fe14610dd2578063b4d1d79514610d98578063b6192d0b14610c09578063b81d85f014610b60578063c0dca06e146109d3578063c646b16614610931578063ca981909146108f7578063cdfed0ab146108bb578063d505accf14610765578063d547741f14610714578063dd62ed3e1461069b578063e065608b146104e7578063e1a45218146104cb578063e465eb9e146104a2578063e46e705814610473578063e5b15b52146103e8578063fc0c546a146103b65763feb56b1514610389575f80fd5b346103b2575f3660031901126103b25760205f516020615cdd5f395f51905f5254604051908152f35b5f80fd5b346103b2575f3660031901126103b25760206001600160a01b035f516020615d1d5f395f51905f525416604051908152f35b346103b25761046f61041361040e6103ff36614112565b906104086143b1565b506149bd565b614435565b6040519182918291909160e080610100830194805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015201511515910152565b0390f35b346103b2575f3660031901126103b257602060ff5f516020615afd5f395f51905f525460081c16604051908152f35b346103b2575f3660031901126103b25760205f516020615b3d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760206040516127108152f35b346103b25760a03660031901126103b257610500613fea565b602435604435916064358015158091036103b257608435918215158093036103b25761052a614921565b612710841161065857612710851161061757907fdef0a5f359f70f4feaf27bbd47c7e476348ea79108e46990d5b73efbc885f0379460a094939215159360ff195f516020615c9d5f395f51905f52541660ff8616175f516020615c9d5f395f51905f5255807f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0955815f516020615c1d5f395f51905f52555f516020615c9d5f395f51905f525462ff00008560101b169061ff008560081b169062ffff00191617175f516020615c9d5f395f51905f52556040519485526020850152604084015260608301526080820152a1005b6040516338d06e1d60e01b815260606004820152600960648201526806c7044656c746142560bc1b608482015260248101869052612710604482015260a490fd5b6040516338d06e1d60e01b815260606004820152600b60648201526a07377617044656c746142560ac1b608482015260248101859052612710604482015260a490fd5b346103b25760403660031901126103b2576106b4613fa8565b6001600160a01b036106fe6106c7613fbe565b926001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b91165f52602052602060405f2054604051908152f35b346103b25760403660031901126103b257610763600435610733613fbe565b9061075e610759825f525f516020615c5d5f395f51905f52602052600160405f20015490565b614970565b61507a565b005b346103b25760e03660031901126103b25761077e613fa8565b610786613fbe565b604435906064359260843560ff811681036103b2578442116108a85761087e6108756001600160a01b039283851697885f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528b6040840152878a1660608401528a608084015260a083015260c082015260c0815261084360e08261408d565b51902061084e6157f6565b906040519161190160f01b83526002830152602282015260c43591604260a435922061585d565b909291926158df565b16848103610891575061076393506156b8565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0954604051908152f35b346103b2575f3660031901126103b25760206040517f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e21028152f35b346103b2577f5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac246109ce610963366140f8565b61096e939193614921565b8061097985856149bd565b6109a18261099c60025f516020615b9d5f395f51905f52549401938454906145d3565b6145c6565b5f516020615b9d5f395f51905f525555604051938493846040919493926060820195825260208201520152565b0390a1005b346103b25760206109e336613ff9565b6109f29592919594939461487d565b6109fa6148b2565b5f90610afa575b610a195f516020615cdd5f395f51905f5254836145e0565b600190468503610ae9575b81610ac0575b5015610aad57507fcf0b8bea497be617351b2c1a4243bd9e92167fdf778a43ebb66fb37160594a0f9394610a8f9160019660405195869586916080936001600160a01b0391979695929760a08501988552602085015216604083015260608201520152565b0390a15b5f5f516020615cfd5f395f51905f525d6040519015158152f35b945050505050610abb61545c565b610a93565b610ae39150866001600160a01b035f516020615d1d5f395f51905f5254166153d7565b88610a2a565b9050610af48161523c565b90610a24565b85151580610b4e575b610b27575b6005610b1485856149bd565b01610b208382546145d3565b9055610a01565b610b48610b425f516020615cdd5f395f51905f5254886145e0565b86615531565b50610b08565b506001600160a01b0385161515610b03565b346103b25760a03660031901126103b257610b79613fd4565b60843590610b8561487d565b610b8d6148b2565b81151580610bf7575b610bcd575b6005610bab6024356004356149bd565b01610bb960643582546145d3565b90555f5f516020615cfd5f395f51905f525d005b610be9610bef925f516020615cdd5f395f51905f5254906145e0565b90615531565b508080610b9b565b506001600160a01b0381161515610b96565b346103b257610c4360c0610c2d610c1f3661417a565b959261040894929194614494565b935f516020615cdd5f395f51905f5254906145f3565b927f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b549060ff5f516020615afd5f395f51905f525416610c81614a5f565b5f516020615a7d5f395f51905f5254905f516020615cbd5f395f51905f52549260405195610cae87614038565b308752602087015260408601526060850152608084015260a08301526001600160a01b035f516020615bbd5f395f51905f52541691610d036040519687958694859463143273dd60e21b865260048601614514565b03915afa8015610d8d5761046f915f91610d5e575b506040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b610d80915060c03d60c011610d86575b610d78818361408d565b8101906144c4565b82610d18565b503d610d6e565b6040513d5f823e3d90fd5b346103b2575f3660031901126103b25760206040517f0000000000000000000000000000000000000000000000000000000000001c208152f35b346103b2575f3660031901126103b25760206001600160a01b035f516020615bbd5f395f51905f525416604051908152f35b346103b2575f3660031901126103b25760206040517f000000000000000000000000000000000000000000000000000000174876e8008152f35b346103b2575f3660031901126103b25761046f604051610e5f60408261408d565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613f84565b346103b25760403660031901126103b257610eab610ea1613fa8565b6024359033614de4565b602060405160018152f35b346103b2575f3660031901126103b25760206040515f8152f35b346103b25760203660031901126103b2577fc0aea4cb7421bc8d3cf83582abe451bd1705682eb83b02b88889940492aef5ca6020610f0c613fea565b610f14614921565b5f516020615d1d5f395f51905f52805460ff60a01b191691151560a090811b60ff60a01b169290921790819055604051911c60ff1615158152a1005b346103b2575f3660031901126103b257610f68614921565b6107636154c4565b346103b2575f3660031901126103b25760205f516020615cbd5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f525460081c166040519015158152f35b346103b2575f3660031901126103b25760205f516020615b9d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b2576040515f5f516020615b1d5f395f51905f525461101f816141fd565b80845290600181169081156110c5575060011461105b575b61046f836110478185038261408d565b604051918291602083526020830190613f84565b5f516020615b1d5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b8082106110ab57509091508101602001611047611037565b919260018160209254838588010152019101909291611093565b60ff191660208086019190915291151560051b840190910191506110479050611037565b346103b2576101403660031901126103b257600435611106613fd4565b90611110366140af565b91610124359081151582036103b25760409361112a61487d565b6111326148b2565b5f92611240575b80519261116461114f60808401958651906145c6565b5f516020615cdd5f395f51905f5254906145e0565b946001904603611231575b80611209575b156111f857507f82f23eb0ffa46ea98b1a7134447f74561cec3e194d0f1d06ffc35ce71ae80336916080916111b060019582519051906145c6565b9060606020820151910151916001600160a01b038951941684526020840152878301526060820152a15b5f5f516020615cfd5f395f51905f525d825191825215156020820152f35b9250505061120461545c565b6111da565b5061122c85846001600160a01b035f516020615d1d5f395f51905f5254166153d7565b611175565b5061123b8561523c565b61116f565b61124981615117565b60a0810151611268600561125f602435886149bd565b019182546145d3565b9055611139565b346103b25760403660031901126103b257611288613fbe565b6004355f525f516020615c5d5f395f51905f526020526001600160a01b0360405f2091165f52602052602060ff60405f2054166040519015158152f35b346103b25760203660031901126103b2576004356112e1614921565b7f0320c21101a3b92f1a57a1daef0827408be5f6cb7bb44fb426cc4152663e611d6020604051838152a17f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d55005b346103b25760203660031901126103b2575f516020615b5d5f395f51905f525480156113855761137d61114f6020926113785f516020615a7d5f395f51905f52546004356145e0565b6145f3565b604051908152f35b604051634612b38f60e01b815260206004820152600b60248201526a746f74616c537570706c7960a81b6044820152606490fd5b346103b25760203660031901126103b2576113d2613fa8565b6113da614921565b6001600160a01b03811615611495575f516020615d5d5f395f51905f52549081156114865761141b610763925f516020615cdd5f395f51905f5254906145e0565b5f5f516020615d5d5f395f51905f5255604080516001600160a01b0384168152602081018390529192917f0a7a10dab02ee70c589a87e2b0d57484d85d029e381c3ca52387e25486a4c5389190a16001600160a01b035f516020615d1d5f395f51905f525416615202565b636e63c7c360e01b5f5260045ffd5b604051636bc37c5f60e11b8152602060048201526002602482015261746f60f01b6044820152606490fd5b346103b25760203660031901126103b2576001600160a01b036114e1613fa8565b6114e9614921565b166001600160a01b03195f516020615bbd5f395f51905f525416175f516020615bbd5f395f51905f52555f80f35b346103b25761152536614112565b906040519061153382614071565b5f825260208201905f825261154661487d565b61154e6148b2565b61155884826149bd565b90600160ff60078401541615150361161c57506040935f7f0aeafd14584f8a6bfe6b3846da893395e218188cb3ba5586a705848f7fbcb1ad926115c66115b15f516020615a7d5f395f51905f52546002840154906145e0565b5f516020615b9d5f395f51905f5254906145f3565b855260068101906115e16005835492838a52019182546145c6565b90555583518351865192835260208301919091526040820152606090a15f5f516020615cfd5f395f51905f525d825191518252516020820152f35b8490631c6768ad60e21b5f5260045260245260445ffd5b346103b2575f3660031901126103b2577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10054158061175c575b15611717576116bb61167c614235565b611684614304565b60206116c960405192611697838561408d565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190613f84565b908582036040870152613f84565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061170057505050500390f35b8351855286955093810193928101926001016116f1565b60405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101541561166c565b346103b25760203660031901126103b2576107636117a1613fea565b6117a96148b2565b614b06565b346103b25760203660031901126103b2576001600160a01b036117cf613fa8565b165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b346103b2575f3660031901126103b25760206040517f0000000000000000000000000000000000000000000000000000000ba43b74008152f35b346103b2575f3660031901126103b257602060ff5f516020615bfd5f395f51905f5254166040519015158152f35b346103b25760803660031901126103b25760043560243560403660431901126103b2577fdbbc76676cb73b8d1c33378e0cdc88f364e4203cfa5b1e4c7d15b66b5cb97f0c916119356040516118c181614071565b6044358152602081019060643582526118d861487d565b6118e06148b2565b60046118ec86866149bd565b600381016118fd81548551906145c6565b9055019182549051928380920361194a575b505051604051948594859094939260609260808301968352602083015260408201520152565b0390a15f5f516020615cfd5f395f51905f525d005b55818761190f565b346103b25760203660031901126103b2576001600160a01b03611973613fa8565b165f525f516020615abd5f395f51905f52602052602060405f2054604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615d1d5f395f51905f525460a01c166040519015158152f35b346103b2576119d53661417a565b6119e093919361487d565b6119e86148b2565b6001600160a01b03841615611aeb578381611a60611a2a611935947f5f8ecf683e1923224ca1e9b396be6a7a13e480a011e7645d641e7a7d3a2d0f0398614eb5565b5f516020615c9d5f395f51905f525460ff8116158015611aaa575b611a95575b505f516020615cdd5f395f51905f5254906145e0565b9160405195869586916080936001600160a01b0391979695929760a08501988552602085015216604083015260608201520152565b60ff611aa49160101c16614b06565b88611a4a565b505f516020615c7d5f395f51905f5254612710611ae45f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b0410611a45565b604051636bc37c5f60e11b8152602060048083019190915260248201526366726f6d60e01b6044820152606490fd5b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d54604051908152f35b346103b2575f3660031901126103b25760205f516020615d5d5f395f51905f5254604051908152f35b346103b2576040611b8f366140f8565b611b9761487d565b611b9f6148b2565b6003611bab83856149bd565b01918254938483115f14611c2a578394505f611beb7f9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a9019894955480966145d3565b9495555b855190815260208101919091526040810184905260608101839052608090a15f5f516020615cfd5f395f51905f525d82519182526020820152f35b92611c58837f9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a901989493966145d3565b9055925f92611bef565b346103b2575f3660031901126103b25760205f516020615d3d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b2576001600160a01b037f00000000000000000000000009019548ef289cf2694530b7a22420ad9f891582163003611ce25760206040515f516020615bdd5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b346103b25760203660031901126103b257602061137d611d215f516020615cdd5f395f51905f52546004356145f3565b61519a565b60403660031901126103b257611d3a613fa8565b60243567ffffffffffffffff81116103b257366023820112156103b257611d6b903690602481600401359101614144565b6001600160a01b037f00000000000000000000000009019548ef289cf2694530b7a22420ad9f89158216803014908115611eef575b50611ce257611dad614921565b6040516352d1902d60e01b81526001600160a01b0383169290602081600481875afa5f9181611ebb575b50611def5783634c9c8ce360e01b5f5260045260245ffd5b805f516020615bdd5f395f51905f52859203611ea95750813b15611e9757806001600160a01b03195f516020615bdd5f395f51905f525416175f516020615bdd5f395f51905f52557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115611e7f575f8083602061076395519101845af4611e796153a8565b91615a02565b505034611e8857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611ee7575b81611ed76020938361408d565b810103126103b257519085611dd7565b3d9150611eca565b90506001600160a01b035f516020615bdd5f395f51905f525416141583611da0565b346103b257611f1f36614112565b90611f28614921565b6007611f3483836149bd565b019182549160ff8316611f4d5760ff1983166001178455005b634e06b75f60e11b5f5260045260245260445ffd5b346103b25760403660031901126103b257611f7b613fa8565b602435611f8661487d565b611f8e6148b2565b611fb98161099c5f516020615a7d5f395f51905f52545f516020615cdd5f395f51905f5254906145e0565b7f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d548082116121e35750505f516020615b9d5f395f51905f5254156121af575f516020615cdd5f395f51905f5254612010916145f3565b612028815f516020615c7d5f395f51905f52546145c6565b5f516020615c7d5f395f51905f525580915f516020615b5d5f395f51905f525480612183575b50612067825f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f52556001600160a01b038116156121705782816120b46020957f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f9461574c565b6120de84604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a15f516020615c9d5f395f51905f525460ff811615801561212f575b61211a575b505f5f516020615cfd5f395f51905f525d604051908152f35b60ff6121299160101c16614b06565b82612101565b505f516020615c7d5f395f51905f52546127106121695f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b04106120fc565b63ec442f0560e01b5f525f60045260245ffd5b6121a891935061219390836145e0565b5f516020615a7d5f395f51905f5254906145f3565b918361204e565b604051634612b38f60e01b815260206004820152600b60248201526a1d1bdd185b15d95a59da1d60aa1b6044820152606490fd5b60a49250604051916338d06e1d60e01b835260606004840152601060648401526f6d6178546f74616c4465706f7369747360801b608484015260248301526044820152fd5b346103b25760603660031901126103b257612241613fa8565b60243561224c613fd4565b61225461487d565b61225c6148b2565b816001600160a01b0384168015611aeb576001600160a01b037f285a08d85aaeb56c8b9d22b6877dffaed0cb5d07c1c14494aff61d9524746a12936080936020975f516020615c7d5f395f51905f5254976122b68961519a565b809111612343575b506122cc826122d392614eb5565b80986145d3565b5f516020615c7d5f395f51905f52556123146122fd5f516020615cdd5f395f51905f5254896145e0565b83855f516020615d1d5f395f51905f525416615202565b60405193845287840152856040840152166060820152a15f5f516020615cfd5f395f51905f525d604051908152f35b91506122cc6122be565b346103b25761235b36614112565b905f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20905f52602052602060405f2054604051908152f35b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b54604051908152f35b346103b2576123e5366140f8565b916123ee614921565b5f516020615c3d5f395f51905f525480606411156125ed575f5b81811061259c5750612428845f516020615b9d5f395f51905f52546145c6565b5f516020615b9d5f395f51905f5255815f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20835f5260205260405f20556040519261247a84614054565b8184526020840190838252604085019481865260608101905f825260808101915f835260a082015f815260c08301905f825260e08401945f86525f516020615c3d5f395f51905f525468010000000000000000811015612588578060016124f092015f516020615c3d5f395f51905f52556143ed565b949094612575577f5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac249b6109ce99600797518755516001870155516002860155516003850155516004840155516005830155516006820155019051151560ff80198354169116179055604051938493846040919493926060820195825260208201520152565b634e487b7160e01b5f525f60045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b6125ae6125a8826143ed565b50614435565b848482511491826125df575b50506125c857600101612408565b505063b020eb6360e01b5f5260045260245260445ffd5b6020015114905084876125ba565b600181018091116126365760a490604051906338d06e1d60e01b82526060600483015260086064830152671419595c941bdbdb60c21b6084830152602482015260646044820152fd5b634e487b7160e01b5f52601160045260245ffd5b346103b2576101203660031901126103b257612664613fd4565b5060a0612670366140af565b61267861487d565b6126806148b2565b61268981615117565b0151610bb9600561125f6024356004356149bd565b346103b25760403660031901126103b2576126b7613fbe565b336001600160a01b038216036126d3576107639060043561507a565b63334bd91960e11b5f5260045ffd5b346103b2575f3660031901126103b257602061137d6157f6565b346103b2575f3660031901126103b25760205f516020615c1d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615afd5f395f51905f525416604051908152f35b346103b25760403660031901126103b257610763600435612770613fbe565b90612796610759825f525f516020615c5d5f395f51905f52602052600160405f20015490565b6147d6565b346103b25760a03660031901126103b2576024356004356127ba613fd4565b916064359160843567ffffffffffffffff81116103b257366023820112156103b25780600401359067ffffffffffffffff82116103b25736602483830101116103b25761280561487d565b61280d6148b2565b6001600160a01b038616958615611aeb57600160ff600761282e88886149bd565b015416151503612c86578561284291614eb5565b9460ff5f516020615c9d5f395f51905f525416158015612c45575b6128ea575b918060247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c96959360e09560209a60405198899788528c8801526040870152606086015288608086015260c060a08601528260c086015201848401375f828201840152601f01601f19168101030190a15f5f516020615cfd5f395f51905f525d604051908152f35b5f516020615c7d5f395f51905f5254965f88151580612c2e575b612911575b509650612862565b5f516020615c3d5f395f51905f52549061292a82614629565b5f5f5f516020615a7d5f395f51905f52545f516020615b9d5f395f51905f5254915b868110612bbd575050505f9b81155f14612a5a575050508080612a43575b6129d5575b50509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c5b5f516020615c7d5f395f51905f52546145d3565b5f516020615c7d5f395f51905f5255935093955093959650612909565b8181101561296f576129e6816143ed565b50995f516020615c7d5f395f51905f525460028c0154612a05916145e0565b5f516020615b9d5f395f51905f5254612a1d916145f3565b9081612a28916145c6565b9a60060190815490612a39916145c6565b90556001016129d5565b505f516020615c7d5f395f51905f5254151561296a565b9080929391105f14612b2d575b838110612aa957505050509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c6129a4565b80612ab660019285614af2565b51612ac2575b01612a67565b6006612b15612ad0836143ed565b509e612af986611378612ae3878b614af2565b515f516020615c7d5f395f51905f5254906145e0565b612b038589614af2565b52612b0e8488614af2565b51906145c6565b9d01612b268154612b0e8488614af2565b9055612abc565b50505f5b828110612b72575050509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c6129a4565b80612b7f60019284614af2565b51612b8b575b01612b31565b6006612ba5612b99836143ed565b509d612b0e8487614af2565b9c01612bb68154612b0e8487614af2565b9055612b85565b612bc6816143ed565b50612bed612bdc856113786002850154876145e0565b9160066005820154910154906145c6565b90818111612c00575b505060010161294c565b94612c11612c2692600194976145d3565b612c1b8789614af2565b52612b0e8688614af2565b93905f612bf6565b505f516020615b9d5f395f51905f52541515612904565b505f516020615c7d5f395f51905f5254612710612c7f5f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b041061285d565b505050631c6768ad60e21b5f5260045260245260445ffd5b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f525460101c166040519015158152f35b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f5254166040519015158152f35b346103b25760203660031901126103b257602061137d6004355f525f516020615c5d5f395f51905f52602052600160405f20015490565b346103b25760603660031901126103b257612d4d613fa8565b612d55613fbe565b60443590612d93836001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b6001600160a01b0333165f5260205260405f2054925f198410612dbb575b610eab9350614de4565b828410612e58576001600160a01b03811615612e45573315612e3257610eab93612e15826001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b6001600160a01b0333165f526020528360405f2091039055612db1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8284637dc7a0d960e11b5f523360045260245260445260645ffd5b346103b2575f3660031901126103b25760205f516020615c7d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760206040517f00000000000000000000000000000000000000000000000000000000000054608152f35b346103b2575f3660031901126103b25760205f516020615b5d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760205f516020615a7d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060405160648152f35b346103b257612f5136613ff9565b93929091612f5d614494565b50612f6661487d565b612f6e6148b2565b60ff5f516020615d1d5f395f51905f525460a01c166133f1576001600160a01b038216918215611aeb57612fa285886149bd565b93600160ff6007870154161515036133da575f516020615cdd5f395f51905f525496612fd9612fd189866145f3565b9889936145f3565b9360c07f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b549460ff5f516020615afd5f395f51905f5254169561301a614a5f565b5f516020615a7d5f395f51905f5254905f516020615cbd5f395f51905f5254986040519361304785614038565b30855260208501526040840152606083015260808201528660a0820152896001600160a01b035f516020615bbd5f395f51905f5254169161309e6040519e8f958694859463143273dd60e21b865260048601614514565b03915afa988915610d8d575f996133b9575b5088511561334f575060808801926130c98451846145c6565b94806130db60608c01978851906145d3565b1061331d57508351806132fe575b505060408801956131066130fe8851856145d3565b8551906145c6565b600360a08b019282845201918254918083106132e857509261010098959261315961046f9d9996937f9c7519dcf6aef530f7209189ddd559038a69f8bb53f818b7fa76c67379aa6b2c9c999651906145d3565b9055156132ac5761317b613183915f516020615c7d5f395f51905f52546145c6565b8251906145c6565b5f516020615c7d5f395f51905f52555b5f516020615c9d5f395f51905f525460ff8116158015613257575b613242575b508851905191519260208a0151945195604051978852602088015260408701526060860152608085015260a084015260c083015260e0820152a15f5f516020615cfd5f395f51905f525d6040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b60ff6132519160081c16614b06565b8a6131b3565b505f516020615c7d5f395f51905f52546127106132a45f516020615a7d5f395f51905f52547f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0954906145e0565b0411156131ae565b508051806132bb575b50613193565b6132d3905f516020615c7d5f395f51905f52546145c6565b5f516020615c7d5f395f51905f52558a6132b5565b8263c8a198d960e01b5f5260045260245260445ffd5b613307916145d3565b5f516020615cbd5f395f51905f525589806130e9565b8451865160405163463fc77f60e11b815260048101879052602481019290925260448201526064810191909152608490fd5b61337189604061336860608301516020840151906145c6565b910151906145c6565b90600182018092116126365760a49160405191631606f63960e21b8352606060048401526008606484015267185b5bdd5b9d131160c21b608484015260248301526044820152fd5b6133d391995060c03d60c011610d8657610d78818361408d565b978a6130b0565b8588631c6768ad60e21b5f5260045260245260445ffd5b6331ad2c0f60e11b5f5260045ffd5b346103b25760203660031901126103b2576134196143b1565b5061046f6104136125a86004356143ed565b346103b25760403660031901126103b257610eab613447613fa8565b60243590336156b8565b346103b2575f3660031901126103b2576040515f5f516020615a9d5f395f51905f525461347d816141fd565b80845290600181169081156110c557506001146134a45761046f836110478185038261408d565b5f516020615a9d5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106134f457509091508101602001611047611037565b9192600181602092548385880101520191019092916134dc565b346103b25760203660031901126103b25760043563ffffffff60e01b81168091036103b257602090637965db0b60e01b8114908115613553575b506040519015158152f35b6301ffc9a760e01b14905082613548565b346103b25760203660031901126103b25760043567ffffffffffffffff81116103b257806004019061014060031982360301126103b2575f516020615d7d5f395f51905f52549160ff8360401c16159267ffffffffffffffff811680159081613f7c575b6001149081613f72575b159081613f69575b50613f5a5767ffffffffffffffff1981166001175f516020615d7d5f395f51905f525583613f2e575b5061363661361182806141a8565b61362e61362460248795949501866141a8565b9490923691614144565b923691614144565b9061363f61568d565b61364761568d565b80519067ffffffffffffffff82116125885781906136725f516020615a9d5f395f51905f52546141fd565b601f8111613eb4575b50602090601f8311600114613e36575f92613e2b575b50508160011b915f199060031b1c1916175f516020615a9d5f395f51905f52555b80519067ffffffffffffffff8211612588576136db5f516020615b1d5f395f51905f52546141fd565b601f8111613dbc575b50602090601f8311600114613d38579180613733949261372c945f92613d2d575b50508160011b915f199060031b1c1916175f516020615b1d5f395f51905f52555b806141a8565b3691614144565b9161373c61568d565b60409182519361374c848661408d565b60018552603160f81b602086015261376261568d565b80519067ffffffffffffffff821161258857819061378d5f516020615add5f395f51905f52546141fd565b601f8111613cb3575b50602090601f8311600114613c35575f92613c2a575b50508160011b915f199060031b1c1916175f516020615add5f395f51905f52555b835167ffffffffffffffff8111612588576137f55f516020615b7d5f395f51905f52546141fd565b601f8111613bbb575b50602094601f8211600114613b40579481929394955f92613b35575b50508160011b915f199060031b1c1916175f516020615b7d5f395f51905f52555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100555f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015561388961568d565b61389161568d565b6138fb6138a0608483016141db565b60ff806138af60a486016141db565b926138b861568d565b6138c061568d565b16918261ff005f516020615afd5f395f51905f52549260081b169161ffff19161717805f516020615afd5f395f51905f525560081c166145d3565b604d811161263657600a0a5f516020615cdd5f395f51905f525561391d61568d565b61392561568d565b61394f7f0000000000000000000000000000000000000000000000000000000000001c20436145c6565b5f516020615d3d5f395f51905f525561397261396d60e483016141e9565b61465b565b5061398861398361010483016141e9565b61470a565b5060448101357f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b55606481016001600160a01b036139c5826141e9565b1615613b085760c48201906001600160a01b036139e1836141e9565b1615613ad357613a2961012493926001600160a01b03613a0181946141e9565b1683195f516020615d1d5f395f51905f525416175f516020615d1d5f395f51905f52556141e9565b166001600160a01b03195f516020615bbd5f395f51905f525416175f516020615bbd5f395f51905f525501357f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d55613a7d57005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29168ff0000000000000000195f516020615d7d5f395f51905f5254165f516020615d7d5f395f51905f52555160018152a1005b8451636bc37c5f60e11b815260206004820152600d60248201526c3332b2a1b0b631bab630ba37b960991b6044820152606490fd5b8351636bc37c5f60e11b81526020600482015260056024820152643a37b5b2b760d91b6044820152606490fd5b01519050858061381a565b601f198216955f516020615b7d5f395f51905f525f52805f20915f5b888110613ba357508360019596979810613b8b575b505050811b015f516020615b7d5f395f51905f525561383b565b01515f1960f88460031b161c19169055858080613b71565b91926020600181928685015181550194019201613b5c565b5f516020615b7d5f395f51905f525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c81019160208410613c20575b601f0160051c01905b818110613c1557506137fe565b5f8155600101613c08565b9091508190613bff565b0151905086806137ac565b5f516020615add5f395f51905f525f9081528281209350601f198516905b818110613c9b5750908460019594939210613c83575b505050811b015f516020615add5f395f51905f52556137cd565b01515f1960f88460031b161c19169055868080613c69565b92936020600181928786015181550195019301613c53565b5f516020615add5f395f51905f525f529091507f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f840160051c81019160208510613d23575b90601f859493920160051c01905b818110613d155750613796565b5f8155849350600101613d08565b9091508190613cfa565b015190508780613705565b90601f198316915f516020615b1d5f395f51905f525f52815f20925f5b818110613da4575092600192859261372c96613733989610613d8c575b505050811b015f516020615b1d5f395f51905f5255613726565b01515f1960f88460031b161c19169055878080613d72565b92936020600181928786015181550195019301613d55565b5f516020615b1d5f395f51905f525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f840160051c81019160208510613e21575b601f0160051c01905b818110613e1657506136e4565b5f8155600101613e09565b9091508190613e00565b015190508680613691565b5f516020615a9d5f395f51905f525f9081528281209350601f198516905b818110613e9c5750908460019594939210613e84575b505050811b015f516020615a9d5f395f51905f52556136b2565b01515f1960f88460031b161c19169055868080613e6a565b92936020600181928786015181550195019301613e54565b5f516020615a9d5f395f51905f525f529091507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f840160051c81019160208510613f24575b90601f859493920160051c01905b818110613f16575061367b565b5f8155849350600101613f09565b9091508190613efb565b68ffffffffffffffffff191668010000000000000001175f516020615d7d5f395f51905f525583613603565b63f92ee8a960e01b5f5260045ffd5b905015856135da565b303b1591506135d2565b8591506135c8565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036103b257565b602435906001600160a01b03821682036103b257565b604435906001600160a01b03821682036103b257565b6004359081151582036103b257565b60c09060031901126103b25760043590602435906044356001600160a01b03811681036103b25790606435906084359060a43580151581036103b25790565b60c0810190811067ffffffffffffffff82111761258857604052565b610100810190811067ffffffffffffffff82111761258857604052565b6040810190811067ffffffffffffffff82111761258857604052565b90601f8019910116810190811067ffffffffffffffff82111761258857604052565b60c09060631901126103b257604051906140c882614038565b6064358252608435602083015260a435604083015260c435606083015260e43560808301526101043560a0830152565b60609060031901126103b257600435906024359060443590565b60409060031901126103b2576004359060243590565b67ffffffffffffffff811161258857601f01601f191660200190565b92919261415082614128565b9161415e604051938461408d565b8294818452818301116103b2578281602093845f960137010152565b60809060031901126103b25760043590602435906044356001600160a01b03811681036103b2579060643590565b903590601e19813603018212156103b2570180359067ffffffffffffffff82116103b2576020019181360383136103b257565b3560ff811681036103b25790565b356001600160a01b03811681036103b25790565b90600182811c9216801561422b575b602083101461421757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161420c565b604051905f825f516020615add5f395f51905f525491614254836141fd565b80835292600181169081156142e5575060011461427a575b6142789250038361408d565b565b505f516020615add5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142c95750509060206142789282010161426c565b60209193508060019154838589010152019101909184926142b1565b6020925061427894915060ff191682840152151560051b82010161426c565b604051905f825f516020615b7d5f395f51905f525491614323836141fd565b80835292600181169081156142e55750600114614346576142789250038361408d565b505f516020615b7d5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b8183106143955750509060206142789282010161426c565b602091935080600191548385890101520191019091849261437d565b604051906143be82614054565b5f60e0838281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b5f516020615c3d5f395f51905f5254811015614421575f516020615c3d5f395f51905f525f5260205f209060031b01905f90565b634e487b7160e01b5f52603260045260245ffd5b9060405161444281614054565b60e060ff600783958054855260018101546020860152600281015460408601526003810154606086015260048101546080860152600581015460a0860152600681015460c08601520154161515910152565b604051906144a182614038565b5f60a0838281528260208201528260408201528260608201528260808201520152565b908160c09103126103b25760a0604051916144de83614038565b8051835260208101516020840152604081015160408401526060810151606084015260808101516080840152015160a082015290565b909493926001600160a01b039060ff60076101e09560a061020087019a868151168852602081015160208901528460408201511660408901526060810151606089015260808101516080890152015160a0870152805460c0870152600181015460e08701526002810154610100870152600381015461012087015260048101546101408701526005810154610160870152600681015461018087015201541615156101a0840152166101c08201520152565b9190820180921161263657565b9190820391821161263657565b8181029291811591840414171561263657565b81156145fd570490565b634e487b7160e01b5f52601260045260245ffd5b67ffffffffffffffff81116125885760051b60200190565b9061463382614611565b614640604051918261408d565b8281528092614651601f1991614611565b0190602036910137565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16614705576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f90565b6001600160a01b0381165f9081527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538602052604090205460ff16614705576001600160a01b03165f8181527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c49890853860205260408120805460ff191660011790553391907f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e2102907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260ff60405f205416155f1461487757805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260405f20600160ff198254161790556001600160a01b03339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b50505f90565b5f516020615cfd5f395f51905f525c6148a35760015f516020615cfd5f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b335f9081527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538602052604090205460ff16156148ea57565b63e2517d3f60e01b5f52336004527f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e210260245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561495957565b63e2517d3f60e01b5f52336004525f60245260445ffd5b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0333165f5260205260ff60405f205416156149a75750565b63e2517d3f60e01b5f523360045260245260445ffd5b91905f516020615c3d5f395f51905f525415614a5057825f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20815f52602052614a1160405f20546143ed565b509283828282541491821592614a41575b5050614a2c575050565b6310de8c5160e31b5f5260045260245260445ffd5b6001015414159050825f614a22565b634d6af2e760e11b5f5260045ffd5b602460206001600160a01b035f516020615d1d5f395f51905f525416604051928380926370a0823160e01b82523060048301525afa8015610d8d575f90614abe575b614abb91505f516020615cdd5f395f51905f5254906145f3565b90565b506020813d602011614aea575b81614ad86020938361408d565b810103126103b257614abb9051614aa1565b3d9150614acb565b80518210156144215760209160051b010190565b5f516020615c7d5f395f51905f52549081151580614dcd575b614b27575050565b5f516020615c3d5f395f51905f525490614b4082614629565b5f5f5f516020615a7d5f395f51905f52545f516020615b9d5f395f51905f5254915b868110614d82575050505f9481155f14614c235750505080614c0c575b614bae575b50614b9d905f516020615c7d5f395f51905f52546145d3565b5f516020615c7d5f395f51905f5255565b5f5b818110614bbd5750614b84565b80614bc96001926143ed565b5093614c046006614bfa614bf36115b15f516020615c7d5f395f51905f525460028b0154906145e0565b80946145c6565b96019182546145c6565b905501614bb0565b505f516020615c7d5f395f51905f52541515614b7f565b9080929391105f14614c9857505f5b838110614c465750505050614b9d906129a4565b80614c5360019285614af2565b51614c5f575b01614c32565b6006614c80614c6d836143ed565b5097612af986611378612ae3878b614af2565b9601614c918154612b0e8488614af2565b9055614c59565b9294939215614d1d57614cb9905f516020615c7d5f395f51905f52546145d3565b5f5b858110614cd057505050614b9d9192506129a4565b80614cdc6001926143ed565b5094614d156006614d0b614bf3614cf3868a614af2565b51614d056115b160028d01548b6145e0565b906145c6565b97019182546145c6565b905501614cbb565b505f939192935b828110614d3757505050614b9d906129a4565b80614d4460019284614af2565b51614d50575b01614d24565b6006614d6a614d5e836143ed565b5096612b0e8487614af2565b9501614d7b8154612b0e8487614af2565b9055614d4a565b614d8b816143ed565b50614da1612bdc856113786002850154876145e0565b90818111614db4575b5050600101614b62565b94612c11614dc592600194976145d3565b93905f614daa565b505f516020615b9d5f395f51905f52541515614b1f565b6001600160a01b0316908115614ea2576001600160a01b031691821561217057815f525f516020615abd5f395f51905f5260205260405f2054818110614e8957817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f516020615abd5f395f51905f5284520360405f2055845f525f516020615abd5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b905f516020615b5d5f395f51905f5254918215611385576001600160a01b038116805f525f516020615abd5f395f51905f5260205260405f20548381106150285750614f1e614f175f516020615a7d5f395f51905f52549561137887876145e0565b80956145d3565b5f516020615a7d5f395f51905f52558015614ea257805f525f516020615abd5f395f51905f5260205260405f205483811061500e5781845f927f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a96959484525f516020615abd5f395f51905f52602052036040832055835f516020615b5d5f395f51905f5254035f516020615b5d5f395f51905f52557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051868152a361500884604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a190565b915063391434e360e21b5f5260045260245260445260645ffd5b8360a491604051916338d06e1d60e01b835260606004840152601560648401527f506f6f6c2e5f6275726e4c502e616d6f756e744c500000000000000000000000608484015260248301526044820152fd5b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260ff60405f2054165f1461487757805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260405f2060ff1981541690556001600160a01b03339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b60206151899161513960408201515f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f525561516460608201515f516020615cbd5f395f51905f52546145c6565b5f516020615cbd5f395f51905f525501515f516020615d5d5f395f51905f52546145c6565b5f516020615d5d5f395f51905f5255565b5f516020615a7d5f395f51905f525480156151cb57611378614abb925f516020615b5d5f395f51905f5254906145e0565b604051634612b38f60e01b815260206004820152600e60248201526d746f74616c4c697175696469747960901b6044820152606490fd5b61520d8383836153d7565b1561521757505050565b906001600160a01b0380926387abb3dd60e01b5f52166004521660245260445260645ffd5b5f516020615d3d5f395f51905f5254431161539b575b61526a815f516020615b3d5f395f51905f52546145c6565b7f000000000000000000000000000000000000000000000000000000174876e8001061530b57807f0000000000000000000000000000000000000000000000000000000ba43b7400105f146152f557806152e1915f516020615a5d5f395f51905f52555f516020615b3d5f395f51905f52546145c6565b5f516020615b3d5f395f51905f5255600190565b505f5f516020615a5d5f395f51905f5255600190565b505f5f516020615a5d5f395f51905f52555f516020615bfd5f395f51905f525460ff81161561533957505f90565b60019060ff1916175f516020615bfd5f395f51905f52556153887f00000000000000000000000000000000000000000000000000000000000054605f516020615d3d5f395f51905f52546145c6565b5f516020615d3d5f395f51905f52555f90565b6153a36154c4565b615252565b3d156153d2573d906153b982614128565b916153c7604051938461408d565b82523d5f602084013e565b606090565b60405163a9059cbb60e01b602082019081526001600160a01b039390931660248201526044808201949094529283525f92839290839061541860648261408d565b51925af16154246153a8565b8180615452575b615433575090565b90506020818051810103126103b2576020015180151581036103b25790565b508051151561542b565b5f516020615b3d5f395f51905f52545f516020615a5d5f395f51905f5254808210156154a75750505f5f516020615b3d5f395f51905f52555b5f5f516020615a5d5f395f51905f5255565b6154b0916145d3565b5f516020615b3d5f395f51905f5255615495565b6154ee7f0000000000000000000000000000000000000000000000000000000000001c20436145c6565b5f516020615d3d5f395f51905f52555f5f516020615b3d5f395f51905f525560ff195f516020615bfd5f395f51905f5254165f516020615bfd5f395f51905f5255565b91905f516020615b9d5f395f51905f5254156121af575f516020615cdd5f395f51905f525461555f916145f3565b91825f516020615b5d5f395f51905f525480615678575b5061558f845f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f52556001600160a01b0382161561217057816155d9827f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f9461574c565b61560385604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a15f516020615c9d5f395f51905f525460ff8116158015615637575b6156285750565b60ff6142789160101c16614b06565b505f516020615c7d5f395f51905f52546127106156715f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b0410615621565b615687915061219390856145e0565b5f615576565b60ff5f516020615d7d5f395f51905f525460401c16156156a957565b631afcd79f60e31b5f5260045ffd5b916001600160a01b038316918215612e45576001600160a01b0316928315612e32577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916157386020926001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b855f5282528060405f2055604051908152a3565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206001600160a01b035f93615791865f516020615b5d5f395f51905f52546145c6565b5f516020615b5d5f395f51905f52551693841584146157d457805f516020615b5d5f395f51905f5254035f516020615b5d5f395f51905f52555b604051908152a3565b8484525f516020615abd5f395f51905f528252604084208181540190556157cb565b6157fe615953565b6158066159bd565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261585760c08261408d565b51902090565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116158d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8d575f516001600160a01b038116156158ca57905f905f90565b505f906001905f90565b5050505f9160039190565b600481101561593f57806158f1575050565b600181036159085763f645eedf60e01b5f5260045ffd5b60028103615923575063fce698f760e01b5f5260045260245ffd5b60031461592d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b61595b614235565b805190811561596b576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156159985790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159c5614304565b80519081156159d5576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156159985790565b90615a265750805115615a1757805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580615a53575b615a37575090565b6001600160a01b0390639996b31560e01b5f521660045260245ffd5b50803b15615a2f56fe0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00398b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102363bd9d3ac01b05edede66fbb9c4f73d99f1481666c51eee8df34d23a61f480052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace040ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00152c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10398b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0498b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea00360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00298b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0a98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0102dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0598b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0698b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea08363bd9d3ac01b05edede66fbb9c4f73d99f1481666c51eee8df34d23a61f48019b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0c0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea07f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220076251e6cf88c5cf45d9d64dae3d08156d28e9178a57819fd6991e336c62e38164736f6c634300081c0033
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing bytecode for vulnerabilities and patterns**
[codex:1257358] 
[codex:1257358] I'm preparing to review this large bytecode blob that looks like an ERC20 token with roles and extra features. There is a lot to unpack—selectors for standard functions, possible minting, access control, and revert strings hinting at DeFi logic. I'll try to spot concrete security issues like missing access control or unchecked external calls by parsing function selectors and reverts. Since source is missing, I'll rely on disassembly and pattern recognition, considering tools and scripts to help map line numbers in the bytecode bundle for better referencing.
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "nl -ba BYTECODE_BUNDLE.txt | sed -n '1,120p'" in /tmp/codex-multi-yg56dzmp succeeded in 6ms:
[codex:1257358]      1	Runtime bytecode bundle for best-effort auditing.
[codex:1257358]      2	Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1257358]      3	
[codex:1257358]      4	FILE: runtime_bytecode.hex
[codex:1257358]      5	0x60806040526004361015610011575f80fd5b5f3560e01c80630130c4d21461356457806301ffc9a71461350e57806306fdde0314613451578063095ea7b31461342b5780630f45684a14612725578063106e846b1461340057806310a470ab14612f43578063113ac8f614612f2857806315770f9214612eff57806318160ddd14612ed65780631820cabb14612e9c5780631e8e51da14612e7357806323b872dd14612d34578063248a9ca314612cfd57806327f9237614612ccf57806328f079c214612c9e5780632b3afdb01461279b5780632f2ff15d14612751578063313ce5671461272557806336448777146126fc5780633644e515146126e257806336568abe1461269e57806338898ca21461264a5780633dc69f2c146123d75780633e0dc34e1461239b5780633f668d6f1461234d5780633fc03c261461222857806340c10f1914611f6257806343469f3214611f115780634f1ef28614611d2657806351fe0e1814611cf157806352d1902d14611c8b5780635879445614611c62578063601c186114611b7f57806360b71d4e14611b5657806361b01b5d14611b1a578063641ffaa1146119c75780636780a3111461199657806370a082311461195257806372e30f6a1461186d578063754f56e21461183f578063785ffb37146118055780637ecebe00146117ae5780637fb652651461178557806384b0196e1461163357806388cb0df7146115175780638c66d04f146114c05780638cdc1f24146113b95780638d55de631461132f57806390c83e94146112c557806391d148541461126f57806392c883fb146110e957806395d89b4114610ff357806396c82e5714610fca57806399a22d6814610f995780639bb8111914610f705780639c3701a014610f505780639d3c38c514610ed0578063a217fddf14610eb6578063a9059cbb14610e85578063ad3cb1cc14610e3e578063af8214ef14610e04578063b00eb9fe14610dd2578063b4d1d79514610d98578063b6192d0b14610c09578063b81d85f014610b60578063c0dca06e146109d3578063c646b16614610931578063ca981909146108f7578063cdfed0ab146108bb578063d505accf14610765578063d547741f14610714578063dd62ed3e1461069b578063e065608b146104e7578063e1a45218146104cb578063e465eb9e146104a2578063e46e705814610473578063e5b15b52146103e8578063fc0c546a146103b65763feb56b1514610389575f80fd5b346103b2575f3660031901126103b25760205f516020615cdd5f395f51905f5254604051908152f35b5f80fd5b346103b2575f3660031901126103b25760206001600160a01b035f516020615d1d5f395f51905f525416604051908152f35b346103b25761046f61041361040e6103ff36614112565b906104086143b1565b506149bd565b614435565b6040519182918291909160e080610100830194805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015201511515910152565b0390f35b346103b2575f3660031901126103b257602060ff5f516020615afd5f395f51905f525460081c16604051908152f35b346103b2575f3660031901126103b25760205f516020615b3d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760206040516127108152f35b346103b25760a03660031901126103b257610500613fea565b602435604435916064358015158091036103b257608435918215158093036103b25761052a614921565b612710841161065857612710851161061757907fdef0a5f359f70f4feaf27bbd47c7e476348ea79108e46990d5b73efbc885f0379460a094939215159360ff195f516020615c9d5f395f51905f52541660ff8616175f516020615c9d5f395f51905f5255807f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0955815f516020615c1d5f395f51905f52555f516020615c9d5f395f51905f525462ff00008560101b169061ff008560081b169062ffff00191617175f516020615c9d5f395f51905f52556040519485526020850152604084015260608301526080820152a1005b6040516338d06e1d60e01b815260606004820152600960648201526806c7044656c746142560bc1b608482015260248101869052612710604482015260a490fd5b6040516338d06e1d60e01b815260606004820152600b60648201526a07377617044656c746142560ac1b608482015260248101859052612710604482015260a490fd5b346103b25760403660031901126103b2576106b4613fa8565b6001600160a01b036106fe6106c7613fbe565b926001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b91165f52602052602060405f2054604051908152f35b346103b25760403660031901126103b257610763600435610733613fbe565b9061075e610759825f525f516020615c5d5f395f51905f52602052600160405f20015490565b614970565b61507a565b005b346103b25760e03660031901126103b25761077e613fa8565b610786613fbe565b604435906064359260843560ff811681036103b2578442116108a85761087e6108756001600160a01b039283851697885f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528b6040840152878a1660608401528a608084015260a083015260c082015260c0815261084360e08261408d565b51902061084e6157f6565b906040519161190160f01b83526002830152602282015260c43591604260a435922061585d565b909291926158df565b16848103610891575061076393506156b8565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0954604051908152f35b346103b2575f3660031901126103b25760206040517f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e21028152f35b346103b2577f5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac246109ce610963366140f8565b61096e939193614921565b8061097985856149bd565b6109a18261099c60025f516020615b9d5f395f51905f52549401938454906145d3565b6145c6565b5f516020615b9d5f395f51905f525555604051938493846040919493926060820195825260208201520152565b0390a1005b346103b25760206109e336613ff9565b6109f29592919594939461487d565b6109fa6148b2565b5f90610afa575b610a195f516020615cdd5f395f51905f5254836145e0565b600190468503610ae9575b81610ac0575b5015610aad57507fcf0b8bea497be617351b2c1a4243bd9e92167fdf778a43ebb66fb37160594a0f9394610a8f9160019660405195869586916080936001600160a01b0391979695929760a08501988552602085015216604083015260608201520152565b0390a15b5f5f516020615cfd5f395f51905f525d6040519015158152f35b945050505050610abb61545c565b610a93565b610ae39150866001600160a01b035f516020615d1d5f395f51905f5254166153d7565b88610a2a565b9050610af48161523c565b90610a24565b85151580610b4e575b610b27575b6005610b1485856149bd565b01610b208382546145d3565b9055610a01565b610b48610b425f516020615cdd5f395f51905f5254886145e0565b86615531565b50610b08565b506001600160a01b0385161515610b03565b346103b25760a03660031901126103b257610b79613fd4565b60843590610b8561487d565b610b8d6148b2565b81151580610bf7575b610bcd575b6005610bab6024356004356149bd565b01610bb960643582546145d3565b90555f5f516020615cfd5f395f51905f525d005b610be9610bef925f516020615cdd5f395f51905f5254906145e0565b90615531565b508080610b9b565b506001600160a01b0381161515610b96565b346103b257610c4360c0610c2d610c1f3661417a565b959261040894929194614494565b935f516020615cdd5f395f51905f5254906145f3565b927f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b549060ff5f516020615afd5f395f51905f525416610c81614a5f565b5f516020615a7d5f395f51905f5254905f516020615cbd5f395f51905f52549260405195610cae87614038565b308752602087015260408601526060850152608084015260a08301526001600160a01b035f516020615bbd5f395f51905f52541691610d036040519687958694859463143273dd60e21b865260048601614514565b03915afa8015610d8d5761046f915f91610d5e575b506040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b610d80915060c03d60c011610d86575b610d78818361408d565b8101906144c4565b82610d18565b503d610d6e565b6040513d5f823e3d90fd5b346103b2575f3660031901126103b25760206040517f0000000000000000000000000000000000000000000000000000000000001c208152f35b346103b2575f3660031901126103b25760206001600160a01b035f516020615bbd5f395f51905f525416604051908152f35b346103b2575f3660031901126103b25760206040517f000000000000000000000000000000000000000000000000000000174876e8008152f35b346103b2575f3660031901126103b25761046f604051610e5f60408261408d565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613f84565b346103b25760403660031901126103b257610eab610ea1613fa8565b6024359033614de4565b602060405160018152f35b346103b2575f3660031901126103b25760206040515f8152f35b346103b25760203660031901126103b2577fc0aea4cb7421bc8d3cf83582abe451bd1705682eb83b02b88889940492aef5ca6020610f0c613fea565b610f14614921565b5f516020615d1d5f395f51905f52805460ff60a01b191691151560a090811b60ff60a01b169290921790819055604051911c60ff1615158152a1005b346103b2575f3660031901126103b257610f68614921565b6107636154c4565b346103b2575f3660031901126103b25760205f516020615cbd5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f525460081c166040519015158152f35b346103b2575f3660031901126103b25760205f516020615b9d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b2576040515f5f516020615b1d5f395f51905f525461101f816141fd565b80845290600181169081156110c5575060011461105b575b61046f836110478185038261408d565b604051918291602083526020830190613f84565b5f516020615b1d5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b8082106110ab57509091508101602001611047611037565b919260018160209254838588010152019101909291611093565b60ff191660208086019190915291151560051b840190910191506110479050611037565b346103b2576101403660031901126103b257600435611106613fd4565b90611110366140af565b91610124359081151582036103b25760409361112a61487d565b6111326148b2565b5f92611240575b80519261116461114f60808401958651906145c6565b5f516020615cdd5f395f51905f5254906145e0565b946001904603611231575b80611209575b156111f857507f82f23eb0ffa46ea98b1a7134447f74561cec3e194d0f1d06ffc35ce71ae80336916080916111b060019582519051906145c6565b9060606020820151910151916001600160a01b038951941684526020840152878301526060820152a15b5f5f516020615cfd5f395f51905f525d825191825215156020820152f35b9250505061120461545c565b6111da565b5061122c85846001600160a01b035f516020615d1d5f395f51905f5254166153d7565b611175565b5061123b8561523c565b61116f565b61124981615117565b60a0810151611268600561125f602435886149bd565b019182546145d3565b9055611139565b346103b25760403660031901126103b257611288613fbe565b6004355f525f516020615c5d5f395f51905f526020526001600160a01b0360405f2091165f52602052602060ff60405f2054166040519015158152f35b346103b25760203660031901126103b2576004356112e1614921565b7f0320c21101a3b92f1a57a1daef0827408be5f6cb7bb44fb426cc4152663e611d6020604051838152a17f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d55005b346103b25760203660031901126103b2575f516020615b5d5f395f51905f525480156113855761137d61114f6020926113785f516020615a7d5f395f51905f52546004356145e0565b6145f3565b604051908152f35b604051634612b38f60e01b815260206004820152600b60248201526a746f74616c537570706c7960a81b6044820152606490fd5b346103b25760203660031901126103b2576113d2613fa8565b6113da614921565b6001600160a01b03811615611495575f516020615d5d5f395f51905f52549081156114865761141b610763925f516020615cdd5f395f51905f5254906145e0565b5f5f516020615d5d5f395f51905f5255604080516001600160a01b0384168152602081018390529192917f0a7a10dab02ee70c589a87e2b0d57484d85d029e381c3ca52387e25486a4c5389190a16001600160a01b035f516020615d1d5f395f51905f525416615202565b636e63c7c360e01b5f5260045ffd5b604051636bc37c5f60e11b8152602060048201526002602482015261746f60f01b6044820152606490fd5b346103b25760203660031901126103b2576001600160a01b036114e1613fa8565b6114e9614921565b166001600160a01b03195f516020615bbd5f395f51905f525416175f516020615bbd5f395f51905f52555f80f35b346103b25761152536614112565b906040519061153382614071565b5f825260208201905f825261154661487d565b61154e6148b2565b61155884826149bd565b90600160ff60078401541615150361161c57506040935f7f0aeafd14584f8a6bfe6b3846da893395e218188cb3ba5586a705848f7fbcb1ad926115c66115b15f516020615a7d5f395f51905f52546002840154906145e0565b5f516020615b9d5f395f51905f5254906145f3565b855260068101906115e16005835492838a52019182546145c6565b90555583518351865192835260208301919091526040820152606090a15f5f516020615cfd5f395f51905f525d825191518252516020820152f35b8490631c6768ad60e21b5f5260045260245260445ffd5b346103b2575f3660031901126103b2577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10054158061175c575b15611717576116bb61167c614235565b611684614304565b60206116c960405192611697838561408d565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190613f84565b908582036040870152613f84565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061170057505050500390f35b8351855286955093810193928101926001016116f1565b60405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101541561166c565b346103b25760203660031901126103b2576107636117a1613fea565b6117a96148b2565b614b06565b346103b25760203660031901126103b2576001600160a01b036117cf613fa8565b165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b346103b2575f3660031901126103b25760206040517f0000000000000000000000000000000000000000000000000000000ba43b74008152f35b346103b2575f3660031901126103b257602060ff5f516020615bfd5f395f51905f5254166040519015158152f35b346103b25760803660031901126103b25760043560243560403660431901126103b2577fdbbc76676cb73b8d1c33378e0cdc88f364e4203cfa5b1e4c7d15b66b5cb97f0c916119356040516118c181614071565b6044358152602081019060643582526118d861487d565b6118e06148b2565b60046118ec86866149bd565b600381016118fd81548551906145c6565b9055019182549051928380920361194a575b505051604051948594859094939260609260808301968352602083015260408201520152565b0390a15f5f516020615cfd5f395f51905f525d005b55818761190f565b346103b25760203660031901126103b2576001600160a01b03611973613fa8565b165f525f516020615abd5f395f51905f52602052602060405f2054604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615d1d5f395f51905f525460a01c166040519015158152f35b346103b2576119d53661417a565b6119e093919361487d565b6119e86148b2565b6001600160a01b03841615611aeb578381611a60611a2a611935947f5f8ecf683e1923224ca1e9b396be6a7a13e480a011e7645d641e7a7d3a2d0f0398614eb5565b5f516020615c9d5f395f51905f525460ff8116158015611aaa575b611a95575b505f516020615cdd5f395f51905f5254906145e0565b9160405195869586916080936001600160a01b0391979695929760a08501988552602085015216604083015260608201520152565b60ff611aa49160101c16614b06565b88611a4a565b505f516020615c7d5f395f51905f5254612710611ae45f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b0410611a45565b604051636bc37c5f60e11b8152602060048083019190915260248201526366726f6d60e01b6044820152606490fd5b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d54604051908152f35b346103b2575f3660031901126103b25760205f516020615d5d5f395f51905f5254604051908152f35b346103b2576040611b8f366140f8565b611b9761487d565b611b9f6148b2565b6003611bab83856149bd565b01918254938483115f14611c2a578394505f611beb7f9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a9019894955480966145d3565b9495555b855190815260208101919091526040810184905260608101839052608090a15f5f516020615cfd5f395f51905f525d82519182526020820152f35b92611c58837f9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a901989493966145d3565b9055925f92611bef565b346103b2575f3660031901126103b25760205f516020615d3d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b2576001600160a01b037f00000000000000000000000009019548ef289cf2694530b7a22420ad9f891582163003611ce25760206040515f516020615bdd5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b346103b25760203660031901126103b257602061137d611d215f516020615cdd5f395f51905f52546004356145f3565b61519a565b60403660031901126103b257611d3a613fa8565b60243567ffffffffffffffff81116103b257366023820112156103b257611d6b903690602481600401359101614144565b6001600160a01b037f00000000000000000000000009019548ef289cf2694530b7a22420ad9f89158216803014908115611eef575b50611ce257611dad614921565b6040516352d1902d60e01b81526001600160a01b0383169290602081600481875afa5f9181611ebb575b50611def5783634c9c8ce360e01b5f5260045260245ffd5b805f516020615bdd5f395f51905f52859203611ea95750813b15611e9757806001600160a01b03195f516020615bdd5f395f51905f525416175f516020615bdd5f395f51905f52557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115611e7f575f8083602061076395519101845af4611e796153a8565b91615a02565b505034611e8857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611ee7575b81611ed76020938361408d565b810103126103b257519085611dd7565b3d9150611eca565b90506001600160a01b035f516020615bdd5f395f51905f525416141583611da0565b346103b257611f1f36614112565b90611f28614921565b6007611f3483836149bd565b019182549160ff8316611f4d5760ff1983166001178455005b634e06b75f60e11b5f5260045260245260445ffd5b346103b25760403660031901126103b257611f7b613fa8565b602435611f8661487d565b611f8e6148b2565b611fb98161099c5f516020615a7d5f395f51905f52545f516020615cdd5f395f51905f5254906145e0565b7f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d548082116121e35750505f516020615b9d5f395f51905f5254156121af575f516020615cdd5f395f51905f5254612010916145f3565b612028815f516020615c7d5f395f51905f52546145c6565b5f516020615c7d5f395f51905f525580915f516020615b5d5f395f51905f525480612183575b50612067825f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f52556001600160a01b038116156121705782816120b46020957f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f9461574c565b6120de84604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a15f516020615c9d5f395f51905f525460ff811615801561212f575b61211a575b505f5f516020615cfd5f395f51905f525d604051908152f35b60ff6121299160101c16614b06565b82612101565b505f516020615c7d5f395f51905f52546127106121695f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b04106120fc565b63ec442f0560e01b5f525f60045260245ffd5b6121a891935061219390836145e0565b5f516020615a7d5f395f51905f5254906145f3565b918361204e565b604051634612b38f60e01b815260206004820152600b60248201526a1d1bdd185b15d95a59da1d60aa1b6044820152606490fd5b60a49250604051916338d06e1d60e01b835260606004840152601060648401526f6d6178546f74616c4465706f7369747360801b608484015260248301526044820152fd5b346103b25760603660031901126103b257612241613fa8565b60243561224c613fd4565b61225461487d565b61225c6148b2565b816001600160a01b0384168015611aeb576001600160a01b037f285a08d85aaeb56c8b9d22b6877dffaed0cb5d07c1c14494aff61d9524746a12936080936020975f516020615c7d5f395f51905f5254976122b68961519a565b809111612343575b506122cc826122d392614eb5565b80986145d3565b5f516020615c7d5f395f51905f52556123146122fd5f516020615cdd5f395f51905f5254896145e0565b83855f516020615d1d5f395f51905f525416615202565b60405193845287840152856040840152166060820152a15f5f516020615cfd5f395f51905f525d604051908152f35b91506122cc6122be565b346103b25761235b36614112565b905f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20905f52602052602060405f2054604051908152f35b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b54604051908152f35b346103b2576123e5366140f8565b916123ee614921565b5f516020615c3d5f395f51905f525480606411156125ed575f5b81811061259c5750612428845f516020615b9d5f395f51905f52546145c6565b5f516020615b9d5f395f51905f5255815f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20835f5260205260405f20556040519261247a84614054565b8184526020840190838252604085019481865260608101905f825260808101915f835260a082015f815260c08301905f825260e08401945f86525f516020615c3d5f395f51905f525468010000000000000000811015612588578060016124f092015f516020615c3d5f395f51905f52556143ed565b949094612575577f5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac249b6109ce99600797518755516001870155516002860155516003850155516004840155516005830155516006820155019051151560ff80198354169116179055604051938493846040919493926060820195825260208201520152565b634e487b7160e01b5f525f60045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b6125ae6125a8826143ed565b50614435565b848482511491826125df575b50506125c857600101612408565b505063b020eb6360e01b5f5260045260245260445ffd5b6020015114905084876125ba565b600181018091116126365760a490604051906338d06e1d60e01b82526060600483015260086064830152671419595c941bdbdb60c21b6084830152602482015260646044820152fd5b634e487b7160e01b5f52601160045260245ffd5b346103b2576101203660031901126103b257612664613fd4565b5060a0612670366140af565b61267861487d565b6126806148b2565b61268981615117565b0151610bb9600561125f6024356004356149bd565b346103b25760403660031901126103b2576126b7613fbe565b336001600160a01b038216036126d3576107639060043561507a565b63334bd91960e11b5f5260045ffd5b346103b2575f3660031901126103b257602061137d6157f6565b346103b2575f3660031901126103b25760205f516020615c1d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615afd5f395f51905f525416604051908152f35b346103b25760403660031901126103b257610763600435612770613fbe565b90612796610759825f525f516020615c5d5f395f51905f52602052600160405f20015490565b6147d6565b346103b25760a03660031901126103b2576024356004356127ba613fd4565b916064359160843567ffffffffffffffff81116103b257366023820112156103b25780600401359067ffffffffffffffff82116103b25736602483830101116103b25761280561487d565b61280d6148b2565b6001600160a01b038616958615611aeb57600160ff600761282e88886149bd565b015416151503612c86578561284291614eb5565b9460ff5f516020615c9d5f395f51905f525416158015612c45575b6128ea575b918060247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c96959360e09560209a60405198899788528c8801526040870152606086015288608086015260c060a08601528260c086015201848401375f828201840152601f01601f19168101030190a15f5f516020615cfd5f395f51905f525d604051908152f35b5f516020615c7d5f395f51905f5254965f88151580612c2e575b612911575b509650612862565b5f516020615c3d5f395f51905f52549061292a82614629565b5f5f5f516020615a7d5f395f51905f52545f516020615b9d5f395f51905f5254915b868110612bbd575050505f9b81155f14612a5a575050508080612a43575b6129d5575b50509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c5b5f516020615c7d5f395f51905f52546145d3565b5f516020615c7d5f395f51905f5255935093955093959650612909565b8181101561296f576129e6816143ed565b50995f516020615c7d5f395f51905f525460028c0154612a05916145e0565b5f516020615b9d5f395f51905f5254612a1d916145f3565b9081612a28916145c6565b9a60060190815490612a39916145c6565b90556001016129d5565b505f516020615c7d5f395f51905f5254151561296a565b9080929391105f14612b2d575b838110612aa957505050509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c6129a4565b80612ab660019285614af2565b51612ac2575b01612a67565b6006612b15612ad0836143ed565b509e612af986611378612ae3878b614af2565b515f516020615c7d5f395f51905f5254906145e0565b612b038589614af2565b52612b0e8488614af2565b51906145c6565b9d01612b268154612b0e8488614af2565b9055612abc565b50505f5b828110612b72575050509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c6129a4565b80612b7f60019284614af2565b51612b8b575b01612b31565b6006612ba5612b99836143ed565b509d612b0e8487614af2565b9c01612bb68154612b0e8487614af2565b9055612b85565b612bc6816143ed565b50612bed612bdc856113786002850154876145e0565b9160066005820154910154906145c6565b90818111612c00575b505060010161294c565b94612c11612c2692600194976145d3565b612c1b8789614af2565b52612b0e8688614af2565b93905f612bf6565b505f516020615b9d5f395f51905f52541515612904565b505f516020615c7d5f395f51905f5254612710612c7f5f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b041061285d565b505050631c6768ad60e21b5f5260045260245260445ffd5b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f525460101c166040519015158152f35b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f5254166040519015158152f35b346103b25760203660031901126103b257602061137d6004355f525f516020615c5d5f395f51905f52602052600160405f20015490565b346103b25760603660031901126103b257612d4d613fa8565b612d55613fbe565b60443590612d93836001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b6001600160a01b0333165f5260205260405f2054925f198410612dbb575b610eab9350614de4565b828410612e58576001600160a01b03811615612e45573315612e3257610eab93612e15826001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b6001600160a01b0333165f526020528360405f2091039055612db1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8284637dc7a0d960e11b5f523360045260245260445260645ffd5b346103b2575f3660031901126103b25760205f516020615c7d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760206040517f00000000000000000000000000000000000000000000000000000000000054608152f35b346103b2575f3660031901126103b25760205f516020615b5d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760205f516020615a7d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060405160648152f35b346103b257612f5136613ff9565b93929091612f5d614494565b50612f6661487d565b612f6e6148b2565b60ff5f516020615d1d5f395f51905f525460a01c166133f1576001600160a01b038216918215611aeb57612fa285886149bd565b93600160ff6007870154161515036133da575f516020615cdd5f395f51905f525496612fd9612fd189866145f3565b9889936145f3565b9360c07f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b549460ff5f516020615afd5f395f51905f5254169561301a614a5f565b5f516020615a7d5f395f51905f5254905f516020615cbd5f395f51905f5254986040519361304785614038565b30855260208501526040840152606083015260808201528660a0820152896001600160a01b035f516020615bbd5f395f51905f5254169161309e6040519e8f958694859463143273dd60e21b865260048601614514565b03915afa988915610d8d575f996133b9575b5088511561334f575060808801926130c98451846145c6565b94806130db60608c01978851906145d3565b1061331d57508351806132fe575b505060408801956131066130fe8851856145d3565b8551906145c6565b600360a08b019282845201918254918083106132e857509261010098959261315961046f9d9996937f9c7519dcf6aef530f7209189ddd559038a69f8bb53f818b7fa76c67379aa6b2c9c999651906145d3565b9055156132ac5761317b613183915f516020615c7d5f395f51905f52546145c6565b8251906145c6565b5f516020615c7d5f395f51905f52555b5f516020615c9d5f395f51905f525460ff8116158015613257575b613242575b508851905191519260208a0151945195604051978852602088015260408701526060860152608085015260a084015260c083015260e0820152a15f5f516020615cfd5f395f51905f525d6040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b60ff6132519160081c16614b06565b8a6131b3565b505f516020615c7d5f395f51905f52546127106132a45f516020615a7d5f395f51905f52547f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0954906145e0565b0411156131ae565b508051806132bb575b50613193565b6132d3905f516020615c7d5f395f51905f52546145c6565b5f516020615c7d5f395f51905f52558a6132b5565b8263c8a198d960e01b5f5260045260245260445ffd5b613307916145d3565b5f516020615cbd5f395f51905f525589806130e9565b8451865160405163463fc77f60e11b815260048101879052602481019290925260448201526064810191909152608490fd5b61337189604061336860608301516020840151906145c6565b910151906145c6565b90600182018092116126365760a49160405191631606f63960e21b8352606060048401526008606484015267185b5bdd5b9d131160c21b608484015260248301526044820152fd5b6133d391995060c03d60c011610d8657610d78818361408d565b978a6130b0565b8588631c6768ad60e21b5f5260045260245260445ffd5b6331ad2c0f60e11b5f5260045ffd5b346103b25760203660031901126103b2576134196143b1565b5061046f6104136125a86004356143ed565b346103b25760403660031901126103b257610eab613447613fa8565b60243590336156b8565b346103b2575f3660031901126103b2576040515f5f516020615a9d5f395f51905f525461347d816141fd565b80845290600181169081156110c557506001146134a45761046f836110478185038261408d565b5f516020615a9d5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106134f457509091508101602001611047611037565b9192600181602092548385880101520191019092916134dc565b346103b25760203660031901126103b25760043563ffffffff60e01b81168091036103b257602090637965db0b60e01b8114908115613553575b506040519015158152f35b6301ffc9a760e01b14905082613548565b346103b25760203660031901126103b25760043567ffffffffffffffff81116103b257806004019061014060031982360301126103b2575f516020615d7d5f395f51905f52549160ff8360401c16159267ffffffffffffffff811680159081613f7c575b6001149081613f72575b159081613f69575b50613f5a5767ffffffffffffffff1981166001175f516020615d7d5f395f51905f525583613f2e575b5061363661361182806141a8565b61362e61362460248795949501866141a8565b9490923691614144565b923691614144565b9061363f61568d565b61364761568d565b80519067ffffffffffffffff82116125885781906136725f516020615a9d5f395f51905f52546141fd565b601f8111613eb4575b50602090601f8311600114613e36575f92613e2b575b50508160011b915f199060031b1c1916175f516020615a9d5f395f51905f52555b80519067ffffffffffffffff8211612588576136db5f516020615b1d5f395f51905f52546141fd565b601f8111613dbc575b50602090601f8311600114613d38579180613733949261372c945f92613d2d575b50508160011b915f199060031b1c1916175f516020615b1d5f395f51905f52555b806141a8565b3691614144565b9161373c61568d565b60409182519361374c848661408d565b60018552603160f81b602086015261376261568d565b80519067ffffffffffffffff821161258857819061378d5f516020615add5f395f51905f52546141fd565b601f8111613cb3575b50602090601f8311600114613c35575f92613c2a575b50508160011b915f199060031b1c1916175f516020615add5f395f51905f52555b835167ffffffffffffffff8111612588576137f55f516020615b7d5f395f51905f52546141fd565b601f8111613bbb575b50602094601f8211600114613b40579481929394955f92613b35575b50508160011b915f199060031b1c1916175f516020615b7d5f395f51905f52555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100555f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015561388961568d565b61389161568d565b6138fb6138a0608483016141db565b60ff806138af60a486016141db565b926138b861568d565b6138c061568d565b16918261ff005f516020615afd5f395f51905f52549260081b169161ffff19161717805f516020615afd5f395f51905f525560081c166145d3565b604d811161263657600a0a5f516020615cdd5f395f51905f525561391d61568d565b61392561568d565b61394f7f0000000000000000000000000000000000000000000000000000000000001c20436145c6565b5f516020615d3d5f395f51905f525561397261396d60e483016141e9565b61465b565b5061398861398361010483016141e9565b61470a565b5060448101357f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b55606481016001600160a01b036139c5826141e9565b1615613b085760c48201906001600160a01b036139e1836141e9565b1615613ad357613a2961012493926001600160a01b03613a0181946141e9565b1683195f516020615d1d5f395f51905f525416175f516020615d1d5f395f51905f52556141e9565b166001600160a01b03195f516020615bbd5f395f51905f525416175f516020615bbd5f395f51905f525501357f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d55613a7d57005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29168ff0000000000000000195f516020615d7d5f395f51905f5254165f516020615d7d5f395f51905f52555160018152a1005b8451636bc37c5f60e11b815260206004820152600d60248201526c3332b2a1b0b631bab630ba37b960991b6044820152606490fd5b8351636bc37c5f60e11b81526020600482015260056024820152643a37b5b2b760d91b6044820152606490fd5b01519050858061381a565b601f198216955f516020615b7d5f395f51905f525f52805f20915f5b888110613ba357508360019596979810613b8b575b505050811b015f516020615b7d5f395f51905f525561383b565b01515f1960f88460031b161c19169055858080613b71565b91926020600181928685015181550194019201613b5c565b5f516020615b7d5f395f51905f525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c81019160208410613c20575b601f0160051c01905b818110613c1557506137fe565b5f8155600101613c08565b9091508190613bff565b0151905086806137ac565b5f516020615add5f395f51905f525f9081528281209350601f198516905b818110613c9b5750908460019594939210613c83575b505050811b015f516020615add5f395f51905f52556137cd565b01515f1960f88460031b161c19169055868080613c69565b92936020600181928786015181550195019301613c53565b5f516020615add5f395f51905f525f529091507f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f840160051c81019160208510613d23575b90601f859493920160051c01905b818110613d155750613796565b5f8155849350600101613d08565b9091508190613cfa565b015190508780613705565b90601f198316915f516020615b1d5f395f51905f525f52815f20925f5b818110613da4575092600192859261372c96613733989610613d8c575b505050811b015f516020615b1d5f395f51905f5255613726565b01515f1960f88460031b161c19169055878080613d72565b92936020600181928786015181550195019301613d55565b5f516020615b1d5f395f51905f525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f840160051c81019160208510613e21575b601f0160051c01905b818110613e1657506136e4565b5f8155600101613e09565b9091508190613e00565b015190508680613691565b5f516020615a9d5f395f51905f525f9081528281209350601f198516905b818110613e9c5750908460019594939210613e84575b505050811b015f516020615a9d5f395f51905f52556136b2565b01515f1960f88460031b161c19169055868080613e6a565b92936020600181928786015181550195019301613e54565b5f516020615a9d5f395f51905f525f529091507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f840160051c81019160208510613f24575b90601f859493920160051c01905b818110613f16575061367b565b5f8155849350600101613f09565b9091508190613efb565b68ffffffffffffffffff191668010000000000000001175f516020615d7d5f395f51905f525583613603565b63f92ee8a960e01b5f5260045ffd5b905015856135da565b303b1591506135d2565b8591506135c8565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036103b257565b602435906001600160a01b03821682036103b257565b604435906001600160a01b03821682036103b257565b6004359081151582036103b257565b60c09060031901126103b25760043590602435906044356001600160a01b03811681036103b25790606435906084359060a43580151581036103b25790565b60c0810190811067ffffffffffffffff82111761258857604052565b610100810190811067ffffffffffffffff82111761258857604052565b6040810190811067ffffffffffffffff82111761258857604052565b90601f8019910116810190811067ffffffffffffffff82111761258857604052565b60c09060631901126103b257604051906140c882614038565b6064358252608435602083015260a435604083015260c435606083015260e43560808301526101043560a0830152565b60609060031901126103b257600435906024359060443590565b60409060031901126103b2576004359060243590565b67ffffffffffffffff811161258857601f01601f191660200190565b92919261415082614128565b9161415e604051938461408d565b8294818452818301116103b2578281602093845f960137010152565b60809060031901126103b25760043590602435906044356001600160a01b03811681036103b2579060643590565b903590601e19813603018212156103b2570180359067ffffffffffffffff82116103b2576020019181360383136103b257565b3560ff811681036103b25790565b356001600160a01b03811681036103b25790565b90600182811c9216801561422b575b602083101461421757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161420c565b604051905f825f516020615add5f395f51905f525491614254836141fd565b80835292600181169081156142e5575060011461427a575b6142789250038361408d565b565b505f516020615add5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142c95750509060206142789282010161426c565b60209193508060019154838589010152019101909184926142b1565b6020925061427894915060ff191682840152151560051b82010161426c565b604051905f825f516020615b7d5f395f51905f525491614323836141fd565b80835292600181169081156142e55750600114614346576142789250038361408d565b505f516020615b7d5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b8183106143955750509060206142789282010161426c565b602091935080600191548385890101520191019091849261437d565b604051906143be82614054565b5f60e0838281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b5f516020615c3d5f395f51905f5254811015614421575f516020615c3d5f395f51905f525f5260205f209060031b01905f90565b634e487b7160e01b5f52603260045260245ffd5b9060405161444281614054565b60e060ff600783958054855260018101546020860152600281015460408601526003810154606086015260048101546080860152600581015460a0860152600681015460c08601520154161515910152565b604051906144a182614038565b5f60a0838281528260208201528260408201528260608201528260808201520152565b908160c09103126103b25760a0604051916144de83614038565b8051835260208101516020840152604081015160408401526060810151606084015260808101516080840152015160a082015290565b909493926001600160a01b039060ff60076101e09560a061020087019a868151168852602081015160208901528460408201511660408901526060810151606089015260808101516080890152015160a0870152805460c0870152600181015460e08701526002810154610100870152600381015461012087015260048101546101408701526005810154610160870152600681015461018087015201541615156101a0840152166101c08201520152565b9190820180921161263657565b9190820391821161263657565b8181029291811591840414171561263657565b81156145fd570490565b634e487b7160e01b5f52601260045260245ffd5b67ffffffffffffffff81116125885760051b60200190565b9061463382614611565b614640604051918261408d565b8281528092614651601f1991614611565b0190602036910137565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16614705576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f90565b6001600160a01b0381165f9081527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538602052604090205460ff16614705576001600160a01b03165f8181527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c49890853860205260408120805460ff191660011790553391907f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e2102907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260ff60405f205416155f1461487757805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260405f20600160ff198254161790556001600160a01b03339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b50505f90565b5f516020615cfd5f395f51905f525c6148a35760015f516020615cfd5f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b335f9081527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538602052604090205460ff16156148ea57565b63e2517d3f60e01b5f52336004527f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e210260245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561495957565b63e2517d3f60e01b5f52336004525f60245260445ffd5b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0333165f5260205260ff60405f205416156149a75750565b63e2517d3f60e01b5f523360045260245260445ffd5b91905f516020615c3d5f395f51905f525415614a5057825f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20815f52602052614a1160405f20546143ed565b509283828282541491821592614a41575b5050614a2c575050565b6310de8c5160e31b5f5260045260245260445ffd5b6001015414159050825f614a22565b634d6af2e760e11b5f5260045ffd5b602460206001600160a01b035f516020615d1d5f395f51905f525416604051928380926370a0823160e01b82523060048301525afa8015610d8d575f90614abe575b614abb91505f516020615cdd5f395f51905f5254906145f3565b90565b506020813d602011614aea575b81614ad86020938361408d565b810103126103b257614abb9051614aa1565b3d9150614acb565b80518210156144215760209160051b010190565b5f516020615c7d5f395f51905f52549081151580614dcd575b614b27575050565b5f516020615c3d5f395f51905f525490614b4082614629565b5f5f5f516020615a7d5f395f51905f52545f516020615b9d5f395f51905f5254915b868110614d82575050505f9481155f14614c235750505080614c0c575b614bae575b50614b9d905f516020615c7d5f395f51905f52546145d3565b5f516020615c7d5f395f51905f5255565b5f5b818110614bbd5750614b84565b80614bc96001926143ed565b5093614c046006614bfa614bf36115b15f516020615c7d5f395f51905f525460028b0154906145e0565b80946145c6565b96019182546145c6565b905501614bb0565b505f516020615c7d5f395f51905f52541515614b7f565b9080929391105f14614c9857505f5b838110614c465750505050614b9d906129a4565b80614c5360019285614af2565b51614c5f575b01614c32565b6006614c80614c6d836143ed565b5097612af986611378612ae3878b614af2565b9601614c918154612b0e8488614af2565b9055614c59565b9294939215614d1d57614cb9905f516020615c7d5f395f51905f52546145d3565b5f5b858110614cd057505050614b9d9192506129a4565b80614cdc6001926143ed565b5094614d156006614d0b614bf3614cf3868a614af2565b51614d056115b160028d01548b6145e0565b906145c6565b97019182546145c6565b905501614cbb565b505f939192935b828110614d3757505050614b9d906129a4565b80614d4460019284614af2565b51614d50575b01614d24565b6006614d6a614d5e836143ed565b5096612b0e8487614af2565b9501614d7b8154612b0e8487614af2565b9055614d4a565b614d8b816143ed565b50614da1612bdc856113786002850154876145e0565b90818111614db4575b5050600101614b62565b94612c11614dc592600194976145d3565b93905f614daa565b505f516020615b9d5f395f51905f52541515614b1f565b6001600160a01b0316908115614ea2576001600160a01b031691821561217057815f525f516020615abd5f395f51905f5260205260405f2054818110614e8957817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f516020615abd5f395f51905f5284520360405f2055845f525f516020615abd5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b905f516020615b5d5f395f51905f5254918215611385576001600160a01b038116805f525f516020615abd5f395f51905f5260205260405f20548381106150285750614f1e614f175f516020615a7d5f395f51905f52549561137887876145e0565b80956145d3565b5f516020615a7d5f395f51905f52558015614ea257805f525f516020615abd5f395f51905f5260205260405f205483811061500e5781845f927f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a96959484525f516020615abd5f395f51905f52602052036040832055835f516020615b5d5f395f51905f5254035f516020615b5d5f395f51905f52557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051868152a361500884604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a190565b915063391434e360e21b5f5260045260245260445260645ffd5b8360a491604051916338d06e1d60e01b835260606004840152601560648401527f506f6f6c2e5f6275726e4c502e616d6f756e744c500000000000000000000000608484015260248301526044820152fd5b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260ff60405f2054165f1461487757805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260405f2060ff1981541690556001600160a01b03339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b60206151899161513960408201515f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f525561516460608201515f516020615cbd5f395f51905f52546145c6565b5f516020615cbd5f395f51905f525501515f516020615d5d5f395f51905f52546145c6565b5f516020615d5d5f395f51905f5255565b5f516020615a7d5f395f51905f525480156151cb57611378614abb925f516020615b5d5f395f51905f5254906145e0565b604051634612b38f60e01b815260206004820152600e60248201526d746f74616c4c697175696469747960901b6044820152606490fd5b61520d8383836153d7565b1561521757505050565b906001600160a01b0380926387abb3dd60e01b5f52166004521660245260445260645ffd5b5f516020615d3d5f395f51905f5254431161539b575b61526a815f516020615b3d5f395f51905f52546145c6565b7f000000000000000000000000000000000000000000000000000000174876e8001061530b57807f0000000000000000000000000000000000000000000000000000000ba43b7400105f146152f557806152e1915f516020615a5d5f395f51905f52555f516020615b3d5f395f51905f52546145c6565b5f516020615b3d5f395f51905f5255600190565b505f5f516020615a5d5f395f51905f5255600190565b505f5f516020615a5d5f395f51905f52555f516020615bfd5f395f51905f525460ff81161561533957505f90565b60019060ff1916175f516020615bfd5f395f51905f52556153887f00000000000000000000000000000000000000000000000000000000000054605f516020615d3d5f395f51905f52546145c6565b5f516020615d3d5f395f51905f52555f90565b6153a36154c4565b615252565b3d156153d2573d906153b982614128565b916153c7604051938461408d565b82523d5f602084013e565b606090565b60405163a9059cbb60e01b602082019081526001600160a01b039390931660248201526044808201949094529283525f92839290839061541860648261408d565b51925af16154246153a8565b8180615452575b615433575090565b90506020818051810103126103b2576020015180151581036103b25790565b508051151561542b565b5f516020615b3d5f395f51905f52545f516020615a5d5f395f51905f5254808210156154a75750505f5f516020615b3d5f395f51905f52555b5f5f516020615a5d5f395f51905f5255565b6154b0916145d3565b5f516020615b3d5f395f51905f5255615495565b6154ee7f0000000000000000000000000000000000000000000000000000000000001c20436145c6565b5f516020615d3d5f395f51905f52555f5f516020615b3d5f395f51905f525560ff195f516020615bfd5f395f51905f5254165f516020615bfd5f395f51905f5255565b91905f516020615b9d5f395f51905f5254156121af575f516020615cdd5f395f51905f525461555f916145f3565b91825f516020615b5d5f395f51905f525480615678575b5061558f845f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f52556001600160a01b0382161561217057816155d9827f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f9461574c565b61560385604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a15f516020615c9d5f395f51905f525460ff8116158015615637575b6156285750565b60ff6142789160101c16614b06565b505f516020615c7d5f395f51905f52546127106156715f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b0410615621565b615687915061219390856145e0565b5f615576565b60ff5f516020615d7d5f395f51905f525460401c16156156a957565b631afcd79f60e31b5f5260045ffd5b916001600160a01b038316918215612e45576001600160a01b0316928315612e32577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916157386020926001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b855f5282528060405f2055604051908152a3565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206001600160a01b035f93615791865f516020615b5d5f395f51905f52546145c6565b5f516020615b5d5f395f51905f52551693841584146157d457805f516020615b5d5f395f51905f5254035f516020615b5d5f395f51905f52555b604051908152a3565b8484525f516020615abd5f395f51905f528252604084208181540190556157cb565b6157fe615953565b6158066159bd565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261585760c08261408d565b51902090565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116158d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8d575f516001600160a01b038116156158ca57905f905f90565b505f906001905f90565b5050505f9160039190565b600481101561593f57806158f1575050565b600181036159085763f645eedf60e01b5f5260045ffd5b60028103615923575063fce698f760e01b5f5260045260245ffd5b60031461592d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b61595b614235565b805190811561596b576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156159985790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159c5614304565b80519081156159d5576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156159985790565b90615a265750805115615a1757805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580615a53575b615a37575090565b6001600160a01b0390639996b31560e01b5f521660045260245ffd5b50803b15615a2f56fe0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00398b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102363bd9d3ac01b05edede66fbb9c4f73d99f1481666c51eee8df34d23a61f480052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace040ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00152c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10398b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0498b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea00360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00298b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0a98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0102dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0598b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0698b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea08363bd9d3ac01b05edede66fbb9c4f73d99f1481666c51eee8df34d23a61f48019b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0c0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea07f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220076251e6cf88c5cf45d9d64dae3d08156d28e9178a57819fd6991e336c62e38164736f6c634300081c0033
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing large single-line bytecode patterns**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc 'rg -n "AccessControl|Ownable|Unauthorized|only" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-yg56dzmp exited 1 in 7ms:
[codex:1257358] 
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Devising disassembler for upgrade function analysis**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] import re
[codex:1257358] from pathlib import Path
[codex:1257358] code = Path('BYTECODE_BUNDLE.txt').read_text().splitlines()
[codex:1257358] hexline = None
[codex:1257358] for line in code:
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline = line.strip()
[codex:1257358]         break
[codex:1257358] if not hexline:
[codex:1257358]     raise SystemExit('no hex line')
[codex:1257358] hexstr = hexline[2:]
[codex:1257358] # sanity
[codex:1257358] # opcode map
[codex:1257358] opcodes = {
[codex:1257358]     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:1257358]     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:1257358]     0x20:'SHA3',
[codex:1257358]     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:1257358]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358]     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:1257358]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358]     0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT' ,0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:1257358] }
[codex:1257358] 
[codex:1257358] # disassemble
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] bs=bytes.fromhex(hexstr)
[codex:1257358] while idx < len(bs):
[codex:1257358]     op=bs[idx]
[codex:1257358]     name=opcodes.get(op,f'OP_{op:02x}')
[codex:1257358]     idx+=1
[codex:1257358]     if 0x60 <= op <= 0x7f:
[codex:1257358]         n=op-0x5f
[codex:1257358]         data=bs[idx:idx+n]
[codex:1257358]         idx+=n
[codex:1257358]         ops.append((idx-n-1, name, data))
[codex:1257358]     else:
[codex:1257358]         ops.append((idx-1, name, b''))
[codex:1257358] 
[codex:1257358] # build map from offset to index
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358] 
[codex:1257358] # find dispatcher patterns: PUSH4 sel EQ PUSH2 dest JUMPI
[codex:1257358] selectors=[]
[codex:1257358] for i in range(len(ops)-3):
[codex:1257358]     off, name, data = ops[i]
[codex:1257358]     if name=='PUSH4':
[codex:1257358]         sel=data.hex()
[codex:1257358]         # next op maybe EQ
[codex:1257358]         if ops[i+1][1]=='EQ' and ops[i+2][1] in ('PUSH2','PUSH1') and ops[i+3][1]=='JUMPI':
[codex:1257358]             dest=int.from_bytes(ops[i+2][2],'big')
[codex:1257358]             selectors.append((sel,dest,off))
[codex:1257358] 
[codex:1257358] # print some selectors of interest
[codex:1257358] interest = {'4f1ef286','52d1902d','3659cfe6','36568abe','ad3cb1cc','b00eb9fe','b4d1d795','c0dca06e'}
[codex:1257358] print('found selectors:', len(selectors))
[codex:1257358] for sel,dest,off in selectors:
[codex:1257358]     if sel in interest:
[codex:1257358]         print(sel, hex(dest), 'at', hex(off))
[codex:1257358] 
[codex:1257358] # function to print short disasm window
[codex:1257358] 
[codex:1257358] def dump_at(dest, count=80):
[codex:1257358]     idx=offset_to_idx.get(dest)
[codex:1257358]     if idx is None:
[codex:1257358]         print('no dest', dest)
[codex:1257358]         return
[codex:1257358]     for j in range(idx, min(len(ops), idx+count)):
[codex:1257358]         off,name,data=ops[j]
[codex:1257358]         if data:
[codex:1257358]             print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358]         else:
[codex:1257358]             print(f'{off:06x}: {name}')
[codex:1257358] 
[codex:1257358] # dump around upgradeToAndCall if found
[codex:1257358] for sel,dest,off in selectors:
[codex:1257358]     if sel=='4f1ef286':
[codex:1257358]         print('\\nupgradeToAndCall dest', hex(dest))
[codex:1257358]         dump_at(dest, 120)
[codex:1257358]         break
[codex:1257358] 
[codex:1257358] # also dump for proxiableUUID
[codex:1257358] for sel,dest,off in selectors:
[codex:1257358]     if sel=='52d1902d':
[codex:1257358]         print('\\nproxiableUUID dest', hex(dest))
[codex:1257358]         dump_at(dest, 60)
[codex:1257358]         break
[codex:1257358] 
[codex:1257358] # check for DELEGATECALL occurrences
[codex:1257358] print('\\nDELEGATECALL offsets:')
[codex:1257358] for off,name,data in ops:
[codex:1257358]     if name=='DELEGATECALL':
[codex:1257358]         print(hex(off))
[codex:1257358] 
[codex:1257358] # check for SELFDESTRUCT occurrences
[codex:1257358] print('\\nSELFDESTRUCT offsets:')
[codex:1257358] for off,name,data in ops:
[codex:1257358]     if name=='SELFDESTRUCT':
[codex:1257358]         print(hex(off))
[codex:1257358] 
[codex:1257358] # check ORIGIN usage
[codex:1257358] print('\\nORIGIN offsets:')
[codex:1257358] for off,name,data in ops:
[codex:1257358]     if name=='ORIGIN':
[codex:1257358]         print(hex(off))
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 65ms:
[codex:1257358] found selectors: 80
[codex:1257358] 36568abe 0x269e at 0xff
[codex:1257358] 4f1ef286 0x1d26 at 0x157
[codex:1257358] 52d1902d 0x1c8b at 0x16d
[codex:1257358] ad3cb1cc 0xe3e at 0x2ac
[codex:1257358] b00eb9fe 0xdd2 at 0x2c2
[codex:1257358] b4d1d795 0xd98 at 0x2cd
[codex:1257358] c0dca06e 0x9d3 at 0x2ee
[codex:1257358] 
[codex:1257358] upgradeToAndCall dest 0x1d26
[codex:1257358] 001d26: JUMPDEST
[codex:1257358] 001d27: PUSH1 0x40
[codex:1257358] 001d29: CALLDATASIZE
[codex:1257358] 001d2a: PUSH1 0x03
[codex:1257358] 001d2c: NOT
[codex:1257358] 001d2d: ADD
[codex:1257358] 001d2e: SLT
[codex:1257358] 001d2f: PUSH2 0x03b2
[codex:1257358] 001d32: JUMPI
[codex:1257358] 001d33: PUSH2 0x1d3a
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing UUPS onlyProxy check**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] # disasm util
[codex:1257358] opnames={
[codex:1257358] 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:1257358] 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:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 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:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358] 
[codex:1257358] # disassemble into ops with offsets
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358]     op=bs[idx]
[codex:1257358]     name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358]     idx+=1
[codex:1257358]     if 0x60<=op<=0x7f:
[codex:1257358]         n=op-0x5f
[codex:1257358]         data=bs[idx:idx+n]
[codex:1257358]         idx+=n
[codex:1257358]         ops.append((idx-n-1,name,data))
[codex:1257358]     else:
[codex:1257358]         ops.append((idx-1,name,b''))
[codex:1257358] 
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358] 
[codex:1257358] def dump(start, count=120):
[codex:1257358]     i=offset_to_idx.get(start)
[codex:1257358]     if i is None:
[codex:1257358]         print('no start',hex(start));return
[codex:1257358]     for j in range(i, min(len(ops), i+count)):
[codex:1257358]         off,name,data=ops[j]
[codex:1257358]         if data:
[codex:1257358]             print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358]         else:
[codex:1257358]             print(f'{off:06x}: {name}')
[codex:1257358] 
[codex:1257358] print('dump from 0x1eef')
[codex:1257358] dump(0x1eef, 140)
[codex:1257358] 
[codex:1257358] print('\\nDump around delegatecall 0x1e71')
[codex:1257358] dump(0x1e60, 80)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 44ms:
[codex:1257358] dump from 0x1eef
[codex:1257358] 001eef: JUMPDEST
[codex:1257358] 001ef0: SWAP1
[codex:1257358] 001ef1: POP
[codex:1257358] 001ef2: PUSH1 0x01
[codex:1257358] 001ef4: PUSH1 0x01
[codex:1257358] 001ef6: PUSH1 0xa0
[codex:1257358] 001ef8: SHL
[codex:1257358] 001ef9: SUB
[codex:1257358] 001efa: OP_5f
[codex:1257358] 001efb: MLOAD
[codex:1257358] 001efc: PUSH1 0x20
[codex:1257358] 001efe: PUSH2 0x5bdd
[codex:1257358] 001f01: OP_5f
[codex:1257358] 001f02: CODECOPY
[codex:1257358] 001f03: OP_5f
[codex:1257358] 001f04: MLOAD
[codex:1257358] 001f05: SWAP1
[codex:1257358] 001f06: OP_5f
[codex:1257358] 001f07: MSTORE
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing UUPS upgrade access checks**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] 
[codex:1257358] opnames={}
[codex:1257358] # just parse
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358]     op=bs[idx]
[codex:1257358]     idx+=1
[codex:1257358]     name=op
[codex:1257358]     data=b''
[codex:1257358]     if 0x60<=op<=0x7f:
[codex:1257358]         n=op-0x5f
[codex:1257358]         data=bs[idx:idx+n]
[codex:1257358]         idx+=n
[codex:1257358]     ops.append((idx-1,op,data))
[codex:1257358] 
[codex:1257358] # find CALLER (0x33) between 0x1d26 and 0x2200
[codex:1257358] for off,op,data in ops:
[codex:1257358]     if off<0x1d26 or off>0x2200: continue
[codex:1257358]     if op==0x33:
[codex:1257358]         print(hex(off))
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 42ms:
[codex:1257358] 
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing internal permission check jumps**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] # disasm
[codex:1257358] opnames={
[codex:1257358] 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:1257358] 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:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 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:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358] 
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358]     op=bs[idx]
[codex:1257358]     name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358]     idx+=1
[codex:1257358]     if 0x60<=op<=0x7f:
[codex:1257358]         n=op-0x5f
[codex:1257358]         data=bs[idx:idx+n]
[codex:1257358]         idx+=n
[codex:1257358]         ops.append((idx-n-1,name,data))
[codex:1257358]     else:
[codex:1257358]         ops.append((idx-1,name,b''))
[codex:1257358] 
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358] 
[codex:1257358] def dump(start,count=120):
[codex:1257358]     i=offset_to_idx.get(start)
[codex:1257358]     if i is None:
[codex:1257358]         print('no start',hex(start));return
[codex:1257358]     for j in range(i, min(len(ops), i+count)):
[codex:1257358]         off,name,data=ops[j]
[codex:1257358]         if data:
[codex:1257358]             print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358]         else:
[codex:1257358]             print(f'{off:06x}: {name}')
[codex:1257358] 
[codex:1257358] print('dump at 0x4921')
[codex:1257358] dump(0x4921, 120)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 54ms:
[codex:1257358] dump at 0x4921
[codex:1257358] 004921: JUMPDEST
[codex:1257358] 004922: CALLER
[codex:1257358] 004923: OP_5f
[codex:1257358] 004924: SWAP1
[codex:1257358] 004925: DUP2
[codex:1257358] 004926: MSTORE
[codex:1257358] 004927: PUSH32 0xb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d
[codex:1257358] 004948: PUSH1 0x20
[codex:1257358] 00494a: MSTORE
[codex:1257358] 00494b: PUSH1 0x40
[codex:1257358] 00494d: SWAP1
[codex:1257358] 00494e: SHA3
[codex:1257358] 00494f: SLOAD
[codex:1257358] 004950: PUSH1 0xff
[codex:1257358] 004952: AND
[codex:1257358] 004953: ISZERO
[codex:1257358] 004954: PUSH2 0x4959
[codex:1257358] 004957: JUMPI
[codex:1257358] 004958: JUMP
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing role-based access check and ORIGIN usage**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] 
[codex:1257358] opnames={
[codex:1257358] 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:1257358] 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:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 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:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358] 
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358]     op=bs[idx]
[codex:1257358]     name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358]     idx+=1
[codex:1257358]     if 0x60<=op<=0x7f:
[codex:1257358]         n=op-0x5f
[codex:1257358]         data=bs[idx:idx+n]
[codex:1257358]         idx+=n
[codex:1257358]         ops.append((idx-n-1,name,data))
[codex:1257358]     else:
[codex:1257358]         ops.append((idx-1,name,b''))
[codex:1257358] 
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358] 
[codex:1257358] def dump(start,count=80):
[codex:1257358]     i=offset_to_idx.get(start)
[codex:1257358]     if i is None:
[codex:1257358]         print('no start',hex(start));return
[codex:1257358]     for j in range(i, min(len(ops), i+count)):
[codex:1257358]         off,name,data=ops[j]
[codex:1257358]         if data:
[codex:1257358]             print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358]         else:
[codex:1257358]             print(f'{off:06x}: {name}')
[codex:1257358] 
[codex:1257358] for off in [0x5b1f,0x5bb9,0x5bd9,0x5c99,0x5cb9,0x5cd9,0x5d39]:
[codex:1257358]     print('\\n-- around',hex(off))
[codex:1257358]     dump(off-10, 40)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 57ms:
[codex:1257358] 
[codex:1257358] -- around 0x5b1f
[codex:1257358] no start 0x5b15
[codex:1257358] 
[codex:1257358] -- around 0x5bb9
[codex:1257358] no start 0x5baf
[codex:1257358] 
[codex:1257358] -- around 0x5bd9
[codex:1257358] no start 0x5bcf
[codex:1257358] 
[codex:1257358] -- around 0x5c99
[codex:1257358] no start 0x5c8f
[codex:1257358] 
[codex:1257358] -- around 0x5cb9
[codex:1257358] no start 0x5caf
[codex:1257358] 
[codex:1257358] -- around 0x5cd9
[codex:1257358] no start 0x5ccf
[codex:1257358] 
[codex:1257358] -- around 0x5d39
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing instruction offsets for accurate dumping**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] 
[codex:1257358] opnames={
[codex:1257358] 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:1257358] 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:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 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:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358] 
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358]     op=bs[idx]
[codex:1257358]     name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358]     idx+=1
[codex:1257358]     if 0x60<=op<=0x7f:
[codex:1257358]         n=op-0x5f
[codex:1257358]         data=bs[idx:idx+n]
[codex:1257358]         idx+=n
[codex:1257358]         ops.append((idx-n-1,name,data))
[codex:1257358]     else:
[codex:1257358]         ops.append((idx-1,name,b''))
[codex:1257358] 
[codex:1257358] offs=[off for off,_,__ in ops]
[codex:1257358] 
[codex:1257358] def dump_near(target, count=40):
[codex:1257358]     # find index of last offset <= target
[codex:1257358]     i=0
[codex:1257358]     for idx,off in enumerate(offs):
[codex:1257358]         if off<=target:
[codex:1257358]             i=idx
[codex:1257358]         else:
[codex:1257358]             break
[codex:1257358]     start=max(0, i-10)
[codex:1257358]     for j in range(start, min(len(ops), start+count)):
[codex:1257358]         off,name,data=ops[j]
[codex:1257358]         marker='>>' if off==target else '  '
[codex:1257358]         if data:
[codex:1257358]             print(f'{marker}{off:06x}: {name} 0x{data.hex()}')
[codex:1257358]         else:
[codex:1257358]             print(f'{marker}{off:06x}: {name}')
[codex:1257358] 
[codex:1257358] for off in [0x5b1f,0x5bb9,0x5bd9,0x5c99,0x5cb9,0x5cd9,0x5d39]:
[codex:1257358]     print('\\n-- near',hex(off))
[codex:1257358]     dump_near(off, 30)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 50ms:
[codex:1257358] 
[codex:1257358] -- near 0x5b1f
[codex:1257358]   005b07: PUSH7 0xfbb9c4f73d99f1
[codex:1257358]   005b0f: BASEFEE
[codex:1257358]   005b10: AND
[codex:1257358]   005b11: PUSH7 0xc51eee8df34d23
[codex:1257358]   005b19: OP_a6
[codex:1257358]   005b1a: OP_1f
[codex:1257358]   005b1b: BASEFEE
[codex:1257358]   005b1c: STOP
[codex:1257358]   005b1d: MSTORE
[codex:1257358]   005b1e: OP_c6
[codex:1257358] >>005b1f: ORIGIN
[codex:1257358]   005b20: SELFBALANCE
[codex:1257358]   005b21: OP_e1
[codex:1257358]   005b22: DELEGATECALL
[codex:1257358]   005b23: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace040ee2d9de83
[codex:1257358]   005b42: SWAP3
[codex:1257358]   005b43: OP_a8
[codex:1257358]   005b44: CALL
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing code versus data boundaries**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] 
[codex:1257358] opnames={
[codex:1257358] 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:1257358] 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:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 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:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358] 
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358]     op=bs[idx]
[codex:1257358]     name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358]     idx+=1
[codex:1257358]     if 0x60<=op<=0x7f:
[codex:1257358]         n=op-0x5f
[codex:1257358]         data=bs[idx:idx+n]
[codex:1257358]         idx+=n
[codex:1257358]         ops.append((idx-n-1,name,data))
[codex:1257358]     else:
[codex:1257358]         ops.append((idx-1,name,b''))
[codex:1257358] 
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358] 
[codex:1257358] def dump(start,count=80):
[codex:1257358]     i=offset_to_idx.get(start)
[codex:1257358]     if i is None:
[codex:1257358]         # find nearest previous
[codex:1257358]         offs=sorted(offset_to_idx)
[codex:1257358]         prev=max(o for o in offs if o<=start)
[codex:1257358]         i=offset_to_idx[prev]
[codex:1257358]     for j in range(i, min(len(ops), i+count)):
[codex:1257358]         off,name,data=ops[j]
[codex:1257358]         if data:
[codex:1257358]             print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358]         else:
[codex:1257358]             print(f'{off:06x}: {name}')
[codex:1257358] 
[codex:1257358] print('dump around 0x1e60')
[codex:1257358] dump(0x1e60, 80)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 45ms:
[codex:1257358] dump around 0x1e60
[codex:1257358] 001e5f: PUSH2 0x1e7f
[codex:1257358] 001e62: JUMPI
[codex:1257358] 001e63: OP_5f
[codex:1257358] 001e64: DUP1
[codex:1257358] 001e65: DUP4
[codex:1257358] 001e66: PUSH1 0x20
[codex:1257358] 001e68: PUSH2 0x0763
[codex:1257358] 001e6b: SWAP6
[codex:1257358] 001e6c: MLOAD
[codex:1257358] 001e6d: SWAP2
[codex:1257358] 001e6e: ADD
[codex:1257358] 001e6f: DUP5
[codex:1257358] 001e70: GAS
[codex:1257358] 001e71: DELEGATECALL
[codex:1257358] 001e72: PUSH2 0x1e79
[codex:1257358] 001e75: PUSH2 0x53a8
[codex:1257358] 001e78: JUMP
[codex:1257358] 001e79: JUMPDEST
[codex:1257358] 001e7a: SWAP2
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing upgrade and mint access control**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] # disasm
[codex:1257358] opnames={
[codex:1257358] 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:1257358] 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:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 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:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358] 
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358]     op=bs[idx]
[codex:1257358]     name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358]     idx+=1
[codex:1257358]     if 0x60<=op<=0x7f:
[codex:1257358]         n=op-0x5f
[codex:1257358]         data=bs[idx:idx+n]
[codex:1257358]         idx+=n
[codex:1257358]         ops.append((idx-n-1,name,data))
[codex:1257358]     else:
[codex:1257358]         ops.append((idx-1,name,b''))
[codex:1257358] 
[codex:1257358] # find dispatcher mapping selectors
[codex:1257358] selectors=[]
[codex:1257358] for i in range(len(ops)-3):
[codex:1257358]     off,name,data=ops[i]
[codex:1257358]     if name=='PUSH4' and ops[i+1][1]=='EQ' and ops[i+2][1] in ('PUSH2','PUSH1') and ops[i+3][1]=='JUMPI':
[codex:1257358]         sel=data.hex()
[codex:1257358]         dest=int.from_bytes(ops[i+2][2],'big')
[codex:1257358]         selectors.append((sel,dest))
[codex:1257358] 
[codex:1257358] sel_map={sel:dest for sel,dest in selectors}
[codex:1257358] sel='40c10f19'
[codex:1257358] print('selector dest',hex(sel_map.get(sel,0)))
[codex:1257358] 
[codex:1257358] # dump around dest
[codex:1257358] if sel in sel_map:
[codex:1257358]     dest=sel_map[sel]
[codex:1257358]     offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358]     i=offset_to_idx[dest]
[codex:1257358]     for j in range(i, i+120):
[codex:1257358]         off,name,data=ops[j]
[codex:1257358]         if data:
[codex:1257358]             print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358]         else:
[codex:1257358]             print(f'{off:06x}: {name}')
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 49ms:
[codex:1257358] selector dest 0x1f62
[codex:1257358] 001f62: JUMPDEST
[codex:1257358] 001f63: CALLVALUE
[codex:1257358] 001f64: PUSH2 0x03b2
[codex:1257358] 001f67: JUMPI
[codex:1257358] 001f68: PUSH1 0x40
[codex:1257358] 001f6a: CALLDATASIZE
[codex:1257358] 001f6b: PUSH1 0x03
[codex:1257358] 001f6d: NOT
[codex:1257358] 001f6e: ADD
[codex:1257358] 001f6f: SLT
[codex:1257358] 001f70: PUSH2 0x03b2
[codex:1257358] 001f73: JUMPI
[codex:1257358] 001f74: PUSH2 0x1f7b
[codex:1257358] 001f77: PUSH2 0x3fa8
[codex:1257358] 001f7a: JUMP
[codex:1257358] 001f7b: JUMPDEST
[codex:1257358] 001f7c: PUSH1 0x24
[codex:1257358] 001f7e: CALLDATALOAD
[codex:1257358] 001f7f: PUSH2 0x1f86
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing access control in mint function**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] 
[codex:1257358] # parse ops to detect PUSH2 0x4921 followed by JUMP
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358]     op=bs[idx]; idx+=1
[codex:1257358]     data=b''
[codex:1257358]     if 0x60<=op<=0x7f:
[codex:1257358]         n=op-0x5f
[codex:1257358]         data=bs[idx:idx+n]; idx+=n
[codex:1257358]     ops.append((idx-1,op,data))
[codex:1257358] 
[codex:1257358] for i,(off,op,data) in enumerate(ops[:-1]):
[codex:1257358]     if op==0x61 and data==b'\\x49\\x21':
[codex:1257358]         if ops[i+1][1]==0x56:  # JUMP
[codex:1257358]             print('PUSH2 0x4921 JUMP at', hex(off))
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 57ms:
[codex:1257358] PUSH2 0x4921 JUMP at 0x528
[codex:1257358] PUSH2 0x4921 JUMP at 0x96c
[codex:1257358] PUSH2 0x4921 JUMP at 0xf12
[codex:1257358] PUSH2 0x4921 JUMP at 0xf66
[codex:1257358] PUSH2 0x4921 JUMP at 0x12df
[codex:1257358] PUSH2 0x4921 JUMP at 0x13d8
[codex:1257358] PUSH2 0x4921 JUMP at 0x14e7
[codex:1257358] PUSH2 0x4921 JUMP at 0x1dab
[codex:1257358] PUSH2 0x4921 JUMP at 0x1f26
[codex:1257358] PUSH2 0x4921 JUMP at 0x23ec
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing mint function and role checks**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] 
[codex:1257358] opnames={
[codex:1257358] 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:1257358] 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:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 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:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358] 
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358]     op=bs[idx]
[codex:1257358]     name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358]     idx+=1
[codex:1257358]     if 0x60<=op<=0x7f:
[codex:1257358]         n=op-0x5f
[codex:1257358]         data=bs[idx:idx+n]
[codex:1257358]         idx+=n
[codex:1257358]         ops.append((idx-n-1,name,data))
[codex:1257358]     else:
[codex:1257358]         ops.append((idx-1,name,b''))
[codex:1257358] 
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358] 
[codex:1257358] def dump(start,count=120):
[codex:1257358]     i=offset_to_idx.get(start)
[codex:1257358]     if i is None:
[codex:1257358]         # find nearest previous
[codex:1257358]         offs=sorted(offset_to_idx)
[codex:1257358]         prev=max(o for o in offs if o<=start)
[codex:1257358]         i=offset_to_idx[prev]
[codex:1257358]     for j in range(i, min(len(ops), i+count)):
[codex:1257358]         off,name,data=ops[j]
[codex:1257358]         if data:
[codex:1257358]             print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358]         else:
[codex:1257358]             print(f'{off:06x}: {name}')
[codex:1257358] 
[codex:1257358] print('dump at 0x45e0')
[codex:1257358] dump(0x45e0, 120)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 45ms:
[codex:1257358] dump at 0x45e0
[codex:1257358] 0045e0: JUMPDEST
[codex:1257358] 0045e1: DUP2
[codex:1257358] 0045e2: DUP2
[codex:1257358] 0045e3: MUL
[codex:1257358] 0045e4: SWAP3
[codex:1257358] 0045e5: SWAP2
[codex:1257358] 0045e6: DUP2
[codex:1257358] 0045e7: ISZERO
[codex:1257358] 0045e8: SWAP2
[codex:1257358] 0045e9: DUP5
[codex:1257358] 0045ea: DIV
[codex:1257358] 0045eb: EQ
[codex:1257358] 0045ec: OR
[codex:1257358] 0045ed: ISZERO
[codex:1257358] 0045ee: PUSH2 0x2636
[codex:1257358] 0045f1: JUMPI
[codex:1257358] 0045f2: JUMP
[codex:1257358] 0045f3: JUMPDEST
[codex:1257358] 0045f4: DUP2
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing mint function for role checks**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] # disasm
[codex:1257358] opnames={
[codex:1257358] 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:1257358] 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:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 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:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358] 
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358]     op=bs[idx]
[codex:1257358]     name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358]     idx+=1
[codex:1257358]     if 0x60<=op<=0x7f:
[codex:1257358]         n=op-0x5f
[codex:1257358]         data=bs[idx:idx+n]
[codex:1257358]         idx+=n
[codex:1257358]         ops.append((idx-n-1,name,data))
[codex:1257358]     else:
[codex:1257358]         ops.append((idx-1,name,b''))
[codex:1257358] 
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358] 
[codex:1257358] def dump(start,count=80):
[codex:1257358]     i=offset_to_idx.get(start)
[codex:1257358]     if i is None:
[codex:1257358]         # find nearest previous
[codex:1257358]         offs=sorted(offset_to_idx)
[codex:1257358]         prev=max(o for o in offs if o<=start)
[codex:1257358]         i=offset_to_idx[prev]
[codex:1257358]     for j in range(i, min(len(ops), i+count)):
[codex:1257358]         off,name,data=ops[j]
[codex:1257358]         if data:
[codex:1257358]             print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358]         else:
[codex:1257358]             print(f'{off:06x}: {name}')
[codex:1257358] 
[codex:1257358] print('dump at 0x487d')
[codex:1257358] dump(0x487d, 80)
[codex:1257358] print('\\nDump at 0x48b2')
[codex:1257358] dump(0x48b2, 80)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 52ms:
[codex:1257358] dump at 0x487d
[codex:1257358] 00487d: JUMPDEST
[codex:1257358] 00487e: OP_5f
[codex:1257358] 00487f: MLOAD
[codex:1257358] 004880: PUSH1 0x20
[codex:1257358] 004882: PUSH2 0x5cfd
[codex:1257358] 004885: OP_5f
[codex:1257358] 004886: CODECOPY
[codex:1257358] 004887: OP_5f
[codex:1257358] 004888: MLOAD
[codex:1257358] 004889: SWAP1
[codex:1257358] 00488a: OP_5f
[codex:1257358] 00488b: MSTORE
[codex:1257358] 00488c: OP_5c
[codex:1257358] 00488d: PUSH2 0x48a3
[codex:1257358] 004890: JUMPI
[codex:1257358] 004891: PUSH1 0x01
[codex:1257358] 004893: OP_5f
[codex:1257358] 004894: MLOAD
[codex:1257358] 004895: PUSH1 0x20
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Analyzing contract bytecode for access control and opcodes**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358]     if line.startswith('0x'):
[codex:1257358]         hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] 
[codex:1257358] off=0
[codex:1257358] callcode=[]
[codex:1257358] selfdestruct=[]
[codex:1257358] for i,b in enumerate(bs):
[codex:1257358]     if b==0xf2:
[codex:1257358]         callcode.append(i)
[codex:1257358]     if b==0xff:
[codex:1257358]         selfdestruct.append(i)
[codex:1257358] 
[codex:1257358] print('CALLCODE count',len(callcode))
[codex:1257358] print('SELFDESTRUCT count',len(selfdestruct))
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 33ms:
[codex:1257358] CALLCODE count 36
[codex:1257358] SELFDESTRUCT count 273
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Evaluating upgradeable contract risks**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-yg56dzmp succeeded in 5ms:
[codex:1257358] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1257358] 
[codex:1257358] thinking
[codex:1257358] **Preparing JSON security summary**
[codex:1257358] 
[codex:1257358] I'm ensuring the JSON output follows the schema with a no_findings boolean, a concise summary string, and an empty findings array since no concrete security issues were discerned from the bytecode and disassembly analysis. The summary will plainly state that no issues were found, reflecting a thorough check including UUPS proxy behavior and access controls.
[codex:1257358] codex
[codex:1257358] {"no_findings":true,"summary":"No concrete security issues could be determined from the bytecode/disassembly patterns alone.","findings":[]}
[codex:1257358] tokens used
[codex:1257358] 126,897
[codex:1257358] {"no_findings":true,"summary":"No concrete security issues could be determined from the bytecode/disassembly patterns alone.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T08:28:37.728155+00:00",
        "returncode": 0
    },
    "summary": "No concrete security issues could be determined from the bytecode/disassembly patterns alone.",
    "raw_final": {
        "summary": "No concrete security issues could be determined from the bytecode/disassembly patterns alone.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
4
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
10
EXT*/BALANCE
6
Total opcodes
14576
Flags
delegatecall_present create_opcodes_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 0x0011
0000000d: JUMPI
0000000e: PUSH0
0000000f: DUP1
00000010: REVERT
00000011: JUMPDEST
00000012: PUSH0
00000013: CALLDATALOAD
00000014: PUSH1 0xe0
00000016: SHR
00000017: DUP1
00000018: PUSH4 0x0130c4d2
0000001d: EQ
0000001e: PUSH2 0x3564
00000021: JUMPI
00000022: DUP1
00000023: PUSH4 0x01ffc9a7
00000028: EQ
00000029: PUSH2 0x350e
0000002c: JUMPI
0000002d: DUP1
0000002e: PUSH4 0x06fdde03
00000033: EQ
00000034: PUSH2 0x3451
00000037: JUMPI
00000038: DUP1
00000039: PUSH4 0x095ea7b3
0000003e: EQ
0000003f: PUSH2 0x342b
00000042: JUMPI
00000043: DUP1
00000044: PUSH4 0x0f45684a
00000049: EQ
0000004a: PUSH2 0x2725
0000004d: JUMPI
0000004e: DUP1
0000004f: PUSH4 0x106e846b
00000054: EQ
00000055: PUSH2 0x3400
00000058: JUMPI
00000059: DUP1
0000005a: PUSH4 0x10a470ab
0000005f: EQ
00000060: PUSH2 0x2f43
00000063: JUMPI
00000064: DUP1
00000065: PUSH4 0x113ac8f6
0000006a: EQ
0000006b: PUSH2 0x2f28
0000006e: JUMPI
0000006f: DUP1
00000070: PUSH4 0x15770f92
00000075: EQ
00000076: PUSH2 0x2eff
00000079: JUMPI
0000007a: DUP1
0000007b: PUSH4 0x18160ddd
00000080: EQ
00000081: PUSH2 0x2ed6
00000084: JUMPI
00000085: DUP1
00000086: PUSH4 0x1820cabb
0000008b: EQ
0000008c: PUSH2 0x2e9c
0000008f: JUMPI
00000090: DUP1
00000091: PUSH4 0x1e8e51da
00000096: EQ
00000097: PUSH2 0x2e73
0000009a: JUMPI
0000009b: DUP1
0000009c: PUSH4 0x23b872dd
000000a1: EQ
000000a2: PUSH2 0x2d34
000000a5: JUMPI
000000a6: DUP1
000000a7: PUSH4 0x248a9ca3
000000ac: EQ
000000ad: PUSH2 0x2cfd
000000b0: JUMPI
000000b1: DUP1
000000b2: PUSH4 0x27f92376
000000b7: EQ
000000b8: PUSH2 0x2ccf
000000bb: JUMPI
000000bc: DUP1
000000bd: PUSH4 0x28f079c2
000000c2: EQ
000000c3: PUSH2 0x2c9e
000000c6: JUMPI
000000c7: DUP1
000000c8: PUSH4 0x2b3afdb0
000000cd: EQ
000000ce: PUSH2 0x279b
000000d1: JUMPI
000000d2: DUP1
000000d3: PUSH4 0x2f2ff15d
000000d8: EQ
000000d9: PUSH2 0x2751
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0x313ce567
000000e3: EQ
000000e4: PUSH2 0x2725
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0x36448777
000000ee: EQ
000000ef: PUSH2 0x26fc
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0x3644e515
000000f9: EQ
000000fa: PUSH2 0x26e2
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0x36568abe
00000104: EQ
00000105: PUSH2 0x269e
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0x38898ca2
0000010f: EQ
00000110: PUSH2 0x264a
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0x3dc69f2c
0000011a: EQ
0000011b: PUSH2 0x23d7
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x3e0dc34e
00000125: EQ
00000126: PUSH2 0x239b
00000129: JUMPI
0000012a: DUP1
0000012b: PUSH4 0x3f668d6f
00000130: EQ
00000131: PUSH2 0x234d
00000134: JUMPI
00000135: DUP1
00000136: PUSH4 0x3fc03c26
0000013b: EQ
0000013c: PUSH2 0x2228
0000013f: JUMPI
00000140: DUP1
00000141: PUSH4 0x40c10f19
00000146: EQ
00000147: PUSH2 0x1f62
0000014a: JUMPI
0000014b: DUP1
0000014c: PUSH4 0x43469f32
00000151: EQ
00000152: PUSH2 0x1f11
00000155: JUMPI
00000156: DUP1
00000157: PUSH4 0x4f1ef286
0000015c: EQ
0000015d: PUSH2 0x1d26
00000160: JUMPI
00000161: DUP1
00000162: PUSH4 0x51fe0e18
00000167: EQ
00000168: PUSH2 0x1cf1
0000016b: JUMPI
0000016c: DUP1
0000016d: PUSH4 0x52d1902d
00000172: EQ
00000173: PUSH2 0x1c8b
00000176: JUMPI
00000177: DUP1
00000178: PUSH4 0x58794456
0000017d: EQ
0000017e: PUSH2 0x1c62
00000181: JUMPI
00000182: DUP1
00000183: PUSH4 0x601c1861
00000188: EQ
00000189: PUSH2 0x1b7f
0000018c: JUMPI
0000018d: DUP1
0000018e: PUSH4 0x60b71d4e
00000193: EQ
00000194: PUSH2 0x1b56
00000197: JUMPI
00000198: DUP1
00000199: PUSH4 0x61b01b5d
0000019e: EQ
0000019f: PUSH2 0x1b1a
000001a2: JUMPI
000001a3: DUP1
000001a4: PUSH4 0x641ffaa1
000001a9: EQ
000001aa: PUSH2 0x19c7
000001ad: JUMPI
000001ae: DUP1
000001af: PUSH4 0x6780a311
000001b4: EQ
000001b5: PUSH2 0x1996
000001b8: JUMPI
000001b9: DUP1
000001ba: PUSH4 0x70a08231
000001bf: EQ
000001c0: PUSH2 0x1952
000001c3: JUMPI
000001c4: DUP1
000001c5: PUSH4 0x72e30f6a
000001ca: EQ
000001cb: PUSH2 0x186d
000001ce: JUMPI
000001cf: DUP1
000001d0: PUSH4 0x754f56e2
000001d5: EQ
000001d6: PUSH2 0x183f
000001d9: JUMPI
000001da: DUP1
000001db: PUSH4 0x785ffb37
000001e0: EQ
000001e1: PUSH2 0x1805
000001e4: JUMPI
000001e5: DUP1
000001e6: PUSH4 0x7ecebe00
000001eb: EQ
000001ec: PUSH2 0x17ae
000001ef: JUMPI
000001f0: DUP1
000001f1: PUSH4 0x7fb65265
000001f6: EQ
000001f7: PUSH2 0x1785
000001fa: JUMPI
000001fb: DUP1
000001fc: PUSH4 0x84b0196e
00000201: EQ
00000202: PUSH2 0x1633
00000205: JUMPI
00000206: DUP1
00000207: PUSH4 0x88cb0df7
0000020c: EQ
0000020d: PUSH2 0x1517
00000210: JUMPI
00000211: DUP1
00000212: PUSH4 0x8c66d04f
00000217: EQ
00000218: PUSH2 0x14c0
0000021b: JUMPI
0000021c: DUP1
0000021d: PUSH4 0x8cdc1f24
00000222: EQ
00000223: PUSH2 0x13b9
00000226: JUMPI
00000227: DUP1
00000228: PUSH4 0x8d55de63
0000022d: EQ
0000022e: PUSH2 0x132f
00000231: JUMPI
00000232: DUP1
00000233: PUSH4 0x90c83e94
00000238: EQ
00000239: PUSH2 0x12c5
0000023c: JUMPI
0000023d: DUP1
0000023e: PUSH4 0x91d14854
00000243: EQ
00000244: PUSH2 0x126f
00000247: JUMPI
00000248: DUP1
00000249: PUSH4 0x92c883fb
0000024e: EQ
0000024f: PUSH2 0x10e9
00000252: JUMPI
00000253: DUP1
00000254: PUSH4 0x95d89b41
00000259: EQ
0000025a: PUSH2 0x0ff3
0000025d: JUMPI
0000025e: DUP1
0000025f: PUSH4 0x96c82e57
00000264: EQ
00000265: PUSH2 0x0fca
00000268: JUMPI
00000269: DUP1
0000026a: PUSH4 0x99a22d68
0000026f: EQ
00000270: PUSH2 0x0f99
00000273: JUMPI
00000274: DUP1
00000275: PUSH4 0x9bb81119
0000027a: EQ
0000027b: PUSH2 0x0f70
0000027e: JUMPI
0000027f: DUP1
00000280: PUSH4 0x9c3701a0
00000285: EQ
00000286: PUSH2 0x0f50
00000289: JUMPI
0000028a: DUP1
0000028b: PUSH4 0x9d3c38c5
00000290: EQ
00000291: PUSH2 0x0ed0
00000294: JUMPI
00000295: DUP1
00000296: PUSH4 0xa217fddf
0000029b: EQ
0000029c: PUSH2 0x0eb6
0000029f: JUMPI
000002a0: DUP1
000002a1: PUSH4 0xa9059cbb
000002a6: EQ
000002a7: PUSH2 0x0e85
000002aa: JUMPI
000002ab: DUP1
000002ac: PUSH4 0xad3cb1cc
000002b1: EQ
000002b2: PUSH2 0x0e3e
000002b5: JUMPI
000002b6: DUP1
000002b7: PUSH4 0xaf8214ef
000002bc: EQ
000002bd: PUSH2 0x0e04
000002c0: JUMPI
000002c1: DUP1
000002c2: PUSH4 0xb00eb9fe
000002c7: EQ
000002c8: PUSH2 0x0dd2
000002cb: JUMPI
000002cc: DUP1
000002cd: PUSH4 0xb4d1d795
000002d2: EQ
000002d3: PUSH2 0x0d98
000002d6: JUMPI
000002d7: DUP1
000002d8: PUSH4 0xb6192d0b
000002dd: EQ
000002de: PUSH2 0x0c09
000002e1: JUMPI
000002e2: DUP1
000002e3: PUSH4 0xb81d85f0
000002e8: EQ
000002e9: PUSH2 0x0b60
000002ec: JUMPI
000002ed: DUP1
000002ee: PUSH4 0xc0dca06e
000002f3: EQ
000002f4: PUSH2 0x09d3
000002f7: JUMPI
000002f8: DUP1
000002f9: PUSH4 0xc646b166
000002fe: EQ
000002ff: PUSH2 0x0931
00000302: JUMPI
00000303: DUP1
00000304: PUSH4 0xca981909
00000309: EQ
0000030a: PUSH2 0x08f7
0000030d: JUMPI
0000030e: DUP1
0000030f: PUSH4 0xcdfed0ab
00000314: EQ
00000315: PUSH2 0x08bb
00000318: JUMPI
00000319: DUP1
0000031a: PUSH4 0xd505accf
0000031f: EQ
00000320: PUSH2 0x0765
00000323: JUMPI
00000324: DUP1
00000325: PUSH4 0xd547741f
0000032a: EQ
0000032b: PUSH2 0x0714
0000032e: JUMPI
0000032f: DUP1
00000330: PUSH4 0xdd62ed3e
00000335: EQ
00000336: PUSH2 0x069b
00000339: JUMPI
0000033a: DUP1
0000033b: PUSH4 0xe065608b
00000340: EQ
00000341: PUSH2 0x04e7
00000344: JUMPI
00000345: DUP1
00000346: PUSH4 0xe1a45218
0000034b: EQ
0000034c: PUSH2 0x04cb
0000034f: JUMPI
00000350: DUP1
00000351: PUSH4 0xe465eb9e
00000356: EQ
00000357: PUSH2 0x04a2
0000035a: JUMPI
0000035b: DUP1
0000035c: PUSH4 0xe46e7058
00000361: EQ
00000362: PUSH2 0x0473
00000365: JUMPI
00000366: DUP1
00000367: PUSH4 0xe5b15b52
0000036c: EQ
0000036d: PUSH2 0x03e8
00000370: JUMPI
00000371: DUP1
00000372: PUSH4 0xfc0c546a
00000377: EQ
00000378: PUSH2 0x03b6
0000037b: JUMPI
0000037c: PUSH4 0xfeb56b15
00000381: EQ
00000382: PUSH2 0x0389
00000385: JUMPI
00000386: PUSH0
00000387: DUP1
00000388: REVERT
00000389: JUMPDEST
0000038a: CALLVALUE
0000038b: PUSH2 0x03b2
0000038e: JUMPI
0000038f: PUSH0
00000390: CALLDATASIZE
00000391: PUSH1 0x03
00000393: NOT
00000394: ADD
00000395: SLT
00000396: PUSH2 0x03b2
00000399: JUMPI
0000039a: PUSH1 0x20
0000039c: PUSH0
0000039d: MLOAD
0000039e: PUSH1 0x20
000003a0: PUSH2 0x5cdd
000003a3: PUSH0
000003a4: CODECOPY
000003a5: PUSH0
000003a6: MLOAD
000003a7: SWAP1
000003a8: PUSH0
000003a9: MSTORE
000003aa: SLOAD
000003ab: PUSH1 0x40
000003ad: MLOAD
000003ae: SWAP1
000003af: DUP2
000003b0: MSTORE
000003b1: RETURN
000003b2: JUMPDEST
000003b3: PUSH0
000003b4: DUP1
000003b5: REVERT
000003b6: JUMPDEST
000003b7: CALLVALUE
000003b8: PUSH2 0x03b2
000003bb: JUMPI
000003bc: PUSH0
000003bd: CALLDATASIZE
000003be: PUSH1 0x03
000003c0: NOT
000003c1: ADD
000003c2: SLT
000003c3: PUSH2 0x03b2
000003c6: JUMPI
000003c7: PUSH1 0x20
000003c9: PUSH1 0x01
000003cb: PUSH1 0x01
000003cd: PUSH1 0xa0
000003cf: SHL
000003d0: SUB
000003d1: PUSH0
000003d2: MLOAD
000003d3: PUSH1 0x20
000003d5: PUSH2 0x5d1d
000003d8: PUSH0
000003d9: CODECOPY
000003da: PUSH0
000003db: MLOAD
000003dc: SWAP1
000003dd: PUSH0
000003de: MSTORE
000003df: SLOAD
000003e0: AND
000003e1: PUSH1 0x40
000003e3: MLOAD
000003e4: SWAP1
000003e5: DUP2
000003e6: MSTORE
000003e7: RETURN
000003e8: JUMPDEST
000003e9: CALLVALUE
000003ea: PUSH2 0x03b2
000003ed: JUMPI
000003ee: PUSH2 0x046f
000003f1: PUSH2 0x0413
000003f4: PUSH2 0x040e
000003f7: PUSH2 0x03ff
000003fa: CALLDATASIZE
000003fb: PUSH2 0x4112
000003fe: JUMP
000003ff: JUMPDEST
00000400: SWAP1
00000401: PUSH2 0x0408
00000404: PUSH2 0x43b1
00000407: JUMP
00000408: JUMPDEST
00000409: POP
0000040a: PUSH2 0x49bd
0000040d: JUMP
0000040e: JUMPDEST
0000040f: PUSH2 0x4435
00000412: JUMP
00000413: JUMPDEST
00000414: PUSH1 0x40
00000416: MLOAD
00000417: SWAP2
00000418: DUP3
00000419: SWAP2
0000041a: DUP3
0000041b: SWAP2
0000041c: SWAP1
0000041d: SWAP2
0000041e: PUSH1 0xe0
00000420: DUP1
00000421: PUSH2 0x0100
00000424: DUP4
00000425: ADD
00000426: SWAP5
00000427: DUP1
00000428: MLOAD
00000429: DUP5
0000042a: MSTORE
0000042b: PUSH1 0x20
0000042d: DUP2
0000042e: ADD
0000042f: MLOAD
00000430: PUSH1 0x20
00000432: DUP6
00000433: ADD
00000434: MSTORE
00000435: PUSH1 0x40
00000437: DUP2
00000438: ADD
00000439: MLOAD
0000043a: PUSH1 0x40
0000043c: DUP6
0000043d: ADD
0000043e: MSTORE
0000043f: PUSH1 0x60
00000441: DUP2
00000442: ADD
00000443: MLOAD
00000444: PUSH1 0x60
00000446: DUP6
00000447: ADD
00000448: MSTORE
00000449: PUSH1 0x80
0000044b: DUP2
0000044c: ADD
0000044d: MLOAD
0000044e: PUSH1 0x80
00000450: DUP6
00000451: ADD
00000452: MSTORE
00000453: PUSH1 0xa0
00000455: DUP2
00000456: ADD
00000457: MLOAD
00000458: PUSH1 0xa0
0000045a: DUP6
0000045b: ADD
0000045c: MSTORE
0000045d: PUSH1 0xc0
0000045f: DUP2
00000460: ADD
00000461: MLOAD
00000462: PUSH1 0xc0
00000464: DUP6
00000465: ADD
00000466: MSTORE
00000467: ADD
00000468: MLOAD
00000469: ISZERO
0000046a: ISZERO
0000046b: SWAP2
0000046c: ADD
0000046d: MSTORE
0000046e: JUMP
0000046f: JUMPDEST
00000470: SUB
00000471: SWAP1
00000472: RETURN
00000473: JUMPDEST
00000474: CALLVALUE
00000475: PUSH2 0x03b2
00000478: JUMPI
00000479: PUSH0
0000047a: CALLDATASIZE
0000047b: PUSH1 0x03
0000047d: NOT
0000047e: ADD
0000047f: SLT
00000480: PUSH2 0x03b2
00000483: JUMPI
00000484: PUSH1 0x20
00000486: PUSH1 0xff
00000488: PUSH0
00000489: MLOAD
0000048a: PUSH1 0x20
0000048c: PUSH2 0x5afd
0000048f: PUSH0
00000490: CODECOPY
00000491: PUSH0
00000492: MLOAD
00000493: SWAP1
00000494: PUSH0
00000495: MSTORE
00000496: SLOAD
00000497: PUSH1 0x08
00000499: SHR
0000049a: AND
0000049b: PUSH1 0x40
0000049d: MLOAD
0000049e: SWAP1
0000049f: DUP2
000004a0: MSTORE
000004a1: RETURN
000004a2: JUMPDEST
000004a3: CALLVALUE
000004a4: PUSH2 0x03b2
000004a7: JUMPI
000004a8: PUSH0
000004a9: CALLDATASIZE
000004aa: PUSH1 0x03
000004ac: NOT
000004ad: ADD
000004ae: SLT
000004af: PUSH2 0x03b2
000004b2: JUMPI
000004b3: PUSH1 0x20
000004b5: PUSH0
000004b6: MLOAD
000004b7: PUSH1 0x20
000004b9: PUSH2 0x5b3d
000004bc: PUSH0
000004bd: CODECOPY
000004be: PUSH0
000004bf: MLOAD
000004c0: SWAP1
000004c1: PUSH0
000004c2: MSTORE
000004c3: SLOAD
000004c4: PUSH1 0x40
000004c6: MLOAD
000004c7: SWAP1
000004c8: DUP2
000004c9: MSTORE
000004ca: RETURN
000004cb: JUMPDEST
000004cc: CALLVALUE
000004cd: PUSH2 0x03b2
000004d0: JUMPI
000004d1: PUSH0
000004d2: CALLDATASIZE
000004d3: PUSH1 0x03
000004d5: NOT
000004d6: ADD
000004d7: SLT
000004d8: PUSH2 0x03b2
000004db: JUMPI
000004dc: PUSH1 0x20
000004de: PUSH1 0x40
000004e0: MLOAD
000004e1: PUSH2 0x2710
000004e4: DUP2
000004e5: MSTORE
000004e6: RETURN
000004e7: JUMPDEST
000004e8: CALLVALUE
000004e9: PUSH2 0x03b2
000004ec: JUMPI
000004ed: PUSH1 0xa0
000004ef: CALLDATASIZE
000004f0: PUSH1 0x03
000004f2: NOT
000004f3: ADD
000004f4: SLT
000004f5: PUSH2 0x03b2
000004f8: JUMPI
000004f9: PUSH2 0x0500
000004fc: PUSH2 0x3fea
000004ff: JUMP
00000500: JUMPDEST
00000501: PUSH1 0x24
00000503: CALLDATALOAD
00000504: PUSH1 0x44
00000506: CALLDATALOAD
00000507: SWAP2
00000508: PUSH1 0x64
0000050a: CALLDATALOAD
0000050b: DUP1
0000050c: ISZERO
0000050d: ISZERO
0000050e: DUP1
0000050f: SWAP2
00000510: SUB
00000511: PUSH2 0x03b2
00000514: JUMPI
00000515: PUSH1 0x84
00000517: CALLDATALOAD
00000518: SWAP2
00000519: DUP3
0000051a: ISZERO
0000051b: ISZERO
0000051c: DUP1
0000051d: SWAP4
0000051e: SUB
0000051f: PUSH2 0x03b2
00000522: JUMPI
00000523: PUSH2 0x052a
00000526: PUSH2 0x4921
00000529: JUMP
0000052a: JUMPDEST
0000052b: PUSH2 0x2710
0000052e: DUP5
0000052f: GT
00000530: PUSH2 0x0658
00000533: JUMPI
00000534: PUSH2 0x2710
00000537: DUP6
00000538: GT
00000539: PUSH2 0x0617
0000053c: JUMPI
0000053d: SWAP1
0000053e: PUSH32 0xdef0a5f359f70f4feaf27bbd47c7e476348ea79108e46990d5b73efbc885f037
0000055f: SWAP5
00000560: PUSH1 0xa0
00000562: SWAP5
00000563: SWAP4
00000564: SWAP3
00000565: ISZERO
00000566: ISZERO
00000567: SWAP4
00000568: PUSH1 0xff
0000056a: NOT
0000056b: PUSH0
0000056c: MLOAD
0000056d: PUSH1 0x20
0000056f: PUSH2 0x5c9d
00000572: PUSH0
00000573: CODECOPY
00000574: PUSH0
00000575: MLOAD
00000576: SWAP1
00000577: PUSH0
00000578: MSTORE
00000579: SLOAD
0000057a: AND
0000057b: PUSH1 0xff
0000057d: DUP7
0000057e: AND
0000057f: OR
00000580: PUSH0
00000581: MLOAD
00000582: PUSH1 0x20
00000584: PUSH2 0x5c9d
00000587: PUSH0
00000588: CODECOPY
00000589: PUSH0
0000058a: MLOAD
0000058b: SWAP1
0000058c: PUSH0
0000058d: MSTORE
0000058e: SSTORE
0000058f: DUP1
00000590: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea09
000005b1: SSTORE
000005b2: DUP2
000005b3: PUSH0
000005b4: MLOAD
000005b5: PUSH1 0x20
000005b7: PUSH2 0x5c1d
000005ba: PUSH0
000005bb: CODECOPY
000005bc: PUSH0
000005bd: MLOAD
000005be: SWAP1
000005bf: PUSH0
000005c0: MSTORE
000005c1: SSTORE
000005c2: PUSH0
000005c3: MLOAD
000005c4: PUSH1 0x20
000005c6: PUSH2 0x5c9d
000005c9: PUSH0
000005ca: CODECOPY
000005cb: PUSH0
000005cc: MLOAD
000005cd: SWAP1
000005ce: PUSH0
000005cf: MSTORE
000005d0: SLOAD
000005d1: PUSH3 0xff0000
000005d5: DUP6
000005d6: PUSH1 0x10
000005d8: SHL
000005d9: AND
000005da: SWAP1
000005db: PUSH2 0xff00
000005de: DUP6
000005df: PUSH1 0x08
000005e1: SHL
000005e2: AND
000005e3: SWAP1
000005e4: PUSH3 0xffff00
000005e8: NOT
000005e9: AND
000005ea: OR
000005eb: OR
000005ec: PUSH0
000005ed: MLOAD
000005ee: PUSH1 0x20
000005f0: PUSH2 0x5c9d
000005f3: PUSH0
000005f4: CODECOPY
000005f5: PUSH0
000005f6: MLOAD
000005f7: SWAP1
000005f8: PUSH0
000005f9: MSTORE
000005fa: SSTORE
000005fb: PUSH1 0x40
000005fd: MLOAD
000005fe: SWAP5
000005ff: DUP6
00000600: MSTORE
00000601: PUSH1 0x20
00000603: DUP6
00000604: ADD
00000605: MSTORE
00000606: PUSH1 0x40
00000608: DUP5
00000609: ADD
0000060a: MSTORE
0000060b: PUSH1 0x60
0000060d: DUP4
0000060e: ADD
0000060f: MSTORE
00000610: PUSH1 0x80
00000612: DUP3
00000613: ADD
00000614: MSTORE
00000615: LOG1
00000616: STOP
00000617: JUMPDEST
00000618: PUSH1 0x40
0000061a: MLOAD
0000061b: PUSH4 0x38d06e1d
00000620: PUSH1 0xe0
00000622: SHL
00000623: DUP2
00000624: MSTORE
00000625: PUSH1 0x60
00000627: PUSH1 0x04
00000629: DUP3
0000062a: ADD
0000062b: MSTORE
0000062c: PUSH1 0x09
0000062e: PUSH1 0x64
00000630: DUP3
00000631: ADD
00000632: MSTORE
00000633: PUSH9 0x06c7044656c7461425
0000063d: PUSH1 0xbc
0000063f: SHL
00000640: PUSH1 0x84
00000642: DUP3
00000643: ADD
00000644: MSTORE
00000645: PUSH1 0x24
00000647: DUP2
00000648: ADD
00000649: DUP7
0000064a: SWAP1
0000064b: MSTORE
0000064c: PUSH2 0x2710
0000064f: PUSH1 0x44
00000651: DUP3
00000652: ADD
00000653: MSTORE
00000654: PUSH1 0xa4
00000656: SWAP1
00000657: REVERT
00000658: JUMPDEST
00000659: PUSH1 0x40
0000065b: MLOAD
0000065c: PUSH4 0x38d06e1d
00000661: PUSH1 0xe0
00000663: SHL
00000664: DUP2
00000665: MSTORE
00000666: PUSH1 0x60
00000668: PUSH1 0x04
0000066a: DUP3
0000066b: ADD
0000066c: MSTORE
0000066d: PUSH1 0x0b
0000066f: PUSH1 0x64
00000671: DUP3
00000672: ADD
00000673: MSTORE
00000674: PUSH11 0x07377617044656c7461425
00000680: PUSH1 0xac
00000682: SHL
00000683: PUSH1 0x84
00000685: DUP3
00000686: ADD
00000687: MSTORE
00000688: PUSH1 0x24
0000068a: DUP2
0000068b: ADD
0000068c: DUP6
0000068d: SWAP1
0000068e: MSTORE
0000068f: PUSH2 0x2710
00000692: PUSH1 0x44
00000694: DUP3
00000695: ADD
00000696: MSTORE
00000697: PUSH1 0xa4
00000699: SWAP1
0000069a: REVERT
0000069b: JUMPDEST
0000069c: CALLVALUE
0000069d: PUSH2 0x03b2
000006a0: JUMPI
000006a1: PUSH1 0x40
000006a3: CALLDATASIZE
000006a4: PUSH1 0x03
000006a6: NOT
000006a7: ADD
000006a8: SLT
000006a9: PUSH2 0x03b2
000006ac: JUMPI
000006ad: PUSH2 0x06b4
000006b0: PUSH2 0x3fa8
000006b3: JUMP
000006b4: JUMPDEST
000006b5: PUSH1 0x01
000006b7: PUSH1 0x01
000006b9: PUSH1 0xa0
000006bb: SHL
000006bc: SUB
000006bd: PUSH2 0x06fe
000006c0: PUSH2 0x06c7
000006c3: PUSH2 0x3fbe
000006c6: JUMP
000006c7: JUMPDEST
000006c8: SWAP3
000006c9: PUSH1 0x01
000006cb: PUSH1 0x01
000006cd: PUSH1 0xa0
000006cf: SHL
000006d0: SUB
000006d1: AND
000006d2: PUSH0
000006d3: MSTORE
000006d4: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01
000006f5: PUSH1 0x20
000006f7: MSTORE
000006f8: PUSH1 0x40
000006fa: PUSH0
000006fb: KECCAK256
000006fc: SWAP1
000006fd: JUMP
000006fe: JUMPDEST
000006ff: SWAP2
00000700: AND
00000701: PUSH0
00000702: MSTORE
00000703: PUSH1 0x20
00000705: MSTORE
00000706: PUSH1 0x20
00000708: PUSH1 0x40
0000070a: PUSH0
0000070b: KECCAK256
0000070c: SLOAD
0000070d: PUSH1 0x40
0000070f: MLOAD
00000710: SWAP1
00000711: DUP2
00000712: MSTORE
00000713: RETURN
00000714: JUMPDEST
00000715: CALLVALUE
00000716: PUSH2 0x03b2
00000719: JUMPI
0000071a: PUSH1 0x40
0000071c: CALLDATASIZE
0000071d: PUSH1 0x03
0000071f: NOT
00000720: ADD
00000721: SLT
00000722: PUSH2 0x03b2
00000725: JUMPI
00000726: PUSH2 0x0763
00000729: PUSH1 0x04
0000072b: CALLDATALOAD
0000072c: PUSH2 0x0733
0000072f: PUSH2 0x3fbe
00000732: JUMP
00000733: JUMPDEST
00000734: SWAP1
00000735: PUSH2 0x075e
00000738: PUSH2 0x0759
0000073b: DUP3
0000073c: PUSH0
0000073d: MSTORE
0000073e: PUSH0
0000073f: MLOAD
00000740: PUSH1 0x20
00000742: PUSH2 0x5c5d
00000745: PUSH0
00000746: CODECOPY
00000747: PUSH0
00000748: MLOAD
00000749: SWAP1
0000074a: PUSH0
0000074b: MSTORE
0000074c: PUSH1 0x20
0000074e: MSTORE
0000074f: PUSH1 0x01
00000751: PUSH1 0x40
00000753: PUSH0
00000754: KECCAK256
00000755: ADD
00000756: SLOAD
00000757: SWAP1
00000758: JUMP
00000759: JUMPDEST
0000075a: PUSH2 0x4970
0000075d: JUMP
0000075e: JUMPDEST
0000075f: PUSH2 0x507a
00000762: JUMP
00000763: JUMPDEST
00000764: STOP
00000765: JUMPDEST
00000766: CALLVALUE
00000767: PUSH2 0x03b2
0000076a: JUMPI
0000076b: PUSH1 0xe0
0000076d: CALLDATASIZE
0000076e: PUSH1 0x03
00000770: NOT
00000771: ADD
00000772: SLT
00000773: PUSH2 0x03b2
00000776: JUMPI
00000777: PUSH2 0x077e
0000077a: PUSH2 0x3fa8
0000077d: JUMP
0000077e: JUMPDEST
0000077f: PUSH2 0x0786
00000782: PUSH2 0x3fbe
00000785: JUMP
00000786: JUMPDEST
00000787: PUSH1 0x44
00000789: CALLDATALOAD
0000078a: SWAP1
0000078b: PUSH1 0x64
0000078d: CALLDATALOAD
0000078e: SWAP3
0000078f: PUSH1 0x84
00000791: CALLDATALOAD
00000792: PUSH1 0xff
00000794: DUP2
00000795: AND
00000796: DUP2
00000797: SUB
00000798: PUSH2 0x03b2
0000079b: JUMPI
0000079c: DUP5
0000079d: TIMESTAMP
0000079e: GT
0000079f: PUSH2 0x08a8
000007a2: JUMPI
000007a3: PUSH2 0x087e
000007a6: PUSH2 0x0875
000007a9: PUSH1 0x01
000007ab: PUSH1 0x01
000007ad: PUSH1 0xa0
000007af: SHL
000007b0: SUB
000007b1: SWAP3
000007b2: DUP4
000007b3: DUP6
000007b4: AND
000007b5: SWAP8
000007b6: DUP9
000007b7: PUSH0
000007b8: MSTORE
000007b9: PUSH32 0x5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00
000007da: PUSH1 0x20
000007dc: MSTORE
000007dd: PUSH1 0x40
000007df: PUSH0
000007e0: KECCAK256
000007e1: SWAP1
000007e2: DUP2
000007e3: SLOAD
000007e4: SWAP2
000007e5: PUSH1 0x01
000007e7: DUP4
000007e8: ADD
000007e9: SWAP1
000007ea: SSTORE
000007eb: PUSH1 0x40
000007ed: MLOAD
000007ee: SWAP1
000007ef: PUSH1 0x20
000007f1: DUP3
000007f2: ADD
000007f3: SWAP3
000007f4: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
00000815: DUP5
00000816: MSTORE
00000817: DUP12
00000818: PUSH1 0x40
0000081a: DUP5
0000081b: ADD
0000081c: MSTORE
0000081d: DUP8
0000081e: DUP11
0000081f: AND
00000820: PUSH1 0x60
00000822: DUP5
00000823: ADD
00000824: MSTORE
00000825: DUP11
00000826: PUSH1 0x80
00000828: DUP5
00000829: ADD
0000082a: MSTORE
0000082b: PUSH1 0xa0
0000082d: DUP4
0000082e: ADD
0000082f: MSTORE
00000830: PUSH1 0xc0
00000832: DUP3
00000833: ADD
00000834: MSTORE
00000835: PUSH1 0xc0
00000837: DUP2
00000838: MSTORE
00000839: PUSH2 0x0843
0000083c: PUSH1 0xe0
0000083e: DUP3
0000083f: PUSH2 0x408d
00000842: JUMP
00000843: JUMPDEST
00000844: MLOAD
00000845: SWAP1
00000846: KECCAK256
00000847: PUSH2 0x084e
0000084a: PUSH2 0x57f6
0000084d: JUMP
0000084e: JUMPDEST
0000084f: SWAP1
00000850: PUSH1 0x40
00000852: MLOAD
00000853: SWAP2
00000854: PUSH2 0x1901
00000857: PUSH1 0xf0
00000859: SHL
0000085a: DUP4
0000085b: MSTORE
0000085c: PUSH1 0x02
0000085e: DUP4
0000085f: ADD
00000860: MSTORE
00000861: PUSH1 0x22
00000863: DUP3
00000864: ADD
00000865: MSTORE
00000866: PUSH1 0xc4
00000868: CALLDATALOAD
00000869: SWAP2
0000086a: PUSH1 0x42
0000086c: PUSH1 0xa4
0000086e: CALLDATALOAD
0000086f: SWAP3
00000870: KECCAK256
00000871: PUSH2 0x585d
00000874: JUMP
00000875: JUMPDEST
00000876: SWAP1
00000877: SWAP3
00000878: SWAP2
00000879: SWAP3
0000087a: PUSH2 0x58df
0000087d: JUMP
0000087e: JUMPDEST
0000087f: AND
00000880: DUP5
00000881: DUP2
00000882: SUB
00000883: PUSH2 0x0891
00000886: JUMPI
00000887: POP
00000888: PUSH2 0x0763
0000088b: SWAP4
0000088c: POP
0000088d: PUSH2 0x56b8
00000890: JUMP
00000891: JUMPDEST
00000892: DUP5
00000893: SWAP1
00000894: PUSH4 0x25c00723
00000899: PUSH1 0xe1
0000089b: SHL
0000089c: PUSH0
0000089d: MSTORE
0000089e: PUSH1 0x04
000008a0: MSTORE
000008a1: PUSH1 0x24
000008a3: MSTORE
000008a4: PUSH1 0x44
000008a6: PUSH0
000008a7: REVERT
000008a8: JUMPDEST
000008a9: DUP5
000008aa: PUSH4 0x313c8981
000008af: PUSH1 0xe1
000008b1: SHL
000008b2: PUSH0
000008b3: MSTORE
000008b4: PUSH1 0x04
000008b6: MSTORE
000008b7: PUSH1 0x24
000008b9: PUSH0
000008ba: REVERT
000008bb: JUMPDEST
000008bc: CALLVALUE
000008bd: PUSH2 0x03b2
000008c0: JUMPI
000008c1: PUSH0
000008c2: CALLDATASIZE
000008c3: PUSH1 0x03
000008c5: NOT
000008c6: ADD
000008c7: SLT
000008c8: PUSH2 0x03b2
000008cb: JUMPI
000008cc: PUSH1 0x20
000008ce: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea09
000008ef: SLOAD
000008f0: PUSH1 0x40
000008f2: MLOAD
000008f3: SWAP1
000008f4: DUP2
000008f5: MSTORE
000008f6: RETURN
000008f7: JUMPDEST
000008f8: CALLVALUE
000008f9: PUSH2 0x03b2
000008fc: JUMPI
000008fd: PUSH0
000008fe: CALLDATASIZE
000008ff: PUSH1 0x03
00000901: NOT
00000902: ADD
00000903: SLT
00000904: PUSH2 0x03b2
00000907: JUMPI
00000908: PUSH1 0x20
0000090a: PUSH1 0x40
0000090c: MLOAD
0000090d: PUSH32 0x66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e2102
0000092e: DUP2
0000092f: MSTORE
00000930: RETURN
00000931: JUMPDEST
00000932: CALLVALUE
00000933: PUSH2 0x03b2
00000936: JUMPI
00000937: PUSH32 0x5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac24
00000958: PUSH2 0x09ce
0000095b: PUSH2 0x0963
0000095e: CALLDATASIZE
0000095f: PUSH2 0x40f8
00000962: JUMP
00000963: JUMPDEST
00000964: PUSH2 0x096e
00000967: SWAP4
00000968: SWAP2
00000969: SWAP4
0000096a: PUSH2 0x4921
0000096d: JUMP
0000096e: JUMPDEST
0000096f: DUP1
00000970: PUSH2 0x0979
00000973: DUP6
00000974: DUP6
00000975: PUSH2 0x49bd
00000978: JUMP
00000979: JUMPDEST
0000097a: PUSH2 0x09a1
0000097d: DUP3
0000097e: PUSH2 0x099c
00000981: PUSH1 0x02
00000983: PUSH0
00000984: MLOAD
00000985: PUSH1 0x20
00000987: PUSH2 0x5b9d
0000098a: PUSH0
0000098b: CODECOPY
0000098c: PUSH0
0000098d: MLOAD
0000098e: SWAP1
0000098f: PUSH0
00000990: MSTORE
00000991: SLOAD
00000992: SWAP5
00000993: ADD
00000994: SWAP4
00000995: DUP5
00000996: SLOAD
00000997: SWAP1
00000998: PUSH2 0x45d3
0000099b: JUMP
0000099c: JUMPDEST
0000099d: PUSH2 0x45c6
000009a0: JUMP
000009a1: JUMPDEST
000009a2: PUSH0
000009a3: MLOAD
000009a4: PUSH1 0x20
000009a6: PUSH2 0x5b9d
000009a9: PUSH0
000009aa: CODECOPY
000009ab: PUSH0
000009ac: MLOAD
000009ad: SWAP1
000009ae: PUSH0
000009af: MSTORE
000009b0: SSTORE
000009b1: SSTORE
000009b2: PUSH1 0x40
000009b4: MLOAD
000009b5: SWAP4
000009b6: DUP5
000009b7: SWAP4
000009b8: DUP5
000009b9: PUSH1 0x40
000009bb: SWAP2
000009bc: SWAP5
000009bd: SWAP4
000009be: SWAP3
000009bf: PUSH1 0x60
000009c1: DUP3
000009c2: ADD
000009c3: SWAP6
000009c4: DUP3
000009c5: MSTORE
000009c6: PUSH1 0x20
000009c8: DUP3
000009c9: ADD
000009ca: MSTORE
000009cb: ADD
000009cc: MSTORE
000009cd: JUMP
000009ce: JUMPDEST
000009cf: SUB
000009d0: SWAP1
000009d1: LOG1
000009d2: STOP
000009d3: JUMPDEST
000009d4: CALLVALUE
000009d5: PUSH2 0x03b2
000009d8: JUMPI
000009d9: PUSH1 0x20
000009db: PUSH2 0x09e3
000009de: CALLDATASIZE
000009df: PUSH2 0x3ff9
000009e2: JUMP
000009e3: JUMPDEST
000009e4: PUSH2 0x09f2
000009e7: SWAP6
000009e8: SWAP3
000009e9: SWAP2
000009ea: SWAP6
000009eb: SWAP5
000009ec: SWAP4
000009ed: SWAP5
000009ee: PUSH2 0x487d
000009f1: JUMP
000009f2: JUMPDEST
000009f3: PUSH2 0x09fa
000009f6: PUSH2 0x48b2
000009f9: JUMP
000009fa: JUMPDEST
000009fb: PUSH0
000009fc: SWAP1
000009fd: PUSH2 0x0afa
00000a00: JUMPI
00000a01: JUMPDEST
00000a02: PUSH2 0x0a19
00000a05: PUSH0
00000a06: MLOAD
00000a07: PUSH1 0x20
00000a09: PUSH2 0x5cdd
00000a0c: PUSH0
00000a0d: CODECOPY
00000a0e: PUSH0
00000a0f: MLOAD
00000a10: SWAP1
00000a11: PUSH0
00000a12: MSTORE
00000a13: SLOAD
00000a14: DUP4
00000a15: PUSH2 0x45e0
00000a18: JUMP
00000a19: JUMPDEST
00000a1a: PUSH1 0x01
00000a1c: SWAP1
00000a1d: CHAINID
00000a1e: DUP6
00000a1f: SUB
00000a20: PUSH2 0x0ae9
00000a23: JUMPI
00000a24: JUMPDEST
00000a25: DUP2
00000a26: PUSH2 0x0ac0
00000a29: JUMPI
00000a2a: JUMPDEST
00000a2b: POP
00000a2c: ISZERO
00000a2d: PUSH2 0x0aad
00000a30: JUMPI
00000a31: POP
00000a32: PUSH32 0xcf0b8bea497be617351b2c1a4243bd9e92167fdf778a43ebb66fb37160594a0f
00000a53: SWAP4
00000a54: SWAP5
00000a55: PUSH2 0x0a8f
00000a58: SWAP2
00000a59: PUSH1 0x01
00000a5b: SWAP7
00000a5c: PUSH1 0x40
00000a5e: MLOAD
00000a5f: SWAP6
00000a60: DUP7
00000a61: SWAP6
00000a62: DUP7
00000a63: SWAP2
00000a64: PUSH1 0x80
00000a66: SWAP4
00000a67: PUSH1 0x01
00000a69: PUSH1 0x01
00000a6b: PUSH1 0xa0
00000a6d: SHL
00000a6e: SUB
00000a6f: SWAP2
00000a70: SWAP8
00000a71: SWAP7
00000a72: SWAP6
00000a73: SWAP3
00000a74: SWAP8
00000a75: PUSH1 0xa0
00000a77: DUP6
00000a78: ADD
00000a79: SWAP9
00000a7a: DUP6
00000a7b: MSTORE
00000a7c: PUSH1 0x20
00000a7e: DUP6
00000a7f: ADD
00000a80: MSTORE
00000a81: AND
00000a82: PUSH1 0x40
00000a84: DUP4
00000a85: ADD
00000a86: MSTORE
00000a87: PUSH1 0x60
00000a89: DUP3
00000a8a: ADD
00000a8b: MSTORE
00000a8c: ADD
00000a8d: MSTORE
00000a8e: JUMP
00000a8f: JUMPDEST
00000a90: SUB
00000a91: SWAP1
00000a92: LOG1
00000a93: JUMPDEST
00000a94: PUSH0
00000a95: PUSH0
00000a96: MLOAD
00000a97: PUSH1 0x20
00000a99: PUSH2 0x5cfd
00000a9c: PUSH0
00000a9d: CODECOPY
00000a9e: PUSH0
00000a9f: MLOAD
00000aa0: SWAP1
00000aa1: PUSH0
00000aa2: MSTORE
00000aa3: TSTORE
00000aa4: PUSH1 0x40
00000aa6: MLOAD
00000aa7: SWAP1
00000aa8: ISZERO
00000aa9: ISZERO
00000aaa: DUP2
00000aab: MSTORE
00000aac: RETURN
00000aad: JUMPDEST
00000aae: SWAP5
00000aaf: POP
00000ab0: POP
00000ab1: POP
00000ab2: POP
00000ab3: POP
00000ab4: PUSH2 0x0abb
00000ab7: PUSH2 0x545c
00000aba: JUMP
00000abb: JUMPDEST
00000abc: PUSH2 0x0a93
00000abf: JUMP
00000ac0: JUMPDEST
00000ac1: PUSH2 0x0ae3
00000ac4: SWAP2
00000ac5: POP
00000ac6: DUP7
00000ac7: PUSH1 0x01
00000ac9: PUSH1 0x01
00000acb: PUSH1 0xa0
00000acd: SHL
00000ace: SUB
00000acf: PUSH0
00000ad0: MLOAD
00000ad1: PUSH1 0x20
00000ad3: PUSH2 0x5d1d
00000ad6: PUSH0
00000ad7: CODECOPY
00000ad8: PUSH0
00000ad9: MLOAD
00000ada: SWAP1
00000adb: PUSH0
00000adc: MSTORE
00000add: SLOAD
00000ade: AND
00000adf: PUSH2 0x53d7
00000ae2: JUMP
00000ae3: JUMPDEST
00000ae4: DUP9
00000ae5: PUSH2 0x0a2a
00000ae8: JUMP
00000ae9: JUMPDEST
00000aea: SWAP1
00000aeb: POP
00000aec: PUSH2 0x0af4
00000aef: DUP2
00000af0: PUSH2 0x523c
00000af3: JUMP
00000af4: JUMPDEST
00000af5: SWAP1
00000af6: PUSH2 0x0a24
00000af9: JUMP
00000afa: JUMPDEST
00000afb: DUP6
00000afc: ISZERO
00000afd: ISZERO
00000afe: DUP1
00000aff: PUSH2 0x0b4e
00000b02: JUMPI
00000b03: JUMPDEST
00000b04: PUSH2 0x0b27
00000b07: JUMPI
00000b08: JUMPDEST
00000b09: PUSH1 0x05
00000b0b: PUSH2 0x0b14
00000b0e: DUP6
00000b0f: DUP6
00000b10: PUSH2 0x49bd
00000b13: JUMP
00000b14: JUMPDEST
00000b15: ADD
00000b16: PUSH2 0x0b20
00000b19: DUP4
00000b1a: DUP3
00000b1b: SLOAD
00000b1c: PUSH2 0x45d3
00000b1f: JUMP
00000b20: JUMPDEST
00000b21: SWAP1
00000b22: SSTORE
00000b23: PUSH2 0x0a01
00000b26: JUMP
00000b27: JUMPDEST
00000b28: PUSH2 0x0b48
00000b2b: PUSH2 0x0b42
00000b2e: PUSH0
00000b2f: MLOAD
00000b30: PUSH1 0x20
00000b32: PUSH2 0x5cdd
00000b35: PUSH0
00000b36: CODECOPY
00000b37: PUSH0
00000b38: MLOAD
00000b39: SWAP1
00000b3a: PUSH0
00000b3b: MSTORE
00000b3c: SLOAD
00000b3d: DUP9
00000b3e: PUSH2 0x45e0
00000b41: JUMP
00000b42: JUMPDEST
00000b43: DUP7
00000b44: PUSH2 0x5531
00000b47: JUMP
00000b48: JUMPDEST
00000b49: POP
00000b4a: PUSH2 0x0b08
00000b4d: JUMP
00000b4e: JUMPDEST
00000b4f: POP
00000b50: PUSH1 0x01
00000b52: PUSH1 0x01
00000b54: PUSH1 0xa0
00000b56: SHL
00000b57: SUB
00000b58: DUP6
00000b59: AND
00000b5a: ISZERO
00000b5b: ISZERO
00000b5c: PUSH2 0x0b03
00000b5f: JUMP
00000b60: JUMPDEST
00000b61: CALLVALUE
00000b62: PUSH2 0x03b2
00000b65: JUMPI
00000b66: PUSH1 0xa0
00000b68: CALLDATASIZE
00000b69: PUSH1 0x03
00000b6b: NOT
00000b6c: ADD
00000b6d: SLT
00000b6e: PUSH2 0x03b2
00000b71: JUMPI
00000b72: PUSH2 0x0b79
00000b75: PUSH2 0x3fd4
00000b78: JUMP
00000b79: JUMPDEST
00000b7a: PUSH1 0x84
00000b7c: CALLDATALOAD
00000b7d: SWAP1
00000b7e: PUSH2 0x0b85
00000b81: PUSH2 0x487d
00000b84: JUMP
00000b85: JUMPDEST
00000b86: PUSH2 0x0b8d
00000b89: PUSH2 0x48b2
00000b8c: JUMP
00000b8d: JUMPDEST
00000b8e: DUP2
00000b8f: ISZERO
00000b90: ISZERO
00000b91: DUP1
00000b92: PUSH2 0x0bf7
00000b95: JUMPI
00000b96: JUMPDEST
00000b97: PUSH2 0x0bcd
00000b9a: JUMPI
00000b9b: JUMPDEST
00000b9c: PUSH1 0x05
00000b9e: PUSH2 0x0bab
00000ba1: PUSH1 0x24
00000ba3: CALLDATALOAD
00000ba4: PUSH1 0x04
00000ba6: CALLDATALOAD
00000ba7: PUSH2 0x49bd
00000baa: JUMP
00000bab: JUMPDEST
00000bac: ADD
00000bad: PUSH2 0x0bb9
00000bb0: PUSH1 0x64
00000bb2: CALLDATALOAD
00000bb3: DUP3
00000bb4: SLOAD
00000bb5: PUSH2 0x45d3
00000bb8: JUMP
00000bb9: JUMPDEST
00000bba: SWAP1
00000bbb: SSTORE
00000bbc: PUSH0
00000bbd: PUSH0
00000bbe: MLOAD
00000bbf: PUSH1 0x20
00000bc1: PUSH2 0x5cfd
00000bc4: PUSH0
00000bc5: CODECOPY
00000bc6: PUSH0
00000bc7: MLOAD
00000bc8: SWAP1
00000bc9: PUSH0
00000bca: MSTORE
00000bcb: TSTORE
00000bcc: STOP
00000bcd: JUMPDEST
00000bce: PUSH2 0x0be9
00000bd1: PUSH2 0x0bef
00000bd4: SWAP3
00000bd5: PUSH0
00000bd6: MLOAD
00000bd7: PUSH1 0x20
00000bd9: PUSH2 0x5cdd
00000bdc: PUSH0
00000bdd: CODECOPY
00000bde: PUSH0
00000bdf: MLOAD
00000be0: SWAP1
00000be1: PUSH0
00000be2: MSTORE
00000be3: SLOAD
00000be4: SWAP1
00000be5: PUSH2 0x45e0
00000be8: JUMP
00000be9: JUMPDEST
00000bea: SWAP1
00000beb: PUSH2 0x5531
00000bee: JUMP
00000bef: JUMPDEST
00000bf0: POP
00000bf1: DUP1
00000bf2: DUP1
00000bf3: PUSH2 0x0b9b
00000bf6: JUMP
00000bf7: JUMPDEST
00000bf8: POP
00000bf9: PUSH1 0x01
00000bfb: PUSH1 0x01
00000bfd: PUSH1 0xa0
00000bff: SHL
00000c00: SUB
00000c01: DUP2
00000c02: AND
00000c03: ISZERO
00000c04: ISZERO
00000c05: PUSH2 0x0b96
00000c08: JUMP
00000c09: JUMPDEST
00000c0a: CALLVALUE
00000c0b: PUSH2 0x03b2
00000c0e: JUMPI
00000c0f: PUSH2 0x0c43
00000c12: PUSH1 0xc0
00000c14: PUSH2 0x0c2d
00000c17: PUSH2 0x0c1f
00000c1a: CALLDATASIZE
00000c1b: PUSH2 0x417a
00000c1e: JUMP
00000c1f: JUMPDEST
00000c20: SWAP6
00000c21: SWAP3
00000c22: PUSH2 0x0408
00000c25: SWAP5
00000c26: SWAP3
00000c27: SWAP2
00000c28: SWAP5
00000c29: PUSH2 0x4494
00000c2c: JUMP
00000c2d: JUMPDEST
00000c2e: SWAP4
00000c2f: PUSH0
00000c30: MLOAD
00000c31: PUSH1 0x20
00000c33: PUSH2 0x5cdd
00000c36: PUSH0
00000c37: CODECOPY
00000c38: PUSH0
00000c39: MLOAD
00000c3a: SWAP1
00000c3b: PUSH0
00000c3c: MSTORE
00000c3d: SLOAD
00000c3e: SWAP1
00000c3f: PUSH2 0x45f3
00000c42: JUMP
00000c43: JUMPDEST
00000c44: SWAP3
00000c45: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b
00000c66: SLOAD
00000c67: SWAP1
00000c68: PUSH1 0xff
00000c6a: PUSH0
00000c6b: MLOAD
00000c6c: PUSH1 0x20
00000c6e: PUSH2 0x5afd
00000c71: PUSH0
00000c72: CODECOPY
00000c73: PUSH0
00000c74: MLOAD
00000c75: SWAP1
00000c76: PUSH0
00000c77: MSTORE
00000c78: SLOAD
00000c79: AND
00000c7a: PUSH2 0x0c81
00000c7d: PUSH2 0x4a5f
00000c80: JUMP
00000c81: JUMPDEST
00000c82: PUSH0
00000c83: MLOAD
00000c84: PUSH1 0x20
00000c86: PUSH2 0x5a7d
00000c89: PUSH0
00000c8a: CODECOPY
00000c8b: PUSH0
00000c8c: MLOAD
00000c8d: SWAP1
00000c8e: PUSH0
00000c8f: MSTORE
00000c90: SLOAD
00000c91: SWAP1
00000c92: PUSH0
00000c93: MLOAD
00000c94: PUSH1 0x20
00000c96: PUSH2 0x5cbd
00000c99: PUSH0
00000c9a: CODECOPY
00000c9b: PUSH0
00000c9c: MLOAD
00000c9d: SWAP1
00000c9e: PUSH0
00000c9f: MSTORE
00000ca0: SLOAD
00000ca1: SWAP3
00000ca2: PUSH1 0x40
00000ca4: MLOAD
00000ca5: SWAP6
00000ca6: PUSH2 0x0cae
00000ca9: DUP8
00000caa: PUSH2 0x4038
00000cad: JUMP
00000cae: JUMPDEST
00000caf: ADDRESS
00000cb0: DUP8
00000cb1: MSTORE
00000cb2: PUSH1 0x20
00000cb4: DUP8
00000cb5: ADD
00000cb6: MSTORE
00000cb7: PUSH1 0x40
00000cb9: DUP7
00000cba: ADD
00000cbb: MSTORE
00000cbc: PUSH1 0x60
00000cbe: DUP6
00000cbf: ADD
00000cc0: MSTORE
00000cc1: PUSH1 0x80
00000cc3: DUP5
00000cc4: ADD
00000cc5: MSTORE
00000cc6: PUSH1 0xa0
00000cc8: DUP4
00000cc9: ADD
00000cca: MSTORE
00000ccb: PUSH1 0x01
00000ccd: PUSH1 0x01
00000ccf: PUSH1 0xa0
00000cd1: SHL
00000cd2: SUB
00000cd3: PUSH0
00000cd4: MLOAD
00000cd5: PUSH1 0x20
00000cd7: PUSH2 0x5bbd
00000cda: PUSH0
00000cdb: CODECOPY
00000cdc: PUSH0
00000cdd: MLOAD
00000cde: SWAP1
00000cdf: PUSH0
00000ce0: MSTORE
00000ce1: SLOAD
00000ce2: AND
00000ce3: SWAP2
00000ce4: PUSH2 0x0d03
00000ce7: PUSH1 0x40
00000ce9: MLOAD
00000cea: SWAP7
00000ceb: DUP8
00000cec: SWAP6
00000ced: DUP7
00000cee: SWAP5
00000cef: DUP6
00000cf0: SWAP5
00000cf1: PUSH4 0x143273dd
00000cf6: PUSH1 0xe2
00000cf8: SHL
00000cf9: DUP7
00000cfa: MSTORE
00000cfb: PUSH1 0x04
00000cfd: DUP7
00000cfe: ADD
00000cff: PUSH2 0x4514
00000d02: JUMP
00000d03: JUMPDEST
00000d04: SUB
00000d05: SWAP2
00000d06: GAS
00000d07: STATICCALL
00000d08: DUP1
00000d09: ISZERO
00000d0a: PUSH2 0x0d8d
00000d0d: JUMPI
00000d0e: PUSH2 0x046f
00000d11: SWAP2
00000d12: PUSH0
00000d13: SWAP2
00000d14: PUSH2 0x0d5e
00000d17: JUMPI
00000d18: JUMPDEST
00000d19: POP
00000d1a: PUSH1 0x40
00000d1c: MLOAD
00000d1d: SWAP2
00000d1e: DUP3
00000d1f: SWAP2
00000d20: DUP3
00000d21: SWAP2
00000d22: SWAP1
00000d23: SWAP2
00000d24: PUSH1 0xa0
00000d26: DUP1
00000d27: PUSH1 0xc0
00000d29: DUP4
00000d2a: ADD
00000d2b: SWAP5
00000d2c: DUP1
00000d2d: MLOAD
00000d2e: DUP5
00000d2f: MSTORE
00000d30: PUSH1 0x20
00000d32: DUP2
00000d33: ADD
00000d34: MLOAD
00000d35: PUSH1 0x20
00000d37: DUP6
00000d38: ADD
00000d39: MSTORE
00000d3a: PUSH1 0x40
00000d3c: DUP2
00000d3d: ADD
00000d3e: MLOAD
00000d3f: PUSH1 0x40
00000d41: DUP6
00000d42: ADD
00000d43: MSTORE
00000d44: PUSH1 0x60
00000d46: DUP2
00000d47: ADD
00000d48: MLOAD
00000d49: PUSH1 0x60
00000d4b: DUP6
00000d4c: ADD
00000d4d: MSTORE
00000d4e: PUSH1 0x80
00000d50: DUP2
00000d51: ADD
00000d52: MLOAD
00000d53: PUSH1 0x80
00000d55: DUP6
00000d56: ADD
00000d57: MSTORE
00000d58: ADD
00000d59: MLOAD
00000d5a: SWAP2
00000d5b: ADD
00000d5c: MSTORE
00000d5d: JUMP
00000d5e: JUMPDEST
00000d5f: PUSH2 0x0d80
00000d62: SWAP2
00000d63: POP
00000d64: PUSH1 0xc0
00000d66: RETURNDATASIZE
00000d67: PUSH1 0xc0
00000d69: GT
00000d6a: PUSH2 0x0d86
00000d6d: JUMPI
00000d6e: JUMPDEST
00000d6f: PUSH2 0x0d78
00000d72: DUP2
00000d73: DUP4
00000d74: PUSH2 0x408d
00000d77: JUMP
00000d78: JUMPDEST
00000d79: DUP2
00000d7a: ADD
00000d7b: SWAP1
00000d7c: PUSH2 0x44c4
00000d7f: JUMP
00000d80: JUMPDEST
00000d81: DUP3
00000d82: PUSH2 0x0d18
00000d85: JUMP
00000d86: JUMPDEST
00000d87: POP
00000d88: RETURNDATASIZE
00000d89: PUSH2 0x0d6e
00000d8c: JUMP
00000d8d: JUMPDEST
00000d8e: PUSH1 0x40
00000d90: MLOAD
00000d91: RETURNDATASIZE
00000d92: PUSH0
00000d93: DUP3
00000d94: RETURNDATACOPY
00000d95: RETURNDATASIZE
00000d96: SWAP1
00000d97: REVERT
00000d98: JUMPDEST
00000d99: CALLVALUE
00000d9a: PUSH2 0x03b2
00000d9d: JUMPI
00000d9e: PUSH0
00000d9f: CALLDATASIZE
00000da0: PUSH1 0x03
00000da2: NOT
00000da3: ADD
00000da4: SLT
00000da5: PUSH2 0x03b2
00000da8: JUMPI
00000da9: PUSH1 0x20
00000dab: PUSH1 0x40
00000dad: MLOAD
00000dae: PUSH32 0x0000000000000000000000000000000000000000000000000000000000001c20
00000dcf: DUP2
00000dd0: MSTORE
00000dd1: RETURN
00000dd2: JUMPDEST
00000dd3: CALLVALUE
00000dd4: PUSH2 0x03b2
00000dd7: JUMPI
00000dd8: PUSH0
00000dd9: CALLDATASIZE
00000dda: PUSH1 0x03
00000ddc: NOT
00000ddd: ADD
00000dde: SLT
00000ddf: PUSH2 0x03b2
00000de2: JUMPI
00000de3: PUSH1 0x20
00000de5: PUSH1 0x01
00000de7: PUSH1 0x01
00000de9: PUSH1 0xa0
00000deb: SHL
00000dec: SUB
00000ded: PUSH0
00000dee: MLOAD
00000def: PUSH1 0x20
00000df1: PUSH2 0x5bbd
00000df4: PUSH0
00000df5: CODECOPY
00000df6: PUSH0
00000df7: MLOAD
00000df8: SWAP1
00000df9: PUSH0
00000dfa: MSTORE
00000dfb: SLOAD
00000dfc: AND
00000dfd: PUSH1 0x40
00000dff: MLOAD
00000e00: SWAP1
00000e01: DUP2
00000e02: MSTORE
00000e03: RETURN
00000e04: JUMPDEST
00000e05: CALLVALUE
00000e06: PUSH2 0x03b2
00000e09: JUMPI
00000e0a: PUSH0
00000e0b: CALLDATASIZE
00000e0c: PUSH1 0x03
00000e0e: NOT
00000e0f: ADD
00000e10: SLT
00000e11: PUSH2 0x03b2
00000e14: JUMPI
00000e15: PUSH1 0x20
00000e17: PUSH1 0x40
00000e19: MLOAD
00000e1a: PUSH32 0x000000000000000000000000000000000000000000000000000000174876e800
00000e3b: DUP2
00000e3c: MSTORE
00000e3d: RETURN
00000e3e: JUMPDEST
00000e3f: CALLVALUE
00000e40: PUSH2 0x03b2
00000e43: JUMPI
00000e44: PUSH0
00000e45: CALLDATASIZE
00000e46: PUSH1 0x03
00000e48: NOT
00000e49: ADD
00000e4a: SLT
00000e4b: PUSH2 0x03b2
00000e4e: JUMPI
00000e4f: PUSH2 0x046f
00000e52: PUSH1 0x40
00000e54: MLOAD
00000e55: PUSH2 0x0e5f
00000e58: PUSH1 0x40
00000e5a: DUP3
00000e5b: PUSH2 0x408d
00000e5e: JUMP
00000e5f: JUMPDEST
00000e60: PUSH1 0x05
00000e62: DUP2
00000e63: MSTORE
00000e64: PUSH5 0x0352e302e3
00000e6a: PUSH1 0xdc
00000e6c: SHL
00000e6d: PUSH1 0x20
00000e6f: DUP3
00000e70: ADD
00000e71: MSTORE
00000e72: PUSH1 0x40
00000e74: MLOAD
00000e75: SWAP2
00000e76: DUP3
00000e77: SWAP2
00000e78: PUSH1 0x20
00000e7a: DUP4
00000e7b: MSTORE
00000e7c: PUSH1 0x20
00000e7e: DUP4
00000e7f: ADD
00000e80: SWAP1
00000e81: PUSH2 0x3f84
00000e84: JUMP
00000e85: JUMPDEST
00000e86: CALLVALUE
00000e87: PUSH2 0x03b2
00000e8a: JUMPI
00000e8b: PUSH1 0x40
00000e8d: CALLDATASIZE
00000e8e: PUSH1 0x03
00000e90: NOT
00000e91: ADD
00000e92: SLT
00000e93: PUSH2 0x03b2
00000e96: JUMPI
00000e97: PUSH2 0x0eab
00000e9a: PUSH2 0x0ea1
00000e9d: PUSH2 0x3fa8
00000ea0: JUMP
00000ea1: JUMPDEST
00000ea2: PUSH1 0x24
00000ea4: CALLDATALOAD
00000ea5: SWAP1
00000ea6: CALLER
00000ea7: PUSH2 0x4de4
00000eaa: JUMP
00000eab: JUMPDEST
00000eac: PUSH1 0x20
00000eae: PUSH1 0x40
00000eb0: MLOAD
00000eb1: PUSH1 0x01
00000eb3: DUP2
00000eb4: MSTORE
00000eb5: RETURN
00000eb6: JUMPDEST
00000eb7: CALLVALUE
00000eb8: PUSH2 0x03b2
00000ebb: JUMPI
00000ebc: PUSH0
00000ebd: CALLDATASIZE
00000ebe: PUSH1 0x03
00000ec0: NOT
00000ec1: ADD
00000ec2: SLT
00000ec3: PUSH2 0x03b2
00000ec6: JUMPI
00000ec7: PUSH1 0x20
00000ec9: PUSH1 0x40
00000ecb: MLOAD
00000ecc: PUSH0
00000ecd: DUP2
00000ece: MSTORE
00000ecf: RETURN
00000ed0: JUMPDEST
00000ed1: CALLVALUE
00000ed2: PUSH2 0x03b2
00000ed5: JUMPI
00000ed6: PUSH1 0x20
00000ed8: CALLDATASIZE
00000ed9: PUSH1 0x03
00000edb: NOT
00000edc: ADD
00000edd: SLT
00000ede: PUSH2 0x03b2
00000ee1: JUMPI
00000ee2: PUSH32 0xc0aea4cb7421bc8d3cf83582abe451bd1705682eb83b02b88889940492aef5ca
00000f03: PUSH1 0x20
00000f05: PUSH2 0x0f0c
00000f08: PUSH2 0x3fea
00000f0b: JUMP
00000f0c: JUMPDEST
00000f0d: PUSH2 0x0f14
00000f10: PUSH2 0x4921
00000f13: JUMP
00000f14: JUMPDEST
00000f15: PUSH0
00000f16: MLOAD
00000f17: PUSH1 0x20
00000f19: PUSH2 0x5d1d
00000f1c: PUSH0
00000f1d: CODECOPY
00000f1e: PUSH0
00000f1f: MLOAD
00000f20: SWAP1
00000f21: PUSH0
00000f22: MSTORE
00000f23: DUP1
00000f24: SLOAD
00000f25: PUSH1 0xff
00000f27: PUSH1 0xa0
00000f29: SHL
00000f2a: NOT
00000f2b: AND
00000f2c: SWAP2
00000f2d: ISZERO
00000f2e: ISZERO
00000f2f: PUSH1 0xa0
00000f31: SWAP1
00000f32: DUP2
00000f33: SHL
00000f34: PUSH1 0xff
00000f36: PUSH1 0xa0
00000f38: SHL
00000f39: AND
00000f3a: SWAP3
00000f3b: SWAP1
00000f3c: SWAP3
00000f3d: OR
00000f3e: SWAP1
00000f3f: DUP2
00000f40: SWAP1
00000f41: SSTORE
00000f42: PUSH1 0x40
00000f44: MLOAD
00000f45: SWAP2
00000f46: SHR
00000f47: PUSH1 0xff
00000f49: AND
00000f4a: ISZERO
00000f4b: ISZERO
00000f4c: DUP2
00000f4d: MSTORE
00000f4e: LOG1
00000f4f: STOP
00000f50: JUMPDEST
00000f51: CALLVALUE
00000f52: PUSH2 0x03b2
00000f55: JUMPI
00000f56: PUSH0
00000f57: CALLDATASIZE
00000f58: PUSH1 0x03
00000f5a: NOT
00000f5b: ADD
00000f5c: SLT
00000f5d: PUSH2 0x03b2
00000f60: JUMPI
00000f61: PUSH2 0x0f68
00000f64: PUSH2 0x4921
00000f67: JUMP
00000f68: JUMPDEST
00000f69: PUSH2 0x0763
00000f6c: PUSH2 0x54c4
00000f6f: JUMP
00000f70: JUMPDEST
00000f71: CALLVALUE
00000f72: PUSH2 0x03b2
00000f75: JUMPI
00000f76: PUSH0
00000f77: CALLDATASIZE
00000f78: PUSH1 0x03
00000f7a: NOT
00000f7b: ADD
00000f7c: SLT
00000f7d: PUSH2 0x03b2
00000f80: JUMPI
00000f81: PUSH1 0x20
00000f83: PUSH0
00000f84: MLOAD
00000f85: PUSH1 0x20
00000f87: PUSH2 0x5cbd
00000f8a: PUSH0
00000f8b: CODECOPY
00000f8c: PUSH0
00000f8d: MLOAD
00000f8e: SWAP1
00000f8f: PUSH0
00000f90: MSTORE
00000f91: SLOAD
00000f92: PUSH1 0x40
00000f94: MLOAD
00000f95: SWAP1
00000f96: DUP2
00000f97: MSTORE
00000f98: RETURN
00000f99: JUMPDEST
00000f9a: CALLVALUE
00000f9b: PUSH2 0x03b2
00000f9e: JUMPI
00000f9f: PUSH0
00000fa0: CALLDATASIZE
00000fa1: PUSH1 0x03
00000fa3: NOT
00000fa4: ADD
00000fa5: SLT
00000fa6: PUSH2 0x03b2
00000fa9: JUMPI
00000faa: PUSH1 0x20
00000fac: PUSH1 0xff
00000fae: PUSH0
00000faf: MLOAD
00000fb0: PUSH1 0x20
00000fb2: PUSH2 0x5c9d
00000fb5: PUSH0
00000fb6: CODECOPY
00000fb7: PUSH0
00000fb8: MLOAD
00000fb9: SWAP1
00000fba: PUSH0
00000fbb: MSTORE
00000fbc: SLOAD
00000fbd: PUSH1 0x08
00000fbf: SHR
00000fc0: AND
00000fc1: PUSH1 0x40
00000fc3: MLOAD
00000fc4: SWAP1
00000fc5: ISZERO
00000fc6: ISZERO
00000fc7: DUP2
00000fc8: MSTORE
00000fc9: RETURN
00000fca: JUMPDEST
00000fcb: CALLVALUE
00000fcc: PUSH2 0x03b2
00000fcf: JUMPI
00000fd0: PUSH0
00000fd1: CALLDATASIZE
00000fd2: PUSH1 0x03
00000fd4: NOT
00000fd5: ADD
00000fd6: SLT
00000fd7: PUSH2 0x03b2
00000fda: JUMPI
00000fdb: PUSH1 0x20
00000fdd: PUSH0
00000fde: MLOAD
00000fdf: PUSH1 0x20
00000fe1: PUSH2 0x5b9d
00000fe4: PUSH0
00000fe5: CODECOPY
00000fe6: PUSH0
00000fe7: MLOAD
00000fe8: SWAP1
00000fe9: PUSH0
00000fea: MSTORE
00000feb: SLOAD
00000fec: PUSH1 0x40
00000fee: MLOAD
00000fef: SWAP1
00000ff0: DUP2
00000ff1: MSTORE
00000ff2: RETURN
00000ff3: JUMPDEST
00000ff4: CALLVALUE
00000ff5: PUSH2 0x03b2
00000ff8: JUMPI
00000ff9: PUSH0
00000ffa: CALLDATASIZE
00000ffb: PUSH1 0x03
00000ffd: NOT
00000ffe: ADD
00000fff: SLT
00001000: PUSH2 0x03b2
00001003: JUMPI
00001004: PUSH1 0x40
00001006: MLOAD
00001007: PUSH0
00001008: PUSH0
00001009: MLOAD
0000100a: PUSH1 0x20
0000100c: PUSH2 0x5b1d
0000100f: PUSH0
00001010: CODECOPY
00001011: PUSH0
00001012: MLOAD
00001013: SWAP1
00001014: PUSH0
00001015: MSTORE
00001016: SLOAD
00001017: PUSH2 0x101f
0000101a: DUP2
0000101b: PUSH2 0x41fd
0000101e: JUMP
0000101f: JUMPDEST
00001020: DUP1
00001021: DUP5
00001022: MSTORE
00001023: SWAP1
00001024: PUSH1 0x01
00001026: DUP2
00001027: AND
00001028: SWAP1
00001029: DUP2
0000102a: ISZERO
0000102b: PUSH2 0x10c5
0000102e: JUMPI
0000102f: POP
00001030: PUSH1 0x01
00001032: EQ
00001033: PUSH2 0x105b
00001036: JUMPI
00001037: JUMPDEST
00001038: PUSH2 0x046f
0000103b: DUP4
0000103c: PUSH2 0x1047
0000103f: DUP2
00001040: DUP6
00001041: SUB
00001042: DUP3
00001043: PUSH2 0x408d
00001046: JUMP
00001047: JUMPDEST
00001048: PUSH1 0x40
0000104a: MLOAD
0000104b: SWAP2
0000104c: DUP3
0000104d: SWAP2
0000104e: PUSH1 0x20
00001050: DUP4
00001051: MSTORE
00001052: PUSH1 0x20
00001054: DUP4
00001055: ADD
00001056: SWAP1
00001057: PUSH2 0x3f84
0000105a: JUMP
0000105b: JUMPDEST
0000105c: PUSH0
0000105d: MLOAD
0000105e: PUSH1 0x20
00001060: PUSH2 0x5b1d
00001063: PUSH0
00001064: CODECOPY
00001065: PUSH0
00001066: MLOAD
00001067: SWAP1
00001068: PUSH0
00001069: MSTORE
0000106a: PUSH0
0000106b: SWAP1
0000106c: DUP2
0000106d: MSTORE
0000106e: PUSH32 0x46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa
0000108f: SWAP4
00001090: SWAP3
00001091: POP
00001092: SWAP1
00001093: JUMPDEST
00001094: DUP1
00001095: DUP3
00001096: LT
00001097: PUSH2 0x10ab
0000109a: JUMPI
0000109b: POP
0000109c: SWAP1
0000109d: SWAP2
0000109e: POP
0000109f: DUP2
000010a0: ADD
000010a1: PUSH1 0x20
000010a3: ADD
000010a4: PUSH2 0x1047
000010a7: PUSH2 0x1037
000010aa: JUMP
000010ab: JUMPDEST
000010ac: SWAP2
000010ad: SWAP3
000010ae: PUSH1 0x01
000010b0: DUP2
000010b1: PUSH1 0x20
000010b3: SWAP3
000010b4: SLOAD
000010b5: DUP4
000010b6: DUP6
000010b7: DUP9
000010b8: ADD
000010b9: ADD
000010ba: MSTORE
000010bb: ADD
000010bc: SWAP2
000010bd: ADD
000010be: SWAP1
000010bf: SWAP3
000010c0: SWAP2
000010c1: PUSH2 0x1093
000010c4: JUMP
000010c5: JUMPDEST
000010c6: PUSH1 0xff
000010c8: NOT
000010c9: AND
000010ca: PUSH1 0x20
000010cc: DUP1
000010cd: DUP7
000010ce: ADD
000010cf: SWAP2
000010d0: SWAP1
000010d1: SWAP2
000010d2: MSTORE
000010d3: SWAP2
000010d4: ISZERO
000010d5: ISZERO
000010d6: PUSH1 0x05
000010d8: SHL
000010d9: DUP5
000010da: ADD
000010db: SWAP1
000010dc: SWAP2
000010dd: ADD
000010de: SWAP2
000010df: POP
000010e0: PUSH2 0x1047
000010e3: SWAP1
000010e4: POP
000010e5: PUSH2 0x1037
000010e8: JUMP
000010e9: JUMPDEST
000010ea: CALLVALUE
000010eb: PUSH2 0x03b2
000010ee: JUMPI
000010ef: PUSH2 0x0140
000010f2: CALLDATASIZE
000010f3: PUSH1 0x03
000010f5: NOT
000010f6: ADD
000010f7: SLT
000010f8: PUSH2 0x03b2
000010fb: JUMPI
000010fc: PUSH1 0x04
000010fe: CALLDATALOAD
000010ff: PUSH2 0x1106
00001102: PUSH2 0x3fd4
00001105: JUMP
00001106: JUMPDEST
00001107: SWAP1
00001108: PUSH2 0x1110
0000110b: CALLDATASIZE
0000110c: PUSH2 0x40af
0000110f: JUMP
00001110: JUMPDEST
00001111: SWAP2
00001112: PUSH2 0x0124
00001115: CALLDATALOAD
00001116: SWAP1
00001117: DUP2
00001118: ISZERO
00001119: ISZERO
0000111a: DUP3
0000111b: SUB
0000111c: PUSH2 0x03b2
0000111f: JUMPI
00001120: PUSH1 0x40
00001122: SWAP4
00001123: PUSH2 0x112a
00001126: PUSH2 0x487d
00001129: JUMP
0000112a: JUMPDEST
0000112b: PUSH2 0x1132
0000112e: PUSH2 0x48b2
00001131: JUMP
00001132: JUMPDEST
00001133: PUSH0
00001134: SWAP3
00001135: PUSH2 0x1240
00001138: JUMPI
00001139: JUMPDEST
0000113a: DUP1
0000113b: MLOAD
0000113c: SWAP3
0000113d: PUSH2 0x1164
00001140: PUSH2 0x114f
00001143: PUSH1 0x80
00001145: DUP5
00001146: ADD
00001147: SWAP6
00001148: DUP7
00001149: MLOAD
0000114a: SWAP1
0000114b: PUSH2 0x45c6
0000114e: JUMP
0000114f: JUMPDEST
00001150: PUSH0
00001151: MLOAD
00001152: PUSH1 0x20
00001154: PUSH2 0x5cdd
00001157: PUSH0
00001158: CODECOPY
00001159: PUSH0
0000115a: MLOAD
0000115b: SWAP1
0000115c: PUSH0
0000115d: MSTORE
0000115e: SLOAD
0000115f: SWAP1
00001160: PUSH2 0x45e0
00001163: JUMP
00001164: JUMPDEST
00001165: SWAP5
00001166: PUSH1 0x01
00001168: SWAP1
00001169: CHAINID
0000116a: SUB
0000116b: PUSH2 0x1231
0000116e: JUMPI
0000116f: JUMPDEST
00001170: DUP1
00001171: PUSH2 0x1209
00001174: JUMPI
00001175: JUMPDEST
00001176: ISZERO
00001177: PUSH2 0x11f8
0000117a: JUMPI
0000117b: POP
0000117c: PUSH32 0x82f23eb0ffa46ea98b1a7134447f74561cec3e194d0f1d06ffc35ce71ae80336
0000119d: SWAP2
0000119e: PUSH1 0x80
000011a0: SWAP2
000011a1: PUSH2 0x11b0
000011a4: PUSH1 0x01
000011a6: SWAP6
000011a7: DUP3
000011a8: MLOAD
000011a9: SWAP1
000011aa: MLOAD
000011ab: SWAP1
000011ac: PUSH2 0x45c6
000011af: JUMP
000011b0: JUMPDEST
000011b1: SWAP1
000011b2: PUSH1 0x60
000011b4: PUSH1 0x20
000011b6: DUP3
000011b7: ADD
000011b8: MLOAD
000011b9: SWAP2
000011ba: ADD
000011bb: MLOAD
000011bc: SWAP2
000011bd: PUSH1 0x01
000011bf: PUSH1 0x01
000011c1: PUSH1 0xa0
000011c3: SHL
000011c4: SUB
000011c5: DUP10
000011c6: MLOAD
000011c7: SWAP5
000011c8: AND
000011c9: DUP5
000011ca: MSTORE
000011cb: PUSH1 0x20
000011cd: DUP5
000011ce: ADD
000011cf: MSTORE
000011d0: DUP8
000011d1: DUP4
000011d2: ADD
000011d3: MSTORE
000011d4: PUSH1 0x60
000011d6: DUP3
000011d7: ADD
000011d8: MSTORE
000011d9: LOG1
000011da: JUMPDEST
000011db: PUSH0
000011dc: PUSH0
000011dd: MLOAD
000011de: PUSH1 0x20
000011e0: PUSH2 0x5cfd
000011e3: PUSH0
000011e4: CODECOPY
000011e5: PUSH0
000011e6: MLOAD
000011e7: SWAP1
000011e8: PUSH0
000011e9: MSTORE
000011ea: TSTORE
000011eb: DUP3
000011ec: MLOAD
000011ed: SWAP2
000011ee: DUP3
000011ef: MSTORE
000011f0: ISZERO
000011f1: ISZERO
000011f2: PUSH1 0x20
000011f4: DUP3
000011f5: ADD
000011f6: MSTORE
000011f7: RETURN
000011f8: JUMPDEST
000011f9: SWAP3
000011fa: POP
000011fb: POP
000011fc: POP
000011fd: PUSH2 0x1204
00001200: PUSH2 0x545c
00001203: JUMP
00001204: JUMPDEST
00001205: PUSH2 0x11da
00001208: JUMP
00001209: JUMPDEST
0000120a: POP
0000120b: PUSH2 0x122c
0000120e: DUP6
0000120f: DUP5
00001210: PUSH1 0x01
00001212: PUSH1 0x01
00001214: PUSH1 0xa0
00001216: SHL
00001217: SUB
00001218: PUSH0
00001219: MLOAD
0000121a: PUSH1 0x20
0000121c: PUSH2 0x5d1d
0000121f: PUSH0
00001220: CODECOPY
00001221: PUSH0
00001222: MLOAD
00001223: SWAP1
00001224: PUSH0
00001225: MSTORE
00001226: SLOAD
00001227: AND
00001228: PUSH2 0x53d7
0000122b: JUMP
0000122c: JUMPDEST
0000122d: PUSH2 0x1175
00001230: JUMP
00001231: JUMPDEST
00001232: POP
00001233: PUSH2 0x123b
00001236: DUP6
00001237: PUSH2 0x523c
0000123a: JUMP
0000123b: JUMPDEST
0000123c: PUSH2 0x116f
0000123f: JUMP
00001240: JUMPDEST
00001241: PUSH2 0x1249
00001244: DUP2
00001245: PUSH2 0x5117
00001248: JUMP
00001249: JUMPDEST
0000124a: PUSH1 0xa0
0000124c: DUP2
0000124d: ADD
0000124e: MLOAD
0000124f: PUSH2 0x1268
00001252: PUSH1 0x05
00001254: PUSH2 0x125f
00001257: PUSH1 0x24
00001259: CALLDATALOAD
0000125a: DUP9
0000125b: PUSH2 0x49bd
0000125e: JUMP
0000125f: JUMPDEST
00001260: ADD
00001261: SWAP2
00001262: DUP3
00001263: SLOAD
00001264: PUSH2 0x45d3
00001267: JUMP
00001268: JUMPDEST
00001269: SWAP1
0000126a: SSTORE
0000126b: PUSH2 0x1139
0000126e: JUMP
0000126f: JUMPDEST
00001270: CALLVALUE
00001271: PUSH2 0x03b2
00001274: JUMPI
00001275: PUSH1 0x40
00001277: CALLDATASIZE
00001278: PUSH1 0x03
0000127a: NOT
0000127b: ADD
0000127c: SLT
0000127d: PUSH2 0x03b2
00001280: JUMPI
00001281: PUSH2 0x1288
00001284: PUSH2 0x3fbe
00001287: JUMP
00001288: JUMPDEST
00001289: PUSH1 0x04
0000128b: CALLDATALOAD
0000128c: PUSH0
0000128d: MSTORE
0000128e: PUSH0
0000128f: MLOAD
00001290: PUSH1 0x20
00001292: PUSH2 0x5c5d
00001295: PUSH0
00001296: CODECOPY
00001297: PUSH0
00001298: MLOAD
00001299: SWAP1
0000129a: PUSH0
0000129b: MSTORE
0000129c: PUSH1 0x20
0000129e: MSTORE
0000129f: PUSH1 0x01
000012a1: PUSH1 0x01
000012a3: PUSH1 0xa0
000012a5: SHL
000012a6: SUB
000012a7: PUSH1 0x40
000012a9: PUSH0
000012aa: KECCAK256
000012ab: SWAP2
000012ac: AND
000012ad: PUSH0
000012ae: MSTORE
000012af: PUSH1 0x20
000012b1: MSTORE
000012b2: PUSH1 0x20
000012b4: PUSH1 0xff
000012b6: PUSH1 0x40
000012b8: PUSH0
000012b9: KECCAK256
000012ba: SLOAD
000012bb: AND
000012bc: PUSH1 0x40
000012be: MLOAD
000012bf: SWAP1
000012c0: ISZERO
000012c1: ISZERO
000012c2: DUP2
000012c3: MSTORE
000012c4: RETURN
000012c5: JUMPDEST
000012c6: CALLVALUE
000012c7: PUSH2 0x03b2
000012ca: JUMPI
000012cb: PUSH1 0x20
000012cd: CALLDATASIZE
000012ce: PUSH1 0x03
000012d0: NOT
000012d1: ADD
000012d2: SLT
000012d3: PUSH2 0x03b2
000012d6: JUMPI
000012d7: PUSH1 0x04
000012d9: CALLDATALOAD
000012da: PUSH2 0x12e1
000012dd: PUSH2 0x4921
000012e0: JUMP
000012e1: JUMPDEST
000012e2: PUSH32 0x0320c21101a3b92f1a57a1daef0827408be5f6cb7bb44fb426cc4152663e611d
00001303: PUSH1 0x20
00001305: PUSH1 0x40
00001307: MLOAD
00001308: DUP4
00001309: DUP2
0000130a: MSTORE
0000130b: LOG1
0000130c: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d
0000132d: SSTORE
0000132e: STOP
0000132f: JUMPDEST
00001330: CALLVALUE
00001331: PUSH2 0x03b2
00001334: JUMPI
00001335: PUSH1 0x20
00001337: CALLDATASIZE
00001338: PUSH1 0x03
0000133a: NOT
0000133b: ADD
0000133c: SLT
0000133d: PUSH2 0x03b2
00001340: JUMPI
00001341: PUSH0
00001342: MLOAD
00001343: PUSH1 0x20
00001345: PUSH2 0x5b5d
00001348: PUSH0
00001349: CODECOPY
0000134a: PUSH0
0000134b: MLOAD
0000134c: SWAP1
0000134d: PUSH0
0000134e: MSTORE
0000134f: SLOAD
00001350: DUP1
00001351: ISZERO
00001352: PUSH2 0x1385
00001355: JUMPI
00001356: PUSH2 0x137d
00001359: PUSH2 0x114f
0000135c: PUSH1 0x20
0000135e: SWAP3
0000135f: PUSH2 0x1378
00001362: PUSH0
00001363: MLOAD
00001364: PUSH1 0x20
00001366: PUSH2 0x5a7d
00001369: PUSH0
0000136a: CODECOPY
0000136b: PUSH0
0000136c: MLOAD
0000136d: SWAP1
0000136e: PUSH0
0000136f: MSTORE
00001370: SLOAD
00001371: PUSH1 0x04
00001373: CALLDATALOAD
00001374: PUSH2 0x45e0
00001377: JUMP
00001378: JUMPDEST
00001379: PUSH2 0x45f3
0000137c: JUMP
0000137d: JUMPDEST
0000137e: PUSH1 0x40
00001380: MLOAD
00001381: SWAP1
00001382: DUP2
00001383: MSTORE
00001384: RETURN
00001385: JUMPDEST
00001386: PUSH1 0x40
00001388: MLOAD
00001389: PUSH4 0x4612b38f
0000138e: PUSH1 0xe0
00001390: SHL
00001391: DUP2
00001392: MSTORE
00001393: PUSH1 0x20
00001395: PUSH1 0x04
00001397: DUP3
00001398: ADD
00001399: MSTORE
0000139a: PUSH1 0x0b
0000139c: PUSH1 0x24
0000139e: DUP3
0000139f: ADD
000013a0: MSTORE
000013a1: PUSH11 0x746f74616c537570706c79
000013ad: PUSH1 0xa8
000013af: SHL
000013b0: PUSH1 0x44
000013b2: DUP3
000013b3: ADD
000013b4: MSTORE
000013b5: PUSH1 0x64
000013b7: SWAP1
000013b8: REVERT
000013b9: JUMPDEST
000013ba: CALLVALUE
000013bb: PUSH2 0x03b2
000013be: JUMPI
000013bf: PUSH1 0x20
000013c1: CALLDATASIZE
000013c2: PUSH1 0x03
000013c4: NOT
000013c5: ADD
000013c6: SLT
000013c7: PUSH2 0x03b2
000013ca: JUMPI
000013cb: PUSH2 0x13d2
000013ce: PUSH2 0x3fa8
000013d1: JUMP
000013d2: JUMPDEST
000013d3: PUSH2 0x13da
000013d6: PUSH2 0x4921
000013d9: JUMP
000013da: JUMPDEST
000013db: PUSH1 0x01
000013dd: PUSH1 0x01
000013df: PUSH1 0xa0
000013e1: SHL
000013e2: SUB
000013e3: DUP2
000013e4: AND
000013e5: ISZERO
000013e6: PUSH2 0x1495
000013e9: JUMPI
000013ea: PUSH0
000013eb: MLOAD
000013ec: PUSH1 0x20
000013ee: PUSH2 0x5d5d
000013f1: PUSH0
000013f2: CODECOPY
000013f3: PUSH0
000013f4: MLOAD
000013f5: SWAP1
000013f6: PUSH0
000013f7: MSTORE
000013f8: SLOAD
000013f9: SWAP1
000013fa: DUP2
000013fb: ISZERO
000013fc: PUSH2 0x1486
000013ff: JUMPI
00001400: PUSH2 0x141b
00001403: PUSH2 0x0763
00001406: SWAP3
00001407: PUSH0
00001408: MLOAD
00001409: PUSH1 0x20
0000140b: PUSH2 0x5cdd
0000140e: PUSH0
0000140f: CODECOPY
00001410: PUSH0
00001411: MLOAD
00001412: SWAP1
00001413: PUSH0
00001414: MSTORE
00001415: SLOAD
00001416: SWAP1
00001417: PUSH2 0x45e0
0000141a: JUMP
0000141b: JUMPDEST
0000141c: PUSH0
0000141d: PUSH0
0000141e: MLOAD
0000141f: PUSH1 0x20
00001421: PUSH2 0x5d5d
00001424: PUSH0
00001425: CODECOPY
00001426: PUSH0
00001427: MLOAD
00001428: SWAP1
00001429: PUSH0
0000142a: MSTORE
0000142b: SSTORE
0000142c: PUSH1 0x40
0000142e: DUP1
0000142f: MLOAD
00001430: PUSH1 0x01
00001432: PUSH1 0x01
00001434: PUSH1 0xa0
00001436: SHL
00001437: SUB
00001438: DUP5
00001439: AND
0000143a: DUP2
0000143b: MSTORE
0000143c: PUSH1 0x20
0000143e: DUP2
0000143f: ADD
00001440: DUP4
00001441: SWAP1
00001442: MSTORE
00001443: SWAP2
00001444: SWAP3
00001445: SWAP2
00001446: PUSH32 0x0a7a10dab02ee70c589a87e2b0d57484d85d029e381c3ca52387e25486a4c538
00001467: SWAP2
00001468: SWAP1
00001469: LOG1
0000146a: PUSH1 0x01
0000146c: PUSH1 0x01
0000146e: PUSH1 0xa0
00001470: SHL
00001471: SUB
00001472: PUSH0
00001473: MLOAD
00001474: PUSH1 0x20
00001476: PUSH2 0x5d1d
00001479: PUSH0
0000147a: CODECOPY
0000147b: PUSH0
0000147c: MLOAD
0000147d: SWAP1
0000147e: PUSH0
0000147f: MSTORE
00001480: SLOAD
00001481: AND
00001482: PUSH2 0x5202
00001485: JUMP
00001486: JUMPDEST
00001487: PUSH4 0x6e63c7c3
0000148c: PUSH1 0xe0
0000148e: SHL
0000148f: PUSH0
00001490: MSTORE
00001491: PUSH1 0x04
00001493: PUSH0
00001494: REVERT
00001495: JUMPDEST
00001496: PUSH1 0x40
00001498: MLOAD
00001499: PUSH4 0x6bc37c5f
0000149e: PUSH1 0xe1
000014a0: SHL
000014a1: DUP2
000014a2: MSTORE
000014a3: PUSH1 0x20
000014a5: PUSH1 0x04
000014a7: DUP3
000014a8: ADD
000014a9: MSTORE
000014aa: PUSH1 0x02
000014ac: PUSH1 0x24
000014ae: DUP3
000014af: ADD
000014b0: MSTORE
000014b1: PUSH2 0x746f
000014b4: PUSH1 0xf0
000014b6: SHL
000014b7: PUSH1 0x44
000014b9: DUP3
000014ba: ADD
000014bb: MSTORE
000014bc: PUSH1 0x64
000014be: SWAP1
000014bf: REVERT
000014c0: JUMPDEST
000014c1: CALLVALUE
000014c2: PUSH2 0x03b2
000014c5: JUMPI
000014c6: PUSH1 0x20
000014c8: CALLDATASIZE
000014c9: PUSH1 0x03
000014cb: NOT
000014cc: ADD
000014cd: SLT
000014ce: PUSH2 0x03b2
000014d1: JUMPI
000014d2: PUSH1 0x01
000014d4: PUSH1 0x01
000014d6: PUSH1 0xa0
000014d8: SHL
000014d9: SUB
000014da: PUSH2 0x14e1
000014dd: PUSH2 0x3fa8
000014e0: JUMP
000014e1: JUMPDEST
000014e2: PUSH2 0x14e9
000014e5: PUSH2 0x4921
000014e8: JUMP
000014e9: JUMPDEST
000014ea: AND
000014eb: PUSH1 0x01
000014ed: PUSH1 0x01
000014ef: PUSH1 0xa0
000014f1: SHL
000014f2: SUB
000014f3: NOT
000014f4: PUSH0
000014f5: MLOAD
000014f6: PUSH1 0x20
000014f8: PUSH2 0x5bbd
000014fb: PUSH0
000014fc: CODECOPY
000014fd: PUSH0
000014fe: MLOAD
000014ff: SWAP1
00001500: PUSH0
00001501: MSTORE
00001502: SLOAD
00001503: AND
00001504: OR
00001505: PUSH0
00001506: MLOAD
00001507: PUSH1 0x20
00001509: PUSH2 0x5bbd
0000150c: PUSH0
0000150d: CODECOPY
0000150e: PUSH0
0000150f: MLOAD
00001510: SWAP1
00001511: PUSH0
00001512: MSTORE
00001513: SSTORE
00001514: PUSH0
00001515: DUP1
00001516: RETURN
00001517: JUMPDEST
00001518: CALLVALUE
00001519: PUSH2 0x03b2
0000151c: JUMPI
0000151d: PUSH2 0x1525
00001520: CALLDATASIZE
00001521: PUSH2 0x4112
00001524: JUMP
00001525: JUMPDEST
00001526: SWAP1
00001527: PUSH1 0x40
00001529: MLOAD
0000152a: SWAP1
0000152b: PUSH2 0x1533
0000152e: DUP3
0000152f: PUSH2 0x4071
00001532: JUMP
00001533: JUMPDEST
00001534: PUSH0
00001535: DUP3
00001536: MSTORE
00001537: PUSH1 0x20
00001539: DUP3
0000153a: ADD
0000153b: SWAP1
0000153c: PUSH0
0000153d: DUP3
0000153e: MSTORE
0000153f: PUSH2 0x1546
00001542: PUSH2 0x487d
00001545: JUMP
00001546: JUMPDEST
00001547: PUSH2 0x154e
0000154a: PUSH2 0x48b2
0000154d: JUMP
0000154e: JUMPDEST
0000154f: PUSH2 0x1558
00001552: DUP5
00001553: DUP3
00001554: PUSH2 0x49bd
00001557: JUMP
00001558: JUMPDEST
00001559: SWAP1
0000155a: PUSH1 0x01
0000155c: PUSH1 0xff
0000155e: PUSH1 0x07
00001560: DUP5
00001561: ADD
00001562: SLOAD
00001563: AND
00001564: ISZERO
00001565: ISZERO
00001566: SUB
00001567: PUSH2 0x161c
0000156a: JUMPI
0000156b: POP
0000156c: PUSH1 0x40
0000156e: SWAP4
0000156f: PUSH0
00001570: PUSH32 0x0aeafd14584f8a6bfe6b3846da893395e218188cb3ba5586a705848f7fbcb1ad
00001591: SWAP3
00001592: PUSH2 0x15c6
00001595: PUSH2 0x15b1
00001598: PUSH0
00001599: MLOAD
0000159a: PUSH1 0x20
0000159c: PUSH2 0x5a7d
0000159f: PUSH0
000015a0: CODECOPY
000015a1: PUSH0
000015a2: MLOAD
000015a3: SWAP1
000015a4: PUSH0
000015a5: MSTORE
000015a6: SLOAD
000015a7: PUSH1 0x02
000015a9: DUP5
000015aa: ADD
000015ab: SLOAD
000015ac: SWAP1
000015ad: PUSH2 0x45e0
000015b0: JUMP
000015b1: JUMPDEST
000015b2: PUSH0
000015b3: MLOAD
000015b4: PUSH1 0x20
000015b6: PUSH2 0x5b9d
000015b9: PUSH0
000015ba: CODECOPY
000015bb: PUSH0
000015bc: MLOAD
000015bd: SWAP1
000015be: PUSH0
000015bf: MSTORE
000015c0: SLOAD
000015c1: SWAP1
000015c2: PUSH2 0x45f3
000015c5: JUMP
000015c6: JUMPDEST
000015c7: DUP6
000015c8: MSTORE
000015c9: PUSH1 0x06
000015cb: DUP2
000015cc: ADD
000015cd: SWAP1
000015ce: PUSH2 0x15e1
000015d1: PUSH1 0x05
000015d3: DUP4
000015d4: SLOAD
000015d5: SWAP3
000015d6: DUP4
000015d7: DUP11
000015d8: MSTORE
000015d9: ADD
000015da: SWAP2
000015db: DUP3
000015dc: SLOAD
000015dd: PUSH2 0x45c6
000015e0: JUMP
000015e1: JUMPDEST
000015e2: SWAP1
000015e3: SSTORE
000015e4: SSTORE
000015e5: DUP4
000015e6: MLOAD
000015e7: DUP4
000015e8: MLOAD
000015e9: DUP7
000015ea: MLOAD
000015eb: SWAP3
000015ec: DUP4
000015ed: MSTORE
000015ee: PUSH1 0x20
000015f0: DUP4
000015f1: ADD
000015f2: SWAP2
000015f3: SWAP1
000015f4: SWAP2
000015f5: MSTORE
000015f6: PUSH1 0x40
000015f8: DUP3
000015f9: ADD
000015fa: MSTORE
000015fb: PUSH1 0x60
000015fd: SWAP1
000015fe: LOG1
000015ff: PUSH0
00001600: PUSH0
00001601: MLOAD
00001602: PUSH1 0x20
00001604: PUSH2 0x5cfd
00001607: PUSH0
00001608: CODECOPY
00001609: PUSH0
0000160a: MLOAD
0000160b: SWAP1
0000160c: PUSH0
0000160d: MSTORE
0000160e: TSTORE
0000160f: DUP3
00001610: MLOAD
00001611: SWAP2
00001612: MLOAD
00001613: DUP3
00001614: MSTORE
00001615: MLOAD
00001616: PUSH1 0x20
00001618: DUP3
00001619: ADD
0000161a: MSTORE
0000161b: RETURN
0000161c: JUMPDEST
0000161d: DUP5
0000161e: SWAP1
0000161f: PUSH4 0x1c6768ad
00001624: PUSH1 0xe2
00001626: SHL
00001627: PUSH0
00001628: MSTORE
00001629: PUSH1 0x04
0000162b: MSTORE
0000162c: PUSH1 0x24
0000162e: MSTORE
0000162f: PUSH1 0x44
00001631: PUSH0
00001632: REVERT
00001633: JUMPDEST
00001634: CALLVALUE
00001635: PUSH2 0x03b2
00001638: JUMPI
00001639: PUSH0
0000163a: CALLDATASIZE
0000163b: PUSH1 0x03
0000163d: NOT
0000163e: ADD
0000163f: SLT
00001640: PUSH2 0x03b2
00001643: JUMPI
00001644: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100
00001665: SLOAD
00001666: ISZERO
00001667: DUP1
00001668: PUSH2 0x175c
0000166b: JUMPI
0000166c: JUMPDEST
0000166d: ISZERO
0000166e: PUSH2 0x1717
00001671: JUMPI
00001672: PUSH2 0x16bb
00001675: PUSH2 0x167c
00001678: PUSH2 0x4235
0000167b: JUMP
0000167c: JUMPDEST
0000167d: PUSH2 0x1684
00001680: PUSH2 0x4304
00001683: JUMP
00001684: JUMPDEST
00001685: PUSH1 0x20
00001687: PUSH2 0x16c9
0000168a: PUSH1 0x40
0000168c: MLOAD
0000168d: SWAP3
0000168e: PUSH2 0x1697
00001691: DUP4
00001692: DUP6
00001693: PUSH2 0x408d
00001696: JUMP
00001697: JUMPDEST
00001698: PUSH0
00001699: DUP5
0000169a: MSTORE
0000169b: PUSH0
0000169c: CALLDATASIZE
0000169d: DUP2
0000169e: CALLDATACOPY
0000169f: PUSH1 0x40
000016a1: MLOAD
000016a2: SWAP6
000016a3: DUP7
000016a4: SWAP6
000016a5: PUSH1 0x0f
000016a7: PUSH1 0xf8
000016a9: SHL
000016aa: DUP8
000016ab: MSTORE
000016ac: PUSH1 0xe0
000016ae: DUP6
000016af: DUP9
000016b0: ADD
000016b1: MSTORE
000016b2: PUSH1 0xe0
000016b4: DUP8
000016b5: ADD
000016b6: SWAP1
000016b7: PUSH2 0x3f84
000016ba: JUMP
000016bb: JUMPDEST
000016bc: SWAP1
000016bd: DUP6
000016be: DUP3
000016bf: SUB
000016c0: PUSH1 0x40
000016c2: DUP8
000016c3: ADD
000016c4: MSTORE
000016c5: PUSH2 0x3f84
000016c8: JUMP
000016c9: JUMPDEST
000016ca: CHAINID
000016cb: PUSH1 0x60
000016cd: DUP6
000016ce: ADD
000016cf: MSTORE
000016d0: ADDRESS
000016d1: PUSH1 0x80
000016d3: DUP6
000016d4: ADD
000016d5: MSTORE
000016d6: PUSH0
000016d7: PUSH1 0xa0
000016d9: DUP6
000016da: ADD
000016db: MSTORE
000016dc: DUP4
000016dd: DUP2
000016de: SUB
000016df: PUSH1 0xc0
000016e1: DUP6
000016e2: ADD
000016e3: MSTORE
000016e4: DUP2
000016e5: DUP1
000016e6: DUP5
000016e7: MLOAD
000016e8: SWAP3
000016e9: DUP4
000016ea: DUP2
000016eb: MSTORE
000016ec: ADD
000016ed: SWAP4
000016ee: ADD
000016ef: SWAP2
000016f0: PUSH0
000016f1: JUMPDEST
000016f2: DUP3
000016f3: DUP2
000016f4: LT
000016f5: PUSH2 0x1700
000016f8: JUMPI
000016f9: POP
000016fa: POP
000016fb: POP
000016fc: POP
000016fd: SUB
000016fe: SWAP1
000016ff: RETURN
00001700: JUMPDEST
00001701: DUP4
00001702: MLOAD
00001703: DUP6
00001704: MSTORE
00001705: DUP7
00001706: SWAP6
00001707: POP
00001708: SWAP4
00001709: DUP2
0000170a: ADD
0000170b: SWAP4
0000170c: SWAP3
0000170d: DUP2
0000170e: ADD
0000170f: SWAP3
00001710: PUSH1 0x01
00001712: ADD
00001713: PUSH2 0x16f1
00001716: JUMP
00001717: JUMPDEST
00001718: PUSH1 0x40
0000171a: MLOAD
0000171b: PUSH3 0x461bcd
0000171f: PUSH1 0xe5
00001721: SHL
00001722: DUP2
00001723: MSTORE
00001724: PUSH1 0x20
00001726: PUSH1 0x04
00001728: DUP3
00001729: ADD
0000172a: MSTORE
0000172b: PUSH1 0x15
0000172d: PUSH1 0x24
0000172f: DUP3
00001730: ADD
00001731: MSTORE
00001732: PUSH32 0x4549503731323a20556e696e697469616c697a65640000000000000000000000
00001753: PUSH1 0x44
00001755: DUP3
00001756: ADD
00001757: MSTORE
00001758: PUSH1 0x64
0000175a: SWAP1
0000175b: REVERT
0000175c: JUMPDEST
0000175d: POP
0000175e: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101
0000177f: SLOAD
00001780: ISZERO
00001781: PUSH2 0x166c
00001784: JUMP
00001785: JUMPDEST
00001786: CALLVALUE
00001787: PUSH2 0x03b2
0000178a: JUMPI
0000178b: PUSH1 0x20
0000178d: CALLDATASIZE
0000178e: PUSH1 0x03
00001790: NOT
00001791: ADD
00001792: SLT
00001793: PUSH2 0x03b2
00001796: JUMPI
00001797: PUSH2 0x0763
0000179a: PUSH2 0x17a1
0000179d: PUSH2 0x3fea
000017a0: JUMP
000017a1: JUMPDEST
000017a2: PUSH2 0x17a9
000017a5: PUSH2 0x48b2
000017a8: JUMP
000017a9: JUMPDEST
000017aa: PUSH2 0x4b06
000017ad: JUMP
000017ae: JUMPDEST
000017af: CALLVALUE
000017b0: PUSH2 0x03b2
000017b3: JUMPI
000017b4: PUSH1 0x20
000017b6: CALLDATASIZE
000017b7: PUSH1 0x03
000017b9: NOT
000017ba: ADD
000017bb: SLT
000017bc: PUSH2 0x03b2
000017bf: JUMPI
000017c0: PUSH1 0x01
000017c2: PUSH1 0x01
000017c4: PUSH1 0xa0
000017c6: SHL
000017c7: SUB
000017c8: PUSH2 0x17cf
000017cb: PUSH2 0x3fa8
000017ce: JUMP
000017cf: JUMPDEST
000017d0: AND
000017d1: PUSH0
000017d2: MSTORE
000017d3: PUSH32 0x5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00
000017f4: PUSH1 0x20
000017f6: MSTORE
000017f7: PUSH1 0x20
000017f9: PUSH1 0x40
000017fb: PUSH0
000017fc: KECCAK256
000017fd: SLOAD
000017fe: PUSH1 0x40
00001800: MLOAD
00001801: SWAP1
00001802: DUP2
00001803: MSTORE
00001804: RETURN
00001805: JUMPDEST
00001806: CALLVALUE
00001807: PUSH2 0x03b2
0000180a: JUMPI
0000180b: PUSH0
0000180c: CALLDATASIZE
0000180d: PUSH1 0x03
0000180f: NOT
00001810: ADD
00001811: SLT
00001812: PUSH2 0x03b2
00001815: JUMPI
00001816: PUSH1 0x20
00001818: PUSH1 0x40
0000181a: MLOAD
0000181b: PUSH32 0x0000000000000000000000000000000000000000000000000000000ba43b7400
0000183c: DUP2
0000183d: MSTORE
0000183e: RETURN
0000183f: JUMPDEST
00001840: CALLVALUE
00001841: PUSH2 0x03b2
00001844: JUMPI
00001845: PUSH0
00001846: CALLDATASIZE
00001847: PUSH1 0x03
00001849: NOT
0000184a: ADD
0000184b: SLT
0000184c: PUSH2 0x03b2
0000184f: JUMPI
00001850: PUSH1 0x20
00001852: PUSH1 0xff
00001854: PUSH0
00001855: MLOAD
00001856: PUSH1 0x20
00001858: PUSH2 0x5bfd
0000185b: PUSH0
0000185c: CODECOPY
0000185d: PUSH0
0000185e: MLOAD
0000185f: SWAP1
00001860: PUSH0
00001861: MSTORE
00001862: SLOAD
00001863: AND
00001864: PUSH1 0x40
00001866: MLOAD
00001867: SWAP1
00001868: ISZERO
00001869: ISZERO
0000186a: DUP2
0000186b: MSTORE
0000186c: RETURN
0000186d: JUMPDEST
0000186e: CALLVALUE
0000186f: PUSH2 0x03b2
00001872: JUMPI
00001873: PUSH1 0x80
00001875: CALLDATASIZE
00001876: PUSH1 0x03
00001878: NOT
00001879: ADD
0000187a: SLT
0000187b: PUSH2 0x03b2
0000187e: JUMPI
0000187f: PUSH1 0x04
00001881: CALLDATALOAD
00001882: PUSH1 0x24
00001884: CALLDATALOAD
00001885: PUSH1 0x40
00001887: CALLDATASIZE
00001888: PUSH1 0x43
0000188a: NOT
0000188b: ADD
0000188c: SLT
0000188d: PUSH2 0x03b2
00001890: JUMPI
00001891: PUSH32 0xdbbc76676cb73b8d1c33378e0cdc88f364e4203cfa5b1e4c7d15b66b5cb97f0c
000018b2: SWAP2
000018b3: PUSH2 0x1935
000018b6: PUSH1 0x40
000018b8: MLOAD
000018b9: PUSH2 0x18c1
000018bc: DUP2
000018bd: PUSH2 0x4071
000018c0: JUMP
000018c1: JUMPDEST
000018c2: PUSH1 0x44
000018c4: CALLDATALOAD
000018c5: DUP2
000018c6: MSTORE
000018c7: PUSH1 0x20
000018c9: DUP2
000018ca: ADD
000018cb: SWAP1
000018cc: PUSH1 0x64
000018ce: CALLDATALOAD
000018cf: DUP3
000018d0: MSTORE
000018d1: PUSH2 0x18d8
000018d4: PUSH2 0x487d
000018d7: JUMP
000018d8: JUMPDEST
000018d9: PUSH2 0x18e0
000018dc: PUSH2 0x48b2
000018df: JUMP
000018e0: JUMPDEST
000018e1: PUSH1 0x04
000018e3: PUSH2 0x18ec
000018e6: DUP7
000018e7: DUP7
000018e8: PUSH2 0x49bd
000018eb: JUMP
000018ec: JUMPDEST
000018ed: PUSH1 0x03
000018ef: DUP2
000018f0: ADD
000018f1: PUSH2 0x18fd
000018f4: DUP2
000018f5: SLOAD
000018f6: DUP6
000018f7: MLOAD
000018f8: SWAP1
000018f9: PUSH2 0x45c6
000018fc: JUMP
000018fd: JUMPDEST
000018fe: SWAP1
000018ff: SSTORE
00001900: ADD
00001901: SWAP2
00001902: DUP3
00001903: SLOAD
00001904: SWAP1
00001905: MLOAD
00001906: SWAP3
00001907: DUP4
00001908: DUP1
00001909: SWAP3
0000190a: SUB
0000190b: PUSH2 0x194a
0000190e: JUMPI
0000190f: JUMPDEST
00001910: POP
00001911: POP
00001912: MLOAD
00001913: PUSH1 0x40
00001915: MLOAD
00001916: SWAP5
00001917: DUP6
00001918: SWAP5
00001919: DUP6
0000191a: SWAP1
0000191b: SWAP5
0000191c: SWAP4
0000191d: SWAP3
0000191e: PUSH1 0x60
00001920: SWAP3
00001921: PUSH1 0x80
00001923: DUP4
00001924: ADD
00001925: SWAP7
00001926: DUP4
00001927: MSTORE
00001928: PUSH1 0x20
0000192a: DUP4
0000192b: ADD
0000192c: MSTORE
0000192d: PUSH1 0x40
0000192f: DUP3
00001930: ADD
00001931: MSTORE
00001932: ADD
00001933: MSTORE
00001934: JUMP
00001935: JUMPDEST
00001936: SUB
00001937: SWAP1
00001938: LOG1
00001939: PUSH0
0000193a: PUSH0
0000193b: MLOAD
0000193c: PUSH1 0x20
0000193e: PUSH2 0x5cfd
00001941: PUSH0
00001942: CODECOPY
00001943: PUSH0
00001944: MLOAD
00001945: SWAP1
00001946: PUSH0
00001947: MSTORE
00001948: TSTORE
00001949: STOP
0000194a: JUMPDEST
0000194b: SSTORE
0000194c: DUP2
0000194d: DUP8
0000194e: PUSH2 0x190f
00001951: JUMP
00001952: JUMPDEST
00001953: CALLVALUE
00001954: PUSH2 0x03b2
00001957: JUMPI
00001958: PUSH1 0x20
0000195a: CALLDATASIZE
0000195b: PUSH1 0x03
0000195d: NOT
0000195e: ADD
0000195f: SLT
00001960: PUSH2 0x03b2
00001963: JUMPI
00001964: PUSH1 0x01
00001966: PUSH1 0x01
00001968: PUSH1 0xa0
0000196a: SHL
0000196b: SUB
0000196c: PUSH2 0x1973
0000196f: PUSH2 0x3fa8
00001972: JUMP
00001973: JUMPDEST
00001974: AND
00001975: PUSH0
00001976: MSTORE
00001977: PUSH0
00001978: MLOAD
00001979: PUSH1 0x20
0000197b: PUSH2 0x5abd
0000197e: PUSH0
0000197f: CODECOPY
00001980: PUSH0
00001981: MLOAD
00001982: SWAP1
00001983: PUSH0
00001984: MSTORE
00001985: PUSH1 0x20
00001987: MSTORE
00001988: PUSH1 0x20
0000198a: PUSH1 0x40
0000198c: PUSH0
0000198d: KECCAK256
0000198e: SLOAD
0000198f: PUSH1 0x40
00001991: MLOAD
00001992: SWAP1
00001993: DUP2
00001994: MSTORE
00001995: RETURN
00001996: JUMPDEST
00001997: CALLVALUE
00001998: PUSH2 0x03b2
0000199b: JUMPI
0000199c: PUSH0
0000199d: CALLDATASIZE
0000199e: PUSH1 0x03
000019a0: NOT
000019a1: ADD
000019a2: SLT
000019a3: PUSH2 0x03b2
000019a6: JUMPI
000019a7: PUSH1 0x20
000019a9: PUSH1 0xff
000019ab: PUSH0
000019ac: MLOAD
000019ad: PUSH1 0x20
000019af: PUSH2 0x5d1d
000019b2: PUSH0
000019b3: CODECOPY
000019b4: PUSH0
000019b5: MLOAD
000019b6: SWAP1
000019b7: PUSH0
000019b8: MSTORE
000019b9: SLOAD
000019ba: PUSH1 0xa0
000019bc: SHR
000019bd: AND
000019be: PUSH1 0x40
000019c0: MLOAD
000019c1: SWAP1
000019c2: ISZERO
000019c3: ISZERO
000019c4: DUP2
000019c5: MSTORE
000019c6: RETURN
000019c7: JUMPDEST
000019c8: CALLVALUE
000019c9: PUSH2 0x03b2
000019cc: JUMPI
000019cd: PUSH2 0x19d5
000019d0: CALLDATASIZE
000019d1: PUSH2 0x417a
000019d4: JUMP
000019d5: JUMPDEST
000019d6: PUSH2 0x19e0
000019d9: SWAP4
000019da: SWAP2
000019db: SWAP4
000019dc: PUSH2 0x487d
000019df: JUMP
000019e0: JUMPDEST
000019e1: PUSH2 0x19e8
000019e4: PUSH2 0x48b2
000019e7: JUMP
000019e8: JUMPDEST
000019e9: PUSH1 0x01
000019eb: PUSH1 0x01
000019ed: PUSH1 0xa0
000019ef: SHL
000019f0: SUB
000019f1: DUP5
000019f2: AND
000019f3: ISZERO
000019f4: PUSH2 0x1aeb
000019f7: JUMPI
000019f8: DUP4
000019f9: DUP2
000019fa: PUSH2 0x1a60
000019fd: PUSH2 0x1a2a
00001a00: PUSH2 0x1935
00001a03: SWAP5
00001a04: PUSH32 0x5f8ecf683e1923224ca1e9b396be6a7a13e480a011e7645d641e7a7d3a2d0f03
00001a25: SWAP9
00001a26: PUSH2 0x4eb5
00001a29: JUMP
00001a2a: JUMPDEST
00001a2b: PUSH0
00001a2c: MLOAD
00001a2d: PUSH1 0x20
00001a2f: PUSH2 0x5c9d
00001a32: PUSH0
00001a33: CODECOPY
00001a34: PUSH0
00001a35: MLOAD
00001a36: SWAP1
00001a37: PUSH0
00001a38: MSTORE
00001a39: SLOAD
00001a3a: PUSH1 0xff
00001a3c: DUP2
00001a3d: AND
00001a3e: ISZERO
00001a3f: DUP1
00001a40: ISZERO
00001a41: PUSH2 0x1aaa
00001a44: JUMPI
00001a45: JUMPDEST
00001a46: PUSH2 0x1a95
00001a49: JUMPI
00001a4a: JUMPDEST
00001a4b: POP
00001a4c: PUSH0
00001a4d: MLOAD
00001a4e: PUSH1 0x20
00001a50: PUSH2 0x5cdd
00001a53: PUSH0
00001a54: CODECOPY
00001a55: PUSH0
00001a56: MLOAD
00001a57: SWAP1
00001a58: PUSH0
00001a59: MSTORE
00001a5a: SLOAD
00001a5b: SWAP1
00001a5c: PUSH2 0x45e0
00001a5f: JUMP
00001a60: JUMPDEST
00001a61: SWAP2
00001a62: PUSH1 0x40
00001a64: MLOAD
00001a65: SWAP6
00001a66: DUP7
00001a67: SWAP6
00001a68: DUP7
00001a69: SWAP2
00001a6a: PUSH1 0x80
00001a6c: SWAP4
00001a6d: PUSH1 0x01
00001a6f: PUSH1 0x01
00001a71: PUSH1 0xa0
00001a73: SHL
00001a74: SUB
00001a75: SWAP2
00001a76: SWAP8
00001a77: SWAP7
00001a78: SWAP6
00001a79: SWAP3
00001a7a: SWAP8
00001a7b: PUSH1 0xa0
00001a7d: DUP6
00001a7e: ADD
00001a7f: SWAP9
00001a80: DUP6
00001a81: MSTORE
00001a82: PUSH1 0x20
00001a84: DUP6
00001a85: ADD
00001a86: MSTORE
00001a87: AND
00001a88: PUSH1 0x40
00001a8a: DUP4
00001a8b: ADD
00001a8c: MSTORE
00001a8d: PUSH1 0x60
00001a8f: DUP3
00001a90: ADD
00001a91: MSTORE
00001a92: ADD
00001a93: MSTORE
00001a94: JUMP
00001a95: JUMPDEST
00001a96: PUSH1 0xff
00001a98: PUSH2 0x1aa4
00001a9b: SWAP2
00001a9c: PUSH1 0x10
00001a9e: SHR
00001a9f: AND
00001aa0: PUSH2 0x4b06
00001aa3: JUMP
00001aa4: JUMPDEST
00001aa5: DUP9
00001aa6: PUSH2 0x1a4a
00001aa9: JUMP
00001aaa: JUMPDEST
00001aab: POP
00001aac: PUSH0
00001aad: MLOAD
00001aae: PUSH1 0x20
00001ab0: PUSH2 0x5c7d
00001ab3: PUSH0
00001ab4: CODECOPY
00001ab5: PUSH0
00001ab6: MLOAD
00001ab7: SWAP1
00001ab8: PUSH0
00001ab9: MSTORE
00001aba: SLOAD
00001abb: PUSH2 0x2710
00001abe: PUSH2 0x1ae4
00001ac1: PUSH0
00001ac2: MLOAD
00001ac3: PUSH1 0x20
00001ac5: PUSH2 0x5a7d
00001ac8: PUSH0
00001ac9: CODECOPY
00001aca: PUSH0
00001acb: MLOAD
00001acc: SWAP1
00001acd: PUSH0
00001ace: MSTORE
00001acf: SLOAD
00001ad0: PUSH0
00001ad1: MLOAD
00001ad2: PUSH1 0x20
00001ad4: PUSH2 0x5c1d
00001ad7: PUSH0
00001ad8: CODECOPY
00001ad9: PUSH0
00001ada: MLOAD
00001adb: SWAP1
00001adc: PUSH0
00001add: MSTORE
00001ade: SLOAD
00001adf: SWAP1
00001ae0: PUSH2 0x45e0
00001ae3: JUMP
00001ae4: JUMPDEST
00001ae5: DIV
00001ae6: LT
00001ae7: PUSH2 0x1a45
00001aea: JUMP
00001aeb: JUMPDEST
00001aec: PUSH1 0x40
00001aee: MLOAD
00001aef: PUSH4 0x6bc37c5f
00001af4: PUSH1 0xe1
00001af6: SHL
00001af7: DUP2
00001af8: MSTORE
00001af9: PUSH1 0x20
00001afb: PUSH1 0x04
00001afd: DUP1
00001afe: DUP4
00001aff: ADD
00001b00: SWAP2
00001b01: SWAP1
00001b02: SWAP2
00001b03: MSTORE
00001b04: PUSH1 0x24
00001b06: DUP3
00001b07: ADD
00001b08: MSTORE
00001b09: PUSH4 0x66726f6d
00001b0e: PUSH1 0xe0
00001b10: SHL
00001b11: PUSH1 0x44
00001b13: DUP3
00001b14: ADD
00001b15: MSTORE
00001b16: PUSH1 0x64
00001b18: SWAP1
00001b19: REVERT
00001b1a: JUMPDEST
00001b1b: CALLVALUE
00001b1c: PUSH2 0x03b2
00001b1f: JUMPI
00001b20: PUSH0
00001b21: CALLDATASIZE
00001b22: PUSH1 0x03
00001b24: NOT
00001b25: ADD
00001b26: SLT
00001b27: PUSH2 0x03b2
00001b2a: JUMPI
00001b2b: PUSH1 0x20
00001b2d: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d
00001b4e: SLOAD
00001b4f: PUSH1 0x40
00001b51: MLOAD
00001b52: SWAP1
00001b53: DUP2
00001b54: MSTORE
00001b55: RETURN
00001b56: JUMPDEST
00001b57: CALLVALUE
00001b58: PUSH2 0x03b2
00001b5b: JUMPI
00001b5c: PUSH0
00001b5d: CALLDATASIZE
00001b5e: PUSH1 0x03
00001b60: NOT
00001b61: ADD
00001b62: SLT
00001b63: PUSH2 0x03b2
00001b66: JUMPI
00001b67: PUSH1 0x20
00001b69: PUSH0
00001b6a: MLOAD
00001b6b: PUSH1 0x20
00001b6d: PUSH2 0x5d5d
00001b70: PUSH0
00001b71: CODECOPY
00001b72: PUSH0
00001b73: MLOAD
00001b74: SWAP1
00001b75: PUSH0
00001b76: MSTORE
00001b77: SLOAD
00001b78: PUSH1 0x40
00001b7a: MLOAD
00001b7b: SWAP1
00001b7c: DUP2
00001b7d: MSTORE
00001b7e: RETURN
00001b7f: JUMPDEST
00001b80: CALLVALUE
00001b81: PUSH2 0x03b2
00001b84: JUMPI
00001b85: PUSH1 0x40
00001b87: PUSH2 0x1b8f
00001b8a: CALLDATASIZE
00001b8b: PUSH2 0x40f8
00001b8e: JUMP
00001b8f: JUMPDEST
00001b90: PUSH2 0x1b97
00001b93: PUSH2 0x487d
00001b96: JUMP
00001b97: JUMPDEST
00001b98: PUSH2 0x1b9f
00001b9b: PUSH2 0x48b2
00001b9e: JUMP
00001b9f: JUMPDEST
00001ba0: PUSH1 0x03
00001ba2: PUSH2 0x1bab
00001ba5: DUP4
00001ba6: DUP6
00001ba7: PUSH2 0x49bd
00001baa: JUMP
00001bab: JUMPDEST
00001bac: ADD
00001bad: SWAP2
00001bae: DUP3
00001baf: SLOAD
00001bb0: SWAP4
00001bb1: DUP5
00001bb2: DUP4
00001bb3: GT
00001bb4: PUSH0
00001bb5: EQ
00001bb6: PUSH2 0x1c2a
00001bb9: JUMPI
00001bba: DUP4
00001bbb: SWAP5
00001bbc: POP
00001bbd: PUSH0
00001bbe: PUSH2 0x1beb
00001bc1: PUSH32 0x9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a90198
00001be2: SWAP5
00001be3: SWAP6
00001be4: SLOAD
00001be5: DUP1
00001be6: SWAP7
00001be7: PUSH2 0x45d3
00001bea: JUMP
00001beb: JUMPDEST
00001bec: SWAP5
00001bed: SWAP6
00001bee: SSTORE
00001bef: JUMPDEST
00001bf0: DUP6
00001bf1: MLOAD
00001bf2: SWAP1
00001bf3: DUP2
00001bf4: MSTORE
00001bf5: PUSH1 0x20
00001bf7: DUP2
00001bf8: ADD
00001bf9: SWAP2
00001bfa: SWAP1
00001bfb: SWAP2
00001bfc: MSTORE
00001bfd: PUSH1 0x40
00001bff: DUP2
00001c00: ADD
00001c01: DUP5
00001c02: SWAP1
00001c03: MSTORE
00001c04: PUSH1 0x60
00001c06: DUP2
00001c07: ADD
00001c08: DUP4
00001c09: SWAP1
00001c0a: MSTORE
00001c0b: PUSH1 0x80
00001c0d: SWAP1
00001c0e: LOG1
00001c0f: PUSH0
00001c10: PUSH0
00001c11: MLOAD
00001c12: PUSH1 0x20
00001c14: PUSH2 0x5cfd
00001c17: PUSH0
00001c18: CODECOPY
00001c19: PUSH0
00001c1a: MLOAD
00001c1b: SWAP1
00001c1c: PUSH0
00001c1d: MSTORE
00001c1e: TSTORE
00001c1f: DUP3
00001c20: MLOAD
00001c21: SWAP2
00001c22: DUP3
00001c23: MSTORE
00001c24: PUSH1 0x20
00001c26: DUP3
00001c27: ADD
00001c28: MSTORE
00001c29: RETURN
00001c2a: JUMPDEST
00001c2b: SWAP3
00001c2c: PUSH2 0x1c58
00001c2f: DUP4
00001c30: PUSH32 0x9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a90198
00001c51: SWAP5
00001c52: SWAP4
00001c53: SWAP7
00001c54: PUSH2 0x45d3
00001c57: JUMP
00001c58: JUMPDEST
00001c59: SWAP1
00001c5a: SSTORE
00001c5b: SWAP3
00001c5c: PUSH0
00001c5d: SWAP3
00001c5e: PUSH2 0x1bef
00001c61: JUMP
00001c62: JUMPDEST
00001c63: CALLVALUE
00001c64: PUSH2 0x03b2
00001c67: JUMPI
00001c68: PUSH0
00001c69: CALLDATASIZE
00001c6a: PUSH1 0x03
00001c6c: NOT
00001c6d: ADD
00001c6e: SLT
00001c6f: PUSH2 0x03b2
00001c72: JUMPI
00001c73: PUSH1 0x20
00001c75: PUSH0
00001c76: MLOAD
00001c77: PUSH1 0x20
00001c79: PUSH2 0x5d3d
00001c7c: PUSH0
00001c7d: CODECOPY
00001c7e: PUSH0
00001c7f: MLOAD
00001c80: SWAP1
00001c81: PUSH0
00001c82: MSTORE
00001c83: SLOAD
00001c84: PUSH1 0x40
00001c86: MLOAD
00001c87: SWAP1
00001c88: DUP2
00001c89: MSTORE
00001c8a: RETURN
00001c8b: JUMPDEST
00001c8c: CALLVALUE
00001c8d: PUSH2 0x03b2
00001c90: JUMPI
00001c91: PUSH0
00001c92: CALLDATASIZE
00001c93: PUSH1 0x03
00001c95: NOT
00001c96: ADD
00001c97: SLT
00001c98: PUSH2 0x03b2
00001c9b: JUMPI
00001c9c: PUSH1 0x01
00001c9e: PUSH1 0x01
00001ca0: PUSH1 0xa0
00001ca2: SHL
00001ca3: SUB
00001ca4: PUSH32 0x00000000000000000000000009019548ef289cf2694530b7a22420ad9f891582
00001cc5: AND
00001cc6: ADDRESS
00001cc7: SUB
00001cc8: PUSH2 0x1ce2
00001ccb: JUMPI
00001ccc: PUSH1 0x20
00001cce: PUSH1 0x40
00001cd0: MLOAD
00001cd1: PUSH0
00001cd2: MLOAD
00001cd3: PUSH1 0x20
00001cd5: PUSH2 0x5bdd
00001cd8: PUSH0
00001cd9: CODECOPY
00001cda: PUSH0
00001cdb: MLOAD
00001cdc: SWAP1
00001cdd: PUSH0
00001cde: MSTORE
00001cdf: DUP2
00001ce0: MSTORE
00001ce1: RETURN
00001ce2: JUMPDEST
00001ce3: PUSH4 0x703e46dd
00001ce8: PUSH1 0xe1
00001cea: SHL
00001ceb: PUSH0
00001cec: MSTORE
00001ced: PUSH1 0x04
00001cef: PUSH0
00001cf0: REVERT
00001cf1: JUMPDEST
00001cf2: CALLVALUE
00001cf3: PUSH2 0x03b2
00001cf6: JUMPI
00001cf7: PUSH1 0x20
00001cf9: CALLDATASIZE
00001cfa: PUSH1 0x03
00001cfc: NOT
00001cfd: ADD
00001cfe: SLT
00001cff: PUSH2 0x03b2
00001d02: JUMPI
00001d03: PUSH1 0x20
00001d05: PUSH2 0x137d
00001d08: PUSH2 0x1d21
00001d0b: PUSH0
00001d0c: MLOAD
00001d0d: PUSH1 0x20
00001d0f: PUSH2 0x5cdd
00001d12: PUSH0
00001d13: CODECOPY
00001d14: PUSH0
00001d15: MLOAD
00001d16: SWAP1
00001d17: PUSH0
00001d18: MSTORE
00001d19: SLOAD
00001d1a: PUSH1 0x04
00001d1c: CALLDATALOAD
00001d1d: PUSH2 0x45f3
00001d20: JUMP
00001d21: JUMPDEST
00001d22: PUSH2 0x519a
00001d25: JUMP
00001d26: JUMPDEST
00001d27: PUSH1 0x40
00001d29: CALLDATASIZE
00001d2a: PUSH1 0x03
00001d2c: NOT
00001d2d: ADD
00001d2e: SLT
00001d2f: PUSH2 0x03b2
00001d32: JUMPI
00001d33: PUSH2 0x1d3a
00001d36: PUSH2 0x3fa8
00001d39: JUMP
00001d3a: JUMPDEST
00001d3b: PUSH1 0x24
00001d3d: CALLDATALOAD
00001d3e: PUSH8 0xffffffffffffffff
00001d47: DUP2
00001d48: GT
00001d49: PUSH2 0x03b2
00001d4c: JUMPI
00001d4d: CALLDATASIZE
00001d4e: PUSH1 0x23
00001d50: DUP3
00001d51: ADD
00001d52: SLT
00001d53: ISZERO
00001d54: PUSH2 0x03b2
00001d57: JUMPI
00001d58: PUSH2 0x1d6b
00001d5b: SWAP1
00001d5c: CALLDATASIZE
00001d5d: SWAP1
00001d5e: PUSH1 0x24
00001d60: DUP2
00001d61: PUSH1 0x04
00001d63: ADD
00001d64: CALLDATALOAD
00001d65: SWAP2
00001d66: ADD
00001d67: PUSH2 0x4144
00001d6a: JUMP
00001d6b: JUMPDEST
00001d6c: PUSH1 0x01
00001d6e: PUSH1 0x01
00001d70: PUSH1 0xa0
00001d72: SHL
00001d73: SUB
00001d74: PUSH32 0x00000000000000000000000009019548ef289cf2694530b7a22420ad9f891582
00001d95: AND
00001d96: DUP1
00001d97: ADDRESS
00001d98: EQ
00001d99: SWAP1
00001d9a: DUP2
00001d9b: ISZERO
00001d9c: PUSH2 0x1eef
00001d9f: JUMPI
00001da0: JUMPDEST
00001da1: POP
00001da2: PUSH2 0x1ce2
00001da5: JUMPI
00001da6: PUSH2 0x1dad
00001da9: PUSH2 0x4921
00001dac: JUMP
00001dad: JUMPDEST
00001dae: PUSH1 0x40
00001db0: MLOAD
00001db1: PUSH4 0x52d1902d
00001db6: PUSH1 0xe0
00001db8: SHL
00001db9: DUP2
00001dba: MSTORE
00001dbb: PUSH1 0x01
00001dbd: PUSH1 0x01
00001dbf: PUSH1 0xa0
00001dc1: SHL
00001dc2: SUB
00001dc3: DUP4
00001dc4: AND
00001dc5: SWAP3
00001dc6: SWAP1
00001dc7: PUSH1 0x20
00001dc9: DUP2
00001dca: PUSH1 0x04
00001dcc: DUP2
00001dcd: DUP8
00001dce: GAS
00001dcf: STATICCALL
00001dd0: PUSH0
00001dd1: SWAP2
00001dd2: DUP2
00001dd3: PUSH2 0x1ebb
00001dd6: JUMPI
00001dd7: JUMPDEST
00001dd8: POP
00001dd9: PUSH2 0x1def
00001ddc: JUMPI
00001ddd: DUP4
00001dde: PUSH4 0x4c9c8ce3
00001de3: PUSH1 0xe0
00001de5: SHL
00001de6: PUSH0
00001de7: MSTORE
00001de8: PUSH1 0x04
00001dea: MSTORE
00001deb: PUSH1 0x24
00001ded: PUSH0
00001dee: REVERT
00001def: JUMPDEST
00001df0: DUP1
00001df1: PUSH0
00001df2: MLOAD
00001df3: PUSH1 0x20
00001df5: PUSH2 0x5bdd
00001df8: PUSH0
00001df9: CODECOPY
00001dfa: PUSH0
00001dfb: MLOAD
00001dfc: SWAP1
00001dfd: PUSH0
00001dfe: MSTORE
00001dff: DUP6
00001e00: SWAP3
00001e01: SUB
00001e02: PUSH2 0x1ea9
00001e05: JUMPI
00001e06: POP
00001e07: DUP2
00001e08: EXTCODESIZE
00001e09: ISZERO
00001e0a: PUSH2 0x1e97
00001e0d: JUMPI
00001e0e: DUP1
00001e0f: PUSH1 0x01
00001e11: PUSH1 0x01
00001e13: PUSH1 0xa0
00001e15: SHL
00001e16: SUB
00001e17: NOT
00001e18: PUSH0
00001e19: MLOAD
00001e1a: PUSH1 0x20
00001e1c: PUSH2 0x5bdd
00001e1f: PUSH0
00001e20: CODECOPY
00001e21: PUSH0
00001e22: MLOAD
00001e23: SWAP1
00001e24: PUSH0
00001e25: MSTORE
00001e26: SLOAD
00001e27: AND
00001e28: OR
00001e29: PUSH0
00001e2a: MLOAD
00001e2b: PUSH1 0x20
00001e2d: PUSH2 0x5bdd
00001e30: PUSH0
00001e31: CODECOPY
00001e32: PUSH0
00001e33: MLOAD
00001e34: SWAP1
00001e35: PUSH0
00001e36: MSTORE
00001e37: SSTORE
00001e38: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
00001e59: PUSH0
00001e5a: DUP1
00001e5b: LOG2
00001e5c: DUP2
00001e5d: MLOAD
00001e5e: ISZERO
00001e5f: PUSH2 0x1e7f
00001e62: JUMPI
00001e63: PUSH0
00001e64: DUP1
00001e65: DUP4
00001e66: PUSH1 0x20
00001e68: PUSH2 0x0763
00001e6b: SWAP6
00001e6c: MLOAD
00001e6d: SWAP2
00001e6e: ADD
00001e6f: DUP5
00001e70: GAS
00001e71: DELEGATECALL
00001e72: PUSH2 0x1e79
00001e75: PUSH2 0x53a8
00001e78: JUMP
00001e79: JUMPDEST
00001e7a: SWAP2
00001e7b: PUSH2 0x5a02
00001e7e: JUMP
00001e7f: JUMPDEST
00001e80: POP
00001e81: POP
00001e82: CALLVALUE
00001e83: PUSH2 0x1e88
00001e86: JUMPI
00001e87: STOP
00001e88: JUMPDEST
00001e89: PUSH4 0xb398979f
00001e8e: PUSH1 0xe0
00001e90: SHL
00001e91: PUSH0
00001e92: MSTORE
00001e93: PUSH1 0x04
00001e95: PUSH0
00001e96: REVERT
00001e97: JUMPDEST
00001e98: PUSH4 0x4c9c8ce3
00001e9d: PUSH1 0xe0
00001e9f: SHL
00001ea0: PUSH0
00001ea1: MSTORE
00001ea2: PUSH1 0x04
00001ea4: MSTORE
00001ea5: PUSH1 0x24
00001ea7: PUSH0
00001ea8: REVERT
00001ea9: JUMPDEST
00001eaa: PUSH4 0x2a875269
00001eaf: PUSH1 0xe2
00001eb1: SHL
00001eb2: PUSH0
00001eb3: MSTORE
00001eb4: PUSH1 0x04
00001eb6: MSTORE
00001eb7: PUSH1 0x24
00001eb9: PUSH0
00001eba: REVERT
00001ebb: JUMPDEST
00001ebc: SWAP1
00001ebd: SWAP2
00001ebe: POP
00001ebf: PUSH1 0x20
00001ec1: DUP2
00001ec2: RETURNDATASIZE
00001ec3: PUSH1 0x20
00001ec5: GT
00001ec6: PUSH2 0x1ee7
00001ec9: JUMPI
00001eca: JUMPDEST
00001ecb: DUP2
00001ecc: PUSH2 0x1ed7
00001ecf: PUSH1 0x20
00001ed1: SWAP4
00001ed2: DUP4
00001ed3: PUSH2 0x408d
00001ed6: JUMP
00001ed7: JUMPDEST
00001ed8: DUP2
00001ed9: ADD
00001eda: SUB
00001edb: SLT
00001edc: PUSH2 0x03b2
00001edf: JUMPI
00001ee0: MLOAD
00001ee1: SWAP1
00001ee2: DUP6
00001ee3: PUSH2 0x1dd7
00001ee6: JUMP
00001ee7: JUMPDEST
00001ee8: RETURNDATASIZE
00001ee9: SWAP2
00001eea: POP
00001eeb: PUSH2 0x1eca
00001eee: JUMP
00001eef: JUMPDEST
00001ef0: SWAP1
00001ef1: POP
00001ef2: PUSH1 0x01
00001ef4: PUSH1 0x01
00001ef6: PUSH1 0xa0
00001ef8: SHL
00001ef9: SUB
00001efa: PUSH0
00001efb: MLOAD
00001efc: PUSH1 0x20
00001efe: PUSH2 0x5bdd
00001f01: PUSH0
00001f02: CODECOPY
00001f03: PUSH0
00001f04: MLOAD
00001f05: SWAP1
00001f06: PUSH0
00001f07: MSTORE
00001f08: SLOAD
00001f09: AND
00001f0a: EQ
00001f0b: ISZERO
00001f0c: DUP4
00001f0d: PUSH2 0x1da0
00001f10: JUMP
00001f11: JUMPDEST
00001f12: CALLVALUE
00001f13: PUSH2 0x03b2
00001f16: JUMPI
00001f17: PUSH2 0x1f1f
00001f1a: CALLDATASIZE
00001f1b: PUSH2 0x4112
00001f1e: JUMP
00001f1f: JUMPDEST
00001f20: SWAP1
00001f21: PUSH2 0x1f28
00001f24: PUSH2 0x4921
00001f27: JUMP
00001f28: JUMPDEST
00001f29: PUSH1 0x07
00001f2b: PUSH2 0x1f34
00001f2e: DUP4
00001f2f: DUP4
00001f30: PUSH2 0x49bd
00001f33: JUMP
00001f34: JUMPDEST
00001f35: ADD
00001f36: SWAP2
00001f37: DUP3
00001f38: SLOAD
00001f39: SWAP2
00001f3a: PUSH1 0xff
00001f3c: DUP4
00001f3d: AND
00001f3e: PUSH2 0x1f4d
00001f41: JUMPI
00001f42: PUSH1 0xff
00001f44: NOT
00001f45: DUP4
00001f46: AND
00001f47: PUSH1 0x01
00001f49: OR
00001f4a: DUP5
00001f4b: SSTORE
00001f4c: STOP
00001f4d: JUMPDEST
00001f4e: PUSH4 0x4e06b75f
00001f53: PUSH1 0xe1
00001f55: SHL
00001f56: PUSH0
00001f57: MSTORE
00001f58: PUSH1 0x04
00001f5a: MSTORE
00001f5b: PUSH1 0x24
00001f5d: MSTORE
00001f5e: PUSH1 0x44
00001f60: PUSH0
00001f61: REVERT
00001f62: JUMPDEST
00001f63: CALLVALUE
00001f64: PUSH2 0x03b2
00001f67: JUMPI
00001f68: PUSH1 0x40
00001f6a: CALLDATASIZE
00001f6b: PUSH1 0x03
00001f6d: NOT
00001f6e: ADD
00001f6f: SLT
00001f70: PUSH2 0x03b2
00001f73: JUMPI
00001f74: PUSH2 0x1f7b
00001f77: PUSH2 0x3fa8
00001f7a: JUMP
00001f7b: JUMPDEST
00001f7c: PUSH1 0x24
00001f7e: CALLDATALOAD
00001f7f: PUSH2 0x1f86
00001f82: PUSH2 0x487d
00001f85: JUMP
00001f86: JUMPDEST
00001f87: PUSH2 0x1f8e
00001f8a: PUSH2 0x48b2
00001f8d: JUMP
00001f8e: JUMPDEST
00001f8f: PUSH2 0x1fb9
00001f92: DUP2
00001f93: PUSH2 0x099c
00001f96: PUSH0
00001f97: MLOAD
00001f98: PUSH1 0x20
00001f9a: PUSH2 0x5a7d
00001f9d: PUSH0
00001f9e: CODECOPY
00001f9f: PUSH0
00001fa0: MLOAD
00001fa1: SWAP1
00001fa2: PUSH0
00001fa3: MSTORE
00001fa4: SLOAD
00001fa5: PUSH0
00001fa6: MLOAD
00001fa7: PUSH1 0x20
00001fa9: PUSH2 0x5cdd
00001fac: PUSH0
00001fad: CODECOPY
00001fae: PUSH0
00001faf: MLOAD
00001fb0: SWAP1
00001fb1: PUSH0
00001fb2: MSTORE
00001fb3: SLOAD
00001fb4: SWAP1
00001fb5: PUSH2 0x45e0
00001fb8: JUMP
00001fb9: JUMPDEST
00001fba: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d
00001fdb: SLOAD
00001fdc: DUP1
00001fdd: DUP3
00001fde: GT
00001fdf: PUSH2 0x21e3
00001fe2: JUMPI
00001fe3: POP
00001fe4: POP
00001fe5: PUSH0
00001fe6: MLOAD
00001fe7: PUSH1 0x20
00001fe9: PUSH2 0x5b9d
00001fec: PUSH0
00001fed: CODECOPY
00001fee: PUSH0
00001fef: MLOAD
00001ff0: SWAP1
00001ff1: PUSH0
00001ff2: MSTORE
00001ff3: SLOAD
00001ff4: ISZERO
00001ff5: PUSH2 0x21af
00001ff8: JUMPI
00001ff9: PUSH0
00001ffa: MLOAD
00001ffb: PUSH1 0x20
00001ffd: PUSH2 0x5cdd
00002000: PUSH0
00002001: CODECOPY
00002002: PUSH0
00002003: MLOAD
00002004: SWAP1
00002005: PUSH0
00002006: MSTORE
00002007: SLOAD
00002008: PUSH2 0x2010
0000200b: SWAP2
0000200c: PUSH2 0x45f3
0000200f: JUMP
00002010: JUMPDEST
00002011: PUSH2 0x2028
00002014: DUP2
00002015: PUSH0
00002016: MLOAD
00002017: PUSH1 0x20
00002019: PUSH2 0x5c7d
0000201c: PUSH0
0000201d: CODECOPY
0000201e: PUSH0
0000201f: MLOAD
00002020: SWAP1
00002021: PUSH0
00002022: MSTORE
00002023: SLOAD
00002024: PUSH2 0x45c6
00002027: JUMP
00002028: JUMPDEST
00002029: PUSH0
0000202a: MLOAD
0000202b: PUSH1 0x20
0000202d: PUSH2 0x5c7d
00002030: PUSH0
00002031: CODECOPY
00002032: PUSH0
00002033: MLOAD
00002034: SWAP1
00002035: PUSH0
00002036: MSTORE
00002037: SSTORE
00002038: DUP1
00002039: SWAP2
0000203a: PUSH0
0000203b: MLOAD
0000203c: PUSH1 0x20
0000203e: PUSH2 0x5b5d
00002041: PUSH0
00002042: CODECOPY
00002043: PUSH0
00002044: MLOAD
00002045: SWAP1
00002046: PUSH0
00002047: MSTORE
00002048: SLOAD
00002049: DUP1
0000204a: PUSH2 0x2183
0000204d: JUMPI
0000204e: JUMPDEST
0000204f: POP
00002050: PUSH2 0x2067
00002053: DUP3
00002054: PUSH0
00002055: MLOAD
00002056: PUSH1 0x20
00002058: PUSH2 0x5a7d
0000205b: PUSH0
0000205c: CODECOPY
0000205d: PUSH0
0000205e: MLOAD
0000205f: SWAP1
00002060: PUSH0
00002061: MSTORE
00002062: SLOAD
00002063: PUSH2 0x45c6
00002066: JUMP
00002067: JUMPDEST
00002068: PUSH0
00002069: MLOAD
0000206a: PUSH1 0x20
0000206c: PUSH2 0x5a7d
0000206f: PUSH0
00002070: CODECOPY
00002071: PUSH0
00002072: MLOAD
00002073: SWAP1
00002074: PUSH0
00002075: MSTORE
00002076: SSTORE
00002077: PUSH1 0x01
00002079: PUSH1 0x01
0000207b: PUSH1 0xa0
0000207d: SHL
0000207e: SUB
0000207f: DUP2
00002080: AND
00002081: ISZERO
00002082: PUSH2 0x2170
00002085: JUMPI
00002086: DUP3
00002087: DUP2
00002088: PUSH2 0x20b4
0000208b: PUSH1 0x20
0000208d: SWAP6
0000208e: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f
000020af: SWAP5
000020b0: PUSH2 0x574c
000020b3: JUMP
000020b4: JUMPDEST
000020b5: PUSH2 0x20de
000020b8: DUP5
000020b9: PUSH1 0x40
000020bb: MLOAD
000020bc: SWAP4
000020bd: DUP5
000020be: SWAP4
000020bf: DUP5
000020c0: PUSH1 0x40
000020c2: SWAP2
000020c3: SWAP5
000020c4: SWAP4
000020c5: SWAP3
000020c6: PUSH1 0x01
000020c8: PUSH1 0x01
000020ca: PUSH1 0xa0
000020cc: SHL
000020cd: SUB
000020ce: PUSH1 0x60
000020d0: DUP4
000020d1: ADD
000020d2: SWAP7
000020d3: AND
000020d4: DUP3
000020d5: MSTORE
000020d6: PUSH1 0x20
000020d8: DUP3
000020d9: ADD
000020da: MSTORE
000020db: ADD
000020dc: MSTORE
000020dd: JUMP
000020de: JUMPDEST
000020df: SUB
000020e0: SWAP1
000020e1: LOG1
000020e2: PUSH0
000020e3: MLOAD
000020e4: PUSH1 0x20
000020e6: PUSH2 0x5c9d
000020e9: PUSH0
000020ea: CODECOPY
000020eb: PUSH0
000020ec: MLOAD
000020ed: SWAP1
000020ee: PUSH0
000020ef: MSTORE
000020f0: SLOAD
000020f1: PUSH1 0xff
000020f3: DUP2
000020f4: AND
000020f5: ISZERO
000020f6: DUP1
000020f7: ISZERO
000020f8: PUSH2 0x212f
000020fb: JUMPI
000020fc: JUMPDEST
000020fd: PUSH2 0x211a
00002100: JUMPI
00002101: JUMPDEST
00002102: POP
00002103: PUSH0
00002104: PUSH0
00002105: MLOAD
00002106: PUSH1 0x20
00002108: PUSH2 0x5cfd
0000210b: PUSH0
0000210c: CODECOPY
0000210d: PUSH0
0000210e: MLOAD
0000210f: SWAP1
00002110: PUSH0
00002111: MSTORE
00002112: TSTORE
00002113: PUSH1 0x40
00002115: MLOAD
00002116: SWAP1
00002117: DUP2
00002118: MSTORE
00002119: RETURN
0000211a: JUMPDEST
0000211b: PUSH1 0xff
0000211d: PUSH2 0x2129
00002120: SWAP2
00002121: PUSH1 0x10
00002123: SHR
00002124: AND
00002125: PUSH2 0x4b06
00002128: JUMP
00002129: JUMPDEST
0000212a: DUP3
0000212b: PUSH2 0x2101
0000212e: JUMP
0000212f: JUMPDEST
00002130: POP
00002131: PUSH0
00002132: MLOAD
00002133: PUSH1 0x20
00002135: PUSH2 0x5c7d
00002138: PUSH0
00002139: CODECOPY
0000213a: PUSH0
0000213b: MLOAD
0000213c: SWAP1
0000213d: PUSH0
0000213e: MSTORE
0000213f: SLOAD
00002140: PUSH2 0x2710
00002143: PUSH2 0x2169
00002146: PUSH0
00002147: MLOAD
00002148: PUSH1 0x20
0000214a: PUSH2 0x5a7d
0000214d: PUSH0
0000214e: CODECOPY
0000214f: PUSH0
00002150: MLOAD
00002151: SWAP1
00002152: PUSH0
00002153: MSTORE
00002154: SLOAD
00002155: PUSH0
00002156: MLOAD
00002157: PUSH1 0x20
00002159: PUSH2 0x5c1d
0000215c: PUSH0
0000215d: CODECOPY
0000215e: PUSH0
0000215f: MLOAD
00002160: SWAP1
00002161: PUSH0
00002162: MSTORE
00002163: SLOAD
00002164: SWAP1
00002165: PUSH2 0x45e0
00002168: JUMP
00002169: JUMPDEST
0000216a: DIV
0000216b: LT
0000216c: PUSH2 0x20fc
0000216f: JUMP
00002170: JUMPDEST
00002171: PUSH4 0xec442f05
00002176: PUSH1 0xe0
00002178: SHL
00002179: PUSH0
0000217a: MSTORE
0000217b: PUSH0
0000217c: PUSH1 0x04
0000217e: MSTORE
0000217f: PUSH1 0x24
00002181: PUSH0
00002182: REVERT
00002183: JUMPDEST
00002184: PUSH2 0x21a8
00002187: SWAP2
00002188: SWAP4
00002189: POP
0000218a: PUSH2 0x2193
0000218d: SWAP1
0000218e: DUP4
0000218f: PUSH2 0x45e0
00002192: JUMP
00002193: JUMPDEST
00002194: PUSH0
00002195: MLOAD
00002196: PUSH1 0x20
00002198: PUSH2 0x5a7d
0000219b: PUSH0
0000219c: CODECOPY
0000219d: PUSH0
0000219e: MLOAD
0000219f: SWAP1
000021a0: PUSH0
000021a1: MSTORE
000021a2: SLOAD
000021a3: SWAP1
000021a4: PUSH2 0x45f3
000021a7: JUMP
000021a8: JUMPDEST
000021a9: SWAP2
000021aa: DUP4
000021ab: PUSH2 0x204e
000021ae: JUMP
000021af: JUMPDEST
000021b0: PUSH1 0x40
000021b2: MLOAD
000021b3: PUSH4 0x4612b38f
000021b8: PUSH1 0xe0
000021ba: SHL
000021bb: DUP2
000021bc: MSTORE
000021bd: PUSH1 0x20
000021bf: PUSH1 0x04
000021c1: DUP3
000021c2: ADD
000021c3: MSTORE
000021c4: PUSH1 0x0b
000021c6: PUSH1 0x24
000021c8: DUP3
000021c9: ADD
000021ca: MSTORE
000021cb: PUSH11 0x1d1bdd185b15d95a59da1d
000021d7: PUSH1 0xaa
000021d9: SHL
000021da: PUSH1 0x44
000021dc: DUP3
000021dd: ADD
000021de: MSTORE
000021df: PUSH1 0x64
000021e1: SWAP1
000021e2: REVERT
000021e3: JUMPDEST
000021e4: PUSH1 0xa4
000021e6: SWAP3
000021e7: POP
000021e8: PUSH1 0x40
000021ea: MLOAD
000021eb: SWAP2
000021ec: PUSH4 0x38d06e1d
000021f1: PUSH1 0xe0
000021f3: SHL
000021f4: DUP4
000021f5: MSTORE
000021f6: PUSH1 0x60
000021f8: PUSH1 0x04
000021fa: DUP5
000021fb: ADD
000021fc: MSTORE
000021fd: PUSH1 0x10
000021ff: PUSH1 0x64
00002201: DUP5
00002202: ADD
00002203: MSTORE
00002204: PUSH16 0x6d6178546f74616c4465706f73697473
00002215: PUSH1 0x80
00002217: SHL
00002218: PUSH1 0x84
0000221a: DUP5
0000221b: ADD
0000221c: MSTORE
0000221d: PUSH1 0x24
0000221f: DUP4
00002220: ADD
00002221: MSTORE
00002222: PUSH1 0x44
00002224: DUP3
00002225: ADD
00002226: MSTORE
00002227: REVERT
00002228: JUMPDEST
00002229: CALLVALUE
0000222a: PUSH2 0x03b2
0000222d: JUMPI
0000222e: PUSH1 0x60
00002230: CALLDATASIZE
00002231: PUSH1 0x03
00002233: NOT
00002234: ADD
00002235: SLT
00002236: PUSH2 0x03b2
00002239: JUMPI
0000223a: PUSH2 0x2241
0000223d: PUSH2 0x3fa8
00002240: JUMP
00002241: JUMPDEST
00002242: PUSH1 0x24
00002244: CALLDATALOAD
00002245: PUSH2 0x224c
00002248: PUSH2 0x3fd4
0000224b: JUMP
0000224c: JUMPDEST
0000224d: PUSH2 0x2254
00002250: PUSH2 0x487d
00002253: JUMP
00002254: JUMPDEST
00002255: PUSH2 0x225c
00002258: PUSH2 0x48b2
0000225b: JUMP
0000225c: JUMPDEST
0000225d: DUP2
0000225e: PUSH1 0x01
00002260: PUSH1 0x01
00002262: PUSH1 0xa0
00002264: SHL
00002265: SUB
00002266: DUP5
00002267: AND
00002268: DUP1
00002269: ISZERO
0000226a: PUSH2 0x1aeb
0000226d: JUMPI
0000226e: PUSH1 0x01
00002270: PUSH1 0x01
00002272: PUSH1 0xa0
00002274: SHL
00002275: SUB
00002276: PUSH32 0x285a08d85aaeb56c8b9d22b6877dffaed0cb5d07c1c14494aff61d9524746a12
00002297: SWAP4
00002298: PUSH1 0x80
0000229a: SWAP4
0000229b: PUSH1 0x20
0000229d: SWAP8
0000229e: PUSH0
0000229f: MLOAD
000022a0: PUSH1 0x20
000022a2: PUSH2 0x5c7d
000022a5: PUSH0
000022a6: CODECOPY
000022a7: PUSH0
000022a8: MLOAD
000022a9: SWAP1
000022aa: PUSH0
000022ab: MSTORE
000022ac: SLOAD
000022ad: SWAP8
000022ae: PUSH2 0x22b6
000022b1: DUP10
000022b2: PUSH2 0x519a
000022b5: JUMP
000022b6: JUMPDEST
000022b7: DUP1
000022b8: SWAP2
000022b9: GT
000022ba: PUSH2 0x2343
000022bd: JUMPI
000022be: JUMPDEST
000022bf: POP
000022c0: PUSH2 0x22cc
000022c3: DUP3
000022c4: PUSH2 0x22d3
000022c7: SWAP3
000022c8: PUSH2 0x4eb5
000022cb: JUMP
000022cc: JUMPDEST
000022cd: DUP1
000022ce: SWAP9
000022cf: PUSH2 0x45d3
000022d2: JUMP
000022d3: JUMPDEST
000022d4: PUSH0
000022d5: MLOAD
000022d6: PUSH1 0x20
000022d8: PUSH2 0x5c7d
000022db: PUSH0
000022dc: CODECOPY
000022dd: PUSH0
000022de: MLOAD
000022df: SWAP1
000022e0: PUSH0
000022e1: MSTORE
000022e2: SSTORE
000022e3: PUSH2 0x2314
000022e6: PUSH2 0x22fd
000022e9: PUSH0
000022ea: MLOAD
000022eb: PUSH1 0x20
000022ed: PUSH2 0x5cdd
000022f0: PUSH0
000022f1: CODECOPY
000022f2: PUSH0
000022f3: MLOAD
000022f4: SWAP1
000022f5: PUSH0
000022f6: MSTORE
000022f7: SLOAD
000022f8: DUP10
000022f9: PUSH2 0x45e0
000022fc: JUMP
000022fd: JUMPDEST
000022fe: DUP4
000022ff: DUP6
00002300: PUSH0
00002301: MLOAD
00002302: PUSH1 0x20
00002304: PUSH2 0x5d1d
00002307: PUSH0
00002308: CODECOPY
00002309: PUSH0
0000230a: MLOAD
0000230b: SWAP1
0000230c: PUSH0
0000230d: MSTORE
0000230e: SLOAD
0000230f: AND
00002310: PUSH2 0x5202
00002313: JUMP
00002314: JUMPDEST
00002315: PUSH1 0x40
00002317: MLOAD
00002318: SWAP4
00002319: DUP5
0000231a: MSTORE
0000231b: DUP8
0000231c: DUP5
0000231d: ADD
0000231e: MSTORE
0000231f: DUP6
00002320: PUSH1 0x40
00002322: DUP5
00002323: ADD
00002324: MSTORE
00002325: AND
00002326: PUSH1 0x60
00002328: DUP3
00002329: ADD
0000232a: MSTORE
0000232b: LOG1
0000232c: PUSH0
0000232d: PUSH0
0000232e: MLOAD
0000232f: PUSH1 0x20
00002331: PUSH2 0x5cfd
00002334: PUSH0
00002335: CODECOPY
00002336: PUSH0
00002337: MLOAD
00002338: SWAP1
00002339: PUSH0
0000233a: MSTORE
0000233b: TSTORE
0000233c: PUSH1 0x40
0000233e: MLOAD
0000233f: SWAP1
00002340: DUP2
00002341: MSTORE
00002342: RETURN
00002343: JUMPDEST
00002344: SWAP2
00002345: POP
00002346: PUSH2 0x22cc
00002349: PUSH2 0x22be
0000234c: JUMP
0000234d: JUMPDEST
0000234e: CALLVALUE
0000234f: PUSH2 0x03b2
00002352: JUMPI
00002353: PUSH2 0x235b
00002356: CALLDATASIZE
00002357: PUSH2 0x4112
0000235a: JUMP
0000235b: JUMPDEST
0000235c: SWAP1
0000235d: PUSH0
0000235e: MSTORE
0000235f: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea02
00002380: PUSH1 0x20
00002382: MSTORE
00002383: PUSH1 0x40
00002385: PUSH0
00002386: KECCAK256
00002387: SWAP1
00002388: PUSH0
00002389: MSTORE
0000238a: PUSH1 0x20
0000238c: MSTORE
0000238d: PUSH1 0x20
0000238f: PUSH1 0x40
00002391: PUSH0
00002392: KECCAK256
00002393: SLOAD
00002394: PUSH1 0x40
00002396: MLOAD
00002397: SWAP1
00002398: DUP2
00002399: MSTORE
0000239a: RETURN
0000239b: JUMPDEST
0000239c: CALLVALUE
0000239d: PUSH2 0x03b2
000023a0: JUMPI
000023a1: PUSH0
000023a2: CALLDATASIZE
000023a3: PUSH1 0x03
000023a5: NOT
000023a6: ADD
000023a7: SLT
000023a8: PUSH2 0x03b2
000023ab: JUMPI
000023ac: PUSH1 0x20
000023ae: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b
000023cf: SLOAD
000023d0: PUSH1 0x40
000023d2: MLOAD
000023d3: SWAP1
000023d4: DUP2
000023d5: MSTORE
000023d6: RETURN
000023d7: JUMPDEST
000023d8: CALLVALUE
000023d9: PUSH2 0x03b2
000023dc: JUMPI
000023dd: PUSH2 0x23e5
000023e0: CALLDATASIZE
000023e1: PUSH2 0x40f8
000023e4: JUMP
000023e5: JUMPDEST
000023e6: SWAP2
000023e7: PUSH2 0x23ee
000023ea: PUSH2 0x4921
000023ed: JUMP
000023ee: JUMPDEST
000023ef: PUSH0
000023f0: MLOAD
000023f1: PUSH1 0x20
000023f3: PUSH2 0x5c3d
000023f6: PUSH0
000023f7: CODECOPY
000023f8: PUSH0
000023f9: MLOAD
000023fa: SWAP1
000023fb: PUSH0
000023fc: MSTORE
000023fd: SLOAD
000023fe: DUP1
000023ff: PUSH1 0x64
00002401: GT
00002402: ISZERO
00002403: PUSH2 0x25ed
00002406: JUMPI
00002407: PUSH0
00002408: JUMPDEST
00002409: DUP2
0000240a: DUP2
0000240b: LT
0000240c: PUSH2 0x259c
0000240f: JUMPI
00002410: POP
00002411: PUSH2 0x2428
00002414: DUP5
00002415: PUSH0
00002416: MLOAD
00002417: PUSH1 0x20
00002419: PUSH2 0x5b9d
0000241c: PUSH0
0000241d: CODECOPY
0000241e: PUSH0
0000241f: MLOAD
00002420: SWAP1
00002421: PUSH0
00002422: MSTORE
00002423: SLOAD
00002424: PUSH2 0x45c6
00002427: JUMP
00002428: JUMPDEST
00002429: PUSH0
0000242a: MLOAD
0000242b: PUSH1 0x20
0000242d: PUSH2 0x5b9d
00002430: PUSH0
00002431: CODECOPY
00002432: PUSH0
00002433: MLOAD
00002434: SWAP1
00002435: PUSH0
00002436: MSTORE
00002437: SSTORE
00002438: DUP2
00002439: PUSH0
0000243a: MSTORE
0000243b: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea02
0000245c: PUSH1 0x20
0000245e: MSTORE
0000245f: PUSH1 0x40
00002461: PUSH0
00002462: KECCAK256
00002463: DUP4
00002464: PUSH0
00002465: MSTORE
00002466: PUSH1 0x20
00002468: MSTORE
00002469: PUSH1 0x40
0000246b: PUSH0
0000246c: KECCAK256
0000246d: SSTORE
0000246e: PUSH1 0x40
00002470: MLOAD
00002471: SWAP3
00002472: PUSH2 0x247a
00002475: DUP5
00002476: PUSH2 0x4054
00002479: JUMP
0000247a: JUMPDEST
0000247b: DUP2
0000247c: DUP5
0000247d: MSTORE
0000247e: PUSH1 0x20
00002480: DUP5
00002481: ADD
00002482: SWAP1
00002483: DUP4
00002484: DUP3
00002485: MSTORE
00002486: PUSH1 0x40
00002488: DUP6
00002489: ADD
0000248a: SWAP5
0000248b: DUP2
0000248c: DUP7
0000248d: MSTORE
0000248e: PUSH1 0x60
00002490: DUP2
00002491: ADD
00002492: SWAP1
00002493: PUSH0
00002494: DUP3
00002495: MSTORE
00002496: PUSH1 0x80
00002498: DUP2
00002499: ADD
0000249a: SWAP2
0000249b: PUSH0
0000249c: DUP4
0000249d: MSTORE
0000249e: PUSH1 0xa0
000024a0: DUP3
000024a1: ADD
000024a2: PUSH0
000024a3: DUP2
000024a4: MSTORE
000024a5: PUSH1 0xc0
000024a7: DUP4
000024a8: ADD
000024a9: SWAP1
000024aa: PUSH0
000024ab: DUP3
000024ac: MSTORE
000024ad: PUSH1 0xe0
000024af: DUP5
000024b0: ADD
000024b1: SWAP5
000024b2: PUSH0
000024b3: DUP7
000024b4: MSTORE
000024b5: PUSH0
000024b6: MLOAD
000024b7: PUSH1 0x20
000024b9: PUSH2 0x5c3d
000024bc: PUSH0
000024bd: CODECOPY
000024be: PUSH0
000024bf: MLOAD
000024c0: SWAP1
000024c1: PUSH0
000024c2: MSTORE
000024c3: SLOAD
000024c4: PUSH9 0x010000000000000000
000024ce: DUP2
000024cf: LT
000024d0: ISZERO
000024d1: PUSH2 0x2588
000024d4: JUMPI
000024d5: DUP1
000024d6: PUSH1 0x01
000024d8: PUSH2 0x24f0
000024db: SWAP3
000024dc: ADD
000024dd: PUSH0
000024de: MLOAD
000024df: PUSH1 0x20
000024e1: PUSH2 0x5c3d
000024e4: PUSH0
000024e5: CODECOPY
000024e6: PUSH0
000024e7: MLOAD
000024e8: SWAP1
000024e9: PUSH0
000024ea: MSTORE
000024eb: SSTORE
000024ec: PUSH2 0x43ed
000024ef: JUMP
000024f0: JUMPDEST
000024f1: SWAP5
000024f2: SWAP1
000024f3: SWAP5
000024f4: PUSH2 0x2575
000024f7: JUMPI
000024f8: PUSH32 0x5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac24
00002519: SWAP12
0000251a: PUSH2 0x09ce
0000251d: SWAP10
0000251e: PUSH1 0x07
00002520: SWAP8
00002521: MLOAD
00002522: DUP8
00002523: SSTORE
00002524: MLOAD
00002525: PUSH1 0x01
00002527: DUP8
00002528: ADD
00002529: SSTORE
0000252a: MLOAD
0000252b: PUSH1 0x02
0000252d: DUP7
0000252e: ADD
0000252f: SSTORE
00002530: MLOAD
00002531: PUSH1 0x03
00002533: DUP6
00002534: ADD
00002535: SSTORE
00002536: MLOAD
00002537: PUSH1 0x04
00002539: DUP5
0000253a: ADD
0000253b: SSTORE
0000253c: MLOAD
0000253d: PUSH1 0x05
0000253f: DUP4
00002540: ADD
00002541: SSTORE
00002542: MLOAD
00002543: PUSH1 0x06
00002545: DUP3
00002546: ADD
00002547: SSTORE
00002548: ADD
00002549: SWAP1
0000254a: MLOAD
0000254b: ISZERO
0000254c: ISZERO
0000254d: PUSH1 0xff
0000254f: DUP1
00002550: NOT
00002551: DUP4
00002552: SLOAD
00002553: AND
00002554: SWAP2
00002555: AND
00002556: OR
00002557: SWAP1
00002558: SSTORE
00002559: PUSH1 0x40
0000255b: MLOAD
0000255c: SWAP4
0000255d: DUP5
0000255e: SWAP4
0000255f: DUP5
00002560: PUSH1 0x40
00002562: SWAP2
00002563: SWAP5
00002564: SWAP4
00002565: SWAP3
00002566: PUSH1 0x60
00002568: DUP3
00002569: ADD
0000256a: SWAP6
0000256b: DUP3
0000256c: MSTORE
0000256d: PUSH1 0x20
0000256f: DUP3
00002570: ADD
00002571: MSTORE
00002572: ADD
00002573: MSTORE
00002574: JUMP
00002575: JUMPDEST
00002576: PUSH4 0x4e487b71
0000257b: PUSH1 0xe0
0000257d: SHL
0000257e: PUSH0
0000257f: MSTORE
00002580: PUSH0
00002581: PUSH1 0x04
00002583: MSTORE
00002584: PUSH1 0x24
00002586: PUSH0
00002587: REVERT
00002588: JUMPDEST
00002589: PUSH4 0x4e487b71
0000258e: PUSH1 0xe0
00002590: SHL
00002591: PUSH0
00002592: MSTORE
00002593: PUSH1 0x41
00002595: PUSH1 0x04
00002597: MSTORE
00002598: PUSH1 0x24
0000259a: PUSH0
0000259b: REVERT
0000259c: JUMPDEST
0000259d: PUSH2 0x25ae
000025a0: PUSH2 0x25a8
000025a3: DUP3
000025a4: PUSH2 0x43ed
000025a7: JUMP
000025a8: JUMPDEST
000025a9: POP
000025aa: PUSH2 0x4435
000025ad: JUMP
000025ae: JUMPDEST
000025af: DUP5
000025b0: DUP5
000025b1: DUP3
000025b2: MLOAD
000025b3: EQ
000025b4: SWAP2
000025b5: DUP3
000025b6: PUSH2 0x25df
000025b9: JUMPI
000025ba: JUMPDEST
000025bb: POP
000025bc: POP
000025bd: PUSH2 0x25c8
000025c0: JUMPI
000025c1: PUSH1 0x01
000025c3: ADD
000025c4: PUSH2 0x2408
000025c7: JUMP
000025c8: JUMPDEST
000025c9: POP
000025ca: POP
000025cb: PUSH4 0xb020eb63
000025d0: PUSH1 0xe0
000025d2: SHL
000025d3: PUSH0
000025d4: MSTORE
000025d5: PUSH1 0x04
000025d7: MSTORE
000025d8: PUSH1 0x24
000025da: MSTORE
000025db: PUSH1 0x44
000025dd: PUSH0
000025de: REVERT
000025df: JUMPDEST
000025e0: PUSH1 0x20
000025e2: ADD
000025e3: MLOAD
000025e4: EQ
000025e5: SWAP1
000025e6: POP
000025e7: DUP5
000025e8: DUP8
000025e9: PUSH2 0x25ba
000025ec: JUMP
000025ed: JUMPDEST
000025ee: PUSH1 0x01
000025f0: DUP2
000025f1: ADD
000025f2: DUP1
000025f3: SWAP2
000025f4: GT
000025f5: PUSH2 0x2636
000025f8: JUMPI
000025f9: PUSH1 0xa4
000025fb: SWAP1
000025fc: PUSH1 0x40
000025fe: MLOAD
000025ff: SWAP1
00002600: PUSH4 0x38d06e1d
00002605: PUSH1 0xe0
00002607: SHL
00002608: DUP3
00002609: MSTORE
0000260a: PUSH1 0x60
0000260c: PUSH1 0x04
0000260e: DUP4
0000260f: ADD
00002610: MSTORE
00002611: PUSH1 0x08
00002613: PUSH1 0x64
00002615: DUP4
00002616: ADD
00002617: MSTORE
00002618: PUSH8 0x1419595c941bdbdb
00002621: PUSH1 0xc2
00002623: SHL
00002624: PUSH1 0x84
00002626: DUP4
00002627: ADD
00002628: MSTORE
00002629: PUSH1 0x24
0000262b: DUP3
0000262c: ADD
0000262d: MSTORE
0000262e: PUSH1 0x64
00002630: PUSH1 0x44
00002632: DUP3
00002633: ADD
00002634: MSTORE
00002635: REVERT
00002636: JUMPDEST
00002637: PUSH4 0x4e487b71
0000263c: PUSH1 0xe0
0000263e: SHL
0000263f: PUSH0
00002640: MSTORE
00002641: PUSH1 0x11
00002643: PUSH1 0x04
00002645: MSTORE
00002646: PUSH1 0x24
00002648: PUSH0
00002649: REVERT
0000264a: JUMPDEST
0000264b: CALLVALUE
0000264c: PUSH2 0x03b2
0000264f: JUMPI
00002650: PUSH2 0x0120
00002653: CALLDATASIZE
00002654: PUSH1 0x03
00002656: NOT
00002657: ADD
00002658: SLT
00002659: PUSH2 0x03b2
0000265c: JUMPI
0000265d: PUSH2 0x2664
00002660: PUSH2 0x3fd4
00002663: JUMP
00002664: JUMPDEST
00002665: POP
00002666: PUSH1 0xa0
00002668: PUSH2 0x2670
0000266b: CALLDATASIZE
0000266c: PUSH2 0x40af
0000266f: JUMP
00002670: JUMPDEST
00002671: PUSH2 0x2678
00002674: PUSH2 0x487d
00002677: JUMP
00002678: JUMPDEST
00002679: PUSH2 0x2680
0000267c: PUSH2 0x48b2
0000267f: JUMP
00002680: JUMPDEST
00002681: PUSH2 0x2689
00002684: DUP2
00002685: PUSH2 0x5117
00002688: JUMP
00002689: JUMPDEST
0000268a: ADD
0000268b: MLOAD
0000268c: PUSH2 0x0bb9
0000268f: PUSH1 0x05
00002691: PUSH2 0x125f
00002694: PUSH1 0x24
00002696: CALLDATALOAD
00002697: PUSH1 0x04
00002699: CALLDATALOAD
0000269a: PUSH2 0x49bd
0000269d: JUMP
0000269e: JUMPDEST
0000269f: CALLVALUE
000026a0: PUSH2 0x03b2
000026a3: JUMPI
000026a4: PUSH1 0x40
000026a6: CALLDATASIZE
000026a7: PUSH1 0x03
000026a9: NOT
000026aa: ADD
000026ab: SLT
000026ac: PUSH2 0x03b2
000026af: JUMPI
000026b0: PUSH2 0x26b7
000026b3: PUSH2 0x3fbe
000026b6: JUMP
000026b7: JUMPDEST
000026b8: CALLER
000026b9: PUSH1 0x01
000026bb: PUSH1 0x01
000026bd: PUSH1 0xa0
000026bf: SHL
000026c0: SUB
000026c1: DUP3
000026c2: AND
000026c3: SUB
000026c4: PUSH2 0x26d3
000026c7: JUMPI
000026c8: PUSH2 0x0763
000026cb: SWAP1
000026cc: PUSH1 0x04
000026ce: CALLDATALOAD
000026cf: PUSH2 0x507a
000026d2: JUMP
000026d3: JUMPDEST
000026d4: PUSH4 0x334bd919
000026d9: PUSH1 0xe1
000026db: SHL
000026dc: PUSH0
000026dd: MSTORE
000026de: PUSH1 0x04
000026e0: PUSH0
000026e1: REVERT
000026e2: JUMPDEST
000026e3: CALLVALUE
000026e4: PUSH2 0x03b2
000026e7: JUMPI
000026e8: PUSH0
000026e9: CALLDATASIZE
000026ea: PUSH1 0x03
000026ec: NOT
000026ed: ADD
000026ee: SLT
000026ef: PUSH2 0x03b2
000026f2: JUMPI
000026f3: PUSH1 0x20
000026f5: PUSH2 0x137d
000026f8: PUSH2 0x57f6
000026fb: JUMP
000026fc: JUMPDEST
000026fd: CALLVALUE
000026fe: PUSH2 0x03b2
00002701: JUMPI
00002702: PUSH0
00002703: CALLDATASIZE
00002704: PUSH1 0x03
00002706: NOT
00002707: ADD
00002708: SLT
00002709: PUSH2 0x03b2
0000270c: JUMPI
0000270d: PUSH1 0x20
0000270f: PUSH0
00002710: MLOAD
00002711: PUSH1 0x20
00002713: PUSH2 0x5c1d
00002716: PUSH0
00002717: CODECOPY
00002718: PUSH0
00002719: MLOAD
0000271a: SWAP1
0000271b: PUSH0
0000271c: MSTORE
0000271d: SLOAD
0000271e: PUSH1 0x40
00002720: MLOAD
00002721: SWAP1
00002722: DUP2
00002723: MSTORE
00002724: RETURN
00002725: JUMPDEST
00002726: CALLVALUE
00002727: PUSH2 0x03b2
0000272a: JUMPI
0000272b: PUSH0
0000272c: CALLDATASIZE
0000272d: PUSH1 0x03
0000272f: NOT
00002730: ADD
00002731: SLT
00002732: PUSH2 0x03b2
00002735: JUMPI
00002736: PUSH1 0x20
00002738: PUSH1 0xff
0000273a: PUSH0
0000273b: MLOAD
0000273c: PUSH1 0x20
0000273e: PUSH2 0x5afd
00002741: PUSH0
00002742: CODECOPY
00002743: PUSH0
00002744: MLOAD
00002745: SWAP1
00002746: PUSH0
00002747: MSTORE
00002748: SLOAD
00002749: AND
0000274a: PUSH1 0x40
0000274c: MLOAD
0000274d: SWAP1
0000274e: DUP2
0000274f: MSTORE
00002750: RETURN
00002751: JUMPDEST
00002752: CALLVALUE
00002753: PUSH2 0x03b2
00002756: JUMPI
00002757: PUSH1 0x40
00002759: CALLDATASIZE
0000275a: PUSH1 0x03
0000275c: NOT
0000275d: ADD
0000275e: SLT
0000275f: PUSH2 0x03b2
00002762: JUMPI
00002763: PUSH2 0x0763
00002766: PUSH1 0x04
00002768: CALLDATALOAD
00002769: PUSH2 0x2770
0000276c: PUSH2 0x3fbe
0000276f: JUMP
00002770: JUMPDEST
00002771: SWAP1
00002772: PUSH2 0x2796
00002775: PUSH2 0x0759
00002778: DUP3
00002779: PUSH0
0000277a: MSTORE
0000277b: PUSH0
0000277c: MLOAD
0000277d: PUSH1 0x20
0000277f: PUSH2 0x5c5d
00002782: PUSH0
00002783: CODECOPY
00002784: PUSH0
00002785: MLOAD
00002786: SWAP1
00002787: PUSH0
00002788: MSTORE
00002789: PUSH1 0x20
0000278b: MSTORE
0000278c: PUSH1 0x01
0000278e: PUSH1 0x40
00002790: PUSH0
00002791: KECCAK256
00002792: ADD
00002793: SLOAD
00002794: SWAP1
00002795: JUMP
00002796: JUMPDEST
00002797: PUSH2 0x47d6
0000279a: JUMP
0000279b: JUMPDEST
0000279c: CALLVALUE
0000279d: PUSH2 0x03b2
000027a0: JUMPI
000027a1: PUSH1 0xa0
000027a3: CALLDATASIZE
000027a4: PUSH1 0x03
000027a6: NOT
000027a7: ADD
000027a8: SLT
000027a9: PUSH2 0x03b2
000027ac: JUMPI
000027ad: PUSH1 0x24
000027af: CALLDATALOAD
000027b0: PUSH1 0x04
000027b2: CALLDATALOAD
000027b3: PUSH2 0x27ba
000027b6: PUSH2 0x3fd4
000027b9: JUMP
000027ba: JUMPDEST
000027bb: SWAP2
000027bc: PUSH1 0x64
000027be: CALLDATALOAD
000027bf: SWAP2
000027c0: PUSH1 0x84
000027c2: CALLDATALOAD
000027c3: PUSH8 0xffffffffffffffff
000027cc: DUP2
000027cd: GT
000027ce: PUSH2 0x03b2
000027d1: JUMPI
000027d2: CALLDATASIZE
000027d3: PUSH1 0x23
000027d5: DUP3
000027d6: ADD
000027d7: SLT
000027d8: ISZERO
000027d9: PUSH2 0x03b2
000027dc: JUMPI
000027dd: DUP1
000027de: PUSH1 0x04
000027e0: ADD
000027e1: CALLDATALOAD
000027e2: SWAP1
000027e3: PUSH8 0xffffffffffffffff
000027ec: DUP3
000027ed: GT
000027ee: PUSH2 0x03b2
000027f1: JUMPI
000027f2: CALLDATASIZE
000027f3: PUSH1 0x24
000027f5: DUP4
000027f6: DUP4
000027f7: ADD
000027f8: ADD
000027f9: GT
000027fa: PUSH2 0x03b2
000027fd: JUMPI
000027fe: PUSH2 0x2805
00002801: PUSH2 0x487d
00002804: JUMP
00002805: JUMPDEST
00002806: PUSH2 0x280d
00002809: PUSH2 0x48b2
0000280c: JUMP
0000280d: JUMPDEST
0000280e: PUSH1 0x01
00002810: PUSH1 0x01
00002812: PUSH1 0xa0
00002814: SHL
00002815: SUB
00002816: DUP7
00002817: AND
00002818: SWAP6
00002819: DUP7
0000281a: ISZERO
0000281b: PUSH2 0x1aeb
0000281e: JUMPI
0000281f: PUSH1 0x01
00002821: PUSH1 0xff
00002823: PUSH1 0x07
00002825: PUSH2 0x282e
00002828: DUP9
00002829: DUP9
0000282a: PUSH2 0x49bd
0000282d: JUMP
0000282e: JUMPDEST
0000282f: ADD
00002830: SLOAD
00002831: AND
00002832: ISZERO
00002833: ISZERO
00002834: SUB
00002835: PUSH2 0x2c86
00002838: JUMPI
00002839: DUP6
0000283a: PUSH2 0x2842
0000283d: SWAP2
0000283e: PUSH2 0x4eb5
00002841: JUMP
00002842: JUMPDEST
00002843: SWAP5
00002844: PUSH1 0xff
00002846: PUSH0
00002847: MLOAD
00002848: PUSH1 0x20
0000284a: PUSH2 0x5c9d
0000284d: PUSH0
0000284e: CODECOPY
0000284f: PUSH0
00002850: MLOAD
00002851: SWAP1
00002852: PUSH0
00002853: MSTORE
00002854: SLOAD
00002855: AND
00002856: ISZERO
00002857: DUP1
00002858: ISZERO
00002859: PUSH2 0x2c45
0000285c: JUMPI
0000285d: JUMPDEST
0000285e: PUSH2 0x28ea
00002861: JUMPI
00002862: JUMPDEST
00002863: SWAP2
00002864: DUP1
00002865: PUSH1 0x24
00002867: PUSH32 0xc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c
00002888: SWAP7
00002889: SWAP6
0000288a: SWAP4
0000288b: PUSH1 0xe0
0000288d: SWAP6
0000288e: PUSH1 0x20
00002890: SWAP11
00002891: PUSH1 0x40
00002893: MLOAD
00002894: SWAP9
00002895: DUP10
00002896: SWAP8
00002897: DUP9
00002898: MSTORE
00002899: DUP13
0000289a: DUP9
0000289b: ADD
0000289c: MSTORE
0000289d: PUSH1 0x40
0000289f: DUP8
000028a0: ADD
000028a1: MSTORE
000028a2: PUSH1 0x60
000028a4: DUP7
000028a5: ADD
000028a6: MSTORE
000028a7: DUP9
000028a8: PUSH1 0x80
000028aa: DUP7
000028ab: ADD
000028ac: MSTORE
000028ad: PUSH1 0xc0
000028af: PUSH1 0xa0
000028b1: DUP7
000028b2: ADD
000028b3: MSTORE
000028b4: DUP3
000028b5: PUSH1 0xc0
000028b7: DUP7
000028b8: ADD
000028b9: MSTORE
000028ba: ADD
000028bb: DUP5
000028bc: DUP5
000028bd: ADD
000028be: CALLDATACOPY
000028bf: PUSH0
000028c0: DUP3
000028c1: DUP3
000028c2: ADD
000028c3: DUP5
000028c4: ADD
000028c5: MSTORE
000028c6: PUSH1 0x1f
000028c8: ADD
000028c9: PUSH1 0x1f
000028cb: NOT
000028cc: AND
000028cd: DUP2
000028ce: ADD
000028cf: SUB
000028d0: ADD
000028d1: SWAP1
000028d2: LOG1
000028d3: PUSH0
000028d4: PUSH0
000028d5: MLOAD
000028d6: PUSH1 0x20
000028d8: PUSH2 0x5cfd
000028db: PUSH0
000028dc: CODECOPY
000028dd: PUSH0
000028de: MLOAD
000028df: SWAP1
000028e0: PUSH0
000028e1: MSTORE
000028e2: TSTORE
000028e3: PUSH1 0x40
000028e5: MLOAD
000028e6: SWAP1
000028e7: DUP2
000028e8: MSTORE
000028e9: RETURN
000028ea: JUMPDEST
000028eb: PUSH0
000028ec: MLOAD
000028ed: PUSH1 0x20
000028ef: PUSH2 0x5c7d
000028f2: PUSH0
000028f3: CODECOPY
000028f4: PUSH0
000028f5: MLOAD
000028f6: SWAP1
000028f7: PUSH0
000028f8: MSTORE
000028f9: SLOAD
000028fa: SWAP7
000028fb: PUSH0
000028fc: DUP9
000028fd: ISZERO
000028fe: ISZERO
000028ff: DUP1
00002900: PUSH2 0x2c2e
00002903: JUMPI
00002904: JUMPDEST
00002905: PUSH2 0x2911
00002908: JUMPI
00002909: JUMPDEST
0000290a: POP
0000290b: SWAP7
0000290c: POP
0000290d: PUSH2 0x2862
00002910: JUMP
00002911: JUMPDEST
00002912: PUSH0
00002913: MLOAD
00002914: PUSH1 0x20
00002916: PUSH2 0x5c3d
00002919: PUSH0
0000291a: CODECOPY
0000291b: PUSH0
0000291c: MLOAD
0000291d: SWAP1
0000291e: PUSH0
0000291f: MSTORE
00002920: SLOAD
00002921: SWAP1
00002922: PUSH2 0x292a
00002925: DUP3
00002926: PUSH2 0x4629
00002929: JUMP
0000292a: JUMPDEST
0000292b: PUSH0
0000292c: PUSH0
0000292d: PUSH0
0000292e: MLOAD
0000292f: PUSH1 0x20
00002931: PUSH2 0x5a7d
00002934: PUSH0
00002935: CODECOPY
00002936: PUSH0
00002937: MLOAD
00002938: SWAP1
00002939: PUSH0
0000293a: MSTORE
0000293b: SLOAD
0000293c: PUSH0
0000293d: MLOAD
0000293e: PUSH1 0x20
00002940: PUSH2 0x5b9d
00002943: PUSH0
00002944: CODECOPY
00002945: PUSH0
00002946: MLOAD
00002947: SWAP1
00002948: PUSH0
00002949: MSTORE
0000294a: SLOAD
0000294b: SWAP2
0000294c: JUMPDEST
0000294d: DUP7
0000294e: DUP2
0000294f: LT
00002950: PUSH2 0x2bbd
00002953: JUMPI
00002954: POP
00002955: POP
00002956: POP
00002957: PUSH0
00002958: SWAP12
00002959: DUP2
0000295a: ISZERO
0000295b: PUSH0
0000295c: EQ
0000295d: PUSH2 0x2a5a
00002960: JUMPI
00002961: POP
00002962: POP
00002963: POP
00002964: DUP1
00002965: DUP1
00002966: PUSH2 0x2a43
00002969: JUMPI
0000296a: JUMPDEST
0000296b: PUSH2 0x29d5
0000296e: JUMPI
0000296f: JUMPDEST
00002970: POP
00002971: POP
00002972: SWAP3
00002973: PUSH1 0x24
00002975: PUSH32 0xc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c
00002996: SWAP7
00002997: SWAP6
00002998: SWAP4
00002999: DUP3
0000299a: SWAP4
0000299b: PUSH1 0xe0
0000299d: SWAP7
0000299e: PUSH2 0x29b8
000029a1: PUSH1 0x20
000029a3: SWAP13
000029a4: JUMPDEST
000029a5: PUSH0
000029a6: MLOAD
000029a7: PUSH1 0x20
000029a9: PUSH2 0x5c7d
000029ac: PUSH0
000029ad: CODECOPY
000029ae: PUSH0
000029af: MLOAD
000029b0: SWAP1
000029b1: PUSH0
000029b2: MSTORE
000029b3: SLOAD
000029b4: PUSH2 0x45d3
000029b7: JUMP
000029b8: JUMPDEST
000029b9: PUSH0
000029ba: MLOAD
000029bb: PUSH1 0x20
000029bd: PUSH2 0x5c7d
000029c0: PUSH0
000029c1: CODECOPY
000029c2: PUSH0
000029c3: MLOAD
000029c4: SWAP1
000029c5: PUSH0
000029c6: MSTORE
000029c7: SSTORE
000029c8: SWAP4
000029c9: POP
000029ca: SWAP4
000029cb: SWAP6
000029cc: POP
000029cd: SWAP4
000029ce: SWAP6
000029cf: SWAP7
000029d0: POP
000029d1: PUSH2 0x2909
000029d4: JUMP
000029d5: JUMPDEST
000029d6: DUP2
000029d7: DUP2
000029d8: LT
000029d9: ISZERO
000029da: PUSH2 0x296f
000029dd: JUMPI
000029de: PUSH2 0x29e6
000029e1: DUP2
000029e2: PUSH2 0x43ed
000029e5: JUMP
000029e6: JUMPDEST
000029e7: POP
000029e8: SWAP10
000029e9: PUSH0
000029ea: MLOAD
000029eb: PUSH1 0x20
000029ed: PUSH2 0x5c7d
000029f0: PUSH0
000029f1: CODECOPY
000029f2: PUSH0
000029f3: MLOAD
000029f4: SWAP1
000029f5: PUSH0
000029f6: MSTORE
000029f7: SLOAD
000029f8: PUSH1 0x02
000029fa: DUP13
000029fb: ADD
000029fc: SLOAD
000029fd: PUSH2 0x2a05
00002a00: SWAP2
00002a01: PUSH2 0x45e0
00002a04: JUMP
00002a05: JUMPDEST
00002a06: PUSH0
00002a07: MLOAD
00002a08: PUSH1 0x20
00002a0a: PUSH2 0x5b9d
00002a0d: PUSH0
00002a0e: CODECOPY
00002a0f: PUSH0
00002a10: MLOAD
00002a11: SWAP1
00002a12: PUSH0
00002a13: MSTORE
00002a14: SLOAD
00002a15: PUSH2 0x2a1d
00002a18: SWAP2
00002a19: PUSH2 0x45f3
00002a1c: JUMP
00002a1d: JUMPDEST
00002a1e: SWAP1
00002a1f: DUP2
00002a20: PUSH2 0x2a28
00002a23: SWAP2
00002a24: PUSH2 0x45c6
00002a27: JUMP
00002a28: JUMPDEST
00002a29: SWAP11
00002a2a: PUSH1 0x06
00002a2c: ADD
00002a2d: SWAP1
00002a2e: DUP2
00002a2f: SLOAD
00002a30: SWAP1
00002a31: PUSH2 0x2a39
00002a34: SWAP2
00002a35: PUSH2 0x45c6
00002a38: JUMP
00002a39: JUMPDEST
00002a3a: SWAP1
00002a3b: SSTORE
00002a3c: PUSH1 0x01
00002a3e: ADD
00002a3f: PUSH2 0x29d5
00002a42: JUMP
00002a43: JUMPDEST
00002a44: POP
00002a45: PUSH0
00002a46: MLOAD
00002a47: PUSH1 0x20
00002a49: PUSH2 0x5c7d
00002a4c: PUSH0
00002a4d: CODECOPY
00002a4e: PUSH0
00002a4f: MLOAD
00002a50: SWAP1
00002a51: PUSH0
00002a52: MSTORE
00002a53: SLOAD
00002a54: ISZERO
00002a55: ISZERO
00002a56: PUSH2 0x296a
00002a59: JUMP
00002a5a: JUMPDEST
00002a5b: SWAP1
00002a5c: DUP1
00002a5d: SWAP3
00002a5e: SWAP4
00002a5f: SWAP2
00002a60: LT
00002a61: PUSH0
00002a62: EQ
00002a63: PUSH2 0x2b2d
00002a66: JUMPI
00002a67: JUMPDEST
00002a68: DUP4
00002a69: DUP2
00002a6a: LT
00002a6b: PUSH2 0x2aa9
00002a6e: JUMPI
00002a6f: POP
00002a70: POP
00002a71: POP
00002a72: POP
00002a73: SWAP3
00002a74: PUSH1 0x24
00002a76: PUSH32 0xc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c
00002a97: SWAP7
00002a98: SWAP6
00002a99: SWAP4
00002a9a: DUP3
00002a9b: SWAP4
00002a9c: PUSH1 0xe0
00002a9e: SWAP7
00002a9f: PUSH2 0x29b8
00002aa2: PUSH1 0x20
00002aa4: SWAP13
00002aa5: PUSH2 0x29a4
00002aa8: JUMP
00002aa9: JUMPDEST
00002aaa: DUP1
00002aab: PUSH2 0x2ab6
00002aae: PUSH1 0x01
00002ab0: SWAP3
00002ab1: DUP6
00002ab2: PUSH2 0x4af2
00002ab5: JUMP
00002ab6: JUMPDEST
00002ab7: MLOAD
00002ab8: PUSH2 0x2ac2
00002abb: JUMPI
00002abc: JUMPDEST
00002abd: ADD
00002abe: PUSH2 0x2a67
00002ac1: JUMP
00002ac2: JUMPDEST
00002ac3: PUSH1 0x06
00002ac5: PUSH2 0x2b15
00002ac8: PUSH2 0x2ad0
00002acb: DUP4
00002acc: PUSH2 0x43ed
00002acf: JUMP
00002ad0: JUMPDEST
00002ad1: POP
00002ad2: SWAP15
00002ad3: PUSH2 0x2af9
00002ad6: DUP7
00002ad7: PUSH2 0x1378
00002ada: PUSH2 0x2ae3
00002add: DUP8
00002ade: DUP12
00002adf: PUSH2 0x4af2
00002ae2: JUMP
00002ae3: JUMPDEST
00002ae4: MLOAD
00002ae5: PUSH0
00002ae6: MLOAD
00002ae7: PUSH1 0x20
00002ae9: PUSH2 0x5c7d
00002aec: PUSH0
00002aed: CODECOPY
00002aee: PUSH0
00002aef: MLOAD
00002af0: SWAP1
00002af1: PUSH0
00002af2: MSTORE
00002af3: SLOAD
00002af4: SWAP1
00002af5: PUSH2 0x45e0
00002af8: JUMP
00002af9: JUMPDEST
00002afa: PUSH2 0x2b03
00002afd: DUP6
00002afe: DUP10
00002aff: PUSH2 0x4af2
00002b02: JUMP
00002b03: JUMPDEST
00002b04: MSTORE
00002b05: PUSH2 0x2b0e
00002b08: DUP5
00002b09: DUP9
00002b0a: PUSH2 0x4af2
00002b0d: JUMP
00002b0e: JUMPDEST
00002b0f: MLOAD
00002b10: SWAP1
00002b11: PUSH2 0x45c6
00002b14: JUMP
00002b15: JUMPDEST
00002b16: SWAP14
00002b17: ADD
00002b18: PUSH2 0x2b26
00002b1b: DUP2
00002b1c: SLOAD
00002b1d: PUSH2 0x2b0e
00002b20: DUP5
00002b21: DUP9
00002b22: PUSH2 0x4af2
00002b25: JUMP
00002b26: JUMPDEST
00002b27: SWAP1
00002b28: SSTORE
00002b29: PUSH2 0x2abc
00002b2c: JUMP
00002b2d: JUMPDEST
00002b2e: POP
00002b2f: POP
00002b30: PUSH0
00002b31: JUMPDEST
00002b32: DUP3
00002b33: DUP2
00002b34: LT
00002b35: PUSH2 0x2b72
00002b38: JUMPI
00002b39: POP
00002b3a: POP
00002b3b: POP
00002b3c: SWAP3
00002b3d: PUSH1 0x24
00002b3f: PUSH32 0xc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c
00002b60: SWAP7
00002b61: SWAP6
00002b62: SWAP4
00002b63: DUP3
00002b64: SWAP4
00002b65: PUSH1 0xe0
00002b67: SWAP7
00002b68: PUSH2 0x29b8
00002b6b: PUSH1 0x20
00002b6d: SWAP13
00002b6e: PUSH2 0x29a4
00002b71: JUMP
00002b72: JUMPDEST
00002b73: DUP1
00002b74: PUSH2 0x2b7f
00002b77: PUSH1 0x01
00002b79: SWAP3
00002b7a: DUP5
00002b7b: PUSH2 0x4af2
00002b7e: JUMP
00002b7f: JUMPDEST
00002b80: MLOAD
00002b81: PUSH2 0x2b8b
00002b84: JUMPI
00002b85: JUMPDEST
00002b86: ADD
00002b87: PUSH2 0x2b31
00002b8a: JUMP
00002b8b: JUMPDEST
00002b8c: PUSH1 0x06
00002b8e: PUSH2 0x2ba5
00002b91: PUSH2 0x2b99
00002b94: DUP4
00002b95: PUSH2 0x43ed
00002b98: JUMP
00002b99: JUMPDEST
00002b9a: POP
00002b9b: SWAP14
00002b9c: PUSH2 0x2b0e
00002b9f: DUP5
00002ba0: DUP8
00002ba1: PUSH2 0x4af2
00002ba4: JUMP
00002ba5: JUMPDEST
00002ba6: SWAP13
00002ba7: ADD
00002ba8: PUSH2 0x2bb6
00002bab: DUP2
00002bac: SLOAD
00002bad: PUSH2 0x2b0e
00002bb0: DUP5
00002bb1: DUP8
00002bb2: PUSH2 0x4af2
00002bb5: JUMP
00002bb6: JUMPDEST
00002bb7: SWAP1
00002bb8: SSTORE
00002bb9: PUSH2 0x2b85
00002bbc: JUMP
00002bbd: JUMPDEST
00002bbe: PUSH2 0x2bc6
00002bc1: DUP2
00002bc2: PUSH2 0x43ed
00002bc5: JUMP
00002bc6: JUMPDEST
00002bc7: POP
00002bc8: PUSH2 0x2bed
00002bcb: PUSH2 0x2bdc
00002bce: DUP6
00002bcf: PUSH2 0x1378
00002bd2: PUSH1 0x02
00002bd4: DUP6
00002bd5: ADD
00002bd6: SLOAD
00002bd7: DUP8
00002bd8: PUSH2 0x45e0
00002bdb: JUMP
00002bdc: JUMPDEST
00002bdd: SWAP2
00002bde: PUSH1 0x06
00002be0: PUSH1 0x05
00002be2: DUP3
00002be3: ADD
00002be4: SLOAD
00002be5: SWAP2
00002be6: ADD
00002be7: SLOAD
00002be8: SWAP1
00002be9: PUSH2 0x45c6
00002bec: JUMP
00002bed: JUMPDEST
00002bee: SWAP1
00002bef: DUP2
00002bf0: DUP2
00002bf1: GT
00002bf2: PUSH2 0x2c00
00002bf5: JUMPI
00002bf6: JUMPDEST
00002bf7: POP
00002bf8: POP
00002bf9: PUSH1 0x01
00002bfb: ADD
00002bfc: PUSH2 0x294c
00002bff: JUMP
00002c00: JUMPDEST
00002c01: SWAP5
00002c02: PUSH2 0x2c11
00002c05: PUSH2 0x2c26
00002c08: SWAP3
00002c09: PUSH1 0x01
00002c0b: SWAP5
00002c0c: SWAP8
00002c0d: PUSH2 0x45d3
00002c10: JUMP
00002c11: JUMPDEST
00002c12: PUSH2 0x2c1b
00002c15: DUP8
00002c16: DUP10
00002c17: PUSH2 0x4af2
00002c1a: JUMP
00002c1b: JUMPDEST
00002c1c: MSTORE
00002c1d: PUSH2 0x2b0e
00002c20: DUP7
00002c21: DUP9
00002c22: PUSH2 0x4af2
00002c25: JUMP
00002c26: JUMPDEST
00002c27: SWAP4
00002c28: SWAP1
00002c29: PUSH0
00002c2a: PUSH2 0x2bf6
00002c2d: JUMP
00002c2e: JUMPDEST
00002c2f: POP
00002c30: PUSH0
00002c31: MLOAD
00002c32: PUSH1 0x20
00002c34: PUSH2 0x5b9d
00002c37: PUSH0
00002c38: CODECOPY
00002c39: PUSH0
00002c3a: MLOAD
00002c3b: SWAP1
00002c3c: PUSH0
00002c3d: MSTORE
00002c3e: SLOAD
00002c3f: ISZERO
00002c40: ISZERO
00002c41: PUSH2 0x2904
00002c44: JUMP
00002c45: JUMPDEST
00002c46: POP
00002c47: PUSH0
00002c48: MLOAD
00002c49: PUSH1 0x20
00002c4b: PUSH2 0x5c7d
00002c4e: PUSH0
00002c4f: CODECOPY
00002c50: PUSH0
00002c51: MLOAD
00002c52: SWAP1
00002c53: PUSH0
00002c54: MSTORE
00002c55: SLOAD
00002c56: PUSH2 0x2710
00002c59: PUSH2 0x2c7f
00002c5c: PUSH0
00002c5d: MLOAD
00002c5e: PUSH1 0x20
00002c60: PUSH2 0x5a7d
00002c63: PUSH0
00002c64: CODECOPY
00002c65: PUSH0
00002c66: MLOAD
00002c67: SWAP1
00002c68: PUSH0
00002c69: MSTORE
00002c6a: SLOAD
00002c6b: PUSH0
00002c6c: MLOAD
00002c6d: PUSH1 0x20
00002c6f: PUSH2 0x5c1d
00002c72: PUSH0
00002c73: CODECOPY
00002c74: PUSH0
00002c75: MLOAD
00002c76: SWAP1
00002c77: PUSH0
00002c78: MSTORE
00002c79: SLOAD
00002c7a: SWAP1
00002c7b: PUSH2 0x45e0
00002c7e: JUMP
00002c7f: JUMPDEST
00002c80: DIV
00002c81: LT
00002c82: PUSH2 0x285d
00002c85: JUMP
00002c86: JUMPDEST
00002c87: POP
00002c88: POP
00002c89: POP
00002c8a: PUSH4 0x1c6768ad
00002c8f: PUSH1 0xe2
00002c91: SHL
00002c92: PUSH0
00002c93: MSTORE
00002c94: PUSH1 0x04
00002c96: MSTORE
00002c97: PUSH1 0x24
00002c99: MSTORE
00002c9a: PUSH1 0x44
00002c9c: PUSH0
00002c9d: REVERT
00002c9e: JUMPDEST
00002c9f: CALLVALUE
00002ca0: PUSH2 0x03b2
00002ca3: JUMPI
00002ca4: PUSH0
00002ca5: CALLDATASIZE
00002ca6: PUSH1 0x03
00002ca8: NOT
00002ca9: ADD
00002caa: SLT
00002cab: PUSH2 0x03b2
00002cae: JUMPI
00002caf: PUSH1 0x20
00002cb1: PUSH1 0xff
00002cb3: PUSH0
00002cb4: MLOAD
00002cb5: PUSH1 0x20
00002cb7: PUSH2 0x5c9d
00002cba: PUSH0
00002cbb: CODECOPY
00002cbc: PUSH0
00002cbd: MLOAD
00002cbe: SWAP1
00002cbf: PUSH0
00002cc0: MSTORE
00002cc1: SLOAD
00002cc2: PUSH1 0x10
00002cc4: SHR
00002cc5: AND
00002cc6: PUSH1 0x40
00002cc8: MLOAD
00002cc9: SWAP1
00002cca: ISZERO
00002ccb: ISZERO
00002ccc: DUP2
00002ccd: MSTORE
00002cce: RETURN
00002ccf: JUMPDEST
00002cd0: CALLVALUE
00002cd1: PUSH2 0x03b2
00002cd4: JUMPI
00002cd5: PUSH0
00002cd6: CALLDATASIZE
00002cd7: PUSH1 0x03
00002cd9: NOT
00002cda: ADD
00002cdb: SLT
00002cdc: PUSH2 0x03b2
00002cdf: JUMPI
00002ce0: PUSH1 0x20
00002ce2: PUSH1 0xff
00002ce4: PUSH0
00002ce5: MLOAD
00002ce6: PUSH1 0x20
00002ce8: PUSH2 0x5c9d
00002ceb: PUSH0
00002cec: CODECOPY
00002ced: PUSH0
00002cee: MLOAD
00002cef: SWAP1
00002cf0: PUSH0
00002cf1: MSTORE
00002cf2: SLOAD
00002cf3: AND
00002cf4: PUSH1 0x40
00002cf6: MLOAD
00002cf7: SWAP1
00002cf8: ISZERO
00002cf9: ISZERO
00002cfa: DUP2
00002cfb: MSTORE
00002cfc: RETURN
00002cfd: JUMPDEST
00002cfe: CALLVALUE
00002cff: PUSH2 0x03b2
00002d02: JUMPI
00002d03: PUSH1 0x20
00002d05: CALLDATASIZE
00002d06: PUSH1 0x03
00002d08: NOT
00002d09: ADD
00002d0a: SLT
00002d0b: PUSH2 0x03b2
00002d0e: JUMPI
00002d0f: PUSH1 0x20
00002d11: PUSH2 0x137d
00002d14: PUSH1 0x04
00002d16: CALLDATALOAD
00002d17: PUSH0
00002d18: MSTORE
00002d19: PUSH0
00002d1a: MLOAD
00002d1b: PUSH1 0x20
00002d1d: PUSH2 0x5c5d
00002d20: PUSH0
00002d21: CODECOPY
00002d22: PUSH0
00002d23: MLOAD
00002d24: SWAP1
00002d25: PUSH0
00002d26: MSTORE
00002d27: PUSH1 0x20
00002d29: MSTORE
00002d2a: PUSH1 0x01
00002d2c: PUSH1 0x40
00002d2e: PUSH0
00002d2f: KECCAK256
00002d30: ADD
00002d31: SLOAD
00002d32: SWAP1
00002d33: JUMP
00002d34: JUMPDEST
00002d35: CALLVALUE
00002d36: PUSH2 0x03b2
00002d39: JUMPI
00002d3a: PUSH1 0x60
00002d3c: CALLDATASIZE
00002d3d: PUSH1 0x03
00002d3f: NOT
00002d40: ADD
00002d41: SLT
00002d42: PUSH2 0x03b2
00002d45: JUMPI
00002d46: PUSH2 0x2d4d
00002d49: PUSH2 0x3fa8
00002d4c: JUMP
00002d4d: JUMPDEST
00002d4e: PUSH2 0x2d55
00002d51: PUSH2 0x3fbe
00002d54: JUMP
00002d55: JUMPDEST
00002d56: PUSH1 0x44
00002d58: CALLDATALOAD
00002d59: SWAP1
00002d5a: PUSH2 0x2d93
00002d5d: DUP4
00002d5e: PUSH1 0x01
00002d60: PUSH1 0x01
00002d62: PUSH1 0xa0
00002d64: SHL
00002d65: SUB
00002d66: AND
00002d67: PUSH0
00002d68: MSTORE
00002d69: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01
00002d8a: PUSH1 0x20
00002d8c: MSTORE
00002d8d: PUSH1 0x40
00002d8f: PUSH0
00002d90: KECCAK256
00002d91: SWAP1
00002d92: JUMP
00002d93: JUMPDEST
00002d94: PUSH1 0x01
00002d96: PUSH1 0x01
00002d98: PUSH1 0xa0
00002d9a: SHL
00002d9b: SUB
00002d9c: CALLER
00002d9d: AND
00002d9e: PUSH0
00002d9f: MSTORE
00002da0: PUSH1 0x20
00002da2: MSTORE
00002da3: PUSH1 0x40
00002da5: PUSH0
00002da6: KECCAK256
00002da7: SLOAD
00002da8: SWAP3
00002da9: PUSH0
00002daa: NOT
00002dab: DUP5
00002dac: LT
00002dad: PUSH2 0x2dbb
00002db0: JUMPI
00002db1: JUMPDEST
00002db2: PUSH2 0x0eab
00002db5: SWAP4
00002db6: POP
00002db7: PUSH2 0x4de4
00002dba: JUMP
00002dbb: JUMPDEST
00002dbc: DUP3
00002dbd: DUP5
00002dbe: LT
00002dbf: PUSH2 0x2e58
00002dc2: JUMPI
00002dc3: PUSH1 0x01
00002dc5: PUSH1 0x01
00002dc7: PUSH1 0xa0
00002dc9: SHL
00002dca: SUB
00002dcb: DUP2
00002dcc: AND
00002dcd: ISZERO
00002dce: PUSH2 0x2e45
00002dd1: JUMPI
00002dd2: CALLER
00002dd3: ISZERO
00002dd4: PUSH2 0x2e32
00002dd7: JUMPI
00002dd8: PUSH2 0x0eab
00002ddb: SWAP4
00002ddc: PUSH2 0x2e15
00002ddf: DUP3
00002de0: PUSH1 0x01
00002de2: PUSH1 0x01
00002de4: PUSH1 0xa0
00002de6: SHL
00002de7: SUB
00002de8: AND
00002de9: PUSH0
00002dea: MSTORE
00002deb: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01
00002e0c: PUSH1 0x20
00002e0e: MSTORE
00002e0f: PUSH1 0x40
00002e11: PUSH0
00002e12: KECCAK256
00002e13: SWAP1
00002e14: JUMP
00002e15: JUMPDEST
00002e16: PUSH1 0x01
00002e18: PUSH1 0x01
00002e1a: PUSH1 0xa0
00002e1c: SHL
00002e1d: SUB
00002e1e: CALLER
00002e1f: AND
00002e20: PUSH0
00002e21: MSTORE
00002e22: PUSH1 0x20
00002e24: MSTORE
00002e25: DUP4
00002e26: PUSH1 0x40
00002e28: PUSH0
00002e29: KECCAK256
00002e2a: SWAP2
00002e2b: SUB
00002e2c: SWAP1
00002e2d: SSTORE
00002e2e: PUSH2 0x2db1
00002e31: JUMP
00002e32: JUMPDEST
00002e33: PUSH4 0x4a1406b1
00002e38: PUSH1 0xe1
00002e3a: SHL
00002e3b: PUSH0
00002e3c: MSTORE
00002e3d: PUSH0
00002e3e: PUSH1 0x04
00002e40: MSTORE
00002e41: PUSH1 0x24
00002e43: PUSH0
00002e44: REVERT
00002e45: JUMPDEST
00002e46: PUSH4 0xe602df05
00002e4b: PUSH1 0xe0
00002e4d: SHL
00002e4e: PUSH0
00002e4f: MSTORE
00002e50: PUSH0
00002e51: PUSH1 0x04
00002e53: MSTORE
00002e54: PUSH1 0x24
00002e56: PUSH0
00002e57: REVERT
00002e58: JUMPDEST
00002e59: DUP3
00002e5a: DUP5
00002e5b: PUSH4 0x7dc7a0d9
00002e60: PUSH1 0xe1
00002e62: SHL
00002e63: PUSH0
00002e64: MSTORE
00002e65: CALLER
00002e66: PUSH1 0x04
00002e68: MSTORE
00002e69: PUSH1 0x24
00002e6b: MSTORE
00002e6c: PUSH1 0x44
00002e6e: MSTORE
00002e6f: PUSH1 0x64
00002e71: PUSH0
00002e72: REVERT
00002e73: JUMPDEST
00002e74: CALLVALUE
00002e75: PUSH2 0x03b2
00002e78: JUMPI
00002e79: PUSH0
00002e7a: CALLDATASIZE
00002e7b: PUSH1 0x03
00002e7d: NOT
00002e7e: ADD
00002e7f: SLT
00002e80: PUSH2 0x03b2
00002e83: JUMPI
00002e84: PUSH1 0x20
00002e86: PUSH0
00002e87: MLOAD
00002e88: PUSH1 0x20
00002e8a: PUSH2 0x5c7d
00002e8d: PUSH0
00002e8e: CODECOPY
00002e8f: PUSH0
00002e90: MLOAD
00002e91: SWAP1
00002e92: PUSH0
00002e93: MSTORE
00002e94: SLOAD
00002e95: PUSH1 0x40
00002e97: MLOAD
00002e98: SWAP1
00002e99: DUP2
00002e9a: MSTORE
00002e9b: RETURN
00002e9c: JUMPDEST
00002e9d: CALLVALUE
00002e9e: PUSH2 0x03b2
00002ea1: JUMPI
00002ea2: PUSH0
00002ea3: CALLDATASIZE
00002ea4: PUSH1 0x03
00002ea6: NOT
00002ea7: ADD
00002ea8: SLT
00002ea9: PUSH2 0x03b2
00002eac: JUMPI
00002ead: PUSH1 0x20
00002eaf: PUSH1 0x40
00002eb1: MLOAD
00002eb2: PUSH32 0x0000000000000000000000000000000000000000000000000000000000005460
00002ed3: DUP2
00002ed4: MSTORE
00002ed5: RETURN
00002ed6: JUMPDEST
00002ed7: CALLVALUE
00002ed8: PUSH2 0x03b2
00002edb: JUMPI
00002edc: PUSH0
00002edd: CALLDATASIZE
00002ede: PUSH1 0x03
00002ee0: NOT
00002ee1: ADD
00002ee2: SLT
00002ee3: PUSH2 0x03b2
00002ee6: JUMPI
00002ee7: PUSH1 0x20
00002ee9: PUSH0
00002eea: MLOAD
00002eeb: PUSH1 0x20
00002eed: PUSH2 0x5b5d
00002ef0: PUSH0
00002ef1: CODECOPY
00002ef2: PUSH0
00002ef3: MLOAD
00002ef4: SWAP1
00002ef5: PUSH0
00002ef6: MSTORE
00002ef7: SLOAD
00002ef8: PUSH1 0x40
00002efa: MLOAD
00002efb: SWAP1
00002efc: DUP2
00002efd: MSTORE
00002efe: RETURN
00002eff: JUMPDEST
00002f00: CALLVALUE
00002f01: PUSH2 0x03b2
00002f04: JUMPI
00002f05: PUSH0
00002f06: CALLDATASIZE
00002f07: PUSH1 0x03
00002f09: NOT
00002f0a: ADD
00002f0b: SLT
00002f0c: PUSH2 0x03b2
00002f0f: JUMPI
00002f10: PUSH1 0x20
00002f12: PUSH0
00002f13: MLOAD
00002f14: PUSH1 0x20
00002f16: PUSH2 0x5a7d
00002f19: PUSH0
00002f1a: CODECOPY
00002f1b: PUSH0
00002f1c: MLOAD
00002f1d: SWAP1
00002f1e: PUSH0
00002f1f: MSTORE
00002f20: SLOAD
00002f21: PUSH1 0x40
00002f23: MLOAD
00002f24: SWAP1
00002f25: DUP2
00002f26: MSTORE
00002f27: RETURN
00002f28: JUMPDEST
00002f29: CALLVALUE
00002f2a: PUSH2 0x03b2
00002f2d: JUMPI
00002f2e: PUSH0
00002f2f: CALLDATASIZE
00002f30: PUSH1 0x03
00002f32: NOT
00002f33: ADD
00002f34: SLT
00002f35: PUSH2 0x03b2
00002f38: JUMPI
00002f39: PUSH1 0x20
00002f3b: PUSH1 0x40
00002f3d: MLOAD
00002f3e: PUSH1 0x64
00002f40: DUP2
00002f41: MSTORE
00002f42: RETURN
00002f43: JUMPDEST
00002f44: CALLVALUE
00002f45: PUSH2 0x03b2
00002f48: JUMPI
00002f49: PUSH2 0x2f51
00002f4c: CALLDATASIZE
00002f4d: PUSH2 0x3ff9
00002f50: JUMP
00002f51: JUMPDEST
00002f52: SWAP4
00002f53: SWAP3
00002f54: SWAP1
00002f55: SWAP2
00002f56: PUSH2 0x2f5d
00002f59: PUSH2 0x4494
00002f5c: JUMP
00002f5d: JUMPDEST
00002f5e: POP
00002f5f: PUSH2 0x2f66
00002f62: PUSH2 0x487d
00002f65: JUMP
00002f66: JUMPDEST
00002f67: PUSH2 0x2f6e
00002f6a: PUSH2 0x48b2
00002f6d: JUMP
00002f6e: JUMPDEST
00002f6f: PUSH1 0xff
00002f71: PUSH0
00002f72: MLOAD
00002f73: PUSH1 0x20
00002f75: PUSH2 0x5d1d
00002f78: PUSH0
00002f79: CODECOPY
00002f7a: PUSH0
00002f7b: MLOAD
00002f7c: SWAP1
00002f7d: PUSH0
00002f7e: MSTORE
00002f7f: SLOAD
00002f80: PUSH1 0xa0
00002f82: SHR
00002f83: AND
00002f84: PUSH2 0x33f1
00002f87: JUMPI
00002f88: PUSH1 0x01
00002f8a: PUSH1 0x01
00002f8c: PUSH1 0xa0
00002f8e: SHL
00002f8f: SUB
00002f90: DUP3
00002f91: AND
00002f92: SWAP2
00002f93: DUP3
00002f94: ISZERO
00002f95: PUSH2 0x1aeb
00002f98: JUMPI
00002f99: PUSH2 0x2fa2
00002f9c: DUP6
00002f9d: DUP9
00002f9e: PUSH2 0x49bd
00002fa1: JUMP
00002fa2: JUMPDEST
00002fa3: SWAP4
00002fa4: PUSH1 0x01
00002fa6: PUSH1 0xff
00002fa8: PUSH1 0x07
00002faa: DUP8
00002fab: ADD
00002fac: SLOAD
00002fad: AND
00002fae: ISZERO
00002faf: ISZERO
00002fb0: SUB
00002fb1: PUSH2 0x33da
00002fb4: JUMPI
00002fb5: PUSH0
00002fb6: MLOAD
00002fb7: PUSH1 0x20
00002fb9: PUSH2 0x5cdd
00002fbc: PUSH0
00002fbd: CODECOPY
00002fbe: PUSH0
00002fbf: MLOAD
00002fc0: SWAP1
00002fc1: PUSH0
00002fc2: MSTORE
00002fc3: SLOAD
00002fc4: SWAP7
00002fc5: PUSH2 0x2fd9
00002fc8: PUSH2 0x2fd1
00002fcb: DUP10
00002fcc: DUP7
00002fcd: PUSH2 0x45f3
00002fd0: JUMP
00002fd1: JUMPDEST
00002fd2: SWAP9
00002fd3: DUP10
00002fd4: SWAP4
00002fd5: PUSH2 0x45f3
00002fd8: JUMP
00002fd9: JUMPDEST
00002fda: SWAP4
00002fdb: PUSH1 0xc0
00002fdd: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b
00002ffe: SLOAD
00002fff: SWAP5
00003000: PUSH1 0xff
00003002: PUSH0
00003003: MLOAD
00003004: PUSH1 0x20
00003006: PUSH2 0x5afd
00003009: PUSH0
0000300a: CODECOPY
0000300b: PUSH0
0000300c: MLOAD
0000300d: SWAP1
0000300e: PUSH0
0000300f: MSTORE
00003010: SLOAD
00003011: AND
00003012: SWAP6
00003013: PUSH2 0x301a
00003016: PUSH2 0x4a5f
00003019: JUMP
0000301a: JUMPDEST
0000301b: PUSH0
0000301c: MLOAD
0000301d: PUSH1 0x20
0000301f: PUSH2 0x5a7d
00003022: PUSH0
00003023: CODECOPY
00003024: PUSH0
00003025: MLOAD
00003026: SWAP1
00003027: PUSH0
00003028: MSTORE
00003029: SLOAD
0000302a: SWAP1
0000302b: PUSH0
0000302c: MLOAD
0000302d: PUSH1 0x20
0000302f: PUSH2 0x5cbd
00003032: PUSH0
00003033: CODECOPY
00003034: PUSH0
00003035: MLOAD
00003036: SWAP1
00003037: PUSH0
00003038: MSTORE
00003039: SLOAD
0000303a: SWAP9
0000303b: PUSH1 0x40
0000303d: MLOAD
0000303e: SWAP4
0000303f: PUSH2 0x3047
00003042: DUP6
00003043: PUSH2 0x4038
00003046: JUMP
00003047: JUMPDEST
00003048: ADDRESS
00003049: DUP6
0000304a: MSTORE
0000304b: PUSH1 0x20
0000304d: DUP6
0000304e: ADD
0000304f: MSTORE
00003050: PUSH1 0x40
00003052: DUP5
00003053: ADD
00003054: MSTORE
00003055: PUSH1 0x60
00003057: DUP4
00003058: ADD
00003059: MSTORE
0000305a: PUSH1 0x80
0000305c: DUP3
0000305d: ADD
0000305e: MSTORE
0000305f: DUP7
00003060: PUSH1 0xa0
00003062: DUP3
00003063: ADD
00003064: MSTORE
00003065: DUP10
00003066: PUSH1 0x01
00003068: PUSH1 0x01
0000306a: PUSH1 0xa0
0000306c: SHL
0000306d: SUB
0000306e: PUSH0
0000306f: MLOAD
00003070: PUSH1 0x20
00003072: PUSH2 0x5bbd
00003075: PUSH0
00003076: CODECOPY
00003077: PUSH0
00003078: MLOAD
00003079: SWAP1
0000307a: PUSH0
0000307b: MSTORE
0000307c: SLOAD
0000307d: AND
0000307e: SWAP2
0000307f: PUSH2 0x309e
00003082: PUSH1 0x40
00003084: MLOAD
00003085: SWAP15
00003086: DUP16
00003087: SWAP6
00003088: DUP7
00003089: SWAP5
0000308a: DUP6
0000308b: SWAP5
0000308c: PUSH4 0x143273dd
00003091: PUSH1 0xe2
00003093: SHL
00003094: DUP7
00003095: MSTORE
00003096: PUSH1 0x04
00003098: DUP7
00003099: ADD
0000309a: PUSH2 0x4514
0000309d: JUMP
0000309e: JUMPDEST
0000309f: SUB
000030a0: SWAP2
000030a1: GAS
000030a2: STATICCALL
000030a3: SWAP9
000030a4: DUP10
000030a5: ISZERO
000030a6: PUSH2 0x0d8d
000030a9: JUMPI
000030aa: PUSH0
000030ab: SWAP10
000030ac: PUSH2 0x33b9
000030af: JUMPI
000030b0: JUMPDEST
000030b1: POP
000030b2: DUP9
000030b3: MLOAD
000030b4: ISZERO
000030b5: PUSH2 0x334f
000030b8: JUMPI
000030b9: POP
000030ba: PUSH1 0x80
000030bc: DUP9
000030bd: ADD
000030be: SWAP3
000030bf: PUSH2 0x30c9
000030c2: DUP5
000030c3: MLOAD
000030c4: DUP5
000030c5: PUSH2 0x45c6
000030c8: JUMP
000030c9: JUMPDEST
000030ca: SWAP5
000030cb: DUP1
000030cc: PUSH2 0x30db
000030cf: PUSH1 0x60
000030d1: DUP13
000030d2: ADD
000030d3: SWAP8
000030d4: DUP9
000030d5: MLOAD
000030d6: SWAP1
000030d7: PUSH2 0x45d3
000030da: JUMP
000030db: JUMPDEST
000030dc: LT
000030dd: PUSH2 0x331d
000030e0: JUMPI
000030e1: POP
000030e2: DUP4
000030e3: MLOAD
000030e4: DUP1
000030e5: PUSH2 0x32fe
000030e8: JUMPI
000030e9: JUMPDEST
000030ea: POP
000030eb: POP
000030ec: PUSH1 0x40
000030ee: DUP9
000030ef: ADD
000030f0: SWAP6
000030f1: PUSH2 0x3106
000030f4: PUSH2 0x30fe
000030f7: DUP9
000030f8: MLOAD
000030f9: DUP6
000030fa: PUSH2 0x45d3
000030fd: JUMP
000030fe: JUMPDEST
000030ff: DUP6
00003100: MLOAD
00003101: SWAP1
00003102: PUSH2 0x45c6
00003105: JUMP
00003106: JUMPDEST
00003107: PUSH1 0x03
00003109: PUSH1 0xa0
0000310b: DUP12
0000310c: ADD
0000310d: SWAP3
0000310e: DUP3
0000310f: DUP5
00003110: MSTORE
00003111: ADD
00003112: SWAP2
00003113: DUP3
00003114: SLOAD
00003115: SWAP2
00003116: DUP1
00003117: DUP4
00003118: LT
00003119: PUSH2 0x32e8
0000311c: JUMPI
0000311d: POP
0000311e: SWAP3
0000311f: PUSH2 0x0100
00003122: SWAP9
00003123: SWAP6
00003124: SWAP3
00003125: PUSH2 0x3159
00003128: PUSH2 0x046f
0000312b: SWAP14
0000312c: SWAP10
0000312d: SWAP7
0000312e: SWAP4
0000312f: PUSH32 0x9c7519dcf6aef530f7209189ddd559038a69f8bb53f818b7fa76c67379aa6b2c
00003150: SWAP13
00003151: SWAP10
00003152: SWAP7
00003153: MLOAD
00003154: SWAP1
00003155: PUSH2 0x45d3
00003158: JUMP
00003159: JUMPDEST
0000315a: SWAP1
0000315b: SSTORE
0000315c: ISZERO
0000315d: PUSH2 0x32ac
00003160: JUMPI
00003161: PUSH2 0x317b
00003164: PUSH2 0x3183
00003167: SWAP2
00003168: PUSH0
00003169: MLOAD
0000316a: PUSH1 0x20
0000316c: PUSH2 0x5c7d
0000316f: PUSH0
00003170: CODECOPY
00003171: PUSH0
00003172: MLOAD
00003173: SWAP1
00003174: PUSH0
00003175: MSTORE
00003176: SLOAD
00003177: PUSH2 0x45c6
0000317a: JUMP
0000317b: JUMPDEST
0000317c: DUP3
0000317d: MLOAD
0000317e: SWAP1
0000317f: PUSH2 0x45c6
00003182: JUMP
00003183: JUMPDEST
00003184: PUSH0
00003185: MLOAD
00003186: PUSH1 0x20
00003188: PUSH2 0x5c7d
0000318b: PUSH0
0000318c: CODECOPY
0000318d: PUSH0
0000318e: MLOAD
0000318f: SWAP1
00003190: PUSH0
00003191: MSTORE
00003192: SSTORE
00003193: JUMPDEST
00003194: PUSH0
00003195: MLOAD
00003196: PUSH1 0x20
00003198: PUSH2 0x5c9d
0000319b: PUSH0
0000319c: CODECOPY
0000319d: PUSH0
0000319e: MLOAD
0000319f: SWAP1
000031a0: PUSH0
000031a1: MSTORE
000031a2: SLOAD
000031a3: PUSH1 0xff
000031a5: DUP2
000031a6: AND
000031a7: ISZERO
000031a8: DUP1
000031a9: ISZERO
000031aa: PUSH2 0x3257
000031ad: JUMPI
000031ae: JUMPDEST
000031af: PUSH2 0x3242
000031b2: JUMPI
000031b3: JUMPDEST
000031b4: POP
000031b5: DUP9
000031b6: MLOAD
000031b7: SWAP1
000031b8: MLOAD
000031b9: SWAP2
000031ba: MLOAD
000031bb: SWAP3
000031bc: PUSH1 0x20
000031be: DUP11
000031bf: ADD
000031c0: MLOAD
000031c1: SWAP5
000031c2: MLOAD
000031c3: SWAP6
000031c4: PUSH1 0x40
000031c6: MLOAD
000031c7: SWAP8
000031c8: DUP9
000031c9: MSTORE
000031ca: PUSH1 0x20
000031cc: DUP9
000031cd: ADD
000031ce: MSTORE
000031cf: PUSH1 0x40
000031d1: DUP8
000031d2: ADD
000031d3: MSTORE
000031d4: PUSH1 0x60
000031d6: DUP7
000031d7: ADD
000031d8: MSTORE
000031d9: PUSH1 0x80
000031db: DUP6
000031dc: ADD
000031dd: MSTORE
000031de: PUSH1 0xa0
000031e0: DUP5
000031e1: ADD
000031e2: MSTORE
000031e3: PUSH1 0xc0
000031e5: DUP4
000031e6: ADD
000031e7: MSTORE
000031e8: PUSH1 0xe0
000031ea: DUP3
000031eb: ADD
000031ec: MSTORE
000031ed: LOG1
000031ee: PUSH0
000031ef: PUSH0
000031f0: MLOAD
000031f1: PUSH1 0x20
000031f3: PUSH2 0x5cfd
000031f6: PUSH0
000031f7: CODECOPY
000031f8: PUSH0
000031f9: MLOAD
000031fa: SWAP1
000031fb: PUSH0
000031fc: MSTORE
000031fd: TSTORE
000031fe: PUSH1 0x40
00003200: MLOAD
00003201: SWAP2
00003202: DUP3
00003203: SWAP2
00003204: DUP3
00003205: SWAP2
00003206: SWAP1
00003207: SWAP2
00003208: PUSH1 0xa0
0000320a: DUP1
0000320b: PUSH1 0xc0
0000320d: DUP4
0000320e: ADD
0000320f: SWAP5
00003210: DUP1
00003211: MLOAD
00003212: DUP5
00003213: MSTORE
00003214: PUSH1 0x20
00003216: DUP2
00003217: ADD
00003218: MLOAD
00003219: PUSH1 0x20
0000321b: DUP6
0000321c: ADD
0000321d: MSTORE
0000321e: PUSH1 0x40
00003220: DUP2
00003221: ADD
00003222: MLOAD
00003223: PUSH1 0x40
00003225: DUP6
00003226: ADD
00003227: MSTORE
00003228: PUSH1 0x60
0000322a: DUP2
0000322b: ADD
0000322c: MLOAD
0000322d: PUSH1 0x60
0000322f: DUP6
00003230: ADD
00003231: MSTORE
00003232: PUSH1 0x80
00003234: DUP2
00003235: ADD
00003236: MLOAD
00003237: PUSH1 0x80
00003239: DUP6
0000323a: ADD
0000323b: MSTORE
0000323c: ADD
0000323d: MLOAD
0000323e: SWAP2
0000323f: ADD
00003240: MSTORE
00003241: JUMP
00003242: JUMPDEST
00003243: PUSH1 0xff
00003245: PUSH2 0x3251
00003248: SWAP2
00003249: PUSH1 0x08
0000324b: SHR
0000324c: AND
0000324d: PUSH2 0x4b06
00003250: JUMP
00003251: JUMPDEST
00003252: DUP11
00003253: PUSH2 0x31b3
00003256: JUMP
00003257: JUMPDEST
00003258: POP
00003259: PUSH0
0000325a: MLOAD
0000325b: PUSH1 0x20
0000325d: PUSH2 0x5c7d
00003260: PUSH0
00003261: CODECOPY
00003262: PUSH0
00003263: MLOAD
00003264: SWAP1
00003265: PUSH0
00003266: MSTORE
00003267: SLOAD
00003268: PUSH2 0x2710
0000326b: PUSH2 0x32a4
0000326e: PUSH0
0000326f: MLOAD
00003270: PUSH1 0x20
00003272: PUSH2 0x5a7d
00003275: PUSH0
00003276: CODECOPY
00003277: PUSH0
00003278: MLOAD
00003279: SWAP1
0000327a: PUSH0
0000327b: MSTORE
0000327c: SLOAD
0000327d: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea09
0000329e: SLOAD
0000329f: SWAP1
000032a0: PUSH2 0x45e0
000032a3: JUMP
000032a4: JUMPDEST
000032a5: DIV
000032a6: GT
000032a7: ISZERO
000032a8: PUSH2 0x31ae
000032ab: JUMP
000032ac: JUMPDEST
000032ad: POP
000032ae: DUP1
000032af: MLOAD
000032b0: DUP1
000032b1: PUSH2 0x32bb
000032b4: JUMPI
000032b5: JUMPDEST
000032b6: POP
000032b7: PUSH2 0x3193
000032ba: JUMP
000032bb: JUMPDEST
000032bc: PUSH2 0x32d3
000032bf: SWAP1
000032c0: PUSH0
000032c1: MLOAD
000032c2: PUSH1 0x20
000032c4: PUSH2 0x5c7d
000032c7: PUSH0
000032c8: CODECOPY
000032c9: PUSH0
000032ca: MLOAD
000032cb: SWAP1
000032cc: PUSH0
000032cd: MSTORE
000032ce: SLOAD
000032cf: PUSH2 0x45c6
000032d2: JUMP
000032d3: JUMPDEST
000032d4: PUSH0
000032d5: MLOAD
000032d6: PUSH1 0x20
000032d8: PUSH2 0x5c7d
000032db: PUSH0
000032dc: CODECOPY
000032dd: PUSH0
000032de: MLOAD
000032df: SWAP1
000032e0: PUSH0
000032e1: MSTORE
000032e2: SSTORE
000032e3: DUP11
000032e4: PUSH2 0x32b5
000032e7: JUMP
000032e8: JUMPDEST
000032e9: DUP3
000032ea: PUSH4 0xc8a198d9
000032ef: PUSH1 0xe0
000032f1: SHL
000032f2: PUSH0
000032f3: MSTORE
000032f4: PUSH1 0x04
000032f6: MSTORE
000032f7: PUSH1 0x24
000032f9: MSTORE
000032fa: PUSH1 0x44
000032fc: PUSH0
000032fd: REVERT
000032fe: JUMPDEST
000032ff: PUSH2 0x3307
00003302: SWAP2
00003303: PUSH2 0x45d3
00003306: JUMP
00003307: JUMPDEST
00003308: PUSH0
00003309: MLOAD
0000330a: PUSH1 0x20
0000330c: PUSH2 0x5cbd
0000330f: PUSH0
00003310: CODECOPY
00003311: PUSH0
00003312: MLOAD
00003313: SWAP1
00003314: PUSH0
00003315: MSTORE
00003316: SSTORE
00003317: DUP10
00003318: DUP1
00003319: PUSH2 0x30e9
0000331c: JUMP
0000331d: JUMPDEST
0000331e: DUP5
0000331f: MLOAD
00003320: DUP7
00003321: MLOAD
00003322: PUSH1 0x40
00003324: MLOAD
00003325: PUSH4 0x463fc77f
0000332a: PUSH1 0xe1
0000332c: SHL
0000332d: DUP2
0000332e: MSTORE
0000332f: PUSH1 0x04
00003331: DUP2
00003332: ADD
00003333: DUP8
00003334: SWAP1
00003335: MSTORE
00003336: PUSH1 0x24
00003338: DUP2
00003339: ADD
0000333a: SWAP3
0000333b: SWAP1
0000333c: SWAP3
0000333d: MSTORE
0000333e: PUSH1 0x44
00003340: DUP3
00003341: ADD
00003342: MSTORE
00003343: PUSH1 0x64
00003345: DUP2
00003346: ADD
00003347: SWAP2
00003348: SWAP1
00003349: SWAP2
0000334a: MSTORE
0000334b: PUSH1 0x84
0000334d: SWAP1
0000334e: REVERT
0000334f: JUMPDEST
00003350: PUSH2 0x3371
00003353: DUP10
00003354: PUSH1 0x40
00003356: PUSH2 0x3368
00003359: PUSH1 0x60
0000335b: DUP4
0000335c: ADD
0000335d: MLOAD
0000335e: PUSH1 0x20
00003360: DUP5
00003361: ADD
00003362: MLOAD
00003363: SWAP1
00003364: PUSH2 0x45c6
00003367: JUMP
00003368: JUMPDEST
00003369: SWAP2
0000336a: ADD
0000336b: MLOAD
0000336c: SWAP1
0000336d: PUSH2 0x45c6
00003370: JUMP
00003371: JUMPDEST
00003372: SWAP1
00003373: PUSH1 0x01
00003375: DUP3
00003376: ADD
00003377: DUP1
00003378: SWAP3
00003379: GT
0000337a: PUSH2 0x2636
0000337d: JUMPI
0000337e: PUSH1 0xa4
00003380: SWAP2
00003381: PUSH1 0x40
00003383: MLOAD
00003384: SWAP2
00003385: PUSH4 0x1606f639
0000338a: PUSH1 0xe2
0000338c: SHL
0000338d: DUP4
0000338e: MSTORE
0000338f: PUSH1 0x60
00003391: PUSH1 0x04
00003393: DUP5
00003394: ADD
00003395: MSTORE
00003396: PUSH1 0x08
00003398: PUSH1 0x64
0000339a: DUP5
0000339b: ADD
0000339c: MSTORE
0000339d: PUSH8 0x185b5bdd5b9d1311
000033a6: PUSH1 0xc2
000033a8: SHL
000033a9: PUSH1 0x84
000033ab: DUP5
000033ac: ADD
000033ad: MSTORE
000033ae: PUSH1 0x24
000033b0: DUP4
000033b1: ADD
000033b2: MSTORE
000033b3: PUSH1 0x44
000033b5: DUP3
000033b6: ADD
000033b7: MSTORE
000033b8: REVERT
000033b9: JUMPDEST
000033ba: PUSH2 0x33d3
000033bd: SWAP2
000033be: SWAP10
000033bf: POP
000033c0: PUSH1 0xc0
000033c2: RETURNDATASIZE
000033c3: PUSH1 0xc0
000033c5: GT
000033c6: PUSH2 0x0d86
000033c9: JUMPI
000033ca: PUSH2 0x0d78
000033cd: DUP2
000033ce: DUP4
000033cf: PUSH2 0x408d
000033d2: JUMP
000033d3: JUMPDEST
000033d4: SWAP8
000033d5: DUP11
000033d6: PUSH2 0x30b0
000033d9: JUMP
000033da: JUMPDEST
000033db: DUP6
000033dc: DUP9
000033dd: PUSH4 0x1c6768ad
000033e2: PUSH1 0xe2
000033e4: SHL
000033e5: PUSH0
000033e6: MSTORE
000033e7: PUSH1 0x04
000033e9: MSTORE
000033ea: PUSH1 0x24
000033ec: MSTORE
000033ed: PUSH1 0x44
000033ef: PUSH0
000033f0: REVERT
000033f1: JUMPDEST
000033f2: PUSH4 0x31ad2c0f
000033f7: PUSH1 0xe1
000033f9: SHL
000033fa: PUSH0
000033fb: MSTORE
000033fc: PUSH1 0x04
000033fe: PUSH0
000033ff: REVERT
00003400: JUMPDEST
00003401: CALLVALUE
00003402: PUSH2 0x03b2
00003405: JUMPI
00003406: PUSH1 0x20
00003408: CALLDATASIZE
00003409: PUSH1 0x03
0000340b: NOT
0000340c: ADD
0000340d: SLT
0000340e: PUSH2 0x03b2
00003411: JUMPI
00003412: PUSH2 0x3419
00003415: PUSH2 0x43b1
00003418: JUMP
00003419: JUMPDEST
0000341a: POP
0000341b: PUSH2 0x046f
0000341e: PUSH2 0x0413
00003421: PUSH2 0x25a8
00003424: PUSH1 0x04
00003426: CALLDATALOAD
00003427: PUSH2 0x43ed
0000342a: JUMP
0000342b: JUMPDEST
0000342c: CALLVALUE
0000342d: PUSH2 0x03b2
00003430: JUMPI
00003431: PUSH1 0x40
00003433: CALLDATASIZE
00003434: PUSH1 0x03
00003436: NOT
00003437: ADD
00003438: SLT
00003439: PUSH2 0x03b2
0000343c: JUMPI
0000343d: PUSH2 0x0eab
00003440: PUSH2 0x3447
00003443: PUSH2 0x3fa8
00003446: JUMP
00003447: JUMPDEST
00003448: PUSH1 0x24
0000344a: CALLDATALOAD
0000344b: SWAP1
0000344c: CALLER
0000344d: PUSH2 0x56b8
00003450: JUMP
00003451: JUMPDEST
00003452: CALLVALUE
00003453: PUSH2 0x03b2
00003456: JUMPI
00003457: PUSH0
00003458: CALLDATASIZE
00003459: PUSH1 0x03
0000345b: NOT
0000345c: ADD
0000345d: SLT
0000345e: PUSH2 0x03b2
00003461: JUMPI
00003462: PUSH1 0x40
00003464: MLOAD
00003465: PUSH0
00003466: PUSH0
00003467: MLOAD
00003468: PUSH1 0x20
0000346a: PUSH2 0x5a9d
0000346d: PUSH0
0000346e: CODECOPY
0000346f: PUSH0
00003470: MLOAD
00003471: SWAP1
00003472: PUSH0
00003473: MSTORE
00003474: SLOAD
00003475: PUSH2 0x347d
00003478: DUP2
00003479: PUSH2 0x41fd
0000347c: JUMP
0000347d: JUMPDEST
0000347e: DUP1
0000347f: DUP5
00003480: MSTORE
00003481: SWAP1
00003482: PUSH1 0x01
00003484: DUP2
00003485: AND
00003486: SWAP1
00003487: DUP2
00003488: ISZERO
00003489: PUSH2 0x10c5
0000348c: JUMPI
0000348d: POP
0000348e: PUSH1 0x01
00003490: EQ
00003491: PUSH2 0x34a4
00003494: JUMPI
00003495: PUSH2 0x046f
00003498: DUP4
00003499: PUSH2 0x1047
0000349c: DUP2
0000349d: DUP6
0000349e: SUB
0000349f: DUP3
000034a0: PUSH2 0x408d
000034a3: JUMP
000034a4: JUMPDEST
000034a5: PUSH0
000034a6: MLOAD
000034a7: PUSH1 0x20
000034a9: PUSH2 0x5a9d
000034ac: PUSH0
000034ad: CODECOPY
000034ae: PUSH0
000034af: MLOAD
000034b0: SWAP1
000034b1: PUSH0
000034b2: MSTORE
000034b3: PUSH0
000034b4: SWAP1
000034b5: DUP2
000034b6: MSTORE
000034b7: PUSH32 0x2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0
000034d8: SWAP4
000034d9: SWAP3
000034da: POP
000034db: SWAP1
000034dc: JUMPDEST
000034dd: DUP1
000034de: DUP3
000034df: LT
000034e0: PUSH2 0x34f4
000034e3: JUMPI
000034e4: POP
000034e5: SWAP1
000034e6: SWAP2
000034e7: POP
000034e8: DUP2
000034e9: ADD
000034ea: PUSH1 0x20
000034ec: ADD
000034ed: PUSH2 0x1047
000034f0: PUSH2 0x1037
000034f3: JUMP
000034f4: JUMPDEST
000034f5: SWAP2
000034f6: SWAP3
000034f7: PUSH1 0x01
000034f9: DUP2
000034fa: PUSH1 0x20
000034fc: SWAP3
000034fd: SLOAD
000034fe: DUP4
000034ff: DUP6
00003500: DUP9
00003501: ADD
00003502: ADD
00003503: MSTORE
00003504: ADD
00003505: SWAP2
00003506: ADD
00003507: SWAP1
00003508: SWAP3
00003509: SWAP2
0000350a: PUSH2 0x34dc
0000350d: JUMP
0000350e: JUMPDEST
0000350f: CALLVALUE
00003510: PUSH2 0x03b2
00003513: JUMPI
00003514: PUSH1 0x20
00003516: CALLDATASIZE
00003517: PUSH1 0x03
00003519: NOT
0000351a: ADD
0000351b: SLT
0000351c: PUSH2 0x03b2
0000351f: JUMPI
00003520: PUSH1 0x04
00003522: CALLDATALOAD
00003523: PUSH4 0xffffffff
00003528: PUSH1 0xe0
0000352a: SHL
0000352b: DUP2
0000352c: AND
0000352d: DUP1
0000352e: SWAP2
0000352f: SUB
00003530: PUSH2 0x03b2
00003533: JUMPI
00003534: PUSH1 0x20
00003536: SWAP1
00003537: PUSH4 0x7965db0b
0000353c: PUSH1 0xe0
0000353e: SHL
0000353f: DUP2
00003540: EQ
00003541: SWAP1
00003542: DUP2
00003543: ISZERO
00003544: PUSH2 0x3553
00003547: JUMPI
00003548: JUMPDEST
00003549: POP
0000354a: PUSH1 0x40
0000354c: MLOAD
0000354d: SWAP1
0000354e: ISZERO
0000354f: ISZERO
00003550: DUP2
00003551: MSTORE
00003552: RETURN
00003553: JUMPDEST
00003554: PUSH4 0x01ffc9a7
00003559: PUSH1 0xe0
0000355b: SHL
0000355c: EQ
0000355d: SWAP1
0000355e: POP
0000355f: DUP3
00003560: PUSH2 0x3548
00003563: JUMP
00003564: JUMPDEST
00003565: CALLVALUE
00003566: PUSH2 0x03b2
00003569: JUMPI
0000356a: PUSH1 0x20
0000356c: CALLDATASIZE
0000356d: PUSH1 0x03
0000356f: NOT
00003570: ADD
00003571: SLT
00003572: PUSH2 0x03b2
00003575: JUMPI
00003576: PUSH1 0x04
00003578: CALLDATALOAD
00003579: PUSH8 0xffffffffffffffff
00003582: DUP2
00003583: GT
00003584: PUSH2 0x03b2
00003587: JUMPI
00003588: DUP1
00003589: PUSH1 0x04
0000358b: ADD
0000358c: SWAP1
0000358d: PUSH2 0x0140
00003590: PUSH1 0x03
00003592: NOT
00003593: DUP3
00003594: CALLDATASIZE
00003595: SUB
00003596: ADD
00003597: SLT
00003598: PUSH2 0x03b2
0000359b: JUMPI
0000359c: PUSH0
0000359d: MLOAD
0000359e: PUSH1 0x20
000035a0: PUSH2 0x5d7d
000035a3: PUSH0
000035a4: CODECOPY
000035a5: PUSH0
000035a6: MLOAD
000035a7: SWAP1
000035a8: PUSH0
000035a9: MSTORE
000035aa: SLOAD
000035ab: SWAP2
000035ac: PUSH1 0xff
000035ae: DUP4
000035af: PUSH1 0x40
000035b1: SHR
000035b2: AND
000035b3: ISZERO
000035b4: SWAP3
000035b5: PUSH8 0xffffffffffffffff
000035be: DUP2
000035bf: AND
000035c0: DUP1
000035c1: ISZERO
000035c2: SWAP1
000035c3: DUP2
000035c4: PUSH2 0x3f7c
000035c7: JUMPI
000035c8: JUMPDEST
000035c9: PUSH1 0x01
000035cb: EQ
000035cc: SWAP1
000035cd: DUP2
000035ce: PUSH2 0x3f72
000035d1: JUMPI
000035d2: JUMPDEST
000035d3: ISZERO
000035d4: SWAP1
000035d5: DUP2
000035d6: PUSH2 0x3f69
000035d9: JUMPI
000035da: JUMPDEST
000035db: POP
000035dc: PUSH2 0x3f5a
000035df: JUMPI
000035e0: PUSH8 0xffffffffffffffff
000035e9: NOT
000035ea: DUP2
000035eb: AND
000035ec: PUSH1 0x01
000035ee: OR
000035ef: PUSH0
000035f0: MLOAD
000035f1: PUSH1 0x20
000035f3: PUSH2 0x5d7d
000035f6: PUSH0
000035f7: CODECOPY
000035f8: PUSH0
000035f9: MLOAD
000035fa: SWAP1
000035fb: PUSH0
000035fc: MSTORE
000035fd: SSTORE
000035fe: DUP4
000035ff: PUSH2 0x3f2e
00003602: JUMPI
00003603: JUMPDEST
00003604: POP
00003605: PUSH2 0x3636
00003608: PUSH2 0x3611
0000360b: DUP3
0000360c: DUP1
0000360d: PUSH2 0x41a8
00003610: JUMP
00003611: JUMPDEST
00003612: PUSH2 0x362e
00003615: PUSH2 0x3624
00003618: PUSH1 0x24
0000361a: DUP8
0000361b: SWAP6
0000361c: SWAP5
0000361d: SWAP6
0000361e: ADD
0000361f: DUP7
00003620: PUSH2 0x41a8
00003623: JUMP
00003624: JUMPDEST
00003625: SWAP5
00003626: SWAP1
00003627: SWAP3
00003628: CALLDATASIZE
00003629: SWAP2
0000362a: PUSH2 0x4144
0000362d: JUMP
0000362e: JUMPDEST
0000362f: SWAP3
00003630: CALLDATASIZE
00003631: SWAP2
00003632: PUSH2 0x4144
00003635: JUMP
00003636: JUMPDEST
00003637: SWAP1
00003638: PUSH2 0x363f
0000363b: PUSH2 0x568d
0000363e: JUMP
0000363f: JUMPDEST
00003640: PUSH2 0x3647
00003643: PUSH2 0x568d
00003646: JUMP
00003647: JUMPDEST
00003648: DUP1
00003649: MLOAD
0000364a: SWAP1
0000364b: PUSH8 0xffffffffffffffff
00003654: DUP3
00003655: GT
00003656: PUSH2 0x2588
00003659: JUMPI
0000365a: DUP2
0000365b: SWAP1
0000365c: PUSH2 0x3672
0000365f: PUSH0
00003660: MLOAD
00003661: PUSH1 0x20
00003663: PUSH2 0x5a9d
00003666: PUSH0
00003667: CODECOPY
00003668: PUSH0
00003669: MLOAD
0000366a: SWAP1
0000366b: PUSH0
0000366c: MSTORE
0000366d: SLOAD
0000366e: PUSH2 0x41fd
00003671: JUMP
00003672: JUMPDEST
00003673: PUSH1 0x1f
00003675: DUP2
00003676: GT
00003677: PUSH2 0x3eb4
0000367a: JUMPI
0000367b: JUMPDEST
0000367c: POP
0000367d: PUSH1 0x20
0000367f: SWAP1
00003680: PUSH1 0x1f
00003682: DUP4
00003683: GT
00003684: PUSH1 0x01
00003686: EQ
00003687: PUSH2 0x3e36
0000368a: JUMPI
0000368b: PUSH0
0000368c: SWAP3
0000368d: PUSH2 0x3e2b
00003690: JUMPI
00003691: JUMPDEST
00003692: POP
00003693: POP
00003694: DUP2
00003695: PUSH1 0x01
00003697: SHL
00003698: SWAP2
00003699: PUSH0
0000369a: NOT
0000369b: SWAP1
0000369c: PUSH1 0x03
0000369e: SHL
0000369f: SHR
000036a0: NOT
000036a1: AND
000036a2: OR
000036a3: PUSH0
000036a4: MLOAD
000036a5: PUSH1 0x20
000036a7: PUSH2 0x5a9d
000036aa: PUSH0
000036ab: CODECOPY
000036ac: PUSH0
000036ad: MLOAD
000036ae: SWAP1
000036af: PUSH0
000036b0: MSTORE
000036b1: SSTORE
000036b2: JUMPDEST
000036b3: DUP1
000036b4: MLOAD
000036b5: SWAP1
000036b6: PUSH8 0xffffffffffffffff
000036bf: DUP3
000036c0: GT
000036c1: PUSH2 0x2588
000036c4: JUMPI
000036c5: PUSH2 0x36db
000036c8: PUSH0
000036c9: MLOAD
000036ca: PUSH1 0x20
000036cc: PUSH2 0x5b1d
000036cf: PUSH0
000036d0: CODECOPY
000036d1: PUSH0
000036d2: MLOAD
000036d3: SWAP1
000036d4: PUSH0
000036d5: MSTORE
000036d6: SLOAD
000036d7: PUSH2 0x41fd
000036da: JUMP
000036db: JUMPDEST
000036dc: PUSH1 0x1f
000036de: DUP2
000036df: GT
000036e0: PUSH2 0x3dbc
000036e3: JUMPI
000036e4: JUMPDEST
000036e5: POP
000036e6: PUSH1 0x20
000036e8: SWAP1
000036e9: PUSH1 0x1f
000036eb: DUP4
000036ec: GT
000036ed: PUSH1 0x01
000036ef: EQ
000036f0: PUSH2 0x3d38
000036f3: JUMPI
000036f4: SWAP2
000036f5: DUP1
000036f6: PUSH2 0x3733
000036f9: SWAP5
000036fa: SWAP3
000036fb: PUSH2 0x372c
000036fe: SWAP5
000036ff: PUSH0
00003700: SWAP3
00003701: PUSH2 0x3d2d
00003704: JUMPI
00003705: JUMPDEST
00003706: POP
00003707: POP
00003708: DUP2
00003709: PUSH1 0x01
0000370b: SHL
0000370c: SWAP2
0000370d: PUSH0
0000370e: NOT
0000370f: SWAP1
00003710: PUSH1 0x03
00003712: SHL
00003713: SHR
00003714: NOT
00003715: AND
00003716: OR
00003717: PUSH0
00003718: MLOAD
00003719: PUSH1 0x20
0000371b: PUSH2 0x5b1d
0000371e: PUSH0
0000371f: CODECOPY
00003720: PUSH0
00003721: MLOAD
00003722: SWAP1
00003723: PUSH0
00003724: MSTORE
00003725: SSTORE
00003726: JUMPDEST
00003727: DUP1
00003728: PUSH2 0x41a8
0000372b: JUMP
0000372c: JUMPDEST
0000372d: CALLDATASIZE
0000372e: SWAP2
0000372f: PUSH2 0x4144
00003732: JUMP
00003733: JUMPDEST
00003734: SWAP2
00003735: PUSH2 0x373c
00003738: PUSH2 0x568d
0000373b: JUMP
0000373c: JUMPDEST
0000373d: PUSH1 0x40
0000373f: SWAP2
00003740: DUP3
00003741: MLOAD
00003742: SWAP4
00003743: PUSH2 0x374c
00003746: DUP5
00003747: DUP7
00003748: PUSH2 0x408d
0000374b: JUMP
0000374c: JUMPDEST
0000374d: PUSH1 0x01
0000374f: DUP6
00003750: MSTORE
00003751: PUSH1 0x31
00003753: PUSH1 0xf8
00003755: SHL
00003756: PUSH1 0x20
00003758: DUP7
00003759: ADD
0000375a: MSTORE
0000375b: PUSH2 0x3762
0000375e: PUSH2 0x568d
00003761: JUMP
00003762: JUMPDEST
00003763: DUP1
00003764: MLOAD
00003765: SWAP1
00003766: PUSH8 0xffffffffffffffff
0000376f: DUP3
00003770: GT
00003771: PUSH2 0x2588
00003774: JUMPI
00003775: DUP2
00003776: SWAP1
00003777: PUSH2 0x378d
0000377a: PUSH0
0000377b: MLOAD
0000377c: PUSH1 0x20
0000377e: PUSH2 0x5add
00003781: PUSH0
00003782: CODECOPY
00003783: PUSH0
00003784: MLOAD
00003785: SWAP1
00003786: PUSH0
00003787: MSTORE
00003788: SLOAD
00003789: PUSH2 0x41fd
0000378c: JUMP
0000378d: JUMPDEST
0000378e: PUSH1 0x1f
00003790: DUP2
00003791: GT
00003792: PUSH2 0x3cb3
00003795: JUMPI
00003796: JUMPDEST
00003797: POP
00003798: PUSH1 0x20
0000379a: SWAP1
0000379b: PUSH1 0x1f
0000379d: DUP4
0000379e: GT
0000379f: PUSH1 0x01
000037a1: EQ
000037a2: PUSH2 0x3c35
000037a5: JUMPI
000037a6: PUSH0
000037a7: SWAP3
000037a8: PUSH2 0x3c2a
000037ab: JUMPI
000037ac: JUMPDEST
000037ad: POP
000037ae: POP
000037af: DUP2
000037b0: PUSH1 0x01
000037b2: SHL
000037b3: SWAP2
000037b4: PUSH0
000037b5: NOT
000037b6: SWAP1
000037b7: PUSH1 0x03
000037b9: SHL
000037ba: SHR
000037bb: NOT
000037bc: AND
000037bd: OR
000037be: PUSH0
000037bf: MLOAD
000037c0: PUSH1 0x20
000037c2: PUSH2 0x5add
000037c5: PUSH0
000037c6: CODECOPY
000037c7: PUSH0
000037c8: MLOAD
000037c9: SWAP1
000037ca: PUSH0
000037cb: MSTORE
000037cc: SSTORE
000037cd: JUMPDEST
000037ce: DUP4
000037cf: MLOAD
000037d0: PUSH8 0xffffffffffffffff
000037d9: DUP2
000037da: GT
000037db: PUSH2 0x2588
000037de: JUMPI
000037df: PUSH2 0x37f5
000037e2: PUSH0
000037e3: MLOAD
000037e4: PUSH1 0x20
000037e6: PUSH2 0x5b7d
000037e9: PUSH0
000037ea: CODECOPY
000037eb: PUSH0
000037ec: MLOAD
000037ed: SWAP1
000037ee: PUSH0
000037ef: MSTORE
000037f0: SLOAD
000037f1: PUSH2 0x41fd
000037f4: JUMP
000037f5: JUMPDEST
000037f6: PUSH1 0x1f
000037f8: DUP2
000037f9: GT
000037fa: PUSH2 0x3bbb
000037fd: JUMPI
000037fe: JUMPDEST
000037ff: POP
00003800: PUSH1 0x20
00003802: SWAP5
00003803: PUSH1 0x1f
00003805: DUP3
00003806: GT
00003807: PUSH1 0x01
00003809: EQ
0000380a: PUSH2 0x3b40
0000380d: JUMPI
0000380e: SWAP5
0000380f: DUP2
00003810: SWAP3
00003811: SWAP4
00003812: SWAP5
00003813: SWAP6
00003814: PUSH0
00003815: SWAP3
00003816: PUSH2 0x3b35
00003819: JUMPI
0000381a: JUMPDEST
0000381b: POP
0000381c: POP
0000381d: DUP2
0000381e: PUSH1 0x01
00003820: SHL
00003821: SWAP2
00003822: PUSH0
00003823: NOT
00003824: SWAP1
00003825: PUSH1 0x03
00003827: SHL
00003828: SHR
00003829: NOT
0000382a: AND
0000382b: OR
0000382c: PUSH0
0000382d: MLOAD
0000382e: PUSH1 0x20
00003830: PUSH2 0x5b7d
00003833: PUSH0
00003834: CODECOPY
00003835: PUSH0
00003836: MLOAD
00003837: SWAP1
00003838: PUSH0
00003839: MSTORE
0000383a: SSTORE
0000383b: JUMPDEST
0000383c: PUSH0
0000383d: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100
0000385e: SSTORE
0000385f: PUSH0
00003860: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101
00003881: SSTORE
00003882: PUSH2 0x3889
00003885: PUSH2 0x568d
00003888: JUMP
00003889: JUMPDEST
0000388a: PUSH2 0x3891
0000388d: PUSH2 0x568d
00003890: JUMP
00003891: JUMPDEST
00003892: PUSH2 0x38fb
00003895: PUSH2 0x38a0
00003898: PUSH1 0x84
0000389a: DUP4
0000389b: ADD
0000389c: PUSH2 0x41db
0000389f: JUMP
000038a0: JUMPDEST
000038a1: PUSH1 0xff
000038a3: DUP1
000038a4: PUSH2 0x38af
000038a7: PUSH1 0xa4
000038a9: DUP7
000038aa: ADD
000038ab: PUSH2 0x41db
000038ae: JUMP
000038af: JUMPDEST
000038b0: SWAP3
000038b1: PUSH2 0x38b8
000038b4: PUSH2 0x568d
000038b7: JUMP
000038b8: JUMPDEST
000038b9: PUSH2 0x38c0
000038bc: PUSH2 0x568d
000038bf: JUMP
000038c0: JUMPDEST
000038c1: AND
000038c2: SWAP2
000038c3: DUP3
000038c4: PUSH2 0xff00
000038c7: PUSH0
000038c8: MLOAD
000038c9: PUSH1 0x20
000038cb: PUSH2 0x5afd
000038ce: PUSH0
000038cf: CODECOPY
000038d0: PUSH0
000038d1: MLOAD
000038d2: SWAP1
000038d3: PUSH0
000038d4: MSTORE
000038d5: SLOAD
000038d6: SWAP3
000038d7: PUSH1 0x08
000038d9: SHL
000038da: AND
000038db: SWAP2
000038dc: PUSH2 0xffff
000038df: NOT
000038e0: AND
000038e1: OR
000038e2: OR
000038e3: DUP1
000038e4: PUSH0
000038e5: MLOAD
000038e6: PUSH1 0x20
000038e8: PUSH2 0x5afd
000038eb: PUSH0
000038ec: CODECOPY
000038ed: PUSH0
000038ee: MLOAD
000038ef: SWAP1
000038f0: PUSH0
000038f1: MSTORE
000038f2: SSTORE
000038f3: PUSH1 0x08
000038f5: SHR
000038f6: AND
000038f7: PUSH2 0x45d3
000038fa: JUMP
000038fb: JUMPDEST
000038fc: PUSH1 0x4d
000038fe: DUP2
000038ff: GT
00003900: PUSH2 0x2636
00003903: JUMPI
00003904: PUSH1 0x0a
00003906: EXP
00003907: PUSH0
00003908: MLOAD
00003909: PUSH1 0x20
0000390b: PUSH2 0x5cdd
0000390e: PUSH0
0000390f: CODECOPY
00003910: PUSH0
00003911: MLOAD
00003912: SWAP1
00003913: PUSH0
00003914: MSTORE
00003915: SSTORE
00003916: PUSH2 0x391d
00003919: PUSH2 0x568d
0000391c: JUMP
0000391d: JUMPDEST
0000391e: PUSH2 0x3925
00003921: PUSH2 0x568d
00003924: JUMP
00003925: JUMPDEST
00003926: PUSH2 0x394f
00003929: PUSH32 0x0000000000000000000000000000000000000000000000000000000000001c20
0000394a: NUMBER
0000394b: PUSH2 0x45c6
0000394e: JUMP
0000394f: JUMPDEST
00003950: PUSH0
00003951: MLOAD
00003952: PUSH1 0x20
00003954: PUSH2 0x5d3d
00003957: PUSH0
00003958: CODECOPY
00003959: PUSH0
0000395a: MLOAD
0000395b: SWAP1
0000395c: PUSH0
0000395d: MSTORE
0000395e: SSTORE
0000395f: PUSH2 0x3972
00003962: PUSH2 0x396d
00003965: PUSH1 0xe4
00003967: DUP4
00003968: ADD
00003969: PUSH2 0x41e9
0000396c: JUMP
0000396d: JUMPDEST
0000396e: PUSH2 0x465b
00003971: JUMP
00003972: JUMPDEST
00003973: POP
00003974: PUSH2 0x3988
00003977: PUSH2 0x3983
0000397a: PUSH2 0x0104
0000397d: DUP4
0000397e: ADD
0000397f: PUSH2 0x41e9
00003982: JUMP
00003983: JUMPDEST
00003984: PUSH2 0x470a
00003987: JUMP
00003988: JUMPDEST
00003989: POP
0000398a: PUSH1 0x44
0000398c: DUP2
0000398d: ADD
0000398e: CALLDATALOAD
0000398f: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b
000039b0: SSTORE
000039b1: PUSH1 0x64
000039b3: DUP2
000039b4: ADD
000039b5: PUSH1 0x01
000039b7: PUSH1 0x01
000039b9: PUSH1 0xa0
000039bb: SHL
000039bc: SUB
000039bd: PUSH2 0x39c5
000039c0: DUP3
000039c1: PUSH2 0x41e9
000039c4: JUMP
000039c5: JUMPDEST
000039c6: AND
000039c7: ISZERO
000039c8: PUSH2 0x3b08
000039cb: JUMPI
000039cc: PUSH1 0xc4
000039ce: DUP3
000039cf: ADD
000039d0: SWAP1
000039d1: PUSH1 0x01
000039d3: PUSH1 0x01
000039d5: PUSH1 0xa0
000039d7: SHL
000039d8: SUB
000039d9: PUSH2 0x39e1
000039dc: DUP4
000039dd: PUSH2 0x41e9
000039e0: JUMP
000039e1: JUMPDEST
000039e2: AND
000039e3: ISZERO
000039e4: PUSH2 0x3ad3
000039e7: JUMPI
000039e8: PUSH2 0x3a29
000039eb: PUSH2 0x0124
000039ee: SWAP4
000039ef: SWAP3
000039f0: PUSH1 0x01
000039f2: PUSH1 0x01
000039f4: PUSH1 0xa0
000039f6: SHL
000039f7: SUB
000039f8: PUSH2 0x3a01
000039fb: DUP2
000039fc: SWAP5
000039fd: PUSH2 0x41e9
00003a00: JUMP
00003a01: JUMPDEST
00003a02: AND
00003a03: DUP4
00003a04: NOT
00003a05: PUSH0
00003a06: MLOAD
00003a07: PUSH1 0x20
00003a09: PUSH2 0x5d1d
00003a0c: PUSH0
00003a0d: CODECOPY
00003a0e: PUSH0
00003a0f: MLOAD
00003a10: SWAP1
00003a11: PUSH0
00003a12: MSTORE
00003a13: SLOAD
00003a14: AND
00003a15: OR
00003a16: PUSH0
00003a17: MLOAD
00003a18: PUSH1 0x20
00003a1a: PUSH2 0x5d1d
00003a1d: PUSH0
00003a1e: CODECOPY
00003a1f: PUSH0
00003a20: MLOAD
00003a21: SWAP1
00003a22: PUSH0
00003a23: MSTORE
00003a24: SSTORE
00003a25: PUSH2 0x41e9
00003a28: JUMP
00003a29: JUMPDEST
00003a2a: AND
00003a2b: PUSH1 0x01
00003a2d: PUSH1 0x01
00003a2f: PUSH1 0xa0
00003a31: SHL
00003a32: SUB
00003a33: NOT
00003a34: PUSH0
00003a35: MLOAD
00003a36: PUSH1 0x20
00003a38: PUSH2 0x5bbd
00003a3b: PUSH0
00003a3c: CODECOPY
00003a3d: PUSH0
00003a3e: MLOAD
00003a3f: SWAP1
00003a40: PUSH0
00003a41: MSTORE
00003a42: SLOAD
00003a43: AND
00003a44: OR
00003a45: PUSH0
00003a46: MLOAD
00003a47: PUSH1 0x20
00003a49: PUSH2 0x5bbd
00003a4c: PUSH0
00003a4d: CODECOPY
00003a4e: PUSH0
00003a4f: MLOAD
00003a50: SWAP1
00003a51: PUSH0
00003a52: MSTORE
00003a53: SSTORE
00003a54: ADD
00003a55: CALLDATALOAD
00003a56: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d
00003a77: SSTORE
00003a78: PUSH2 0x3a7d
00003a7b: JUMPI
00003a7c: STOP
00003a7d: JUMPDEST
00003a7e: PUSH1 0x20
00003a80: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
00003aa1: SWAP2
00003aa2: PUSH9 0xff0000000000000000
00003aac: NOT
00003aad: PUSH0
00003aae: MLOAD
00003aaf: PUSH1 0x20
00003ab1: PUSH2 0x5d7d
00003ab4: PUSH0
00003ab5: CODECOPY
00003ab6: PUSH0
00003ab7: MLOAD
00003ab8: SWAP1
00003ab9: PUSH0
00003aba: MSTORE
00003abb: SLOAD
00003abc: AND
00003abd: PUSH0
00003abe: MLOAD
00003abf: PUSH1 0x20
00003ac1: PUSH2 0x5d7d
00003ac4: PUSH0
00003ac5: CODECOPY
00003ac6: PUSH0
00003ac7: MLOAD
00003ac8: SWAP1
00003ac9: PUSH0
00003aca: MSTORE
00003acb: SSTORE
00003acc: MLOAD
00003acd: PUSH1 0x01
00003acf: DUP2
00003ad0: MSTORE
00003ad1: LOG1
00003ad2: STOP
00003ad3: JUMPDEST
00003ad4: DUP5
00003ad5: MLOAD
00003ad6: PUSH4 0x6bc37c5f
00003adb: PUSH1 0xe1
00003add: SHL
00003ade: DUP2
00003adf: MSTORE
00003ae0: PUSH1 0x20
00003ae2: PUSH1 0x04
00003ae4: DUP3
00003ae5: ADD
00003ae6: MSTORE
00003ae7: PUSH1 0x0d
00003ae9: PUSH1 0x24
00003aeb: DUP3
00003aec: ADD
00003aed: MSTORE
00003aee: PUSH13 0x3332b2a1b0b631bab630ba37b9
00003afc: PUSH1 0x99
00003afe: SHL
00003aff: PUSH1 0x44
00003b01: DUP3
00003b02: ADD
00003b03: MSTORE
00003b04: PUSH1 0x64
00003b06: SWAP1
00003b07: REVERT
00003b08: JUMPDEST
00003b09: DUP4
00003b0a: MLOAD
00003b0b: PUSH4 0x6bc37c5f
00003b10: PUSH1 0xe1
00003b12: SHL
00003b13: DUP2
00003b14: MSTORE
00003b15: PUSH1 0x20
00003b17: PUSH1 0x04
00003b19: DUP3
00003b1a: ADD
00003b1b: MSTORE
00003b1c: PUSH1 0x05
00003b1e: PUSH1 0x24
00003b20: DUP3
00003b21: ADD
00003b22: MSTORE
00003b23: PUSH5 0x3a37b5b2b7
00003b29: PUSH1 0xd9
00003b2b: SHL
00003b2c: PUSH1 0x44
00003b2e: DUP3
00003b2f: ADD
00003b30: MSTORE
00003b31: PUSH1 0x64
00003b33: SWAP1
00003b34: REVERT
00003b35: JUMPDEST
00003b36: ADD
00003b37: MLOAD
00003b38: SWAP1
00003b39: POP
00003b3a: DUP6
00003b3b: DUP1
00003b3c: PUSH2 0x381a
00003b3f: JUMP
00003b40: JUMPDEST
00003b41: PUSH1 0x1f
00003b43: NOT
00003b44: DUP3
00003b45: AND
00003b46: SWAP6
00003b47: PUSH0
00003b48: MLOAD
00003b49: PUSH1 0x20
00003b4b: PUSH2 0x5b7d
00003b4e: PUSH0
00003b4f: CODECOPY
00003b50: PUSH0
00003b51: MLOAD
00003b52: SWAP1
00003b53: PUSH0
00003b54: MSTORE
00003b55: PUSH0
00003b56: MSTORE
00003b57: DUP1
00003b58: PUSH0
00003b59: KECCAK256
00003b5a: SWAP2
00003b5b: PUSH0
00003b5c: JUMPDEST
00003b5d: DUP9
00003b5e: DUP2
00003b5f: LT
00003b60: PUSH2 0x3ba3
00003b63: JUMPI
00003b64: POP
00003b65: DUP4
00003b66: PUSH1 0x01
00003b68: SWAP6
00003b69: SWAP7
00003b6a: SWAP8
00003b6b: SWAP9
00003b6c: LT
00003b6d: PUSH2 0x3b8b
00003b70: JUMPI
00003b71: JUMPDEST
00003b72: POP
00003b73: POP
00003b74: POP
00003b75: DUP2
00003b76: SHL
00003b77: ADD
00003b78: PUSH0
00003b79: MLOAD
00003b7a: PUSH1 0x20
00003b7c: PUSH2 0x5b7d
00003b7f: PUSH0
00003b80: CODECOPY
00003b81: PUSH0
00003b82: MLOAD
00003b83: SWAP1
00003b84: PUSH0
00003b85: MSTORE
00003b86: SSTORE
00003b87: PUSH2 0x383b
00003b8a: JUMP
00003b8b: JUMPDEST
00003b8c: ADD
00003b8d: MLOAD
00003b8e: PUSH0
00003b8f: NOT
00003b90: PUSH1 0xf8
00003b92: DUP5
00003b93: PUSH1 0x03
00003b95: SHL
00003b96: AND
00003b97: SHR
00003b98: NOT
00003b99: AND
00003b9a: SWAP1
00003b9b: SSTORE
00003b9c: DUP6
00003b9d: DUP1
00003b9e: DUP1
00003b9f: PUSH2 0x3b71
00003ba2: JUMP
00003ba3: JUMPDEST
00003ba4: SWAP2
00003ba5: SWAP3
00003ba6: PUSH1 0x20
00003ba8: PUSH1 0x01
00003baa: DUP2
00003bab: SWAP3
00003bac: DUP7
00003bad: DUP6
00003bae: ADD
00003baf: MLOAD
00003bb0: DUP2
00003bb1: SSTORE
00003bb2: ADD
00003bb3: SWAP5
00003bb4: ADD
00003bb5: SWAP3
00003bb6: ADD
00003bb7: PUSH2 0x3b5c
00003bba: JUMP
00003bbb: JUMPDEST
00003bbc: PUSH0
00003bbd: MLOAD
00003bbe: PUSH1 0x20
00003bc0: PUSH2 0x5b7d
00003bc3: PUSH0
00003bc4: CODECOPY
00003bc5: PUSH0
00003bc6: MLOAD
00003bc7: SWAP1
00003bc8: PUSH0
00003bc9: MSTORE
00003bca: PUSH0
00003bcb: MSTORE
00003bcc: PUSH32 0x5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75
00003bed: PUSH1 0x1f
00003bef: DUP4
00003bf0: ADD
00003bf1: PUSH1 0x05
00003bf3: SHR
00003bf4: DUP2
00003bf5: ADD
00003bf6: SWAP2
00003bf7: PUSH1 0x20
00003bf9: DUP5
00003bfa: LT
00003bfb: PUSH2 0x3c20
00003bfe: JUMPI
00003bff: JUMPDEST
00003c00: PUSH1 0x1f
00003c02: ADD
00003c03: PUSH1 0x05
00003c05: SHR
00003c06: ADD
00003c07: SWAP1
00003c08: JUMPDEST
00003c09: DUP2
00003c0a: DUP2
00003c0b: LT
00003c0c: PUSH2 0x3c15
00003c0f: JUMPI
00003c10: POP
00003c11: PUSH2 0x37fe
00003c14: JUMP
00003c15: JUMPDEST
00003c16: PUSH0
00003c17: DUP2
00003c18: SSTORE
00003c19: PUSH1 0x01
00003c1b: ADD
00003c1c: PUSH2 0x3c08
00003c1f: JUMP
00003c20: JUMPDEST
00003c21: SWAP1
00003c22: SWAP2
00003c23: POP
00003c24: DUP2
00003c25: SWAP1
00003c26: PUSH2 0x3bff
00003c29: JUMP
00003c2a: JUMPDEST
00003c2b: ADD
00003c2c: MLOAD
00003c2d: SWAP1
00003c2e: POP
00003c2f: DUP7
00003c30: DUP1
00003c31: PUSH2 0x37ac
00003c34: JUMP
00003c35: JUMPDEST
00003c36: PUSH0
00003c37: MLOAD
00003c38: PUSH1 0x20
00003c3a: PUSH2 0x5add
00003c3d: PUSH0
00003c3e: CODECOPY
00003c3f: PUSH0
00003c40: MLOAD
00003c41: SWAP1
00003c42: PUSH0
00003c43: MSTORE
00003c44: PUSH0
00003c45: SWAP1
00003c46: DUP2
00003c47: MSTORE
00003c48: DUP3
00003c49: DUP2
00003c4a: KECCAK256
00003c4b: SWAP4
00003c4c: POP
00003c4d: PUSH1 0x1f
00003c4f: NOT
00003c50: DUP6
00003c51: AND
00003c52: SWAP1
00003c53: JUMPDEST
00003c54: DUP2
00003c55: DUP2
00003c56: LT
00003c57: PUSH2 0x3c9b
00003c5a: JUMPI
00003c5b: POP
00003c5c: SWAP1
00003c5d: DUP5
00003c5e: PUSH1 0x01
00003c60: SWAP6
00003c61: SWAP5
00003c62: SWAP4
00003c63: SWAP3
00003c64: LT
00003c65: PUSH2 0x3c83
00003c68: JUMPI
00003c69: JUMPDEST
00003c6a: POP
00003c6b: POP
00003c6c: POP
00003c6d: DUP2
00003c6e: SHL
00003c6f: ADD
00003c70: PUSH0
00003c71: MLOAD
00003c72: PUSH1 0x20
00003c74: PUSH2 0x5add
00003c77: PUSH0
00003c78: CODECOPY
00003c79: PUSH0
00003c7a: MLOAD
00003c7b: SWAP1
00003c7c: PUSH0
00003c7d: MSTORE
00003c7e: SSTORE
00003c7f: PUSH2 0x37cd
00003c82: JUMP
00003c83: JUMPDEST
00003c84: ADD
00003c85: MLOAD
00003c86: PUSH0
00003c87: NOT
00003c88: PUSH1 0xf8
00003c8a: DUP5
00003c8b: PUSH1 0x03
00003c8d: SHL
00003c8e: AND
00003c8f: SHR
00003c90: NOT
00003c91: AND
00003c92: SWAP1
00003c93: SSTORE
00003c94: DUP7
00003c95: DUP1
00003c96: DUP1
00003c97: PUSH2 0x3c69
00003c9a: JUMP
00003c9b: JUMPDEST
00003c9c: SWAP3
00003c9d: SWAP4
00003c9e: PUSH1 0x20
00003ca0: PUSH1 0x01
00003ca2: DUP2
00003ca3: SWAP3
00003ca4: DUP8
00003ca5: DUP7
00003ca6: ADD
00003ca7: MLOAD
00003ca8: DUP2
00003ca9: SSTORE
00003caa: ADD
00003cab: SWAP6
00003cac: ADD
00003cad: SWAP4
00003cae: ADD
00003caf: PUSH2 0x3c53
00003cb2: JUMP
00003cb3: JUMPDEST
00003cb4: PUSH0
00003cb5: MLOAD
00003cb6: PUSH1 0x20
00003cb8: PUSH2 0x5add
00003cbb: PUSH0
00003cbc: CODECOPY
00003cbd: PUSH0
00003cbe: MLOAD
00003cbf: SWAP1
00003cc0: PUSH0
00003cc1: MSTORE
00003cc2: PUSH0
00003cc3: MSTORE
00003cc4: SWAP1
00003cc5: SWAP2
00003cc6: POP
00003cc7: PUSH32 0x42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d
00003ce8: PUSH1 0x1f
00003cea: DUP5
00003ceb: ADD
00003cec: PUSH1 0x05
00003cee: SHR
00003cef: DUP2
00003cf0: ADD
00003cf1: SWAP2
00003cf2: PUSH1 0x20
00003cf4: DUP6
00003cf5: LT
00003cf6: PUSH2 0x3d23
00003cf9: JUMPI
00003cfa: JUMPDEST
00003cfb: SWAP1
00003cfc: PUSH1 0x1f
00003cfe: DUP6
00003cff: SWAP5
00003d00: SWAP4
00003d01: SWAP3
00003d02: ADD
00003d03: PUSH1 0x05
00003d05: SHR
00003d06: ADD
00003d07: SWAP1
00003d08: JUMPDEST
00003d09: DUP2
00003d0a: DUP2
00003d0b: LT
00003d0c: PUSH2 0x3d15
00003d0f: JUMPI
00003d10: POP
00003d11: PUSH2 0x3796
00003d14: JUMP
00003d15: JUMPDEST
00003d16: PUSH0
00003d17: DUP2
00003d18: SSTORE
00003d19: DUP5
00003d1a: SWAP4
00003d1b: POP
00003d1c: PUSH1 0x01
00003d1e: ADD
00003d1f: PUSH2 0x3d08
00003d22: JUMP
00003d23: JUMPDEST
00003d24: SWAP1
00003d25: SWAP2
00003d26: POP
00003d27: DUP2
00003d28: SWAP1
00003d29: PUSH2 0x3cfa
00003d2c: JUMP
00003d2d: JUMPDEST
00003d2e: ADD
00003d2f: MLOAD
00003d30: SWAP1
00003d31: POP
00003d32: DUP8
00003d33: DUP1
00003d34: PUSH2 0x3705
00003d37: JUMP
00003d38: JUMPDEST
00003d39: SWAP1
00003d3a: PUSH1 0x1f
00003d3c: NOT
00003d3d: DUP4
00003d3e: AND
00003d3f: SWAP2
00003d40: PUSH0
00003d41: MLOAD
00003d42: PUSH1 0x20
00003d44: PUSH2 0x5b1d
00003d47: PUSH0
00003d48: CODECOPY
00003d49: PUSH0
00003d4a: MLOAD
00003d4b: SWAP1
00003d4c: PUSH0
00003d4d: MSTORE
00003d4e: PUSH0
00003d4f: MSTORE
00003d50: DUP2
00003d51: PUSH0
00003d52: KECCAK256
00003d53: SWAP3
00003d54: PUSH0
00003d55: JUMPDEST
00003d56: DUP2
00003d57: DUP2
00003d58: LT
00003d59: PUSH2 0x3da4
00003d5c: JUMPI
00003d5d: POP
00003d5e: SWAP3
00003d5f: PUSH1 0x01
00003d61: SWAP3
00003d62: DUP6
00003d63: SWAP3
00003d64: PUSH2 0x372c
00003d67: SWAP7
00003d68: PUSH2 0x3733
00003d6b: SWAP9
00003d6c: SWAP7
00003d6d: LT
00003d6e: PUSH2 0x3d8c
00003d71: JUMPI
00003d72: JUMPDEST
00003d73: POP
00003d74: POP
00003d75: POP
00003d76: DUP2
00003d77: SHL
00003d78: ADD
00003d79: PUSH0
00003d7a: MLOAD
00003d7b: PUSH1 0x20
00003d7d: PUSH2 0x5b1d
00003d80: PUSH0
00003d81: CODECOPY
00003d82: PUSH0
00003d83: MLOAD
00003d84: SWAP1
00003d85: PUSH0
00003d86: MSTORE
00003d87: SSTORE
00003d88: PUSH2 0x3726
00003d8b: JUMP
00003d8c: JUMPDEST
00003d8d: ADD
00003d8e: MLOAD
00003d8f: PUSH0
00003d90: NOT
00003d91: PUSH1 0xf8
00003d93: DUP5
00003d94: PUSH1 0x03
00003d96: SHL
00003d97: AND
00003d98: SHR
00003d99: NOT
00003d9a: AND
00003d9b: SWAP1
00003d9c: SSTORE
00003d9d: DUP8
00003d9e: DUP1
00003d9f: DUP1
00003da0: PUSH2 0x3d72
00003da3: JUMP
00003da4: JUMPDEST
00003da5: SWAP3
00003da6: SWAP4
00003da7: PUSH1 0x20
00003da9: PUSH1 0x01
00003dab: DUP2
00003dac: SWAP3
00003dad: DUP8
00003dae: DUP7
00003daf: ADD
00003db0: MLOAD
00003db1: DUP2
00003db2: SSTORE
00003db3: ADD
00003db4: SWAP6
00003db5: ADD
00003db6: SWAP4
00003db7: ADD
00003db8: PUSH2 0x3d55
00003dbb: JUMP
00003dbc: JUMPDEST
00003dbd: PUSH0
00003dbe: MLOAD
00003dbf: PUSH1 0x20
00003dc1: PUSH2 0x5b1d
00003dc4: PUSH0
00003dc5: CODECOPY
00003dc6: PUSH0
00003dc7: MLOAD
00003dc8: SWAP1
00003dc9: PUSH0
00003dca: MSTORE
00003dcb: PUSH0
00003dcc: MSTORE
00003dcd: PUSH32 0x46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa
00003dee: PUSH1 0x1f
00003df0: DUP5
00003df1: ADD
00003df2: PUSH1 0x05
00003df4: SHR
00003df5: DUP2
00003df6: ADD
00003df7: SWAP2
00003df8: PUSH1 0x20
00003dfa: DUP6
00003dfb: LT
00003dfc: PUSH2 0x3e21
00003dff: JUMPI
00003e00: JUMPDEST
00003e01: PUSH1 0x1f
00003e03: ADD
00003e04: PUSH1 0x05
00003e06: SHR
00003e07: ADD
00003e08: SWAP1
00003e09: JUMPDEST
00003e0a: DUP2
00003e0b: DUP2
00003e0c: LT
00003e0d: PUSH2 0x3e16
00003e10: JUMPI
00003e11: POP
00003e12: PUSH2 0x36e4
00003e15: JUMP
00003e16: JUMPDEST
00003e17: PUSH0
00003e18: DUP2
00003e19: SSTORE
00003e1a: PUSH1 0x01
00003e1c: ADD
00003e1d: PUSH2 0x3e09
00003e20: JUMP
00003e21: JUMPDEST
00003e22: SWAP1
00003e23: SWAP2
00003e24: POP
00003e25: DUP2
00003e26: SWAP1
00003e27: PUSH2 0x3e00
00003e2a: JUMP
00003e2b: JUMPDEST
00003e2c: ADD
00003e2d: MLOAD
00003e2e: SWAP1
00003e2f: POP
00003e30: DUP7
00003e31: DUP1
00003e32: PUSH2 0x3691
00003e35: JUMP
00003e36: JUMPDEST
00003e37: PUSH0
00003e38: MLOAD
00003e39: PUSH1 0x20
00003e3b: PUSH2 0x5a9d
00003e3e: PUSH0
00003e3f: CODECOPY
00003e40: PUSH0
00003e41: MLOAD
00003e42: SWAP1
00003e43: PUSH0
00003e44: MSTORE
00003e45: PUSH0
00003e46: SWAP1
00003e47: DUP2
00003e48: MSTORE
00003e49: DUP3
00003e4a: DUP2
00003e4b: KECCAK256
00003e4c: SWAP4
00003e4d: POP
00003e4e: PUSH1 0x1f
00003e50: NOT
00003e51: DUP6
00003e52: AND
00003e53: SWAP1
00003e54: JUMPDEST
00003e55: DUP2
00003e56: DUP2
00003e57: LT
00003e58: PUSH2 0x3e9c
00003e5b: JUMPI
00003e5c: POP
00003e5d: SWAP1
00003e5e: DUP5
00003e5f: PUSH1 0x01
00003e61: SWAP6
00003e62: SWAP5
00003e63: SWAP4
00003e64: SWAP3
00003e65: LT
00003e66: PUSH2 0x3e84
00003e69: JUMPI
00003e6a: JUMPDEST
00003e6b: POP
00003e6c: POP
00003e6d: POP
00003e6e: DUP2
00003e6f: SHL
00003e70: ADD
00003e71: PUSH0
00003e72: MLOAD
00003e73: PUSH1 0x20
00003e75: PUSH2 0x5a9d
00003e78: PUSH0
00003e79: CODECOPY
00003e7a: PUSH0
00003e7b: MLOAD
00003e7c: SWAP1
00003e7d: PUSH0
00003e7e: MSTORE
00003e7f: SSTORE
00003e80: PUSH2 0x36b2
00003e83: JUMP
00003e84: JUMPDEST
00003e85: ADD
00003e86: MLOAD
00003e87: PUSH0
00003e88: NOT
00003e89: PUSH1 0xf8
00003e8b: DUP5
00003e8c: PUSH1 0x03
00003e8e: SHL
00003e8f: AND
00003e90: SHR
00003e91: NOT
00003e92: AND
00003e93: SWAP1
00003e94: SSTORE
00003e95: DUP7
00003e96: DUP1
00003e97: DUP1
00003e98: PUSH2 0x3e6a
00003e9b: JUMP
00003e9c: JUMPDEST
00003e9d: SWAP3
00003e9e: SWAP4
00003e9f: PUSH1 0x20
00003ea1: PUSH1 0x01
00003ea3: DUP2
00003ea4: SWAP3
00003ea5: DUP8
00003ea6: DUP7
00003ea7: ADD
00003ea8: MLOAD
00003ea9: DUP2
00003eaa: SSTORE
00003eab: ADD
00003eac: SWAP6
00003ead: ADD
00003eae: SWAP4
00003eaf: ADD
00003eb0: PUSH2 0x3e54
00003eb3: JUMP
00003eb4: JUMPDEST
00003eb5: PUSH0
00003eb6: MLOAD
00003eb7: PUSH1 0x20
00003eb9: PUSH2 0x5a9d
00003ebc: PUSH0
00003ebd: CODECOPY
00003ebe: PUSH0
00003ebf: MLOAD
00003ec0: SWAP1
00003ec1: PUSH0
00003ec2: MSTORE
00003ec3: PUSH0
00003ec4: MSTORE
00003ec5: SWAP1
00003ec6: SWAP2
00003ec7: POP
00003ec8: PUSH32 0x2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0
00003ee9: PUSH1 0x1f
00003eeb: DUP5
00003eec: ADD
00003eed: PUSH1 0x05
00003eef: SHR
00003ef0: DUP2
00003ef1: ADD
00003ef2: SWAP2
00003ef3: PUSH1 0x20
00003ef5: DUP6
00003ef6: LT
00003ef7: PUSH2 0x3f24
00003efa: JUMPI
00003efb: JUMPDEST
00003efc: SWAP1
00003efd: PUSH1 0x1f
00003eff: DUP6
00003f00: SWAP5
00003f01: SWAP4
00003f02: SWAP3
00003f03: ADD
00003f04: PUSH1 0x05
00003f06: SHR
00003f07: ADD
00003f08: SWAP1
00003f09: JUMPDEST
00003f0a: DUP2
00003f0b: DUP2
00003f0c: LT
00003f0d: PUSH2 0x3f16
00003f10: JUMPI
00003f11: POP
00003f12: PUSH2 0x367b
00003f15: JUMP
00003f16: JUMPDEST
00003f17: PUSH0
00003f18: DUP2
00003f19: SSTORE
00003f1a: DUP5
00003f1b: SWAP4
00003f1c: POP
00003f1d: PUSH1 0x01
00003f1f: ADD
00003f20: PUSH2 0x3f09
00003f23: JUMP
00003f24: JUMPDEST
00003f25: SWAP1
00003f26: SWAP2
00003f27: POP
00003f28: DUP2
00003f29: SWAP1
00003f2a: PUSH2 0x3efb
00003f2d: JUMP
00003f2e: JUMPDEST
00003f2f: PUSH9 0xffffffffffffffffff
00003f39: NOT
00003f3a: AND
00003f3b: PUSH9 0x010000000000000001
00003f45: OR
00003f46: PUSH0
00003f47: MLOAD
00003f48: PUSH1 0x20
00003f4a: PUSH2 0x5d7d
00003f4d: PUSH0
00003f4e: CODECOPY
00003f4f: PUSH0
00003f50: MLOAD
00003f51: SWAP1
00003f52: PUSH0
00003f53: MSTORE
00003f54: SSTORE
00003f55: DUP4
00003f56: PUSH2 0x3603
00003f59: JUMP
00003f5a: JUMPDEST
00003f5b: PUSH4 0xf92ee8a9
00003f60: PUSH1 0xe0
00003f62: SHL
00003f63: PUSH0
00003f64: MSTORE
00003f65: PUSH1 0x04
00003f67: PUSH0
00003f68: REVERT
00003f69: JUMPDEST
00003f6a: SWAP1
00003f6b: POP
00003f6c: ISZERO
00003f6d: DUP6
00003f6e: PUSH2 0x35da
00003f71: JUMP
00003f72: JUMPDEST
00003f73: ADDRESS
00003f74: EXTCODESIZE
00003f75: ISZERO
00003f76: SWAP2
00003f77: POP
00003f78: PUSH2 0x35d2
00003f7b: JUMP
00003f7c: JUMPDEST
00003f7d: DUP6
00003f7e: SWAP2
00003f7f: POP
00003f80: PUSH2 0x35c8
00003f83: JUMP
00003f84: JUMPDEST
00003f85: DUP1
00003f86: MLOAD
00003f87: DUP1
00003f88: DUP4
00003f89: MSTORE
00003f8a: PUSH1 0x20
00003f8c: SWAP3
00003f8d: SWAP2
00003f8e: DUP2
00003f8f: SWAP1
00003f90: DUP5
00003f91: ADD
00003f92: DUP5
00003f93: DUP5
00003f94: ADD
00003f95: MCOPY
00003f96: PUSH0
00003f97: DUP3
00003f98: DUP3
00003f99: ADD
00003f9a: DUP5
00003f9b: ADD
00003f9c: MSTORE
00003f9d: PUSH1 0x1f
00003f9f: ADD
00003fa0: PUSH1 0x1f
00003fa2: NOT
00003fa3: AND
00003fa4: ADD
00003fa5: ADD
00003fa6: SWAP1
00003fa7: JUMP
00003fa8: JUMPDEST
00003fa9: PUSH1 0x04
00003fab: CALLDATALOAD
00003fac: SWAP1
00003fad: PUSH1 0x01
00003faf: PUSH1 0x01
00003fb1: PUSH1 0xa0
00003fb3: SHL
00003fb4: SUB
00003fb5: DUP3
00003fb6: AND
00003fb7: DUP3
00003fb8: SUB
00003fb9: PUSH2 0x03b2
00003fbc: JUMPI
00003fbd: JUMP
00003fbe: JUMPDEST
00003fbf: PUSH1 0x24
00003fc1: CALLDATALOAD
00003fc2: SWAP1
00003fc3: PUSH1 0x01
00003fc5: PUSH1 0x01
00003fc7: PUSH1 0xa0
00003fc9: SHL
00003fca: SUB
00003fcb: DUP3
00003fcc: AND
00003fcd: DUP3
00003fce: SUB
00003fcf: PUSH2 0x03b2
00003fd2: JUMPI
00003fd3: JUMP
00003fd4: JUMPDEST
00003fd5: PUSH1 0x44
00003fd7: CALLDATALOAD
00003fd8: SWAP1
00003fd9: PUSH1 0x01
00003fdb: PUSH1 0x01
00003fdd: PUSH1 0xa0
00003fdf: SHL
00003fe0: SUB
00003fe1: DUP3
00003fe2: AND
00003fe3: DUP3
00003fe4: SUB
00003fe5: PUSH2 0x03b2
00003fe8: JUMPI
00003fe9: JUMP
00003fea: JUMPDEST
00003feb: PUSH1 0x04
00003fed: CALLDATALOAD
00003fee: SWAP1
00003fef: DUP2
00003ff0: ISZERO
00003ff1: ISZERO
00003ff2: DUP3
00003ff3: SUB
00003ff4: PUSH2 0x03b2
00003ff7: JUMPI
00003ff8: JUMP
00003ff9: JUMPDEST
00003ffa: PUSH1 0xc0
00003ffc: SWAP1
00003ffd: PUSH1 0x03
00003fff: NOT
00004000: ADD
00004001: SLT
00004002: PUSH2 0x03b2
00004005: JUMPI
00004006: PUSH1 0x04
00004008: CALLDATALOAD
00004009: SWAP1
0000400a: PUSH1 0x24
0000400c: CALLDATALOAD
0000400d: SWAP1
0000400e: PUSH1 0x44
00004010: CALLDATALOAD
00004011: PUSH1 0x01
00004013: PUSH1 0x01
00004015: PUSH1 0xa0
00004017: SHL
00004018: SUB
00004019: DUP2
0000401a: AND
0000401b: DUP2
0000401c: SUB
0000401d: PUSH2 0x03b2
00004020: JUMPI
00004021: SWAP1
00004022: PUSH1 0x64
00004024: CALLDATALOAD
00004025: SWAP1
00004026: PUSH1 0x84
00004028: CALLDATALOAD
00004029: SWAP1
0000402a: PUSH1 0xa4
0000402c: CALLDATALOAD
0000402d: DUP1
0000402e: ISZERO
0000402f: ISZERO
00004030: DUP2
00004031: SUB
00004032: PUSH2 0x03b2
00004035: JUMPI
00004036: SWAP1
00004037: JUMP
00004038: JUMPDEST
00004039: PUSH1 0xc0
0000403b: DUP2
0000403c: ADD
0000403d: SWAP1
0000403e: DUP2
0000403f: LT
00004040: PUSH8 0xffffffffffffffff
00004049: DUP3
0000404a: GT
0000404b: OR
0000404c: PUSH2 0x2588
0000404f: JUMPI
00004050: PUSH1 0x40
00004052: MSTORE
00004053: JUMP
00004054: JUMPDEST
00004055: PUSH2 0x0100
00004058: DUP2
00004059: ADD
0000405a: SWAP1
0000405b: DUP2
0000405c: LT
0000405d: PUSH8 0xffffffffffffffff
00004066: DUP3
00004067: GT
00004068: OR
00004069: PUSH2 0x2588
0000406c: JUMPI
0000406d: PUSH1 0x40
0000406f: MSTORE
00004070: JUMP
00004071: JUMPDEST
00004072: PUSH1 0x40
00004074: DUP2
00004075: ADD
00004076: SWAP1
00004077: DUP2
00004078: LT
00004079: PUSH8 0xffffffffffffffff
00004082: DUP3
00004083: GT
00004084: OR
00004085: PUSH2 0x2588
00004088: JUMPI
00004089: PUSH1 0x40
0000408b: MSTORE
0000408c: JUMP
0000408d: JUMPDEST
0000408e: SWAP1
0000408f: PUSH1 0x1f
00004091: DUP1
00004092: NOT
00004093: SWAP2
00004094: ADD
00004095: AND
00004096: DUP2
00004097: ADD
00004098: SWAP1
00004099: DUP2
0000409a: LT
0000409b: PUSH8 0xffffffffffffffff
000040a4: DUP3
000040a5: GT
000040a6: OR
000040a7: PUSH2 0x2588
000040aa: JUMPI
000040ab: PUSH1 0x40
000040ad: MSTORE
000040ae: JUMP
000040af: JUMPDEST
000040b0: PUSH1 0xc0
000040b2: SWAP1
000040b3: PUSH1 0x63
000040b5: NOT
000040b6: ADD
000040b7: SLT
000040b8: PUSH2 0x03b2
000040bb: JUMPI
000040bc: PUSH1 0x40
000040be: MLOAD
000040bf: SWAP1
000040c0: PUSH2 0x40c8
000040c3: DUP3
000040c4: PUSH2 0x4038
000040c7: JUMP
000040c8: JUMPDEST
000040c9: PUSH1 0x64
000040cb: CALLDATALOAD
000040cc: DUP3
000040cd: MSTORE
000040ce: PUSH1 0x84
000040d0: CALLDATALOAD
000040d1: PUSH1 0x20
000040d3: DUP4
000040d4: ADD
000040d5: MSTORE
000040d6: PUSH1 0xa4
000040d8: CALLDATALOAD
000040d9: PUSH1 0x40
000040db: DUP4
000040dc: ADD
000040dd: MSTORE
000040de: PUSH1 0xc4
000040e0: CALLDATALOAD
000040e1: PUSH1 0x60
000040e3: DUP4
000040e4: ADD
000040e5: MSTORE
000040e6: PUSH1 0xe4
000040e8: CALLDATALOAD
000040e9: PUSH1 0x80
000040eb: DUP4
000040ec: ADD
000040ed: MSTORE
000040ee: PUSH2 0x0104
000040f1: CALLDATALOAD
000040f2: PUSH1 0xa0
000040f4: DUP4
000040f5: ADD
000040f6: MSTORE
000040f7: JUMP
000040f8: JUMPDEST
000040f9: PUSH1 0x60
000040fb: SWAP1
000040fc: PUSH1 0x03
000040fe: NOT
000040ff: ADD
00004100: SLT
00004101: PUSH2 0x03b2
00004104: JUMPI
00004105: PUSH1 0x04
00004107: CALLDATALOAD
00004108: SWAP1
00004109: PUSH1 0x24
0000410b: CALLDATALOAD
0000410c: SWAP1
0000410d: PUSH1 0x44
0000410f: CALLDATALOAD
00004110: SWAP1
00004111: JUMP
00004112: JUMPDEST
00004113: PUSH1 0x40
00004115: SWAP1
00004116: PUSH1 0x03
00004118: NOT
00004119: ADD
0000411a: SLT
0000411b: PUSH2 0x03b2
0000411e: JUMPI
0000411f: PUSH1 0x04
00004121: CALLDATALOAD
00004122: SWAP1
00004123: PUSH1 0x24
00004125: CALLDATALOAD
00004126: SWAP1
00004127: JUMP
00004128: JUMPDEST
00004129: PUSH8 0xffffffffffffffff
00004132: DUP2
00004133: GT
00004134: PUSH2 0x2588
00004137: JUMPI
00004138: PUSH1 0x1f
0000413a: ADD
0000413b: PUSH1 0x1f
0000413d: NOT
0000413e: AND
0000413f: PUSH1 0x20
00004141: ADD
00004142: SWAP1
00004143: JUMP
00004144: JUMPDEST
00004145: SWAP3
00004146: SWAP2
00004147: SWAP3
00004148: PUSH2 0x4150
0000414b: DUP3
0000414c: PUSH2 0x4128
0000414f: JUMP
00004150: JUMPDEST
00004151: SWAP2
00004152: PUSH2 0x415e
00004155: PUSH1 0x40
00004157: MLOAD
00004158: SWAP4
00004159: DUP5
0000415a: PUSH2 0x408d
0000415d: JUMP
0000415e: JUMPDEST
0000415f: DUP3
00004160: SWAP5
00004161: DUP2
00004162: DUP5
00004163: MSTORE
00004164: DUP2
00004165: DUP4
00004166: ADD
00004167: GT
00004168: PUSH2 0x03b2
0000416b: JUMPI
0000416c: DUP3
0000416d: DUP2
0000416e: PUSH1 0x20
00004170: SWAP4
00004171: DUP5
00004172: PUSH0
00004173: SWAP7
00004174: ADD
00004175: CALLDATACOPY
00004176: ADD
00004177: ADD
00004178: MSTORE
00004179: JUMP
0000417a: JUMPDEST
0000417b: PUSH1 0x80
0000417d: SWAP1
0000417e: PUSH1 0x03
00004180: NOT
00004181: ADD
00004182: SLT
00004183: PUSH2 0x03b2
00004186: JUMPI
00004187: PUSH1 0x04
00004189: CALLDATALOAD
0000418a: SWAP1
0000418b: PUSH1 0x24
0000418d: CALLDATALOAD
0000418e: SWAP1
0000418f: PUSH1 0x44
00004191: CALLDATALOAD
00004192: PUSH1 0x01
00004194: PUSH1 0x01
00004196: PUSH1 0xa0
00004198: SHL
00004199: SUB
0000419a: DUP2
0000419b: AND
0000419c: DUP2
0000419d: SUB
0000419e: PUSH2 0x03b2
000041a1: JUMPI
000041a2: SWAP1
000041a3: PUSH1 0x64
000041a5: CALLDATALOAD
000041a6: SWAP1
000041a7: JUMP
000041a8: JUMPDEST
000041a9: SWAP1
000041aa: CALLDATALOAD
000041ab: SWAP1
000041ac: PUSH1 0x1e
000041ae: NOT
000041af: DUP2
000041b0: CALLDATASIZE
000041b1: SUB
000041b2: ADD
000041b3: DUP3
000041b4: SLT
000041b5: ISZERO
000041b6: PUSH2 0x03b2
000041b9: JUMPI
000041ba: ADD
000041bb: DUP1
000041bc: CALLDATALOAD
000041bd: SWAP1
000041be: PUSH8 0xffffffffffffffff
000041c7: DUP3
000041c8: GT
000041c9: PUSH2 0x03b2
000041cc: JUMPI
000041cd: PUSH1 0x20
000041cf: ADD
000041d0: SWAP2
000041d1: DUP2
000041d2: CALLDATASIZE
000041d3: SUB
000041d4: DUP4
000041d5: SGT
000041d6: PUSH2 0x03b2
000041d9: JUMPI
000041da: JUMP
000041db: JUMPDEST
000041dc: CALLDATALOAD
000041dd: PUSH1 0xff
000041df: DUP2
000041e0: AND
000041e1: DUP2
000041e2: SUB
000041e3: PUSH2 0x03b2
000041e6: JUMPI
000041e7: SWAP1
000041e8: JUMP
000041e9: JUMPDEST
000041ea: CALLDATALOAD
000041eb: PUSH1 0x01
000041ed: PUSH1 0x01
000041ef: PUSH1 0xa0
000041f1: SHL
000041f2: SUB
000041f3: DUP2
000041f4: AND
000041f5: DUP2
000041f6: SUB
000041f7: PUSH2 0x03b2
000041fa: JUMPI
000041fb: SWAP1
000041fc: JUMP
000041fd: JUMPDEST
000041fe: SWAP1
000041ff: PUSH1 0x01
00004201: DUP3
00004202: DUP2
00004203: SHR
00004204: SWAP3
00004205: AND
00004206: DUP1
00004207: ISZERO
00004208: PUSH2 0x422b
0000420b: JUMPI
0000420c: JUMPDEST
0000420d: PUSH1 0x20
0000420f: DUP4
00004210: LT
00004211: EQ
00004212: PUSH2 0x4217
00004215: JUMPI
00004216: JUMP
00004217: JUMPDEST
00004218: PUSH4 0x4e487b71
0000421d: PUSH1 0xe0
0000421f: SHL
00004220: PUSH0
00004221: MSTORE
00004222: PUSH1 0x22
00004224: PUSH1 0x04
00004226: MSTORE
00004227: PUSH1 0x24
00004229: PUSH0
0000422a: REVERT
0000422b: JUMPDEST
0000422c: SWAP2
0000422d: PUSH1 0x7f
0000422f: AND
00004230: SWAP2
00004231: PUSH2 0x420c
00004234: JUMP
00004235: JUMPDEST
00004236: PUSH1 0x40
00004238: MLOAD
00004239: SWAP1
0000423a: PUSH0
0000423b: DUP3
0000423c: PUSH0
0000423d: MLOAD
0000423e: PUSH1 0x20
00004240: PUSH2 0x5add
00004243: PUSH0
00004244: CODECOPY
00004245: PUSH0
00004246: MLOAD
00004247: SWAP1
00004248: PUSH0
00004249: MSTORE
0000424a: SLOAD
0000424b: SWAP2
0000424c: PUSH2 0x4254
0000424f: DUP4
00004250: PUSH2 0x41fd
00004253: JUMP
00004254: JUMPDEST
00004255: DUP1
00004256: DUP4
00004257: MSTORE
00004258: SWAP3
00004259: PUSH1 0x01
0000425b: DUP2
0000425c: AND
0000425d: SWAP1
0000425e: DUP2
0000425f: ISZERO
00004260: PUSH2 0x42e5
00004263: JUMPI
00004264: POP
00004265: PUSH1 0x01
00004267: EQ
00004268: PUSH2 0x427a
0000426b: JUMPI
0000426c: JUMPDEST
0000426d: PUSH2 0x4278
00004270: SWAP3
00004271: POP
00004272: SUB
00004273: DUP4
00004274: PUSH2 0x408d
00004277: JUMP
00004278: JUMPDEST
00004279: JUMP
0000427a: JUMPDEST
0000427b: POP
0000427c: PUSH0
0000427d: MLOAD
0000427e: PUSH1 0x20
00004280: PUSH2 0x5add
00004283: PUSH0
00004284: CODECOPY
00004285: PUSH0
00004286: MLOAD
00004287: SWAP1
00004288: PUSH0
00004289: MSTORE
0000428a: PUSH0
0000428b: SWAP1
0000428c: DUP2
0000428d: MSTORE
0000428e: SWAP1
0000428f: SWAP2
00004290: PUSH32 0x42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d
000042b1: JUMPDEST
000042b2: DUP2
000042b3: DUP4
000042b4: LT
000042b5: PUSH2 0x42c9
000042b8: JUMPI
000042b9: POP
000042ba: POP
000042bb: SWAP1
000042bc: PUSH1 0x20
000042be: PUSH2 0x4278
000042c1: SWAP3
000042c2: DUP3
000042c3: ADD
000042c4: ADD
000042c5: PUSH2 0x426c
000042c8: JUMP
000042c9: JUMPDEST
000042ca: PUSH1 0x20
000042cc: SWAP2
000042cd: SWAP4
000042ce: POP
000042cf: DUP1
000042d0: PUSH1 0x01
000042d2: SWAP2
000042d3: SLOAD
000042d4: DUP4
000042d5: DUP6
000042d6: DUP10
000042d7: ADD
000042d8: ADD
000042d9: MSTORE
000042da: ADD
000042db: SWAP2
000042dc: ADD
000042dd: SWAP1
000042de: SWAP2
000042df: DUP5
000042e0: SWAP3
000042e1: PUSH2 0x42b1
000042e4: JUMP
000042e5: JUMPDEST
000042e6: PUSH1 0x20
000042e8: SWAP3
000042e9: POP
000042ea: PUSH2 0x4278
000042ed: SWAP5
000042ee: SWAP2
000042ef: POP
000042f0: PUSH1 0xff
000042f2: NOT
000042f3: AND
000042f4: DUP3
000042f5: DUP5
000042f6: ADD
000042f7: MSTORE
000042f8: ISZERO
000042f9: ISZERO
000042fa: PUSH1 0x05
000042fc: SHL
000042fd: DUP3
000042fe: ADD
000042ff: ADD
00004300: PUSH2 0x426c
00004303: JUMP
00004304: JUMPDEST
00004305: PUSH1 0x40
00004307: MLOAD
00004308: SWAP1
00004309: PUSH0
0000430a: DUP3
0000430b: PUSH0
0000430c: MLOAD
0000430d: PUSH1 0x20
0000430f: PUSH2 0x5b7d
00004312: PUSH0
00004313: CODECOPY
00004314: PUSH0
00004315: MLOAD
00004316: SWAP1
00004317: PUSH0
00004318: MSTORE
00004319: SLOAD
0000431a: SWAP2
0000431b: PUSH2 0x4323
0000431e: DUP4
0000431f: PUSH2 0x41fd
00004322: JUMP
00004323: JUMPDEST
00004324: DUP1
00004325: DUP4
00004326: MSTORE
00004327: SWAP3
00004328: PUSH1 0x01
0000432a: DUP2
0000432b: AND
0000432c: SWAP1
0000432d: DUP2
0000432e: ISZERO
0000432f: PUSH2 0x42e5
00004332: JUMPI
00004333: POP
00004334: PUSH1 0x01
00004336: EQ
00004337: PUSH2 0x4346
0000433a: JUMPI
0000433b: PUSH2 0x4278
0000433e: SWAP3
0000433f: POP
00004340: SUB
00004341: DUP4
00004342: PUSH2 0x408d
00004345: JUMP
00004346: JUMPDEST
00004347: POP
00004348: PUSH0
00004349: MLOAD
0000434a: PUSH1 0x20
0000434c: PUSH2 0x5b7d
0000434f: PUSH0
00004350: CODECOPY
00004351: PUSH0
00004352: MLOAD
00004353: SWAP1
00004354: PUSH0
00004355: MSTORE
00004356: PUSH0
00004357: SWAP1
00004358: DUP2
00004359: MSTORE
0000435a: SWAP1
0000435b: SWAP2
0000435c: PUSH32 0x5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75
0000437d: JUMPDEST
0000437e: DUP2
0000437f: DUP4
00004380: LT
00004381: PUSH2 0x4395
00004384: JUMPI
00004385: POP
00004386: POP
00004387: SWAP1
00004388: PUSH1 0x20
0000438a: PUSH2 0x4278
0000438d: SWAP3
0000438e: DUP3
0000438f: ADD
00004390: ADD
00004391: PUSH2 0x426c
00004394: JUMP
00004395: JUMPDEST
00004396: PUSH1 0x20
00004398: SWAP2
00004399: SWAP4
0000439a: POP
0000439b: DUP1
0000439c: PUSH1 0x01
0000439e: SWAP2
0000439f: SLOAD
000043a0: DUP4
000043a1: DUP6
000043a2: DUP10
000043a3: ADD
000043a4: ADD
000043a5: MSTORE
000043a6: ADD
000043a7: SWAP2
000043a8: ADD
000043a9: SWAP1
000043aa: SWAP2
000043ab: DUP5
000043ac: SWAP3
000043ad: PUSH2 0x437d
000043b0: JUMP
000043b1: JUMPDEST
000043b2: PUSH1 0x40
000043b4: MLOAD
000043b5: SWAP1
000043b6: PUSH2 0x43be
000043b9: DUP3
000043ba: PUSH2 0x4054
000043bd: JUMP
000043be: JUMPDEST
000043bf: PUSH0
000043c0: PUSH1 0xe0
000043c2: DUP4
000043c3: DUP3
000043c4: DUP2
000043c5: MSTORE
000043c6: DUP3
000043c7: PUSH1 0x20
000043c9: DUP3
000043ca: ADD
000043cb: MSTORE
000043cc: DUP3
000043cd: PUSH1 0x40
000043cf: DUP3
000043d0: ADD
000043d1: MSTORE
000043d2: DUP3
000043d3: PUSH1 0x60
000043d5: DUP3
000043d6: ADD
000043d7: MSTORE
000043d8: DUP3
000043d9: PUSH1 0x80
000043db: DUP3
000043dc: ADD
000043dd: MSTORE
000043de: DUP3
000043df: PUSH1 0xa0
000043e1: DUP3
000043e2: ADD
000043e3: MSTORE
000043e4: DUP3
000043e5: PUSH1 0xc0
000043e7: DUP3
000043e8: ADD
000043e9: MSTORE
000043ea: ADD
000043eb: MSTORE
000043ec: JUMP
000043ed: JUMPDEST
000043ee: PUSH0
000043ef: MLOAD
000043f0: PUSH1 0x20
000043f2: PUSH2 0x5c3d
000043f5: PUSH0
000043f6: CODECOPY
000043f7: PUSH0
000043f8: MLOAD
000043f9: SWAP1
000043fa: PUSH0
000043fb: MSTORE
000043fc: SLOAD
000043fd: DUP2
000043fe: LT
000043ff: ISZERO
00004400: PUSH2 0x4421
00004403: JUMPI
00004404: PUSH0
00004405: MLOAD
00004406: PUSH1 0x20
00004408: PUSH2 0x5c3d
0000440b: PUSH0
0000440c: CODECOPY
0000440d: PUSH0
0000440e: MLOAD
0000440f: SWAP1
00004410: PUSH0
00004411: MSTORE
00004412: PUSH0
00004413: MSTORE
00004414: PUSH1 0x20
00004416: PUSH0
00004417: KECCAK256
00004418: SWAP1
00004419: PUSH1 0x03
0000441b: SHL
0000441c: ADD
0000441d: SWAP1
0000441e: PUSH0
0000441f: SWAP1
00004420: JUMP
00004421: JUMPDEST
00004422: PUSH4 0x4e487b71
00004427: PUSH1 0xe0
00004429: SHL
0000442a: PUSH0
0000442b: MSTORE
0000442c: PUSH1 0x32
0000442e: PUSH1 0x04
00004430: MSTORE
00004431: PUSH1 0x24
00004433: PUSH0
00004434: REVERT
00004435: JUMPDEST
00004436: SWAP1
00004437: PUSH1 0x40
00004439: MLOAD
0000443a: PUSH2 0x4442
0000443d: DUP2
0000443e: PUSH2 0x4054
00004441: JUMP
00004442: JUMPDEST
00004443: PUSH1 0xe0
00004445: PUSH1 0xff
00004447: PUSH1 0x07
00004449: DUP4
0000444a: SWAP6
0000444b: DUP1
0000444c: SLOAD
0000444d: DUP6
0000444e: MSTORE
0000444f: PUSH1 0x01
00004451: DUP2
00004452: ADD
00004453: SLOAD
00004454: PUSH1 0x20
00004456: DUP7
00004457: ADD
00004458: MSTORE
00004459: PUSH1 0x02
0000445b: DUP2
0000445c: ADD
0000445d: SLOAD
0000445e: PUSH1 0x40
00004460: DUP7
00004461: ADD
00004462: MSTORE
00004463: PUSH1 0x03
00004465: DUP2
00004466: ADD
00004467: SLOAD
00004468: PUSH1 0x60
0000446a: DUP7
0000446b: ADD
0000446c: MSTORE
0000446d: PUSH1 0x04
0000446f: DUP2
00004470: ADD
00004471: SLOAD
00004472: PUSH1 0x80
00004474: DUP7
00004475: ADD
00004476: MSTORE
00004477: PUSH1 0x05
00004479: DUP2
0000447a: ADD
0000447b: SLOAD
0000447c: PUSH1 0xa0
0000447e: DUP7
0000447f: ADD
00004480: MSTORE
00004481: PUSH1 0x06
00004483: DUP2
00004484: ADD
00004485: SLOAD
00004486: PUSH1 0xc0
00004488: DUP7
00004489: ADD
0000448a: MSTORE
0000448b: ADD
0000448c: SLOAD
0000448d: AND
0000448e: ISZERO
0000448f: ISZERO
00004490: SWAP2
00004491: ADD
00004492: MSTORE
00004493: JUMP
00004494: JUMPDEST
00004495: PUSH1 0x40
00004497: MLOAD
00004498: SWAP1
00004499: PUSH2 0x44a1
0000449c: DUP3
0000449d: PUSH2 0x4038
000044a0: JUMP
000044a1: JUMPDEST
000044a2: PUSH0
000044a3: PUSH1 0xa0
000044a5: DUP4
000044a6: DUP3
000044a7: DUP2
000044a8: MSTORE
000044a9: DUP3
000044aa: PUSH1 0x20
000044ac: DUP3
000044ad: ADD
000044ae: MSTORE
000044af: DUP3
000044b0: PUSH1 0x40
000044b2: DUP3
000044b3: ADD
000044b4: MSTORE
000044b5: DUP3
000044b6: PUSH1 0x60
000044b8: DUP3
000044b9: ADD
000044ba: MSTORE
000044bb: DUP3
000044bc: PUSH1 0x80
000044be: DUP3
000044bf: ADD
000044c0: MSTORE
000044c1: ADD
000044c2: MSTORE
000044c3: JUMP
000044c4: JUMPDEST
000044c5: SWAP1
000044c6: DUP2
000044c7: PUSH1 0xc0
000044c9: SWAP2
000044ca: SUB
000044cb: SLT
000044cc: PUSH2 0x03b2
000044cf: JUMPI
000044d0: PUSH1 0xa0
000044d2: PUSH1 0x40
000044d4: MLOAD
000044d5: SWAP2
000044d6: PUSH2 0x44de
000044d9: DUP4
000044da: PUSH2 0x4038
000044dd: JUMP
000044de: JUMPDEST
000044df: DUP1
000044e0: MLOAD
000044e1: DUP4
000044e2: MSTORE
000044e3: PUSH1 0x20
000044e5: DUP2
000044e6: ADD
000044e7: MLOAD
000044e8: PUSH1 0x20
000044ea: DUP5
000044eb: ADD
000044ec: MSTORE
000044ed: PUSH1 0x40
000044ef: DUP2
000044f0: ADD
000044f1: MLOAD
000044f2: PUSH1 0x40
000044f4: DUP5
000044f5: ADD
000044f6: MSTORE
000044f7: PUSH1 0x60
000044f9: DUP2
000044fa: ADD
000044fb: MLOAD
000044fc: PUSH1 0x60
000044fe: DUP5
000044ff: ADD
00004500: MSTORE
00004501: PUSH1 0x80
00004503: DUP2
00004504: ADD
00004505: MLOAD
00004506: PUSH1 0x80
00004508: DUP5
00004509: ADD
0000450a: MSTORE
0000450b: ADD
0000450c: MLOAD
0000450d: PUSH1 0xa0
0000450f: DUP3
00004510: ADD
00004511: MSTORE
00004512: SWAP1
00004513: JUMP
00004514: JUMPDEST
00004515: SWAP1
00004516: SWAP5
00004517: SWAP4
00004518: SWAP3
00004519: PUSH1 0x01
0000451b: PUSH1 0x01
0000451d: PUSH1 0xa0
0000451f: SHL
00004520: SUB
00004521: SWAP1
00004522: PUSH1 0xff
00004524: PUSH1 0x07
00004526: PUSH2 0x01e0
00004529: SWAP6
0000452a: PUSH1 0xa0
0000452c: PUSH2 0x0200
0000452f: DUP8
00004530: ADD
00004531: SWAP11
00004532: DUP7
00004533: DUP2
00004534: MLOAD
00004535: AND
00004536: DUP9
00004537: MSTORE
00004538: PUSH1 0x20
0000453a: DUP2
0000453b: ADD
0000453c: MLOAD
0000453d: PUSH1 0x20
0000453f: DUP10
00004540: ADD
00004541: MSTORE
00004542: DUP5
00004543: PUSH1 0x40
00004545: DUP3
00004546: ADD
00004547: MLOAD
00004548: AND
00004549: PUSH1 0x40
0000454b: DUP10
0000454c: ADD
0000454d: MSTORE
0000454e: PUSH1 0x60
00004550: DUP2
00004551: ADD
00004552: MLOAD
00004553: PUSH1 0x60
00004555: DUP10
00004556: ADD
00004557: MSTORE
00004558: PUSH1 0x80
0000455a: DUP2
0000455b: ADD
0000455c: MLOAD
0000455d: PUSH1 0x80
0000455f: DUP10
00004560: ADD
00004561: MSTORE
00004562: ADD
00004563: MLOAD
00004564: PUSH1 0xa0
00004566: DUP8
00004567: ADD
00004568: MSTORE
00004569: DUP1
0000456a: SLOAD
0000456b: PUSH1 0xc0
0000456d: DUP8
0000456e: ADD
0000456f: MSTORE
00004570: PUSH1 0x01
00004572: DUP2
00004573: ADD
00004574: SLOAD
00004575: PUSH1 0xe0
00004577: DUP8
00004578: ADD
00004579: MSTORE
0000457a: PUSH1 0x02
0000457c: DUP2
0000457d: ADD
0000457e: SLOAD
0000457f: PUSH2 0x0100
00004582: DUP8
00004583: ADD
00004584: MSTORE
00004585: PUSH1 0x03
00004587: DUP2
00004588: ADD
00004589: SLOAD
0000458a: PUSH2 0x0120
0000458d: DUP8
0000458e: ADD
0000458f: MSTORE
00004590: PUSH1 0x04
00004592: DUP2
00004593: ADD
00004594: SLOAD
00004595: PUSH2 0x0140
00004598: DUP8
00004599: ADD
0000459a: MSTORE
0000459b: PUSH1 0x05
0000459d: DUP2
0000459e: ADD
0000459f: SLOAD
000045a0: PUSH2 0x0160
000045a3: DUP8
000045a4: ADD
000045a5: MSTORE
000045a6: PUSH1 0x06
000045a8: DUP2
000045a9: ADD
000045aa: SLOAD
000045ab: PUSH2 0x0180
000045ae: DUP8
000045af: ADD
000045b0: MSTORE
000045b1: ADD
000045b2: SLOAD
000045b3: AND
000045b4: ISZERO
000045b5: ISZERO
000045b6: PUSH2 0x01a0
000045b9: DUP5
000045ba: ADD
000045bb: MSTORE
000045bc: AND
000045bd: PUSH2 0x01c0
000045c0: DUP3
000045c1: ADD
000045c2: MSTORE
000045c3: ADD
000045c4: MSTORE
000045c5: JUMP
000045c6: JUMPDEST
000045c7: SWAP2
000045c8: SWAP1
000045c9: DUP3
000045ca: ADD
000045cb: DUP1
000045cc: SWAP3
000045cd: GT
000045ce: PUSH2 0x2636
000045d1: JUMPI
000045d2: JUMP
000045d3: JUMPDEST
000045d4: SWAP2
000045d5: SWAP1
000045d6: DUP3
000045d7: SUB
000045d8: SWAP2
000045d9: DUP3
000045da: GT
000045db: PUSH2 0x2636
000045de: JUMPI
000045df: JUMP
000045e0: JUMPDEST
000045e1: DUP2
000045e2: DUP2
000045e3: MUL
000045e4: SWAP3
000045e5: SWAP2
000045e6: DUP2
000045e7: ISZERO
000045e8: SWAP2
000045e9: DUP5
000045ea: DIV
000045eb: EQ
000045ec: OR
000045ed: ISZERO
000045ee: PUSH2 0x2636
000045f1: JUMPI
000045f2: JUMP
000045f3: JUMPDEST
000045f4: DUP2
000045f5: ISZERO
000045f6: PUSH2 0x45fd
000045f9: JUMPI
000045fa: DIV
000045fb: SWAP1
000045fc: JUMP
000045fd: JUMPDEST
000045fe: PUSH4 0x4e487b71
00004603: PUSH1 0xe0
00004605: SHL
00004606: PUSH0
00004607: MSTORE
00004608: PUSH1 0x12
0000460a: PUSH1 0x04
0000460c: MSTORE
0000460d: PUSH1 0x24
0000460f: PUSH0
00004610: REVERT
00004611: JUMPDEST
00004612: PUSH8 0xffffffffffffffff
0000461b: DUP2
0000461c: GT
0000461d: PUSH2 0x2588
00004620: JUMPI
00004621: PUSH1 0x05
00004623: SHL
00004624: PUSH1 0x20
00004626: ADD
00004627: SWAP1
00004628: JUMP
00004629: JUMPDEST
0000462a: SWAP1
0000462b: PUSH2 0x4633
0000462e: DUP3
0000462f: PUSH2 0x4611
00004632: JUMP
00004633: JUMPDEST
00004634: PUSH2 0x4640
00004637: PUSH1 0x40
00004639: MLOAD
0000463a: SWAP2
0000463b: DUP3
0000463c: PUSH2 0x408d
0000463f: JUMP
00004640: JUMPDEST
00004641: DUP3
00004642: DUP2
00004643: MSTORE
00004644: DUP1
00004645: SWAP3
00004646: PUSH2 0x4651
00004649: PUSH1 0x1f
0000464b: NOT
0000464c: SWAP2
0000464d: PUSH2 0x4611
00004650: JUMP
00004651: JUMPDEST
00004652: ADD
00004653: SWAP1
00004654: PUSH1 0x20
00004656: CALLDATASIZE
00004657: SWAP2
00004658: ADD
00004659: CALLDATACOPY
0000465a: JUMP
0000465b: JUMPDEST
0000465c: PUSH1 0x01
0000465e: PUSH1 0x01
00004660: PUSH1 0xa0
00004662: SHL
00004663: SUB
00004664: DUP2
00004665: AND
00004666: PUSH0
00004667: SWAP1
00004668: DUP2
00004669: MSTORE
0000466a: PUSH32 0xb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d
0000468b: PUSH1 0x20
0000468d: MSTORE
0000468e: PUSH1 0x40
00004690: SWAP1
00004691: KECCAK256
00004692: SLOAD
00004693: PUSH1 0xff
00004695: AND
00004696: PUSH2 0x4705
00004699: JUMPI
0000469a: PUSH1 0x01
0000469c: PUSH1 0x01
0000469e: PUSH1 0xa0
000046a0: SHL
000046a1: SUB
000046a2: AND
000046a3: PUSH0
000046a4: DUP2
000046a5: DUP2
000046a6: MSTORE
000046a7: PUSH32 0xb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d
000046c8: PUSH1 0x20
000046ca: MSTORE
000046cb: PUSH1 0x40
000046cd: DUP2
000046ce: KECCAK256
000046cf: DUP1
000046d0: SLOAD
000046d1: PUSH1 0xff
000046d3: NOT
000046d4: AND
000046d5: PUSH1 0x01
000046d7: OR
000046d8: SWAP1
000046d9: SSTORE
000046da: CALLER
000046db: SWAP2
000046dc: SWAP1
000046dd: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
000046fe: DUP2
000046ff: DUP1
00004700: LOG4
00004701: PUSH1 0x01
00004703: SWAP1
00004704: JUMP
00004705: JUMPDEST
00004706: POP
00004707: PUSH0
00004708: SWAP1
00004709: JUMP
0000470a: JUMPDEST
0000470b: PUSH1 0x01
0000470d: PUSH1 0x01
0000470f: PUSH1 0xa0
00004711: SHL
00004712: SUB
00004713: DUP2
00004714: AND
00004715: PUSH0
00004716: SWAP1
00004717: DUP2
00004718: MSTORE
00004719: PUSH32 0xb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538
0000473a: PUSH1 0x20
0000473c: MSTORE
0000473d: PUSH1 0x40
0000473f: SWAP1
00004740: KECCAK256
00004741: SLOAD
00004742: PUSH1 0xff
00004744: AND
00004745: PUSH2 0x4705
00004748: JUMPI
00004749: PUSH1 0x01
0000474b: PUSH1 0x01
0000474d: PUSH1 0xa0
0000474f: SHL
00004750: SUB
00004751: AND
00004752: PUSH0
00004753: DUP2
00004754: DUP2
00004755: MSTORE
00004756: PUSH32 0xb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538
00004777: PUSH1 0x20
00004779: MSTORE
0000477a: PUSH1 0x40
0000477c: DUP2
0000477d: KECCAK256
0000477e: DUP1
0000477f: SLOAD
00004780: PUSH1 0xff
00004782: NOT
00004783: AND
00004784: PUSH1 0x01
00004786: OR
00004787: SWAP1
00004788: SSTORE
00004789: CALLER
0000478a: SWAP2
0000478b: SWAP1
0000478c: PUSH32 0x66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e2102
000047ad: SWAP1
000047ae: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
000047cf: SWAP1
000047d0: DUP1
000047d1: LOG4
000047d2: PUSH1 0x01
000047d4: SWAP1
000047d5: JUMP
000047d6: JUMPDEST
000047d7: DUP1
000047d8: PUSH0
000047d9: MSTORE
000047da: PUSH0
000047db: MLOAD
000047dc: PUSH1 0x20
000047de: PUSH2 0x5c5d
000047e1: PUSH0
000047e2: CODECOPY
000047e3: PUSH0
000047e4: MLOAD
000047e5: SWAP1
000047e6: PUSH0
000047e7: MSTORE
000047e8: PUSH1 0x20
000047ea: MSTORE
000047eb: PUSH1 0x40
000047ed: PUSH0
000047ee: KECCAK256
000047ef: PUSH1 0x01
000047f1: PUSH1 0x01
000047f3: PUSH1 0xa0
000047f5: SHL
000047f6: SUB
000047f7: DUP4
000047f8: AND
000047f9: PUSH0
000047fa: MSTORE
000047fb: PUSH1 0x20
000047fd: MSTORE
000047fe: PUSH1 0xff
00004800: PUSH1 0x40
00004802: PUSH0
00004803: KECCAK256
00004804: SLOAD
00004805: AND
00004806: ISZERO
00004807: PUSH0
00004808: EQ
00004809: PUSH2 0x4877
0000480c: JUMPI
0000480d: DUP1
0000480e: PUSH0
0000480f: MSTORE
00004810: PUSH0
00004811: MLOAD
00004812: PUSH1 0x20
00004814: PUSH2 0x5c5d
00004817: PUSH0
00004818: CODECOPY
00004819: PUSH0
0000481a: MLOAD
0000481b: SWAP1
0000481c: PUSH0
0000481d: MSTORE
0000481e: PUSH1 0x20
00004820: MSTORE
00004821: PUSH1 0x40
00004823: PUSH0
00004824: KECCAK256
00004825: PUSH1 0x01
00004827: PUSH1 0x01
00004829: PUSH1 0xa0
0000482b: SHL
0000482c: SUB
0000482d: DUP4
0000482e: AND
0000482f: PUSH0
00004830: MSTORE
00004831: PUSH1 0x20
00004833: MSTORE
00004834: PUSH1 0x40
00004836: PUSH0
00004837: KECCAK256
00004838: PUSH1 0x01
0000483a: PUSH1 0xff
0000483c: NOT
0000483d: DUP3
0000483e: SLOAD
0000483f: AND
00004840: OR
00004841: SWAP1
00004842: SSTORE
00004843: PUSH1 0x01
00004845: PUSH1 0x01
00004847: PUSH1 0xa0
00004849: SHL
0000484a: SUB
0000484b: CALLER
0000484c: SWAP3
0000484d: AND
0000484e: SWAP1
0000484f: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
00004870: PUSH0
00004871: DUP1
00004872: LOG4
00004873: PUSH1 0x01
00004875: SWAP1
00004876: JUMP
00004877: JUMPDEST
00004878: POP
00004879: POP
0000487a: PUSH0
0000487b: SWAP1
0000487c: JUMP
0000487d: JUMPDEST
0000487e: PUSH0
0000487f: MLOAD
00004880: PUSH1 0x20
00004882: PUSH2 0x5cfd
00004885: PUSH0
00004886: CODECOPY
00004887: PUSH0
00004888: MLOAD
00004889: SWAP1
0000488a: PUSH0
0000488b: MSTORE
0000488c: TLOAD
0000488d: PUSH2 0x48a3
00004890: JUMPI
00004891: PUSH1 0x01
00004893: PUSH0
00004894: MLOAD
00004895: PUSH1 0x20
00004897: PUSH2 0x5cfd
0000489a: PUSH0
0000489b: CODECOPY
0000489c: PUSH0
0000489d: MLOAD
0000489e: SWAP1
0000489f: PUSH0
000048a0: MSTORE
000048a1: TSTORE
000048a2: JUMP
000048a3: JUMPDEST
000048a4: PUSH4 0x3ee5aeb5
000048a9: PUSH1 0xe0
000048ab: SHL
000048ac: PUSH0
000048ad: MSTORE
000048ae: PUSH1 0x04
000048b0: PUSH0
000048b1: REVERT
000048b2: JUMPDEST
000048b3: CALLER
000048b4: PUSH0
000048b5: SWAP1
000048b6: DUP2
000048b7: MSTORE
000048b8: PUSH32 0xb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538
000048d9: PUSH1 0x20
000048db: MSTORE
000048dc: PUSH1 0x40
000048de: SWAP1
000048df: KECCAK256
000048e0: SLOAD
000048e1: PUSH1 0xff
000048e3: AND
000048e4: ISZERO
000048e5: PUSH2 0x48ea
000048e8: JUMPI
000048e9: JUMP
000048ea: JUMPDEST
000048eb: PUSH4 0xe2517d3f
000048f0: PUSH1 0xe0
000048f2: SHL
000048f3: PUSH0
000048f4: MSTORE
000048f5: CALLER
000048f6: PUSH1 0x04
000048f8: MSTORE
000048f9: PUSH32 0x66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e2102
0000491a: PUSH1 0x24
0000491c: MSTORE
0000491d: PUSH1 0x44
0000491f: PUSH0
00004920: REVERT
00004921: JUMPDEST
00004922: CALLER
00004923: PUSH0
00004924: SWAP1
00004925: DUP2
00004926: MSTORE
00004927: PUSH32 0xb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d
00004948: PUSH1 0x20
0000494a: MSTORE
0000494b: PUSH1 0x40
0000494d: SWAP1
0000494e: KECCAK256
0000494f: SLOAD
00004950: PUSH1 0xff
00004952: AND
00004953: ISZERO
00004954: PUSH2 0x4959
00004957: JUMPI
00004958: JUMP
00004959: JUMPDEST
0000495a: PUSH4 0xe2517d3f
0000495f: PUSH1 0xe0
00004961: SHL
00004962: PUSH0
00004963: MSTORE
00004964: CALLER
00004965: PUSH1 0x04
00004967: MSTORE
00004968: PUSH0
00004969: PUSH1 0x24
0000496b: MSTORE
0000496c: PUSH1 0x44
0000496e: PUSH0
0000496f: REVERT
00004970: JUMPDEST
00004971: DUP1
00004972: PUSH0
00004973: MSTORE
00004974: PUSH0
00004975: MLOAD
00004976: PUSH1 0x20
00004978: PUSH2 0x5c5d
0000497b: PUSH0
0000497c: CODECOPY
0000497d: PUSH0
0000497e: MLOAD
0000497f: SWAP1
00004980: PUSH0
00004981: MSTORE
00004982: PUSH1 0x20
00004984: MSTORE
00004985: PUSH1 0x40
00004987: PUSH0
00004988: KECCAK256
00004989: PUSH1 0x01
0000498b: PUSH1 0x01
0000498d: PUSH1 0xa0
0000498f: SHL
00004990: SUB
00004991: CALLER
00004992: AND
00004993: PUSH0
00004994: MSTORE
00004995: PUSH1 0x20
00004997: MSTORE
00004998: PUSH1 0xff
0000499a: PUSH1 0x40
0000499c: PUSH0
0000499d: KECCAK256
0000499e: SLOAD
0000499f: AND
000049a0: ISZERO
000049a1: PUSH2 0x49a7
000049a4: JUMPI
000049a5: POP
000049a6: JUMP
000049a7: JUMPDEST
000049a8: PUSH4 0xe2517d3f
000049ad: PUSH1 0xe0
000049af: SHL
000049b0: PUSH0
000049b1: MSTORE
000049b2: CALLER
000049b3: PUSH1 0x04
000049b5: MSTORE
000049b6: PUSH1 0x24
000049b8: MSTORE
000049b9: PUSH1 0x44
000049bb: PUSH0
000049bc: REVERT
000049bd: JUMPDEST
000049be: SWAP2
000049bf: SWAP1
000049c0: PUSH0
000049c1: MLOAD
000049c2: PUSH1 0x20
000049c4: PUSH2 0x5c3d
000049c7: PUSH0
000049c8: CODECOPY
000049c9: PUSH0
000049ca: MLOAD
000049cb: SWAP1
000049cc: PUSH0
000049cd: MSTORE
000049ce: SLOAD
000049cf: ISZERO
000049d0: PUSH2 0x4a50
000049d3: JUMPI
000049d4: DUP3
000049d5: PUSH0
000049d6: MSTORE
000049d7: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea02
000049f8: PUSH1 0x20
000049fa: MSTORE
000049fb: PUSH1 0x40
000049fd: PUSH0
000049fe: KECCAK256
000049ff: DUP2
00004a00: PUSH0
00004a01: MSTORE
00004a02: PUSH1 0x20
00004a04: MSTORE
00004a05: PUSH2 0x4a11
00004a08: PUSH1 0x40
00004a0a: PUSH0
00004a0b: KECCAK256
00004a0c: SLOAD
00004a0d: PUSH2 0x43ed
00004a10: JUMP
00004a11: JUMPDEST
00004a12: POP
00004a13: SWAP3
00004a14: DUP4
00004a15: DUP3
00004a16: DUP3
00004a17: DUP3
00004a18: SLOAD
00004a19: EQ
00004a1a: SWAP2
00004a1b: DUP3
00004a1c: ISZERO
00004a1d: SWAP3
00004a1e: PUSH2 0x4a41
00004a21: JUMPI
00004a22: JUMPDEST
00004a23: POP
00004a24: POP
00004a25: PUSH2 0x4a2c
00004a28: JUMPI
00004a29: POP
00004a2a: POP
00004a2b: JUMP
00004a2c: JUMPDEST
00004a2d: PUSH4 0x10de8c51
00004a32: PUSH1 0xe3
00004a34: SHL
00004a35: PUSH0
00004a36: MSTORE
00004a37: PUSH1 0x04
00004a39: MSTORE
00004a3a: PUSH1 0x24
00004a3c: MSTORE
00004a3d: PUSH1 0x44
00004a3f: PUSH0
00004a40: REVERT
00004a41: JUMPDEST
00004a42: PUSH1 0x01
00004a44: ADD
00004a45: SLOAD
00004a46: EQ
00004a47: ISZERO
00004a48: SWAP1
00004a49: POP
00004a4a: DUP3
00004a4b: PUSH0
00004a4c: PUSH2 0x4a22
00004a4f: JUMP
00004a50: JUMPDEST
00004a51: PUSH4 0x4d6af2e7
00004a56: PUSH1 0xe1
00004a58: SHL
00004a59: PUSH0
00004a5a: MSTORE
00004a5b: PUSH1 0x04
00004a5d: PUSH0
00004a5e: REVERT
00004a5f: JUMPDEST
00004a60: PUSH1 0x24
00004a62: PUSH1 0x20
00004a64: PUSH1 0x01
00004a66: PUSH1 0x01
00004a68: PUSH1 0xa0
00004a6a: SHL
00004a6b: SUB
00004a6c: PUSH0
00004a6d: MLOAD
00004a6e: PUSH1 0x20
00004a70: PUSH2 0x5d1d
00004a73: PUSH0
00004a74: CODECOPY
00004a75: PUSH0
00004a76: MLOAD
00004a77: SWAP1
00004a78: PUSH0
00004a79: MSTORE
00004a7a: SLOAD
00004a7b: AND
00004a7c: PUSH1 0x40
00004a7e: MLOAD
00004a7f: SWAP3
00004a80: DUP4
00004a81: DUP1
00004a82: SWAP3
00004a83: PUSH4 0x70a08231
00004a88: PUSH1 0xe0
00004a8a: SHL
00004a8b: DUP3
00004a8c: MSTORE
00004a8d: ADDRESS
00004a8e: PUSH1 0x04
00004a90: DUP4
00004a91: ADD
00004a92: MSTORE
00004a93: GAS
00004a94: STATICCALL
00004a95: DUP1
00004a96: ISZERO
00004a97: PUSH2 0x0d8d
00004a9a: JUMPI
00004a9b: PUSH0
00004a9c: SWAP1
00004a9d: PUSH2 0x4abe
00004aa0: JUMPI
00004aa1: JUMPDEST
00004aa2: PUSH2 0x4abb
00004aa5: SWAP2
00004aa6: POP
00004aa7: PUSH0
00004aa8: MLOAD
00004aa9: PUSH1 0x20
00004aab: PUSH2 0x5cdd
00004aae: PUSH0
00004aaf: CODECOPY
00004ab0: PUSH0
00004ab1: MLOAD
00004ab2: SWAP1
00004ab3: PUSH0
00004ab4: MSTORE
00004ab5: SLOAD
00004ab6: SWAP1
00004ab7: PUSH2 0x45f3
00004aba: JUMP
00004abb: JUMPDEST
00004abc: SWAP1
00004abd: JUMP
00004abe: JUMPDEST
00004abf: POP
00004ac0: PUSH1 0x20
00004ac2: DUP2
00004ac3: RETURNDATASIZE
00004ac4: PUSH1 0x20
00004ac6: GT
00004ac7: PUSH2 0x4aea
00004aca: JUMPI
00004acb: JUMPDEST
00004acc: DUP2
00004acd: PUSH2 0x4ad8
00004ad0: PUSH1 0x20
00004ad2: SWAP4
00004ad3: DUP4
00004ad4: PUSH2 0x408d
00004ad7: JUMP
00004ad8: JUMPDEST
00004ad9: DUP2
00004ada: ADD
00004adb: SUB
00004adc: SLT
00004add: PUSH2 0x03b2
00004ae0: JUMPI
00004ae1: PUSH2 0x4abb
00004ae4: SWAP1
00004ae5: MLOAD
00004ae6: PUSH2 0x4aa1
00004ae9: JUMP
00004aea: JUMPDEST
00004aeb: RETURNDATASIZE
00004aec: SWAP2
00004aed: POP
00004aee: PUSH2 0x4acb
00004af1: JUMP
00004af2: JUMPDEST
00004af3: DUP1
00004af4: MLOAD
00004af5: DUP3
00004af6: LT
00004af7: ISZERO
00004af8: PUSH2 0x4421
00004afb: JUMPI
00004afc: PUSH1 0x20
00004afe: SWAP2
00004aff: PUSH1 0x05
00004b01: SHL
00004b02: ADD
00004b03: ADD
00004b04: SWAP1
00004b05: JUMP
00004b06: JUMPDEST
00004b07: PUSH0
00004b08: MLOAD
00004b09: PUSH1 0x20
00004b0b: PUSH2 0x5c7d
00004b0e: PUSH0
00004b0f: CODECOPY
00004b10: PUSH0
00004b11: MLOAD
00004b12: SWAP1
00004b13: PUSH0
00004b14: MSTORE
00004b15: SLOAD
00004b16: SWAP1
00004b17: DUP2
00004b18: ISZERO
00004b19: ISZERO
00004b1a: DUP1
00004b1b: PUSH2 0x4dcd
00004b1e: JUMPI
00004b1f: JUMPDEST
00004b20: PUSH2 0x4b27
00004b23: JUMPI
00004b24: POP
00004b25: POP
00004b26: JUMP
00004b27: JUMPDEST
00004b28: PUSH0
00004b29: MLOAD
00004b2a: PUSH1 0x20
00004b2c: PUSH2 0x5c3d
00004b2f: PUSH0
00004b30: CODECOPY
00004b31: PUSH0
00004b32: MLOAD
00004b33: SWAP1
00004b34: PUSH0
00004b35: MSTORE
00004b36: SLOAD
00004b37: SWAP1
00004b38: PUSH2 0x4b40
00004b3b: DUP3
00004b3c: PUSH2 0x4629
00004b3f: JUMP
00004b40: JUMPDEST
00004b41: PUSH0
00004b42: PUSH0
00004b43: PUSH0
00004b44: MLOAD
00004b45: PUSH1 0x20
00004b47: PUSH2 0x5a7d
00004b4a: PUSH0
00004b4b: CODECOPY
00004b4c: PUSH0
00004b4d: MLOAD
00004b4e: SWAP1
00004b4f: PUSH0
00004b50: MSTORE
00004b51: SLOAD
00004b52: PUSH0
00004b53: MLOAD
00004b54: PUSH1 0x20
00004b56: PUSH2 0x5b9d
00004b59: PUSH0
00004b5a: CODECOPY
00004b5b: PUSH0
00004b5c: MLOAD
00004b5d: SWAP1
00004b5e: PUSH0
00004b5f: MSTORE
00004b60: SLOAD
00004b61: SWAP2
00004b62: JUMPDEST
00004b63: DUP7
00004b64: DUP2
00004b65: LT
00004b66: PUSH2 0x4d82
00004b69: JUMPI
00004b6a: POP
00004b6b: POP
00004b6c: POP
00004b6d: PUSH0
00004b6e: SWAP5
00004b6f: DUP2
00004b70: ISZERO
00004b71: PUSH0
00004b72: EQ
00004b73: PUSH2 0x4c23
00004b76: JUMPI
00004b77: POP
00004b78: POP
00004b79: POP
00004b7a: DUP1
00004b7b: PUSH2 0x4c0c
00004b7e: JUMPI
00004b7f: JUMPDEST
00004b80: PUSH2 0x4bae
00004b83: JUMPI
00004b84: JUMPDEST
00004b85: POP
00004b86: PUSH2 0x4b9d
00004b89: SWAP1
00004b8a: PUSH0
00004b8b: MLOAD
00004b8c: PUSH1 0x20
00004b8e: PUSH2 0x5c7d
00004b91: PUSH0
00004b92: CODECOPY
00004b93: PUSH0
00004b94: MLOAD
00004b95: SWAP1
00004b96: PUSH0
00004b97: MSTORE
00004b98: SLOAD
00004b99: PUSH2 0x45d3
00004b9c: JUMP
00004b9d: JUMPDEST
00004b9e: PUSH0
00004b9f: MLOAD
00004ba0: PUSH1 0x20
00004ba2: PUSH2 0x5c7d
00004ba5: PUSH0
00004ba6: CODECOPY
00004ba7: PUSH0
00004ba8: MLOAD
00004ba9: SWAP1
00004baa: PUSH0
00004bab: MSTORE
00004bac: SSTORE
00004bad: JUMP
00004bae: JUMPDEST
00004baf: PUSH0
00004bb0: JUMPDEST
00004bb1: DUP2
00004bb2: DUP2
00004bb3: LT
00004bb4: PUSH2 0x4bbd
00004bb7: JUMPI
00004bb8: POP
00004bb9: PUSH2 0x4b84
00004bbc: JUMP
00004bbd: JUMPDEST
00004bbe: DUP1
00004bbf: PUSH2 0x4bc9
00004bc2: PUSH1 0x01
00004bc4: SWAP3
00004bc5: PUSH2 0x43ed
00004bc8: JUMP
00004bc9: JUMPDEST
00004bca: POP
00004bcb: SWAP4
00004bcc: PUSH2 0x4c04
00004bcf: PUSH1 0x06
00004bd1: PUSH2 0x4bfa
00004bd4: PUSH2 0x4bf3
00004bd7: PUSH2 0x15b1
00004bda: PUSH0
00004bdb: MLOAD
00004bdc: PUSH1 0x20
00004bde: PUSH2 0x5c7d
00004be1: PUSH0
00004be2: CODECOPY
00004be3: PUSH0
00004be4: MLOAD
00004be5: SWAP1
00004be6: PUSH0
00004be7: MSTORE
00004be8: SLOAD
00004be9: PUSH1 0x02
00004beb: DUP12
00004bec: ADD
00004bed: SLOAD
00004bee: SWAP1
00004bef: PUSH2 0x45e0
00004bf2: JUMP
00004bf3: JUMPDEST
00004bf4: DUP1
00004bf5: SWAP5
00004bf6: PUSH2 0x45c6
00004bf9: JUMP
00004bfa: JUMPDEST
00004bfb: SWAP7
00004bfc: ADD
00004bfd: SWAP2
00004bfe: DUP3
00004bff: SLOAD
00004c00: PUSH2 0x45c6
00004c03: JUMP
00004c04: JUMPDEST
00004c05: SWAP1
00004c06: SSTORE
00004c07: ADD
00004c08: PUSH2 0x4bb0
00004c0b: JUMP
00004c0c: JUMPDEST
00004c0d: POP
00004c0e: PUSH0
00004c0f: MLOAD
00004c10: PUSH1 0x20
00004c12: PUSH2 0x5c7d
00004c15: PUSH0
00004c16: CODECOPY
00004c17: PUSH0
00004c18: MLOAD
00004c19: SWAP1
00004c1a: PUSH0
00004c1b: MSTORE
00004c1c: SLOAD
00004c1d: ISZERO
00004c1e: ISZERO
00004c1f: PUSH2 0x4b7f
00004c22: JUMP
00004c23: JUMPDEST
00004c24: SWAP1
00004c25: DUP1
00004c26: SWAP3
00004c27: SWAP4
00004c28: SWAP2
00004c29: LT
00004c2a: PUSH0
00004c2b: EQ
00004c2c: PUSH2 0x4c98
00004c2f: JUMPI
00004c30: POP
00004c31: PUSH0
00004c32: JUMPDEST
00004c33: DUP4
00004c34: DUP2
00004c35: LT
00004c36: PUSH2 0x4c46
00004c39: JUMPI
00004c3a: POP
00004c3b: POP
00004c3c: POP
00004c3d: POP
00004c3e: PUSH2 0x4b9d
00004c41: SWAP1
00004c42: PUSH2 0x29a4
00004c45: JUMP
00004c46: JUMPDEST
00004c47: DUP1
00004c48: PUSH2 0x4c53
00004c4b: PUSH1 0x01
00004c4d: SWAP3
00004c4e: DUP6
00004c4f: PUSH2 0x4af2
00004c52: JUMP
00004c53: JUMPDEST
00004c54: MLOAD
00004c55: PUSH2 0x4c5f
00004c58: JUMPI
00004c59: JUMPDEST
00004c5a: ADD
00004c5b: PUSH2 0x4c32
00004c5e: JUMP
00004c5f: JUMPDEST
00004c60: PUSH1 0x06
00004c62: PUSH2 0x4c80
00004c65: PUSH2 0x4c6d
00004c68: DUP4
00004c69: PUSH2 0x43ed
00004c6c: JUMP
00004c6d: JUMPDEST
00004c6e: POP
00004c6f: SWAP8
00004c70: PUSH2 0x2af9
00004c73: DUP7
00004c74: PUSH2 0x1378
00004c77: PUSH2 0x2ae3
00004c7a: DUP8
00004c7b: DUP12
00004c7c: PUSH2 0x4af2
00004c7f: JUMP
00004c80: JUMPDEST
00004c81: SWAP7
00004c82: ADD
00004c83: PUSH2 0x4c91
00004c86: DUP2
00004c87: SLOAD
00004c88: PUSH2 0x2b0e
00004c8b: DUP5
00004c8c: DUP9
00004c8d: PUSH2 0x4af2
00004c90: JUMP
00004c91: JUMPDEST
00004c92: SWAP1
00004c93: SSTORE
00004c94: PUSH2 0x4c59
00004c97: JUMP
00004c98: JUMPDEST
00004c99: SWAP3
00004c9a: SWAP5
00004c9b: SWAP4
00004c9c: SWAP3
00004c9d: ISZERO
00004c9e: PUSH2 0x4d1d
00004ca1: JUMPI
00004ca2: PUSH2 0x4cb9
00004ca5: SWAP1
00004ca6: PUSH0
00004ca7: MLOAD
00004ca8: PUSH1 0x20
00004caa: PUSH2 0x5c7d
00004cad: PUSH0
00004cae: CODECOPY
00004caf: PUSH0
00004cb0: MLOAD
00004cb1: SWAP1
00004cb2: PUSH0
00004cb3: MSTORE
00004cb4: SLOAD
00004cb5: PUSH2 0x45d3
00004cb8: JUMP
00004cb9: JUMPDEST
00004cba: PUSH0
00004cbb: JUMPDEST
00004cbc: DUP6
00004cbd: DUP2
00004cbe: LT
00004cbf: PUSH2 0x4cd0
00004cc2: JUMPI
00004cc3: POP
00004cc4: POP
00004cc5: POP
00004cc6: PUSH2 0x4b9d
00004cc9: SWAP2
00004cca: SWAP3
00004ccb: POP
00004ccc: PUSH2 0x29a4
00004ccf: JUMP
00004cd0: JUMPDEST
00004cd1: DUP1
00004cd2: PUSH2 0x4cdc
00004cd5: PUSH1 0x01
00004cd7: SWAP3
00004cd8: PUSH2 0x43ed
00004cdb: JUMP
00004cdc: JUMPDEST
00004cdd: POP
00004cde: SWAP5
00004cdf: PUSH2 0x4d15
00004ce2: PUSH1 0x06
00004ce4: PUSH2 0x4d0b
00004ce7: PUSH2 0x4bf3
00004cea: PUSH2 0x4cf3
00004ced: DUP7
00004cee: DUP11
00004cef: PUSH2 0x4af2
00004cf2: JUMP
00004cf3: JUMPDEST
00004cf4: MLOAD
00004cf5: PUSH2 0x4d05
00004cf8: PUSH2 0x15b1
00004cfb: PUSH1 0x02
00004cfd: DUP14
00004cfe: ADD
00004cff: SLOAD
00004d00: DUP12
00004d01: PUSH2 0x45e0
00004d04: JUMP
00004d05: JUMPDEST
00004d06: SWAP1
00004d07: PUSH2 0x45c6
00004d0a: JUMP
00004d0b: JUMPDEST
00004d0c: SWAP8
00004d0d: ADD
00004d0e: SWAP2
00004d0f: DUP3
00004d10: SLOAD
00004d11: PUSH2 0x45c6
00004d14: JUMP
00004d15: JUMPDEST
00004d16: SWAP1
00004d17: SSTORE
00004d18: ADD
00004d19: PUSH2 0x4cbb
00004d1c: JUMP
00004d1d: JUMPDEST
00004d1e: POP
00004d1f: PUSH0
00004d20: SWAP4
00004d21: SWAP2
00004d22: SWAP3
00004d23: SWAP4
00004d24: JUMPDEST
00004d25: DUP3
00004d26: DUP2
00004d27: LT
00004d28: PUSH2 0x4d37
00004d2b: JUMPI
00004d2c: POP
00004d2d: POP
00004d2e: POP
00004d2f: PUSH2 0x4b9d
00004d32: SWAP1
00004d33: PUSH2 0x29a4
00004d36: JUMP
00004d37: JUMPDEST
00004d38: DUP1
00004d39: PUSH2 0x4d44
00004d3c: PUSH1 0x01
00004d3e: SWAP3
00004d3f: DUP5
00004d40: PUSH2 0x4af2
00004d43: JUMP
00004d44: JUMPDEST
00004d45: MLOAD
00004d46: PUSH2 0x4d50
00004d49: JUMPI
00004d4a: JUMPDEST
00004d4b: ADD
00004d4c: PUSH2 0x4d24
00004d4f: JUMP
00004d50: JUMPDEST
00004d51: PUSH1 0x06
00004d53: PUSH2 0x4d6a
00004d56: PUSH2 0x4d5e
00004d59: DUP4
00004d5a: PUSH2 0x43ed
00004d5d: JUMP
00004d5e: JUMPDEST
00004d5f: POP
00004d60: SWAP7
00004d61: PUSH2 0x2b0e
00004d64: DUP5
00004d65: DUP8
00004d66: PUSH2 0x4af2
00004d69: JUMP
00004d6a: JUMPDEST
00004d6b: SWAP6
00004d6c: ADD
00004d6d: PUSH2 0x4d7b
00004d70: DUP2
00004d71: SLOAD
00004d72: PUSH2 0x2b0e
00004d75: DUP5
00004d76: DUP8
00004d77: PUSH2 0x4af2
00004d7a: JUMP
00004d7b: JUMPDEST
00004d7c: SWAP1
00004d7d: SSTORE
00004d7e: PUSH2 0x4d4a
00004d81: JUMP
00004d82: JUMPDEST
00004d83: PUSH2 0x4d8b
00004d86: DUP2
00004d87: PUSH2 0x43ed
00004d8a: JUMP
00004d8b: JUMPDEST
00004d8c: POP
00004d8d: PUSH2 0x4da1
00004d90: PUSH2 0x2bdc
00004d93: DUP6
00004d94: PUSH2 0x1378
00004d97: PUSH1 0x02
00004d99: DUP6
00004d9a: ADD
00004d9b: SLOAD
00004d9c: DUP8
00004d9d: PUSH2 0x45e0
00004da0: JUMP
00004da1: JUMPDEST
00004da2: SWAP1
00004da3: DUP2
00004da4: DUP2
00004da5: GT
00004da6: PUSH2 0x4db4
00004da9: JUMPI
00004daa: JUMPDEST
00004dab: POP
00004dac: POP
00004dad: PUSH1 0x01
00004daf: ADD
00004db0: PUSH2 0x4b62
00004db3: JUMP
00004db4: JUMPDEST
00004db5: SWAP5
00004db6: PUSH2 0x2c11
00004db9: PUSH2 0x4dc5
00004dbc: SWAP3
00004dbd: PUSH1 0x01
00004dbf: SWAP5
00004dc0: SWAP8
00004dc1: PUSH2 0x45d3
00004dc4: JUMP
00004dc5: JUMPDEST
00004dc6: SWAP4
00004dc7: SWAP1
00004dc8: PUSH0
00004dc9: PUSH2 0x4daa
00004dcc: JUMP
00004dcd: JUMPDEST
00004dce: POP
00004dcf: PUSH0
00004dd0: MLOAD
00004dd1: PUSH1 0x20
00004dd3: PUSH2 0x5b9d
00004dd6: PUSH0
00004dd7: CODECOPY
00004dd8: PUSH0
00004dd9: MLOAD
00004dda: SWAP1
00004ddb: PUSH0
00004ddc: MSTORE
00004ddd: SLOAD
00004dde: ISZERO
00004ddf: ISZERO
00004de0: PUSH2 0x4b1f
00004de3: JUMP
00004de4: JUMPDEST
00004de5: PUSH1 0x01
00004de7: PUSH1 0x01
00004de9: PUSH1 0xa0
00004deb: SHL
00004dec: SUB
00004ded: AND
00004dee: SWAP1
00004def: DUP2
00004df0: ISZERO
00004df1: PUSH2 0x4ea2
00004df4: JUMPI
00004df5: PUSH1 0x01
00004df7: PUSH1 0x01
00004df9: PUSH1 0xa0
00004dfb: SHL
00004dfc: SUB
00004dfd: AND
00004dfe: SWAP2
00004dff: DUP3
00004e00: ISZERO
00004e01: PUSH2 0x2170
00004e04: JUMPI
00004e05: DUP2
00004e06: PUSH0
00004e07: MSTORE
00004e08: PUSH0
00004e09: MLOAD
00004e0a: PUSH1 0x20
00004e0c: PUSH2 0x5abd
00004e0f: PUSH0
00004e10: CODECOPY
00004e11: PUSH0
00004e12: MLOAD
00004e13: SWAP1
00004e14: PUSH0
00004e15: MSTORE
00004e16: PUSH1 0x20
00004e18: MSTORE
00004e19: PUSH1 0x40
00004e1b: PUSH0
00004e1c: KECCAK256
00004e1d: SLOAD
00004e1e: DUP2
00004e1f: DUP2
00004e20: LT
00004e21: PUSH2 0x4e89
00004e24: JUMPI
00004e25: DUP2
00004e26: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00004e47: SWAP3
00004e48: PUSH1 0x20
00004e4a: SWAP3
00004e4b: DUP6
00004e4c: PUSH0
00004e4d: MSTORE
00004e4e: PUSH0
00004e4f: MLOAD
00004e50: PUSH1 0x20
00004e52: PUSH2 0x5abd
00004e55: PUSH0
00004e56: CODECOPY
00004e57: PUSH0
00004e58: MLOAD
00004e59: SWAP1
00004e5a: PUSH0
00004e5b: MSTORE
00004e5c: DUP5
00004e5d: MSTORE
00004e5e: SUB
00004e5f: PUSH1 0x40
00004e61: PUSH0
00004e62: KECCAK256
00004e63: SSTORE
00004e64: DUP5
00004e65: PUSH0
00004e66: MSTORE
00004e67: PUSH0
00004e68: MLOAD
00004e69: PUSH1 0x20
00004e6b: PUSH2 0x5abd
00004e6e: PUSH0
00004e6f: CODECOPY
00004e70: PUSH0
00004e71: MLOAD
00004e72: SWAP1
00004e73: PUSH0
00004e74: MSTORE
00004e75: DUP3
00004e76: MSTORE
00004e77: PUSH1 0x40
00004e79: PUSH0
00004e7a: KECCAK256
00004e7b: DUP2
00004e7c: DUP2
00004e7d: SLOAD
00004e7e: ADD
00004e7f: SWAP1
00004e80: SSTORE
00004e81: PUSH1 0x40
00004e83: MLOAD
00004e84: SWAP1
00004e85: DUP2
00004e86: MSTORE
00004e87: LOG3
00004e88: JUMP
00004e89: JUMPDEST
00004e8a: DUP3
00004e8b: PUSH4 0x391434e3
00004e90: PUSH1 0xe2
00004e92: SHL
00004e93: PUSH0
00004e94: MSTORE
00004e95: PUSH1 0x04
00004e97: MSTORE
00004e98: PUSH1 0x24
00004e9a: MSTORE
00004e9b: PUSH1 0x44
00004e9d: MSTORE
00004e9e: PUSH1 0x64
00004ea0: PUSH0
00004ea1: REVERT
00004ea2: JUMPDEST
00004ea3: PUSH4 0x4b637e8f
00004ea8: PUSH1 0xe1
00004eaa: SHL
00004eab: PUSH0
00004eac: MSTORE
00004ead: PUSH0
00004eae: PUSH1 0x04
00004eb0: MSTORE
00004eb1: PUSH1 0x24
00004eb3: PUSH0
00004eb4: REVERT
00004eb5: JUMPDEST
00004eb6: SWAP1
00004eb7: PUSH0
00004eb8: MLOAD
00004eb9: PUSH1 0x20
00004ebb: PUSH2 0x5b5d
00004ebe: PUSH0
00004ebf: CODECOPY
00004ec0: PUSH0
00004ec1: MLOAD
00004ec2: SWAP1
00004ec3: PUSH0
00004ec4: MSTORE
00004ec5: SLOAD
00004ec6: SWAP2
00004ec7: DUP3
00004ec8: ISZERO
00004ec9: PUSH2 0x1385
00004ecc: JUMPI
00004ecd: PUSH1 0x01
00004ecf: PUSH1 0x01
00004ed1: PUSH1 0xa0
00004ed3: SHL
00004ed4: SUB
00004ed5: DUP2
00004ed6: AND
00004ed7: DUP1
00004ed8: PUSH0
00004ed9: MSTORE
00004eda: PUSH0
00004edb: MLOAD
00004edc: PUSH1 0x20
00004ede: PUSH2 0x5abd
00004ee1: PUSH0
00004ee2: CODECOPY
00004ee3: PUSH0
00004ee4: MLOAD
00004ee5: SWAP1
00004ee6: PUSH0
00004ee7: MSTORE
00004ee8: PUSH1 0x20
00004eea: MSTORE
00004eeb: PUSH1 0x40
00004eed: PUSH0
00004eee: KECCAK256
00004eef: SLOAD
00004ef0: DUP4
00004ef1: DUP2
00004ef2: LT
00004ef3: PUSH2 0x5028
00004ef6: JUMPI
00004ef7: POP
00004ef8: PUSH2 0x4f1e
00004efb: PUSH2 0x4f17
00004efe: PUSH0
00004eff: MLOAD
00004f00: PUSH1 0x20
00004f02: PUSH2 0x5a7d
00004f05: PUSH0
00004f06: CODECOPY
00004f07: PUSH0
00004f08: MLOAD
00004f09: SWAP1
00004f0a: PUSH0
00004f0b: MSTORE
00004f0c: SLOAD
00004f0d: SWAP6
00004f0e: PUSH2 0x1378
00004f11: DUP8
00004f12: DUP8
00004f13: PUSH2 0x45e0
00004f16: JUMP
00004f17: JUMPDEST
00004f18: DUP1
00004f19: SWAP6
00004f1a: PUSH2 0x45d3
00004f1d: JUMP
00004f1e: JUMPDEST
00004f1f: PUSH0
00004f20: MLOAD
00004f21: PUSH1 0x20
00004f23: PUSH2 0x5a7d
00004f26: PUSH0
00004f27: CODECOPY
00004f28: PUSH0
00004f29: MLOAD
00004f2a: SWAP1
00004f2b: PUSH0
00004f2c: MSTORE
00004f2d: SSTORE
00004f2e: DUP1
00004f2f: ISZERO
00004f30: PUSH2 0x4ea2
00004f33: JUMPI
00004f34: DUP1
00004f35: PUSH0
00004f36: MSTORE
00004f37: PUSH0
00004f38: MLOAD
00004f39: PUSH1 0x20
00004f3b: PUSH2 0x5abd
00004f3e: PUSH0
00004f3f: CODECOPY
00004f40: PUSH0
00004f41: MLOAD
00004f42: SWAP1
00004f43: PUSH0
00004f44: MSTORE
00004f45: PUSH1 0x20
00004f47: MSTORE
00004f48: PUSH1 0x40
00004f4a: PUSH0
00004f4b: KECCAK256
00004f4c: SLOAD
00004f4d: DUP4
00004f4e: DUP2
00004f4f: LT
00004f50: PUSH2 0x500e
00004f53: JUMPI
00004f54: DUP2
00004f55: DUP5
00004f56: PUSH0
00004f57: SWAP3
00004f58: PUSH32 0x49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a
00004f79: SWAP7
00004f7a: SWAP6
00004f7b: SWAP5
00004f7c: DUP5
00004f7d: MSTORE
00004f7e: PUSH0
00004f7f: MLOAD
00004f80: PUSH1 0x20
00004f82: PUSH2 0x5abd
00004f85: PUSH0
00004f86: CODECOPY
00004f87: PUSH0
00004f88: MLOAD
00004f89: SWAP1
00004f8a: PUSH0
00004f8b: MSTORE
00004f8c: PUSH1 0x20
00004f8e: MSTORE
00004f8f: SUB
00004f90: PUSH1 0x40
00004f92: DUP4
00004f93: KECCAK256
00004f94: SSTORE
00004f95: DUP4
00004f96: PUSH0
00004f97: MLOAD
00004f98: PUSH1 0x20
00004f9a: PUSH2 0x5b5d
00004f9d: PUSH0
00004f9e: CODECOPY
00004f9f: PUSH0
00004fa0: MLOAD
00004fa1: SWAP1
00004fa2: PUSH0
00004fa3: MSTORE
00004fa4: SLOAD
00004fa5: SUB
00004fa6: PUSH0
00004fa7: MLOAD
00004fa8: PUSH1 0x20
00004faa: PUSH2 0x5b5d
00004fad: PUSH0
00004fae: CODECOPY
00004faf: PUSH0
00004fb0: MLOAD
00004fb1: SWAP1
00004fb2: PUSH0
00004fb3: MSTORE
00004fb4: SSTORE
00004fb5: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00004fd6: PUSH1 0x20
00004fd8: PUSH1 0x40
00004fda: MLOAD
00004fdb: DUP7
00004fdc: DUP2
00004fdd: MSTORE
00004fde: LOG3
00004fdf: PUSH2 0x5008
00004fe2: DUP5
00004fe3: PUSH1 0x40
00004fe5: MLOAD
00004fe6: SWAP4
00004fe7: DUP5
00004fe8: SWAP4
00004fe9: DUP5
00004fea: PUSH1 0x40
00004fec: SWAP2
00004fed: SWAP5
00004fee: SWAP4
00004fef: SWAP3
00004ff0: PUSH1 0x01
00004ff2: PUSH1 0x01
00004ff4: PUSH1 0xa0
00004ff6: SHL
00004ff7: SUB
00004ff8: PUSH1 0x60
00004ffa: DUP4
00004ffb: ADD
00004ffc: SWAP7
00004ffd: AND
00004ffe: DUP3
00004fff: MSTORE
00005000: PUSH1 0x20
00005002: DUP3
00005003: ADD
00005004: MSTORE
00005005: ADD
00005006: MSTORE
00005007: JUMP
00005008: JUMPDEST
00005009: SUB
0000500a: SWAP1
0000500b: LOG1
0000500c: SWAP1
0000500d: JUMP
0000500e: JUMPDEST
0000500f: SWAP2
00005010: POP
00005011: PUSH4 0x391434e3
00005016: PUSH1 0xe2
00005018: SHL
00005019: PUSH0
0000501a: MSTORE
0000501b: PUSH1 0x04
0000501d: MSTORE
0000501e: PUSH1 0x24
00005020: MSTORE
00005021: PUSH1 0x44
00005023: MSTORE
00005024: PUSH1 0x64
00005026: PUSH0
00005027: REVERT
00005028: JUMPDEST
00005029: DUP4
0000502a: PUSH1 0xa4
0000502c: SWAP2
0000502d: PUSH1 0x40
0000502f: MLOAD
00005030: SWAP2
00005031: PUSH4 0x38d06e1d
00005036: PUSH1 0xe0
00005038: SHL
00005039: DUP4
0000503a: MSTORE
0000503b: PUSH1 0x60
0000503d: PUSH1 0x04
0000503f: DUP5
00005040: ADD
00005041: MSTORE
00005042: PUSH1 0x15
00005044: PUSH1 0x64
00005046: DUP5
00005047: ADD
00005048: MSTORE
00005049: PUSH32 0x506f6f6c2e5f6275726e4c502e616d6f756e744c500000000000000000000000
0000506a: PUSH1 0x84
0000506c: DUP5
0000506d: ADD
0000506e: MSTORE
0000506f: PUSH1 0x24
00005071: DUP4
00005072: ADD
00005073: MSTORE
00005074: PUSH1 0x44
00005076: DUP3
00005077: ADD
00005078: MSTORE
00005079: REVERT
0000507a: JUMPDEST
0000507b: DUP1
0000507c: PUSH0
0000507d: MSTORE
0000507e: PUSH0
0000507f: MLOAD
00005080: PUSH1 0x20
00005082: PUSH2 0x5c5d
00005085: PUSH0
00005086: CODECOPY
00005087: PUSH0
00005088: MLOAD
00005089: SWAP1
0000508a: PUSH0
0000508b: MSTORE
0000508c: PUSH1 0x20
0000508e: MSTORE
0000508f: PUSH1 0x40
00005091: PUSH0
00005092: KECCAK256
00005093: PUSH1 0x01
00005095: PUSH1 0x01
00005097: PUSH1 0xa0
00005099: SHL
0000509a: SUB
0000509b: DUP4
0000509c: AND
0000509d: PUSH0
0000509e: MSTORE
0000509f: PUSH1 0x20
000050a1: MSTORE
000050a2: PUSH1 0xff
000050a4: PUSH1 0x40
000050a6: PUSH0
000050a7: KECCAK256
000050a8: SLOAD
000050a9: AND
000050aa: PUSH0
000050ab: EQ
000050ac: PUSH2 0x4877
000050af: JUMPI
000050b0: DUP1
000050b1: PUSH0
000050b2: MSTORE
000050b3: PUSH0
000050b4: MLOAD
000050b5: PUSH1 0x20
000050b7: PUSH2 0x5c5d
000050ba: PUSH0
000050bb: CODECOPY
000050bc: PUSH0
000050bd: MLOAD
000050be: SWAP1
000050bf: PUSH0
000050c0: MSTORE
000050c1: PUSH1 0x20
000050c3: MSTORE
000050c4: PUSH1 0x40
000050c6: PUSH0
000050c7: KECCAK256
000050c8: PUSH1 0x01
000050ca: PUSH1 0x01
000050cc: PUSH1 0xa0
000050ce: SHL
000050cf: SUB
000050d0: DUP4
000050d1: AND
000050d2: PUSH0
000050d3: MSTORE
000050d4: PUSH1 0x20
000050d6: MSTORE
000050d7: PUSH1 0x40
000050d9: PUSH0
000050da: KECCAK256
000050db: PUSH1 0xff
000050dd: NOT
000050de: DUP2
000050df: SLOAD
000050e0: AND
000050e1: SWAP1
000050e2: SSTORE
000050e3: PUSH1 0x01
000050e5: PUSH1 0x01
000050e7: PUSH1 0xa0
000050e9: SHL
000050ea: SUB
000050eb: CALLER
000050ec: SWAP3
000050ed: AND
000050ee: SWAP1
000050ef: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
00005110: PUSH0
00005111: DUP1
00005112: LOG4
00005113: PUSH1 0x01
00005115: SWAP1
00005116: JUMP
00005117: JUMPDEST
00005118: PUSH1 0x20
0000511a: PUSH2 0x5189
0000511d: SWAP2
0000511e: PUSH2 0x5139
00005121: PUSH1 0x40
00005123: DUP3
00005124: ADD
00005125: MLOAD
00005126: PUSH0
00005127: MLOAD
00005128: PUSH1 0x20
0000512a: PUSH2 0x5a7d
0000512d: PUSH0
0000512e: CODECOPY
0000512f: PUSH0
00005130: MLOAD
00005131: SWAP1
00005132: PUSH0
00005133: MSTORE
00005134: SLOAD
00005135: PUSH2 0x45c6
00005138: JUMP
00005139: JUMPDEST
0000513a: PUSH0
0000513b: MLOAD
0000513c: PUSH1 0x20
0000513e: PUSH2 0x5a7d
00005141: PUSH0
00005142: CODECOPY
00005143: PUSH0
00005144: MLOAD
00005145: SWAP1
00005146: PUSH0
00005147: MSTORE
00005148: SSTORE
00005149: PUSH2 0x5164
0000514c: PUSH1 0x60
0000514e: DUP3
0000514f: ADD
00005150: MLOAD
00005151: PUSH0
00005152: MLOAD
00005153: PUSH1 0x20
00005155: PUSH2 0x5cbd
00005158: PUSH0
00005159: CODECOPY
0000515a: PUSH0
0000515b: MLOAD
0000515c: SWAP1
0000515d: PUSH0
0000515e: MSTORE
0000515f: SLOAD
00005160: PUSH2 0x45c6
00005163: JUMP
00005164: JUMPDEST
00005165: PUSH0
00005166: MLOAD
00005167: PUSH1 0x20
00005169: PUSH2 0x5cbd
0000516c: PUSH0
0000516d: CODECOPY
0000516e: PUSH0
0000516f: MLOAD
00005170: SWAP1
00005171: PUSH0
00005172: MSTORE
00005173: SSTORE
00005174: ADD
00005175: MLOAD
00005176: PUSH0
00005177: MLOAD
00005178: PUSH1 0x20
0000517a: PUSH2 0x5d5d
0000517d: PUSH0
0000517e: CODECOPY
0000517f: PUSH0
00005180: MLOAD
00005181: SWAP1
00005182: PUSH0
00005183: MSTORE
00005184: SLOAD
00005185: PUSH2 0x45c6
00005188: JUMP
00005189: JUMPDEST
0000518a: PUSH0
0000518b: MLOAD
0000518c: PUSH1 0x20
0000518e: PUSH2 0x5d5d
00005191: PUSH0
00005192: CODECOPY
00005193: PUSH0
00005194: MLOAD
00005195: SWAP1
00005196: PUSH0
00005197: MSTORE
00005198: SSTORE
00005199: JUMP
0000519a: JUMPDEST
0000519b: PUSH0
0000519c: MLOAD
0000519d: PUSH1 0x20
0000519f: PUSH2 0x5a7d
000051a2: PUSH0
000051a3: CODECOPY
000051a4: PUSH0
000051a5: MLOAD
000051a6: SWAP1
000051a7: PUSH0
000051a8: MSTORE
000051a9: SLOAD
000051aa: DUP1
000051ab: ISZERO
000051ac: PUSH2 0x51cb
000051af: JUMPI
000051b0: PUSH2 0x1378
000051b3: PUSH2 0x4abb
000051b6: SWAP3
000051b7: PUSH0
000051b8: MLOAD
000051b9: PUSH1 0x20
000051bb: PUSH2 0x5b5d
000051be: PUSH0
000051bf: CODECOPY
000051c0: PUSH0
000051c1: MLOAD
000051c2: SWAP1
000051c3: PUSH0
000051c4: MSTORE
000051c5: SLOAD
000051c6: SWAP1
000051c7: PUSH2 0x45e0
000051ca: JUMP
000051cb: JUMPDEST
000051cc: PUSH1 0x40
000051ce: MLOAD
000051cf: PUSH4 0x4612b38f
000051d4: PUSH1 0xe0
000051d6: SHL
000051d7: DUP2
000051d8: MSTORE
000051d9: PUSH1 0x20
000051db: PUSH1 0x04
000051dd: DUP3
000051de: ADD
000051df: MSTORE
000051e0: PUSH1 0x0e
000051e2: PUSH1 0x24
000051e4: DUP3
000051e5: ADD
000051e6: MSTORE
000051e7: PUSH14 0x746f74616c4c6971756964697479
000051f6: PUSH1 0x90
000051f8: SHL
000051f9: PUSH1 0x44
000051fb: DUP3
000051fc: ADD
000051fd: MSTORE
000051fe: PUSH1 0x64
00005200: SWAP1
00005201: REVERT
00005202: JUMPDEST
00005203: PUSH2 0x520d
00005206: DUP4
00005207: DUP4
00005208: DUP4
00005209: PUSH2 0x53d7
0000520c: JUMP
0000520d: JUMPDEST
0000520e: ISZERO
0000520f: PUSH2 0x5217
00005212: JUMPI
00005213: POP
00005214: POP
00005215: POP
00005216: JUMP
00005217: JUMPDEST
00005218: SWAP1
00005219: PUSH1 0x01
0000521b: PUSH1 0x01
0000521d: PUSH1 0xa0
0000521f: SHL
00005220: SUB
00005221: DUP1
00005222: SWAP3
00005223: PUSH4 0x87abb3dd
00005228: PUSH1 0xe0
0000522a: SHL
0000522b: PUSH0
0000522c: MSTORE
0000522d: AND
0000522e: PUSH1 0x04
00005230: MSTORE
00005231: AND
00005232: PUSH1 0x24
00005234: MSTORE
00005235: PUSH1 0x44
00005237: MSTORE
00005238: PUSH1 0x64
0000523a: PUSH0
0000523b: REVERT
0000523c: JUMPDEST
0000523d: PUSH0
0000523e: MLOAD
0000523f: PUSH1 0x20
00005241: PUSH2 0x5d3d
00005244: PUSH0
00005245: CODECOPY
00005246: PUSH0
00005247: MLOAD
00005248: SWAP1
00005249: PUSH0
0000524a: MSTORE
0000524b: SLOAD
0000524c: NUMBER
0000524d: GT
0000524e: PUSH2 0x539b
00005251: JUMPI
00005252: JUMPDEST
00005253: PUSH2 0x526a
00005256: DUP2
00005257: PUSH0
00005258: MLOAD
00005259: PUSH1 0x20
0000525b: PUSH2 0x5b3d
0000525e: PUSH0
0000525f: CODECOPY
00005260: PUSH0
00005261: MLOAD
00005262: SWAP1
00005263: PUSH0
00005264: MSTORE
00005265: SLOAD
00005266: PUSH2 0x45c6
00005269: JUMP
0000526a: JUMPDEST
0000526b: PUSH32 0x000000000000000000000000000000000000000000000000000000174876e800
0000528c: LT
0000528d: PUSH2 0x530b
00005290: JUMPI
00005291: DUP1
00005292: PUSH32 0x0000000000000000000000000000000000000000000000000000000ba43b7400
000052b3: LT
000052b4: PUSH0
000052b5: EQ
000052b6: PUSH2 0x52f5
000052b9: JUMPI
000052ba: DUP1
000052bb: PUSH2 0x52e1
000052be: SWAP2
000052bf: PUSH0
000052c0: MLOAD
000052c1: PUSH1 0x20
000052c3: PUSH2 0x5a5d
000052c6: PUSH0
000052c7: CODECOPY
000052c8: PUSH0
000052c9: MLOAD
000052ca: SWAP1
000052cb: PUSH0
000052cc: MSTORE
000052cd: SSTORE
000052ce: PUSH0
000052cf: MLOAD
000052d0: PUSH1 0x20
000052d2: PUSH2 0x5b3d
000052d5: PUSH0
000052d6: CODECOPY
000052d7: PUSH0
000052d8: MLOAD
000052d9: SWAP1
000052da: PUSH0
000052db: MSTORE
000052dc: SLOAD
000052dd: PUSH2 0x45c6
000052e0: JUMP
000052e1: JUMPDEST
000052e2: PUSH0
000052e3: MLOAD
000052e4: PUSH1 0x20
000052e6: PUSH2 0x5b3d
000052e9: PUSH0
000052ea: CODECOPY
000052eb: PUSH0
000052ec: MLOAD
000052ed: SWAP1
000052ee: PUSH0
000052ef: MSTORE
000052f0: SSTORE
000052f1: PUSH1 0x01
000052f3: SWAP1
000052f4: JUMP
000052f5: JUMPDEST
000052f6: POP
000052f7: PUSH0
000052f8: PUSH0
000052f9: MLOAD
000052fa: PUSH1 0x20
000052fc: PUSH2 0x5a5d
000052ff: PUSH0
00005300: CODECOPY
00005301: PUSH0
00005302: MLOAD
00005303: SWAP1
00005304: PUSH0
00005305: MSTORE
00005306: SSTORE
00005307: PUSH1 0x01
00005309: SWAP1
0000530a: JUMP
0000530b: JUMPDEST
0000530c: POP
0000530d: PUSH0
0000530e: PUSH0
0000530f: MLOAD
00005310: PUSH1 0x20
00005312: PUSH2 0x5a5d
00005315: PUSH0
00005316: CODECOPY
00005317: PUSH0
00005318: MLOAD
00005319: SWAP1
0000531a: PUSH0
0000531b: MSTORE
0000531c: SSTORE
0000531d: PUSH0
0000531e: MLOAD
0000531f: PUSH1 0x20
00005321: PUSH2 0x5bfd
00005324: PUSH0
00005325: CODECOPY
00005326: PUSH0
00005327: MLOAD
00005328: SWAP1
00005329: PUSH0
0000532a: MSTORE
0000532b: SLOAD
0000532c: PUSH1 0xff
0000532e: DUP2
0000532f: AND
00005330: ISZERO
00005331: PUSH2 0x5339
00005334: JUMPI
00005335: POP
00005336: PUSH0
00005337: SWAP1
00005338: JUMP
00005339: JUMPDEST
0000533a: PUSH1 0x01
0000533c: SWAP1
0000533d: PUSH1 0xff
0000533f: NOT
00005340: AND
00005341: OR
00005342: PUSH0
00005343: MLOAD
00005344: PUSH1 0x20
00005346: PUSH2 0x5bfd
00005349: PUSH0
0000534a: CODECOPY
0000534b: PUSH0
0000534c: MLOAD
0000534d: SWAP1
0000534e: PUSH0
0000534f: MSTORE
00005350: SSTORE
00005351: PUSH2 0x5388
00005354: PUSH32 0x0000000000000000000000000000000000000000000000000000000000005460
00005375: PUSH0
00005376: MLOAD
00005377: PUSH1 0x20
00005379: PUSH2 0x5d3d
0000537c: PUSH0
0000537d: CODECOPY
0000537e: PUSH0
0000537f: MLOAD
00005380: SWAP1
00005381: PUSH0
00005382: MSTORE
00005383: SLOAD
00005384: PUSH2 0x45c6
00005387: JUMP
00005388: JUMPDEST
00005389: PUSH0
0000538a: MLOAD
0000538b: PUSH1 0x20
0000538d: PUSH2 0x5d3d
00005390: PUSH0
00005391: CODECOPY
00005392: PUSH0
00005393: MLOAD
00005394: SWAP1
00005395: PUSH0
00005396: MSTORE
00005397: SSTORE
00005398: PUSH0
00005399: SWAP1
0000539a: JUMP
0000539b: JUMPDEST
0000539c: PUSH2 0x53a3
0000539f: PUSH2 0x54c4
000053a2: JUMP
000053a3: JUMPDEST
000053a4: PUSH2 0x5252
000053a7: JUMP
000053a8: JUMPDEST
000053a9: RETURNDATASIZE
000053aa: ISZERO
000053ab: PUSH2 0x53d2
000053ae: JUMPI
000053af: RETURNDATASIZE
000053b0: SWAP1
000053b1: PUSH2 0x53b9
000053b4: DUP3
000053b5: PUSH2 0x4128
000053b8: JUMP
000053b9: JUMPDEST
000053ba: SWAP2
000053bb: PUSH2 0x53c7
000053be: PUSH1 0x40
000053c0: MLOAD
000053c1: SWAP4
000053c2: DUP5
000053c3: PUSH2 0x408d
000053c6: JUMP
000053c7: JUMPDEST
000053c8: DUP3
000053c9: MSTORE
000053ca: RETURNDATASIZE
000053cb: PUSH0
000053cc: PUSH1 0x20
000053ce: DUP5
000053cf: ADD
000053d0: RETURNDATACOPY
000053d1: JUMP
000053d2: JUMPDEST
000053d3: PUSH1 0x60
000053d5: SWAP1
000053d6: JUMP
000053d7: JUMPDEST
000053d8: PUSH1 0x40
000053da: MLOAD
000053db: PUSH4 0xa9059cbb
000053e0: PUSH1 0xe0
000053e2: SHL
000053e3: PUSH1 0x20
000053e5: DUP3
000053e6: ADD
000053e7: SWAP1
000053e8: DUP2
000053e9: MSTORE
000053ea: PUSH1 0x01
000053ec: PUSH1 0x01
000053ee: PUSH1 0xa0
000053f0: SHL
000053f1: SUB
000053f2: SWAP4
000053f3: SWAP1
000053f4: SWAP4
000053f5: AND
000053f6: PUSH1 0x24
000053f8: DUP3
000053f9: ADD
000053fa: MSTORE
000053fb: PUSH1 0x44
000053fd: DUP1
000053fe: DUP3
000053ff: ADD
00005400: SWAP5
00005401: SWAP1
00005402: SWAP5
00005403: MSTORE
00005404: SWAP3
00005405: DUP4
00005406: MSTORE
00005407: PUSH0
00005408: SWAP3
00005409: DUP4
0000540a: SWAP3
0000540b: SWAP1
0000540c: DUP4
0000540d: SWAP1
0000540e: PUSH2 0x5418
00005411: PUSH1 0x64
00005413: DUP3
00005414: PUSH2 0x408d
00005417: JUMP
00005418: JUMPDEST
00005419: MLOAD
0000541a: SWAP3
0000541b: GAS
0000541c: CALL
0000541d: PUSH2 0x5424
00005420: PUSH2 0x53a8
00005423: JUMP
00005424: JUMPDEST
00005425: DUP2
00005426: DUP1
00005427: PUSH2 0x5452
0000542a: JUMPI
0000542b: JUMPDEST
0000542c: PUSH2 0x5433
0000542f: JUMPI
00005430: POP
00005431: SWAP1
00005432: JUMP
00005433: JUMPDEST
00005434: SWAP1
00005435: POP
00005436: PUSH1 0x20
00005438: DUP2
00005439: DUP1
0000543a: MLOAD
0000543b: DUP2
0000543c: ADD
0000543d: SUB
0000543e: SLT
0000543f: PUSH2 0x03b2
00005442: JUMPI
00005443: PUSH1 0x20
00005445: ADD
00005446: MLOAD
00005447: DUP1
00005448: ISZERO
00005449: ISZERO
0000544a: DUP2
0000544b: SUB
0000544c: PUSH2 0x03b2
0000544f: JUMPI
00005450: SWAP1
00005451: JUMP
00005452: JUMPDEST
00005453: POP
00005454: DUP1
00005455: MLOAD
00005456: ISZERO
00005457: ISZERO
00005458: PUSH2 0x542b
0000545b: JUMP
0000545c: JUMPDEST
0000545d: PUSH0
0000545e: MLOAD
0000545f: PUSH1 0x20
00005461: PUSH2 0x5b3d
00005464: PUSH0
00005465: CODECOPY
00005466: PUSH0
00005467: MLOAD
00005468: SWAP1
00005469: PUSH0
0000546a: MSTORE
0000546b: SLOAD
0000546c: PUSH0
0000546d: MLOAD
0000546e: PUSH1 0x20
00005470: PUSH2 0x5a5d
00005473: PUSH0
00005474: CODECOPY
00005475: PUSH0
00005476: MLOAD
00005477: SWAP1
00005478: PUSH0
00005479: MSTORE
0000547a: SLOAD
0000547b: DUP1
0000547c: DUP3
0000547d: LT
0000547e: ISZERO
0000547f: PUSH2 0x54a7
00005482: JUMPI
00005483: POP
00005484: POP
00005485: PUSH0
00005486: PUSH0
00005487: MLOAD
00005488: PUSH1 0x20
0000548a: PUSH2 0x5b3d
0000548d: PUSH0
0000548e: CODECOPY
0000548f: PUSH0
00005490: MLOAD
00005491: SWAP1
00005492: PUSH0
00005493: MSTORE
00005494: SSTORE
00005495: JUMPDEST
00005496: PUSH0
00005497: PUSH0
00005498: MLOAD
00005499: PUSH1 0x20
0000549b: PUSH2 0x5a5d
0000549e: PUSH0
0000549f: CODECOPY
000054a0: PUSH0
000054a1: MLOAD
000054a2: SWAP1
000054a3: PUSH0
000054a4: MSTORE
000054a5: SSTORE
000054a6: JUMP
000054a7: JUMPDEST
000054a8: PUSH2 0x54b0
000054ab: SWAP2
000054ac: PUSH2 0x45d3
000054af: JUMP
000054b0: JUMPDEST
000054b1: PUSH0
000054b2: MLOAD
000054b3: PUSH1 0x20
000054b5: PUSH2 0x5b3d
000054b8: PUSH0
000054b9: CODECOPY
000054ba: PUSH0
000054bb: MLOAD
000054bc: SWAP1
000054bd: PUSH0
000054be: MSTORE
000054bf: SSTORE
000054c0: PUSH2 0x5495
000054c3: JUMP
000054c4: JUMPDEST
000054c5: PUSH2 0x54ee
000054c8: PUSH32 0x0000000000000000000000000000000000000000000000000000000000001c20
000054e9: NUMBER
000054ea: PUSH2 0x45c6
000054ed: JUMP
000054ee: JUMPDEST
000054ef: PUSH0
000054f0: MLOAD
000054f1: PUSH1 0x20
000054f3: PUSH2 0x5d3d
000054f6: PUSH0
000054f7: CODECOPY
000054f8: PUSH0
000054f9: MLOAD
000054fa: SWAP1
000054fb: PUSH0
000054fc: MSTORE
000054fd: SSTORE
000054fe: PUSH0
000054ff: PUSH0
00005500: MLOAD
00005501: PUSH1 0x20
00005503: PUSH2 0x5b3d
00005506: PUSH0
00005507: CODECOPY
00005508: PUSH0
00005509: MLOAD
0000550a: SWAP1
0000550b: PUSH0
0000550c: MSTORE
0000550d: SSTORE
0000550e: PUSH1 0xff
00005510: NOT
00005511: PUSH0
00005512: MLOAD
00005513: PUSH1 0x20
00005515: PUSH2 0x5bfd
00005518: PUSH0
00005519: CODECOPY
0000551a: PUSH0
0000551b: MLOAD
0000551c: SWAP1
0000551d: PUSH0
0000551e: MSTORE
0000551f: SLOAD
00005520: AND
00005521: PUSH0
00005522: MLOAD
00005523: PUSH1 0x20
00005525: PUSH2 0x5bfd
00005528: PUSH0
00005529: CODECOPY
0000552a: PUSH0
0000552b: MLOAD
0000552c: SWAP1
0000552d: PUSH0
0000552e: MSTORE
0000552f: SSTORE
00005530: JUMP
00005531: JUMPDEST
00005532: SWAP2
00005533: SWAP1
00005534: PUSH0
00005535: MLOAD
00005536: PUSH1 0x20
00005538: PUSH2 0x5b9d
0000553b: PUSH0
0000553c: CODECOPY
0000553d: PUSH0
0000553e: MLOAD
0000553f: SWAP1
00005540: PUSH0
00005541: MSTORE
00005542: SLOAD
00005543: ISZERO
00005544: PUSH2 0x21af
00005547: JUMPI
00005548: PUSH0
00005549: MLOAD
0000554a: PUSH1 0x20
0000554c: PUSH2 0x5cdd
0000554f: PUSH0
00005550: CODECOPY
00005551: PUSH0
00005552: MLOAD
00005553: SWAP1
00005554: PUSH0
00005555: MSTORE
00005556: SLOAD
00005557: PUSH2 0x555f
0000555a: SWAP2
0000555b: PUSH2 0x45f3
0000555e: JUMP
0000555f: JUMPDEST
00005560: SWAP2
00005561: DUP3
00005562: PUSH0
00005563: MLOAD
00005564: PUSH1 0x20
00005566: PUSH2 0x5b5d
00005569: PUSH0
0000556a: CODECOPY
0000556b: PUSH0
0000556c: MLOAD
0000556d: SWAP1
0000556e: PUSH0
0000556f: MSTORE
00005570: SLOAD
00005571: DUP1
00005572: PUSH2 0x5678
00005575: JUMPI
00005576: JUMPDEST
00005577: POP
00005578: PUSH2 0x558f
0000557b: DUP5
0000557c: PUSH0
0000557d: MLOAD
0000557e: PUSH1 0x20
00005580: PUSH2 0x5a7d
00005583: PUSH0
00005584: CODECOPY
00005585: PUSH0
00005586: MLOAD
00005587: SWAP1
00005588: PUSH0
00005589: MSTORE
0000558a: SLOAD
0000558b: PUSH2 0x45c6
0000558e: JUMP
0000558f: JUMPDEST
00005590: PUSH0
00005591: MLOAD
00005592: PUSH1 0x20
00005594: PUSH2 0x5a7d
00005597: PUSH0
00005598: CODECOPY
00005599: PUSH0
0000559a: MLOAD
0000559b: SWAP1
0000559c: PUSH0
0000559d: MSTORE
0000559e: SSTORE
0000559f: PUSH1 0x01
000055a1: PUSH1 0x01
000055a3: PUSH1 0xa0
000055a5: SHL
000055a6: SUB
000055a7: DUP3
000055a8: AND
000055a9: ISZERO
000055aa: PUSH2 0x2170
000055ad: JUMPI
000055ae: DUP2
000055af: PUSH2 0x55d9
000055b2: DUP3
000055b3: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f
000055d4: SWAP5
000055d5: PUSH2 0x574c
000055d8: JUMP
000055d9: JUMPDEST
000055da: PUSH2 0x5603
000055dd: DUP6
000055de: PUSH1 0x40
000055e0: MLOAD
000055e1: SWAP4
000055e2: DUP5
000055e3: SWAP4
000055e4: DUP5
000055e5: PUSH1 0x40
000055e7: SWAP2
000055e8: SWAP5
000055e9: SWAP4
000055ea: SWAP3
000055eb: PUSH1 0x01
000055ed: PUSH1 0x01
000055ef: PUSH1 0xa0
000055f1: SHL
000055f2: SUB
000055f3: PUSH1 0x60
000055f5: DUP4
000055f6: ADD
000055f7: SWAP7
000055f8: AND
000055f9: DUP3
000055fa: MSTORE
000055fb: PUSH1 0x20
000055fd: DUP3
000055fe: ADD
000055ff: MSTORE
00005600: ADD
00005601: MSTORE
00005602: JUMP
00005603: JUMPDEST
00005604: SUB
00005605: SWAP1
00005606: LOG1
00005607: PUSH0
00005608: MLOAD
00005609: PUSH1 0x20
0000560b: PUSH2 0x5c9d
0000560e: PUSH0
0000560f: CODECOPY
00005610: PUSH0
00005611: MLOAD
00005612: SWAP1
00005613: PUSH0
00005614: MSTORE
00005615: SLOAD
00005616: PUSH1 0xff
00005618: DUP2
00005619: AND
0000561a: ISZERO
0000561b: DUP1
0000561c: ISZERO
0000561d: PUSH2 0x5637
00005620: JUMPI
00005621: JUMPDEST
00005622: PUSH2 0x5628
00005625: JUMPI
00005626: POP
00005627: JUMP
00005628: JUMPDEST
00005629: PUSH1 0xff
0000562b: PUSH2 0x4278
0000562e: SWAP2
0000562f: PUSH1 0x10
00005631: SHR
00005632: AND
00005633: PUSH2 0x4b06
00005636: JUMP
00005637: JUMPDEST
00005638: POP
00005639: PUSH0
0000563a: MLOAD
0000563b: PUSH1 0x20
0000563d: PUSH2 0x5c7d
00005640: PUSH0
00005641: CODECOPY
00005642: PUSH0
00005643: MLOAD
00005644: SWAP1
00005645: PUSH0
00005646: MSTORE
00005647: SLOAD
00005648: PUSH2 0x2710
0000564b: PUSH2 0x5671
0000564e: PUSH0
0000564f: MLOAD
00005650: PUSH1 0x20
00005652: PUSH2 0x5a7d
00005655: PUSH0
00005656: CODECOPY
00005657: PUSH0
00005658: MLOAD
00005659: SWAP1
0000565a: PUSH0
0000565b: MSTORE
0000565c: SLOAD
0000565d: PUSH0
0000565e: MLOAD
0000565f: PUSH1 0x20
00005661: PUSH2 0x5c1d
00005664: PUSH0
00005665: CODECOPY
00005666: PUSH0
00005667: MLOAD
00005668: SWAP1
00005669: PUSH0
0000566a: MSTORE
0000566b: SLOAD
0000566c: SWAP1
0000566d: PUSH2 0x45e0
00005670: JUMP
00005671: JUMPDEST
00005672: DIV
00005673: LT
00005674: PUSH2 0x5621
00005677: JUMP
00005678: JUMPDEST
00005679: PUSH2 0x5687
0000567c: SWAP2
0000567d: POP
0000567e: PUSH2 0x2193
00005681: SWAP1
00005682: DUP6
00005683: PUSH2 0x45e0
00005686: JUMP
00005687: JUMPDEST
00005688: PUSH0
00005689: PUSH2 0x5576
0000568c: JUMP
0000568d: JUMPDEST
0000568e: PUSH1 0xff
00005690: PUSH0
00005691: MLOAD
00005692: PUSH1 0x20
00005694: PUSH2 0x5d7d
00005697: PUSH0
00005698: CODECOPY
00005699: PUSH0
0000569a: MLOAD
0000569b: SWAP1
0000569c: PUSH0
0000569d: MSTORE
0000569e: SLOAD
0000569f: PUSH1 0x40
000056a1: SHR
000056a2: AND
000056a3: ISZERO
000056a4: PUSH2 0x56a9
000056a7: JUMPI
000056a8: JUMP
000056a9: JUMPDEST
000056aa: PUSH4 0x1afcd79f
000056af: PUSH1 0xe3
000056b1: SHL
000056b2: PUSH0
000056b3: MSTORE
000056b4: PUSH1 0x04
000056b6: PUSH0
000056b7: REVERT
000056b8: JUMPDEST
000056b9: SWAP2
000056ba: PUSH1 0x01
000056bc: PUSH1 0x01
000056be: PUSH1 0xa0
000056c0: SHL
000056c1: SUB
000056c2: DUP4
000056c3: AND
000056c4: SWAP2
000056c5: DUP3
000056c6: ISZERO
000056c7: PUSH2 0x2e45
000056ca: JUMPI
000056cb: PUSH1 0x01
000056cd: PUSH1 0x01
000056cf: PUSH1 0xa0
000056d1: SHL
000056d2: SUB
000056d3: AND
000056d4: SWAP3
000056d5: DUP4
000056d6: ISZERO
000056d7: PUSH2 0x2e32
000056da: JUMPI
000056db: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
000056fc: SWAP2
000056fd: PUSH2 0x5738
00005700: PUSH1 0x20
00005702: SWAP3
00005703: PUSH1 0x01
00005705: PUSH1 0x01
00005707: PUSH1 0xa0
00005709: SHL
0000570a: SUB
0000570b: AND
0000570c: PUSH0
0000570d: MSTORE
0000570e: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01
0000572f: PUSH1 0x20
00005731: MSTORE
00005732: PUSH1 0x40
00005734: PUSH0
00005735: KECCAK256
00005736: SWAP1
00005737: JUMP
00005738: JUMPDEST
00005739: DUP6
0000573a: PUSH0
0000573b: MSTORE
0000573c: DUP3
0000573d: MSTORE
0000573e: DUP1
0000573f: PUSH1 0x40
00005741: PUSH0
00005742: KECCAK256
00005743: SSTORE
00005744: PUSH1 0x40
00005746: MLOAD
00005747: SWAP1
00005748: DUP2
00005749: MSTORE
0000574a: LOG3
0000574b: JUMP
0000574c: JUMPDEST
0000574d: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
0000576e: PUSH1 0x20
00005770: PUSH1 0x01
00005772: PUSH1 0x01
00005774: PUSH1 0xa0
00005776: SHL
00005777: SUB
00005778: PUSH0
00005779: SWAP4
0000577a: PUSH2 0x5791
0000577d: DUP7
0000577e: PUSH0
0000577f: MLOAD
00005780: PUSH1 0x20
00005782: PUSH2 0x5b5d
00005785: PUSH0
00005786: CODECOPY
00005787: PUSH0
00005788: MLOAD
00005789: SWAP1
0000578a: PUSH0
0000578b: MSTORE
0000578c: SLOAD
0000578d: PUSH2 0x45c6
00005790: JUMP
00005791: JUMPDEST
00005792: PUSH0
00005793: MLOAD
00005794: PUSH1 0x20
00005796: PUSH2 0x5b5d
00005799: PUSH0
0000579a: CODECOPY
0000579b: PUSH0
0000579c: MLOAD
0000579d: SWAP1
0000579e: PUSH0
0000579f: MSTORE
000057a0: SSTORE
000057a1: AND
000057a2: SWAP4
000057a3: DUP5
000057a4: ISZERO
000057a5: DUP5
000057a6: EQ
000057a7: PUSH2 0x57d4
000057aa: JUMPI
000057ab: DUP1
000057ac: PUSH0
000057ad: MLOAD
000057ae: PUSH1 0x20
000057b0: PUSH2 0x5b5d
000057b3: PUSH0
000057b4: CODECOPY
000057b5: PUSH0
000057b6: MLOAD
000057b7: SWAP1
000057b8: PUSH0
000057b9: MSTORE
000057ba: SLOAD
000057bb: SUB
000057bc: PUSH0
000057bd: MLOAD
000057be: PUSH1 0x20
000057c0: PUSH2 0x5b5d
000057c3: PUSH0
000057c4: CODECOPY
000057c5: PUSH0
000057c6: MLOAD
000057c7: SWAP1
000057c8: PUSH0
000057c9: MSTORE
000057ca: SSTORE
000057cb: JUMPDEST
000057cc: PUSH1 0x40
000057ce: MLOAD
000057cf: SWAP1
000057d0: DUP2
000057d1: MSTORE
000057d2: LOG3
000057d3: JUMP
000057d4: JUMPDEST
000057d5: DUP5
000057d6: DUP5
000057d7: MSTORE
000057d8: PUSH0
000057d9: MLOAD
000057da: PUSH1 0x20
000057dc: PUSH2 0x5abd
000057df: PUSH0
000057e0: CODECOPY
000057e1: PUSH0
000057e2: MLOAD
000057e3: SWAP1
000057e4: PUSH0
000057e5: MSTORE
000057e6: DUP3
000057e7: MSTORE
000057e8: PUSH1 0x40
000057ea: DUP5
000057eb: KECCAK256
000057ec: DUP2
000057ed: DUP2
000057ee: SLOAD
000057ef: ADD
000057f0: SWAP1
000057f1: SSTORE
000057f2: PUSH2 0x57cb
000057f5: JUMP
000057f6: JUMPDEST
000057f7: PUSH2 0x57fe
000057fa: PUSH2 0x5953
000057fd: JUMP
000057fe: JUMPDEST
000057ff: PUSH2 0x5806
00005802: PUSH2 0x59bd
00005805: JUMP
00005806: JUMPDEST
00005807: PUSH1 0x40
00005809: MLOAD
0000580a: SWAP1
0000580b: PUSH1 0x20
0000580d: DUP3
0000580e: ADD
0000580f: SWAP3
00005810: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00005831: DUP5
00005832: MSTORE
00005833: PUSH1 0x40
00005835: DUP4
00005836: ADD
00005837: MSTORE
00005838: PUSH1 0x60
0000583a: DUP3
0000583b: ADD
0000583c: MSTORE
0000583d: CHAINID
0000583e: PUSH1 0x80
00005840: DUP3
00005841: ADD
00005842: MSTORE
00005843: ADDRESS
00005844: PUSH1 0xa0
00005846: DUP3
00005847: ADD
00005848: MSTORE
00005849: PUSH1 0xa0
0000584b: DUP2
0000584c: MSTORE
0000584d: PUSH2 0x5857
00005850: PUSH1 0xc0
00005852: DUP3
00005853: PUSH2 0x408d
00005856: JUMP
00005857: JUMPDEST
00005858: MLOAD
00005859: SWAP1
0000585a: KECCAK256
0000585b: SWAP1
0000585c: JUMP
0000585d: JUMPDEST
0000585e: SWAP2
0000585f: SWAP1
00005860: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
00005881: DUP5
00005882: GT
00005883: PUSH2 0x58d4
00005886: JUMPI
00005887: SWAP2
00005888: PUSH1 0x20
0000588a: SWAP4
0000588b: PUSH1 0x80
0000588d: SWAP3
0000588e: PUSH1 0xff
00005890: PUSH0
00005891: SWAP6
00005892: PUSH1 0x40
00005894: MLOAD
00005895: SWAP5
00005896: DUP6
00005897: MSTORE
00005898: AND
00005899: DUP7
0000589a: DUP5
0000589b: ADD
0000589c: MSTORE
0000589d: PUSH1 0x40
0000589f: DUP4
000058a0: ADD
000058a1: MSTORE
000058a2: PUSH1 0x60
000058a4: DUP3
000058a5: ADD
000058a6: MSTORE
000058a7: DUP3
000058a8: DUP1
000058a9: MSTORE
000058aa: PUSH1 0x01
000058ac: GAS
000058ad: STATICCALL
000058ae: ISZERO
000058af: PUSH2 0x0d8d
000058b2: JUMPI
000058b3: PUSH0
000058b4: MLOAD
000058b5: PUSH1 0x01
000058b7: PUSH1 0x01
000058b9: PUSH1 0xa0
000058bb: SHL
000058bc: SUB
000058bd: DUP2
000058be: AND
000058bf: ISZERO
000058c0: PUSH2 0x58ca
000058c3: JUMPI
000058c4: SWAP1
000058c5: PUSH0
000058c6: SWAP1
000058c7: PUSH0
000058c8: SWAP1
000058c9: JUMP
000058ca: JUMPDEST
000058cb: POP
000058cc: PUSH0
000058cd: SWAP1
000058ce: PUSH1 0x01
000058d0: SWAP1
000058d1: PUSH0
000058d2: SWAP1
000058d3: JUMP
000058d4: JUMPDEST
000058d5: POP
000058d6: POP
000058d7: POP
000058d8: PUSH0
000058d9: SWAP2
000058da: PUSH1 0x03
000058dc: SWAP2
000058dd: SWAP1
000058de: JUMP
000058df: JUMPDEST
000058e0: PUSH1 0x04
000058e2: DUP2
000058e3: LT
000058e4: ISZERO
000058e5: PUSH2 0x593f
000058e8: JUMPI
000058e9: DUP1
000058ea: PUSH2 0x58f1
000058ed: JUMPI
000058ee: POP
000058ef: POP
000058f0: JUMP
000058f1: JUMPDEST
000058f2: PUSH1 0x01
000058f4: DUP2
000058f5: SUB
000058f6: PUSH2 0x5908
000058f9: JUMPI
000058fa: PUSH4 0xf645eedf
000058ff: PUSH1 0xe0
00005901: SHL
00005902: PUSH0
00005903: MSTORE
00005904: PUSH1 0x04
00005906: PUSH0
00005907: REVERT
00005908: JUMPDEST
00005909: PUSH1 0x02
0000590b: DUP2
0000590c: SUB
0000590d: PUSH2 0x5923
00005910: JUMPI
00005911: POP
00005912: PUSH4 0xfce698f7
00005917: PUSH1 0xe0
00005919: SHL
0000591a: PUSH0
0000591b: MSTORE
0000591c: PUSH1 0x04
0000591e: MSTORE
0000591f: PUSH1 0x24
00005921: PUSH0
00005922: REVERT
00005923: JUMPDEST
00005924: PUSH1 0x03
00005926: EQ
00005927: PUSH2 0x592d
0000592a: JUMPI
0000592b: POP
0000592c: JUMP
0000592d: JUMPDEST
0000592e: PUSH4 0x35e2f383
00005933: PUSH1 0xe2
00005935: SHL
00005936: PUSH0
00005937: MSTORE
00005938: PUSH1 0x04
0000593a: MSTORE
0000593b: PUSH1 0x24
0000593d: PUSH0
0000593e: REVERT
0000593f: JUMPDEST
00005940: PUSH4 0x4e487b71
00005945: PUSH1 0xe0
00005947: SHL
00005948: PUSH0
00005949: MSTORE
0000594a: PUSH1 0x21
0000594c: PUSH1 0x04
0000594e: MSTORE
0000594f: PUSH1 0x24
00005951: PUSH0
00005952: REVERT
00005953: JUMPDEST
00005954: PUSH2 0x595b
00005957: PUSH2 0x4235
0000595a: JUMP
0000595b: JUMPDEST
0000595c: DUP1
0000595d: MLOAD
0000595e: SWAP1
0000595f: DUP2
00005960: ISZERO
00005961: PUSH2 0x596b
00005964: JUMPI
00005965: PUSH1 0x20
00005967: ADD
00005968: KECCAK256
00005969: SWAP1
0000596a: JUMP
0000596b: JUMPDEST
0000596c: POP
0000596d: POP
0000596e: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100
0000598f: SLOAD
00005990: DUP1
00005991: ISZERO
00005992: PUSH2 0x5998
00005995: JUMPI
00005996: SWAP1
00005997: JUMP
00005998: JUMPDEST
00005999: POP
0000599a: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
000059bb: SWAP1
000059bc: JUMP
000059bd: JUMPDEST
000059be: PUSH2 0x59c5
000059c1: PUSH2 0x4304
000059c4: JUMP
000059c5: JUMPDEST
000059c6: DUP1
000059c7: MLOAD
000059c8: SWAP1
000059c9: DUP2
000059ca: ISZERO
000059cb: PUSH2 0x59d5
000059ce: JUMPI
000059cf: PUSH1 0x20
000059d1: ADD
000059d2: KECCAK256
000059d3: SWAP1
000059d4: JUMP
000059d5: JUMPDEST
000059d6: POP
000059d7: POP
000059d8: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101
000059f9: SLOAD
000059fa: DUP1
000059fb: ISZERO
000059fc: PUSH2 0x5998
000059ff: JUMPI
00005a00: SWAP1
00005a01: JUMP
00005a02: JUMPDEST
00005a03: SWAP1
00005a04: PUSH2 0x5a26
00005a07: JUMPI
00005a08: POP
00005a09: DUP1
00005a0a: MLOAD
00005a0b: ISZERO
00005a0c: PUSH2 0x5a17
00005a0f: JUMPI
00005a10: DUP1
00005a11: MLOAD
00005a12: SWAP1
00005a13: PUSH1 0x20
00005a15: ADD
00005a16: REVERT
00005a17: JUMPDEST
00005a18: PUSH4 0xd6bda275
00005a1d: PUSH1 0xe0
00005a1f: SHL
00005a20: PUSH0
00005a21: MSTORE
00005a22: PUSH1 0x04
00005a24: PUSH0
00005a25: REVERT
00005a26: JUMPDEST
00005a27: DUP2
00005a28: MLOAD
00005a29: ISZERO
00005a2a: DUP1
00005a2b: PUSH2 0x5a53
00005a2e: JUMPI
00005a2f: JUMPDEST
00005a30: PUSH2 0x5a37
00005a33: JUMPI
00005a34: POP
00005a35: SWAP1
00005a36: JUMP
00005a37: JUMPDEST
00005a38: PUSH1 0x01
00005a3a: PUSH1 0x01
00005a3c: PUSH1 0xa0
00005a3e: SHL
00005a3f: SUB
00005a40: SWAP1
00005a41: PUSH4 0x9996b315
00005a46: PUSH1 0xe0
00005a48: SHL
00005a49: PUSH0
00005a4a: MSTORE
00005a4b: AND
00005a4c: PUSH1 0x04
00005a4e: MSTORE
00005a4f: PUSH1 0x24
00005a51: PUSH0
00005a52: REVERT
00005a53: JUMPDEST
00005a54: POP
00005a55: DUP1
00005a56: EXTCODESIZE
00005a57: ISZERO
00005a58: PUSH2 0x5a2f
00005a5b: JUMP
00005a5c: INVALID
00005a5d: UNKNOWN(0x0E)
00005a5e: UNKNOWN(0xE2)
00005a5f: UNKNOWN(0xD9)
00005a60: UNKNOWN(0xDE)
00005a61: DUP4
00005a62: SWAP3
00005a63: UNKNOWN(0xA8)
00005a64: CALL
00005a65: PUSH32 0xf2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00398b6721f87b10fba95
00005a86: LT
00005a87: PUSH5 0x9effb5cccf
00005a8d: UNKNOWN(0xD7)
00005a8e: UNKNOWN(0xD0)
00005a8f: UNKNOWN(0x4B)
00005a90: LOG1
00005a91: UNKNOWN(0xBF)
00005a92: PUSH13 0x44593ef8229732a7ea0352c632
00005aa0: SELFBALANCE
00005aa1: UNKNOWN(0xE1)
00005aa2: DELEGATECALL
00005aa3: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1
00005ac2: DELEGATECALL
00005ac3: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d942
00005ae2: PUSH2 0xc751
00005ae5: PUSH29 0xc8ff89f61c0ce93598e3c849801011dee649a6a557d102363bd9d3ac01
00005b03: UNKNOWN(0xB0)
00005b04: MCOPY
00005b05: UNKNOWN(0xDE)
00005b06: UNKNOWN(0xDE)
00005b07: PUSH7 0xfbb9c4f73d99f1
00005b0f: BASEFEE
00005b10: AND
00005b11: PUSH7 0xc51eee8df34d23
00005b19: UNKNOWN(0xA6)
00005b1a: UNKNOWN(0x1F)
00005b1b: BASEFEE
00005b1c: STOP
00005b1d: MSTORE
00005b1e: UNKNOWN(0xC6)
00005b1f: ORIGIN
00005b20: SELFBALANCE
00005b21: UNKNOWN(0xE1)
00005b22: DELEGATECALL
00005b23: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace040ee2d9de83
00005b42: SWAP3
00005b43: UNKNOWN(0xA8)
00005b44: CALL
00005b45: PUSH32 0xf2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00152c63247e1f47db19d
00005b66: TLOAD
00005b67: UNKNOWN(0xE0)
00005b68: CHAINID
00005b69: STOP
00005b6a: ADDRESS
00005b6b: UNKNOWN(0xC4)
00005b6c: SWAP8
00005b6d: CREATE
00005b6e: PUSH8 0xca4cebf71ba98eea
00005b77: UNKNOWN(0xDA)
00005b78: UNKNOWN(0xBE)
00005b79: KECCAK256
00005b7a: UNKNOWN(0xBA)
00005b7b: UNKNOWN(0xCE)
00005b7c: MUL
00005b7d: LOG1
00005b7e: PUSH11 0x46d94261c7517cc8ff89f6
00005b8a: SHR
00005b8b: UNKNOWN(0x0C)
00005b8c: UNKNOWN(0xE9)
00005b8d: CALLDATALOAD
00005b8e: SWAP9
00005b8f: UNKNOWN(0xE3)
00005b90: UNKNOWN(0xC8)
00005b91: BLOBHASH
00005b92: DUP1
00005b93: LT
00005b94: GT
00005b95: UNKNOWN(0xDE)
00005b96: UNKNOWN(0xE6)
00005b97: BLOBHASH
00005b98: UNKNOWN(0xA6)
00005b99: UNKNOWN(0xA5)
00005b9a: JUMPI
00005b9b: UNKNOWN(0xD1)
00005b9c: SUB
00005b9d: SWAP9
00005b9e: UNKNOWN(0xB6)
00005b9f: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c
00005bb3: DIFFICULTY
00005bb4: MSIZE
00005bb5: RETURNDATACOPY
00005bb6: UNKNOWN(0xF8)
00005bb7: UNKNOWN(0x22)
00005bb8: SWAP8
00005bb9: ORIGIN
00005bba: UNKNOWN(0xA7)
00005bbb: UNKNOWN(0xEA)
00005bbc: DIV
00005bbd: SWAP9
00005bbe: UNKNOWN(0xB6)
00005bbf: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c
00005bd3: DIFFICULTY
00005bd4: MSIZE
00005bd5: RETURNDATACOPY
00005bd6: UNKNOWN(0xF8)
00005bd7: UNKNOWN(0x22)
00005bd8: SWAP8
00005bd9: ORIGIN
00005bda: UNKNOWN(0xA7)
00005bdb: UNKNOWN(0xEA)
00005bdc: STOP
00005bdd: CALLDATASIZE
00005bde: ADDMOD
00005bdf: SWAP5
00005be0: LOG1
00005be1: EXTCODESIZE
00005be2: LOG1
00005be3: LOG3
00005be4: UNKNOWN(0x21)
00005be5: MOD
00005be6: PUSH8 0xc828492db98dca3e
00005bef: KECCAK256
00005bf0: PUSH23 0xcc3735a920a3ca505d382bbc0ee2d9de8392a8f17ff2bb
00005c08: PUSH27 0x24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00298b6721f87b10f
00005c24: UNKNOWN(0xBA)
00005c25: SWAP6
00005c26: LT
00005c27: PUSH5 0x9effb5cccf
00005c2d: UNKNOWN(0xD7)
00005c2e: UNKNOWN(0xD0)
00005c2f: UNKNOWN(0x4B)
00005c30: LOG1
00005c31: UNKNOWN(0xBF)
00005c32: PUSH13 0x44593ef8229732a7ea0a98b672
00005c40: UNKNOWN(0x1F)
00005c41: DUP8
00005c42: UNKNOWN(0xB1)
00005c43: UNKNOWN(0x0F)
00005c44: UNKNOWN(0xBA)
00005c45: SWAP6
00005c46: LT
00005c47: PUSH5 0x9effb5cccf
00005c4d: UNKNOWN(0xD7)
00005c4e: UNKNOWN(0xD0)
00005c4f: UNKNOWN(0x4B)
00005c50: LOG1
00005c51: UNKNOWN(0xBF)
00005c52: PUSH13 0x44593ef8229732a7ea0102dd7b
00005c60: UNKNOWN(0xC7)
00005c61: UNKNOWN(0xDE)
00005c62: UNKNOWN(0xC4)
00005c63: UNKNOWN(0xDC)
00005c64: UNKNOWN(0xEE)
00005c65: UNKNOWN(0xDD)
00005c66: UNKNOWN(0xA7)
00005c67: PUSH22 0xe58dd541e08a116c6c53815c0bd028192f7b62680098
00005c7e: UNKNOWN(0xB6)
00005c7f: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c
00005c93: DIFFICULTY
00005c94: MSIZE
00005c95: RETURNDATACOPY
00005c96: UNKNOWN(0xF8)
00005c97: UNKNOWN(0x22)
00005c98: SWAP8
00005c99: ORIGIN
00005c9a: UNKNOWN(0xA7)
00005c9b: UNKNOWN(0xEA)
00005c9c: SDIV
00005c9d: SWAP9
00005c9e: UNKNOWN(0xB6)
00005c9f: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c
00005cb3: DIFFICULTY
00005cb4: MSIZE
00005cb5: RETURNDATACOPY
00005cb6: UNKNOWN(0xF8)
00005cb7: UNKNOWN(0x22)
00005cb8: SWAP8
00005cb9: ORIGIN
00005cba: UNKNOWN(0xA7)
00005cbb: UNKNOWN(0xEA)
00005cbc: MOD
00005cbd: SWAP9
00005cbe: UNKNOWN(0xB6)
00005cbf: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c
00005cd3: DIFFICULTY
00005cd4: MSIZE
00005cd5: RETURNDATACOPY
00005cd6: UNKNOWN(0xF8)
00005cd7: UNKNOWN(0x22)
00005cd8: SWAP8
00005cd9: ORIGIN
00005cda: UNKNOWN(0xA7)
00005cdb: UNKNOWN(0xEA)
00005cdc: ADDMOD
00005cdd: CALLDATASIZE
00005cde: EXTCODESIZE
00005cdf: UNKNOWN(0xD9)
00005ce0: UNKNOWN(0xD3)
00005ce1: UNKNOWN(0xAC)
00005ce2: ADD
00005ce3: UNKNOWN(0xB0)
00005ce4: MCOPY
00005ce5: UNKNOWN(0xDE)
00005ce6: UNKNOWN(0xDE)
00005ce7: PUSH7 0xfbb9c4f73d99f1
00005cef: BASEFEE
00005cf0: AND
00005cf1: PUSH7 0xc51eee8df34d23
00005cf9: UNKNOWN(0xA6)
00005cfa: UNKNOWN(0x1F)
00005cfb: BASEFEE
00005cfc: ADD
00005cfd: SWAP12
00005cfe: PUSH24 0x9b17422d0df92223018b32b4d1fa46e071723d6817e2486d
00005d17: STOP
00005d18: EXTCODESIZE
00005d19: UNKNOWN(0xEC)
00005d1a: UNKNOWN(0xC5)
00005d1b: PUSH0
00005d1c: STOP
00005d1d: SWAP9
00005d1e: UNKNOWN(0xB6)
00005d1f: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c
00005d33: DIFFICULTY
00005d34: MSIZE
00005d35: RETURNDATACOPY
00005d36: UNKNOWN(0xF8)
00005d37: UNKNOWN(0x22)
00005d38: SWAP8
00005d39: ORIGIN
00005d3a: UNKNOWN(0xA7)
00005d3b: UNKNOWN(0xEA)
00005d3c: UNKNOWN(0x0C)
00005d3d: UNKNOWN(0x0E)
00005d3e: UNKNOWN(0xE2)
00005d3f: UNKNOWN(0xD9)
00005d40: UNKNOWN(0xDE)
00005d41: DUP4
00005d42: SWAP3
00005d43: UNKNOWN(0xA8)
00005d44: CALL
00005d45: PUSH32 0xf2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00098b6721f87b10fba95
00005d66: LT
00005d67: PUSH5 0x9effb5cccf
00005d6d: UNKNOWN(0xD7)
00005d6e: UNKNOWN(0xD0)
00005d6f: UNKNOWN(0x4B)
00005d70: LOG1
00005d71: UNKNOWN(0xBF)
00005d72: PUSH13 0x44593ef8229732a7ea07f0c57e
00005d80: AND
00005d81: DUP5
00005d82: UNKNOWN(0x0D)
00005d83: CREATE
00005d84: BLOCKHASH
00005d85: CALL
00005d86: POP
00005d87: DUP9
00005d88: UNKNOWN(0xDC)
00005d89: UNKNOWN(0x2F)
00005d8a: DUP2
00005d8b: INVALID
00005d8c: CODECOPY
00005d8d: SHR
00005d8e: CODECOPY
00005d8f: UNKNOWN(0x23)
00005d90: UNKNOWN(0xBE)
00005d91: UNKNOWN(0xC7)
00005d92: RETURNDATACOPY
00005d93: UNKNOWN(0x23)
00005d94: UNKNOWN(0xA9)
00005d95: PUSH7 0x2efc9c229c6a00
00005d9d: LOG2
00005d9e: PUSH5 0x6970667358
00005da4: UNKNOWN(0x22)
00005da5: SLT
00005da6: KECCAK256
00005da7: SMOD
00005da8: PUSH3 0x51e6cf
00005dac: DUP9
00005dad: UNKNOWN(0xC5)
00005dae: UNKNOWN(0xCF)
00005daf: GASLIMIT
00005db0: UNKNOWN(0xD9)
00005db1: UNKNOWN(0xD6)
00005db2: UNKNOWN(0x4D)
00005db3: UNKNOWN(0xAE)
00005db4: RETURNDATASIZE
00005db5: ADDMOD
00005db6: ISZERO
00005db7: PUSH14 0x28e9178a57819fd6991e336c62e3
00005dc6: DUP2
00005dc7: PUSH5 0x736f6c6343
00005dcd: STOP
00005dce: ADDMOD
00005dcf: SHR
00005dd0: STOP
00005dd1: 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: 0x313988aeccf65ff50c7cd44e2d7f510ba70dc2c7d77474dc9a7986ab0e78a2a1
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0x313988aeccf65ff50c7cd44e2d7f510ba70dc2c7d77474dc9a7986ab0e78a2a1",
    "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": "0x0130c4d2",
            "selector": "0x0130c4d2",
            "calldata_variants": [
                "0x0130c4d2",
                "0x0130c4d20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x01ffc9a7",
            "selector": "0x01ffc9a7",
            "calldata_variants": [
                "0x01ffc9a7",
                "0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f45684a",
            "selector": "0x0f45684a",
            "calldata_variants": [
                "0x0f45684a",
                "0x0f45684a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x106e846b",
            "selector": "0x106e846b",
            "calldata_variants": [
                "0x106e846b",
                "0x106e846b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10a470ab",
            "selector": "0x10a470ab",
            "calldata_variants": [
                "0x10a470ab",
                "0x10a470ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x113ac8f6",
            "selector": "0x113ac8f6",
            "calldata_variants": [
                "0x113ac8f6",
                "0x113ac8f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7793,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 23202,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 23234,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 23327,
            "type": "tx_origin_used"
        },
        {
            "pc": 23481,
            "type": "tx_origin_used"
        },
        {
            "pc": 23513,
            "type": "tx_origin_used"
        },
        {
            "pc": 23705,
            "type": "tx_origin_used"
        },
        {
            "pc": 23737,
            "type": "tx_origin_used"
        },
        {
            "pc": 23769,
            "type": "tx_origin_used"
        },
        {
            "pc": 23865,
            "type": "tx_origin_used"
        }
    ],
    "delegatecall_count": 4,
    "untrusted_delegatecall_count": 4
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x0130c4d2",
            "selector": "0x0130c4d2",
            "calldata_variants": [
                "0x0130c4d2",
                "0x0130c4d20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x01ffc9a7",
            "selector": "0x01ffc9a7",
            "calldata_variants": [
                "0x01ffc9a7",
                "0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f45684a",
            "selector": "0x0f45684a",
            "calldata_variants": [
                "0x0f45684a",
                "0x0f45684a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x106e846b",
            "selector": "0x106e846b",
            "calldata_variants": [
                "0x106e846b",
                "0x106e846b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10a470ab",
            "selector": "0x10a470ab",
            "calldata_variants": [
                "0x10a470ab",
                "0x10a470ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x113ac8f6",
            "selector": "0x113ac8f6",
            "calldata_variants": [
                "0x113ac8f6",
                "0x113ac8f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 23327,
            "type": "tx_origin_used"
        },
        {
            "pc": 23481,
            "type": "tx_origin_used"
        },
        {
            "pc": 23513,
            "type": "tx_origin_used"
        },
        {
            "pc": 23705,
            "type": "tx_origin_used"
        },
        {
            "pc": 23737,
            "type": "tx_origin_used"
        },
        {
            "pc": 23769,
            "type": "tx_origin_used"
        },
        {
            "pc": 23865,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xd425df983498242230df6de4887266d9d9568c71f65825ee9b9ace5c3007bddd
call_targets: 0x09019548ef289cf2694530b7a22420ad9f891582
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd425df983498242230df6de4887266d9d9568c71f65825ee9b9ace5c3007bddd",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x09019548ef289cf2694530b7a22420ad9f891582"
    ],
    "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": "0x0130c4d2",
            "selector": "0x0130c4d2",
            "calldata_variants": [
                "0x0130c4d2",
                "0x0130c4d20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x01ffc9a7",
            "selector": "0x01ffc9a7",
            "calldata_variants": [
                "0x01ffc9a7",
                "0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f45684a",
            "selector": "0x0f45684a",
            "calldata_variants": [
                "0x0f45684a",
                "0x0f45684a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x106e846b",
            "selector": "0x106e846b",
            "calldata_variants": [
                "0x106e846b",
                "0x106e846b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10a470ab",
            "selector": "0x10a470ab",
            "calldata_variants": [
                "0x10a470ab",
                "0x10a470ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x113ac8f6",
            "selector": "0x113ac8f6",
            "calldata_variants": [
                "0x113ac8f6",
                "0x113ac8f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 21532,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 23140,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 23364,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 5,
    "guards_detected": [
        {
            "pc": 23327,
            "type": "tx_origin_used"
        },
        {
            "pc": 23481,
            "type": "tx_origin_used"
        },
        {
            "pc": 23513,
            "type": "tx_origin_used"
        },
        {
            "pc": 23705,
            "type": "tx_origin_used"
        },
        {
            "pc": 23737,
            "type": "tx_origin_used"
        },
        {
            "pc": 23769,
            "type": "tx_origin_used"
        },
        {
            "pc": 23865,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x5fdccbf7262965414086f0a19f64ac774ee364532900d399aaa3ac1a94b98aac
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x5fdccbf7262965414086f0a19f64ac774ee364532900d399aaa3ac1a94b98aac",
    "confirmed": false,
    "trace_mode": "structLogs",
    "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": "0x0130c4d2",
            "selector": "0x0130c4d2",
            "calldata_variants": [
                "0x0130c4d2",
                "0x0130c4d20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x01ffc9a7",
            "selector": "0x01ffc9a7",
            "calldata_variants": [
                "0x01ffc9a7",
                "0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f45684a",
            "selector": "0x0f45684a",
            "calldata_variants": [
                "0x0f45684a",
                "0x0f45684a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x106e846b",
            "selector": "0x106e846b",
            "calldata_variants": [
                "0x106e846b",
                "0x106e846b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10a470ab",
            "selector": "0x10a470ab",
            "calldata_variants": [
                "0x10a470ab",
                "0x10a470ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x113ac8f6",
            "selector": "0x113ac8f6",
            "calldata_variants": [
                "0x113ac8f6",
                "0x113ac8f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 2,
    "create2_count": 0
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xd425df983498242230df6de4887266d9d9568c71f65825ee9b9ace5c3007bddd
call_targets: 0x09019548ef289cf2694530b7a22420ad9f891582
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd425df983498242230df6de4887266d9d9568c71f65825ee9b9ace5c3007bddd",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x09019548ef289cf2694530b7a22420ad9f891582"
    ],
    "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": "0x0130c4d2",
            "selector": "0x0130c4d2",
            "calldata_variants": [
                "0x0130c4d2",
                "0x0130c4d20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x01ffc9a7",
            "selector": "0x01ffc9a7",
            "calldata_variants": [
                "0x01ffc9a7",
                "0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f45684a",
            "selector": "0x0f45684a",
            "calldata_variants": [
                "0x0f45684a",
                "0x0f45684a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x106e846b",
            "selector": "0x106e846b",
            "calldata_variants": [
                "0x106e846b",
                "0x106e846b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10a470ab",
            "selector": "0x10a470ab",
            "calldata_variants": [
                "0x10a470ab",
                "0x10a470ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x113ac8f6",
            "selector": "0x113ac8f6",
            "calldata_variants": [
                "0x113ac8f6",
                "0x113ac8f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 21532,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 23140,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 23364,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 5,
    "guards_detected": [
        {
            "pc": 23327,
            "type": "tx_origin_used"
        },
        {
            "pc": 23481,
            "type": "tx_origin_used"
        },
        {
            "pc": 23513,
            "type": "tx_origin_used"
        },
        {
            "pc": 23705,
            "type": "tx_origin_used"
        },
        {
            "pc": 23737,
            "type": "tx_origin_used"
        },
        {
            "pc": 23769,
            "type": "tx_origin_used"
        },
        {
            "pc": 23865,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 5
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 4
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 2,
    "create2_count": 0
}
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": 6
}