b23bd55a-ce02-4edc-93f9-fc81e6d480ba
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30975 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 94861 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 94862 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 94863 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 94864 | capability.graph | complete | 1 / 3 | 1 week ago |
| 94865 | detector.run | complete | 1 / 3 | 1 week ago |
| 94866 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:645894] OpenAI Codex v0.77.0 (research preview)
[codex:645894] --------
[codex:645894] workdir: /tmp/codex-multi-0md3bvuw
[codex:645894] model: gpt-5.2-codex
[codex:645894] provider: openai
[codex:645894] approval: never
[codex:645894] sandbox: read-only
[codex:645894] reasoning effort: xhigh
[codex:645894] reasoning summaries: auto
[codex:645894] session id: 019b76d4-13c2-7353-9e16-f73f197244b5
[codex:645894] --------
[codex:645894] user
[codex:645894] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:645894]
[codex:645894] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:645894]
[codex:645894] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:645894] - Gas inefficiency, code quality, or best practices
[codex:645894] - Theoretical vulnerabilities without a clear extraction path
[codex:645894] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:645894] - Issues requiring social engineering or off-chain coordination
[codex:645894]
[codex:645894] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:645894] - CALL/DELEGATECALL with controllable destination or calldata
[codex:645894] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:645894] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:645894] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:645894] - External calls before state updates (reentrancy)
[codex:645894] - SELFDESTRUCT with controllable beneficiary
[codex:645894] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:645894]
[codex:645894] For each finding, you MUST explain:
[codex:645894] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:645894] 2. The concrete sequence of transactions to extract value
[codex:645894] 3. Why you believe this is exploitable (not just suspicious)
[codex:645894]
[codex:645894] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:645894] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:645894]
[codex:645894] Output MUST be valid JSON matching the provided schema.
[codex:645894] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:645894] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:645894] mcp startup: no servers
[codex:645894]
[codex:645894] thinking
[codex:645894] **Reviewing BYTECODE_BUNDLE.txt instructions**
[codex:645894] exec
[codex:645894] /bin/bash -lc ls in /tmp/codex-multi-0md3bvuw succeeded in 6ms:
[codex:645894] BYTECODE_BUNDLE.txt
[codex:645894] codex-output-schema.json
[codex:645894] exec
[codex:645894] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-0md3bvuw succeeded in 5ms:
[codex:645894] Runtime bytecode bundle for best-effort auditing.
[codex:645894] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:645894]
[codex:645894] FILE: runtime_bytecode.hex
[codex:645894] 0x6080604052600436106102f55760003560e01c8063adc9772e1161018f578063da3e3397116100e1578063f2a38f651161008a578063f61e8d4d11610064578063f61e8d4d1461085d578063fa09e6301461087d578063fcc49d1d1461089d576102fc565b8063f2a38f65146107fd578063f2fde38b1461081d578063f3fef3a31461083d576102fc565b8063eaafe247116100bb578063eaafe2471461079d578063ed866cef146107bd578063f018a8c1146107dd576102fc565b8063da3e33971461073d578063e4a767261461075d578063e676ea951461077d576102fc565b8063c2a672e011610143578063c4e2c1e61161011d578063c4e2c1e6146106dd578063d752fab2146106fd578063da1c75501461071d576102fc565b8063c2a672e01461067d578063c351666f1461069d578063c42fa7f4146106bd576102fc565b8063af88dc4711610174578063af88dc471461061d578063b61d27f61461063d578063b6703fcd1461065d576102fc565b8063adc9772e146105dd578063ae59ef9a146105fd576102fc565b80633419ba231161024857806367974ca4116101fc5780638da5cb5b116101d65780638da5cb5b1461056e5780639ac2a011146105905780639e546c38146105bd576102fc565b806367974ca414610519578063715018a6146105395780637f3714611461054e576102fc565b8063498ad7511161022d578063498ad751146104b95780634dc92fd4146104d95780635a08a245146104f9576102fc565b80633419ba2314610479578063348645d114610499576102fc565b806312a9aa49116102aa5780631c58db4f116102845780631c58db4f146104195780631f5a0bbe146104395780632478842914610459576102fc565b806312a9aa49146103b957806314a08b36146103d9578063171c3318146103f9576102fc565b80630de9fac6116102db5780630de9fac6146103595780630e801ee1146103795780630fd9a25514610399576102fc565b8062eb8ba414610301578063077d97d714610337576102fc565b366102fc57005b600080fd5b34801561030d57600080fd5b5061032161031c366004614123565b6108bd565b60405161032e9190614bc6565b60405180910390f35b34801561034357600080fd5b506103576103523660046144dd565b61099d565b005b34801561036557600080fd5b50610321610374366004614235565b610ace565b34801561038557600080fd5b506103576103943660046140eb565b610b62565b3480156103a557600080fd5b506103216103b4366004614450565b610c5d565b3480156103c557600080fd5b506103216103d4366004614235565b610cea565b3480156103e557600080fd5b506103216103f4366004614375565b610d71565b34801561040557600080fd5b50610357610414366004614425565b610df8565b34801561042557600080fd5b5061035761043436600461465a565b6110e9565b34801561044557600080fd5b506103576104543660046140eb565b6111d1565b34801561046557600080fd5b506103576104743660046140eb565b6112e5565b34801561048557600080fd5b50610357610494366004614123565b6113f3565b3480156104a557600080fd5b506103216104b4366004614287565b611476565b3480156104c557600080fd5b506103216104d4366004614325565b61151c565b3480156104e557600080fd5b506103576104f436600461468a565b6115b6565b34801561050557600080fd5b506103216105143660046142e0565b611782565b34801561052557600080fd5b506103216105343660046143c3565b61180d565b34801561054557600080fd5b50610357611897565b34801561055a57600080fd5b5061035761056936600461468a565b611979565b34801561057a57600080fd5b50610583611a9b565b60405161032e9190614710565b34801561059c57600080fd5b506105b06105ab3660046140eb565b611ab7565b60405161032e9190614840565b3480156105c957600080fd5b506103216105d83660046140eb565b611acc565b3480156105e957600080fd5b506103576105f8366004614425565b611bb1565b34801561060957600080fd5b506105b06106183660046140eb565b611c8d565b34801561062957600080fd5b506105836106383660046140eb565b611ca2565b34801561064957600080fd5b50610357610658366004614486565b611cca565b34801561066957600080fd5b5061035761067836600461415b565b611da0565b34801561068957600080fd5b50610357610698366004614425565b611e2b565b3480156106a957600080fd5b506103576106b836600461416d565b611eed565b3480156106c957600080fd5b506105836106d8366004614425565b61203a565b3480156106e957600080fd5b506103576106f8366004614450565b61207c565b34801561070957600080fd5b506103216107183660046141f5565b6120fa565b34801561072957600080fd5b506103576107383660046140eb565b61252a565b34801561074957600080fd5b506103576107583660046141f5565b6125e4565b34801561076957600080fd5b506103216107783660046141f5565b612662565b34801561078957600080fd5b506105836107983660046140eb565b6127b6565b3480156107a957600080fd5b506105b06107b83660046140eb565b6127de565b3480156107c957600080fd5b506103216107d8366004614287565b6127f3565b3480156107e957600080fd5b506103576107f836600461465a565b61288d565b34801561080957600080fd5b50610357610818366004614123565b61294d565b34801561082957600080fd5b506103576108383660046140eb565b612a13565b34801561084957600080fd5b50610357610858366004614425565b612b60565b34801561086957600080fd5b50610321610878366004614325565b612bde565b34801561088957600080fd5b506103576108983660046140eb565b612c6b565b3480156108a957600080fd5b506103216108b83660046142e0565b612cf6565b6000805b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604090205481101561095b5773ffffffffffffffffffffffffffffffffffffffff84811660009081526004602052604090208054918516918390811061092457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610953579050610997565b6001016108c1565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e9061490a565b60405180910390fd5b92915050565b6109a5612d72565b73ffffffffffffffffffffffffffffffffffffffff166109c3611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614610a10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b60005b8351811015610ac857838181518110610a2857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16838281518110610a5257fe5b6020026020010151838381518110610a6657fe5b6020026020010151604051610a7b91906146f1565b60006040518083038185875af1925050503d8060008114610ab8576040519150601f19603f3d011682016040523d82523d6000602084013e610abd565b606091505b505050600101610a13565b50505050565b600033610ad9611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610b0a57503360009081526001602052604090205460ff165b610b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6000610b4d868686612662565b9050610b598382611bb1565b95945050505050565b33610b6b611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610b9c57503360009081526001602052604090205460ff165b610bd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6002546040517fdd289d6000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063dd289d6090610c28908490600401614710565b600060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b5050505050565b600033610c68611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610c9957503360009081526001602052604090205460ff165b610ccf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b610cd98284611e2b565b610ce38484610df8565b9392505050565b600033610cf5611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610d2657503360009081526001602052604090205460ff165b610d5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b610d668284611e2b565b610b598585856120fa565b600033610d7c611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610dad57503360009081526001602052604090205460ff165b610de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6000610df0848483612d76565b949350505050565b33610e01611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610e3257503360009081526001602052604090205460ff165b610e68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205460608167ffffffffffffffff81118015610ea757600080fd5b50604051908082528060200260200182016040528015610ed1578160200160208202803683370190505b50905060005b82811015610f5b5773ffffffffffffffffffffffffffffffffffffffff851660009081526004602052604090208054610f3c919083908110610f1557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16611acc565b828281518110610f4857fe5b6020908102919091010152600101610ed7565b508160021415610f7457610f6f8484612fca565b610fb9565b8160031415610f8757610f6f848461317a565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a0c565b60608267ffffffffffffffff81118015610fd257600080fd5b50604051908082528060200260200182016040528015610ffc578160200160208202803683370190505b50905060005b838110156110935761107483828151811061101957fe5b602002602001015161106e600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610f1557fe5b906132bb565b82828151811061108057fe5b6020908102919091010152600101611002565b508473ffffffffffffffffffffffffffffffffffffffff167fd2602de014927617147990f1eaef38f72e9787acf22aa14785cefe59164eef1c826040516110da91906147fc565b60405180910390a25050505050565b336110f2611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061112357503360009081526001602052604090205460ff165b611159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156111b557600080fd5b505af11580156111c9573d6000803e3d6000fd5b505050505050565b6111d9612d72565b73ffffffffffffffffffffffffffffffffffffffff166111f7611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b8073ffffffffffffffffffffffffffffffffffffffff167f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2600160405161128b9190614840565b60405180910390a273ffffffffffffffffffffffffffffffffffffffff16600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055565b6112ed612d72565b73ffffffffffffffffffffffffffffffffffffffff1661130b611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614611358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b8073ffffffffffffffffffffffffffffffffffffffff167f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2600060405161139f9190614840565b60405180910390a273ffffffffffffffffffffffffffffffffffffffff16600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6113fb612d72565b73ffffffffffffffffffffffffffffffffffffffff16611419611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614611466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b611472828260006132fd565b5050565b600033611481611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614806114b257503360009081526001602052604090205460ff165b6114e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b60006114f38361331e565b90506000611502848888612662565b905061151088838388610ace565b98975050505050505050565b600033611527611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061155857503360009081526001602052604090205460ff165b61158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b600061159b838787612662565b905060006115a88461331e565b905061151088828488611782565b336115bf611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614806115f057503360009081526001602052604090205460ff165b611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b61162e613e5d565b6008546040517f1526fe2700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690631526fe2790611684908690600401614bc6565b60c06040518083038186803b15801561169c57600080fd5b505afa1580156116b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d491906145cc565b60608101516040517fc32e720200000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063c32e720290611730908590600190600401614c3f565b602060405180830381600087803b15801561174a57600080fd5b505af115801561175e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac891906145b0565b60003361178d611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614806117be57503360009081526001602052604090205460ff165b6117f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6000611801868686612662565b9050610b598382611979565b600033611818611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061184957503360009081526001602052604090205460ff165b61187f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b600061188b8585610d71565b9050610df08382611bb1565b61189f612d72565b73ffffffffffffffffffffffffffffffffffffffff166118bd611a9b565b73ffffffffffffffffffffffffffffffffffffffff161461190a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b33611982611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614806119b357503360009081526001602052604090205460ff165b6119e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6008546040517f43a0d06600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906343a0d06690611a449085908590600190600401614c88565b602060405180830381600087803b158015611a5e57600080fd5b505af1158015611a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9691906145b0565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60016020526000908152604090205460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611b07575047611bac565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906370a0823190611b59903090600401614710565b60206040518083038186803b158015611b7157600080fd5b505afa158015611b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba99190614672565b90505b919050565b33611bba611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480611beb57503360009081526001602052604090205460ff165b611c21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6040517fb6b55f2500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063b6b55f2590611c73908490600401614bc6565b600060405180830381600087803b1580156111b557600080fd5b60066020526000908152604090205460ff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b611cd2612d72565b73ffffffffffffffffffffffffffffffffffffffff16611cf0611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614611d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b8273ffffffffffffffffffffffffffffffffffffffff168282604051611d6391906146f1565b60006040518083038185875af1925050503d80600081146111c9576040519150601f19603f3d011682016040523d82523d6000602084013e6111c9565b611da8612d72565b73ffffffffffffffffffffffffffffffffffffffff16611dc6611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614611e13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b6000611e1e83613454565b9050611a96838284613520565b33611e34611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480611e6557503360009081526001602052604090205460ff165b611e9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690632e1a7d4d90611c73908490600401614bc6565b33611ef6611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480611f2757503360009081526001602052604090205460ff165b611f5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b73ffffffffffffffffffffffffffffffffffffffff858116600090815260036020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001694891694909417909355600481529190208451611fc992860190613e92565b5073ffffffffffffffffffffffffffffffffffffffff909416600090815260056020908152604080832080549415157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0095861617905560069091529020805494151594909116939093179092555050565b6004602052816000526040600020818154811061205357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169150829050565b612084612d72565b73ffffffffffffffffffffffffffffffffffffffff166120a2611a9b565b73ffffffffffffffffffffffffffffffffffffffff16146120ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b611a96838383613520565b600033612105611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061213657503360009081526001602052604090205460ff165b61216c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b73ffffffffffffffffffffffffffffffffffffffff848116600090815260076020526040812054909116156121c85773ffffffffffffffffffffffffffffffffffffffff808616600090815260076020526040902054166121ca565b845b905060006121d886866108bd565b905060006121e586611acc565b73ffffffffffffffffffffffffffffffffffffffff881660009081526006602090815260408083205460059092529091205491925060ff90811691161561234c5780156122bd576040517f8f15b6b500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690638f15b6b5906122869089908790600090600190600401614cb6565b600060405180830381600087803b1580156122a057600080fd5b505af11580156122b4573d6000803e3d6000fd5b50505050612347565b6040517ff1dc3cc900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f1dc3cc9906123149089908790600090600401614ca0565b600060405180830381600087803b15801561232e57600080fd5b505af1158015612342573d6000803e3d6000fd5b505050505b612436565b80156123ac576040517f517a55a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063517a55a3906123149089908790600090600190600401614c68565b6040517f1a4d01d200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690631a4d01d2906124039089908790600090600401614c4f565b600060405180830381600087803b15801561241d57600080fd5b505af1158015612431573d6000803e3d6000fd5b505050505b60006124458361106e8a611acc565b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526004602052604090205490915060608167ffffffffffffffff8111801561248757600080fd5b506040519080825280602002602001820160405280156124b1578160200160208202803683370190505b509050828187815181106124c157fe5b6020026020010181815250508a73ffffffffffffffffffffffffffffffffffffffff167fd2602de014927617147990f1eaef38f72e9787acf22aa14785cefe59164eef1c8260405161251391906147fc565b60405180910390a250909998505050505050505050565b612532612d72565b73ffffffffffffffffffffffffffffffffffffffff16612550611a9b565b73ffffffffffffffffffffffffffffffffffffffff161461259d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6125ec612d72565b73ffffffffffffffffffffffffffffffffffffffff1661260a611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614612657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b611a968383836132fd565b60003361266d611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061269e57503360009081526001602052604090205460ff165b6126d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b600073ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461270e576000612710565b825b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602052604090205490915060609067ffffffffffffffff8111801561275257600080fd5b5060405190808252806020026020018201604052801561277c578160200160208202803683370190505b509050838161278b88886108bd565b8151811061279557fe5b6020026020010181815250506127ac868284612d76565b9695505050505050565b60076020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60056020526000908152604090205460ff1681565b6000336127fe611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061282f57503360009081526001602052604090205460ff165b612865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b60006128708361331e565b9050600061288088838888610cea565b90506115108488836120fa565b33612896611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614806128c757503360009081526001602052604090205460ff165b6128fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d90610c28908490600401614bc6565b612955612d72565b73ffffffffffffffffffffffffffffffffffffffff16612973611a9b565b73ffffffffffffffffffffffffffffffffffffffff16146129c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b612a1b612d72565b73ffffffffffffffffffffffffffffffffffffffff16612a39611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614612a86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b73ffffffffffffffffffffffffffffffffffffffff8116612ad3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614941565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612b68612d72565b73ffffffffffffffffffffffffffffffffffffffff16612b86611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614612bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b611472828233613520565b600033612be9611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480612c1a57503360009081526001602052604090205460ff165b612c50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6000612c5b8361331e565b9050600061288088838888612cf6565b612c73612d72565b73ffffffffffffffffffffffffffffffffffffffff16612c91611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614612cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b6000612ce982613454565b9050611472828233613520565b600033612d01611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480612d3257503360009081526001602052604090205460ff165b612d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b610d6682846115b6565b3390565b73ffffffffffffffffffffffffffffffffffffffff838116600090815260076020526040812054909116612ebc576f22d53366457f9d5e68ec105046fc438373ffffffffffffffffffffffffffffffffffffffff1663a262904b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612dfa57600080fd5b505afa158015612e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e329190614107565b73ffffffffffffffffffffffffffffffffffffffff166355b30b19856040518263ffffffff1660e01b8152600401612e6a9190614710565b60206040518083038186803b158015612e8257600080fd5b505afa158015612e96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eba9190614672565b505b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600360205260408120549091612eef9116611acc565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600460205260409020549091506002811415612f3157612f2c868686613704565b612f45565b8060031415610f8757612f2c868686613912565b8573ffffffffffffffffffffffffffffffffffffffff167f8a07cc9636edd256126516f66fbc1eb9bfa42631953cc7ffb96dbb4dd7c7360b86604051612f8b91906147fc565b60405180910390a273ffffffffffffffffffffffffffffffffffffffff8087166000908152600360205260409020546127ac91849161106e9116611acc565b73ffffffffffffffffffffffffffffffffffffffff828116600090815260076020526040812054909116156130265773ffffffffffffffffffffffffffffffffffffffff80841660009081526007602052604090205416613028565b825b9050613032613f1c565b73ffffffffffffffffffffffffffffffffffffffff841660009081526006602052604090205460ff16156130ee576040517f269b558100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063269b5581906130b79086908590600190600401614be3565b600060405180830381600087803b1580156130d157600080fd5b505af11580156130e5573d6000803e3d6000fd5b50505050610ac8565b6040517f5b36389c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690635b36389c906131429086908590600401614bcf565b600060405180830381600087803b15801561315c57600080fd5b505af1158015613170573d6000803e3d6000fd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff828116600090815260076020526040812054909116156131d65773ffffffffffffffffffffffffffffffffffffffff808416600090815260076020526040902054166131d8565b825b90506131e2613f3a565b73ffffffffffffffffffffffffffffffffffffffff841660009081526006602052604090205460ff1615613267576040517ffce6473600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063fce64736906130b79086908590600190600401614c1b565b6040517fecb586a500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063ecb586a5906131429086908590600401614c07565b6000828211156132f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e9061499e565b50900390565b611a9673ffffffffffffffffffffffffffffffffffffffff84168383613ad9565b6000806f22d53366457f9d5e68ec105046fc438373ffffffffffffffffffffffffffffffffffffffff1663a262904b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561337757600080fd5b505afa15801561338b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133af9190614107565b6040517f3795104900000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff821690633795104990613404908690600401614710565b60206040518083038186803b15801561341c57600080fd5b505afa158015613430573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce39190614107565b600073ffffffffffffffffffffffffffffffffffffffff821615613519576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906370a08231906134c4903090600401614710565b60206040518083038186803b1580156134dc57600080fd5b505afa1580156134f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135149190614672565b611ba9565b5047919050565b73ffffffffffffffffffffffffffffffffffffffff811661356d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e906148d3565b600061357884613454565b9050828110156135b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e906149d5565b73ffffffffffffffffffffffffffffffffffffffff84166136785760008273ffffffffffffffffffffffffffffffffffffffff16846040516135f59061470d565b60006040518083038185875af1925050503d8060008114613632576040519150601f19603f3d011682016040523d82523d6000602084013e613637565b606091505b5050905080613672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e9061489c565b50613699565b61369973ffffffffffffffffffffffffffffffffffffffff85168385613c5e565b8373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f9207361cc2a04b9c7a06691df1eb87c6a63957ae88bf01d0d18c81e3d1272099856040516136f69190614bc6565b60405180910390a350505050565b61370c613f1c565b8260008151811061371957fe5b60200260200101518160006002811061372e57fe5b602002015282518390600190811061374257fe5b60200260200101518160016002811061375757fe5b6020908102919091019190915273ffffffffffffffffffffffffffffffffffffffff85811660009081526007909252604082205416156137be5773ffffffffffffffffffffffffffffffffffffffff808616600090815260076020526040902054166137c0565b845b73ffffffffffffffffffffffffffffffffffffffff861660009081526006602052604090205490915060ff1615613882576040517fee22be2300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063ee22be2390859061384b908690600090600190600401614799565b6000604051808303818588803b15801561386457600080fd5b505af1158015613878573d6000803e3d6000fd5b5050505050610c56565b6040517f0b4c7e4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630b4c7e4d9085906138d990869060009060040161477e565b6000604051808303818588803b1580156138f257600080fd5b505af1158015613906573d6000803e3d6000fd5b50505050505050505050565b61391a613f3a565b8260008151811061392757fe5b60200260200101518160006003811061393c57fe5b602002015282518390600190811061395057fe5b60200260200101518160016003811061396557fe5b602002015282518390600290811061397957fe5b60200260200101518160026003811061398e57fe5b6020908102919091019190915273ffffffffffffffffffffffffffffffffffffffff85811660009081526007909252604082205416156139f55773ffffffffffffffffffffffffffffffffffffffff808616600090815260076020526040902054166139f7565b845b73ffffffffffffffffffffffffffffffffffffffff861660009081526006602052604090205490915060ff1615613a82576040517f2b6e993a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690632b6e993a90859061384b9086906000906001906004016147d8565b6040517f4515cef300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690634515cef39085906138d99086906000906004016147bd565b801580613b8757506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063dd62ed3e90613b359030908690600401614731565b60206040518083038186803b158015613b4d57600080fd5b505afa158015613b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b859190614672565b155b613bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614b69565b611a968363095ea7b360e01b8484604051602401613bdc929190614758565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613c7d565b611a968363a9059cbb60e01b8484604051602401613bdc929190614758565b6060613cdf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613d339092919063ffffffff16565b805190915015611a965780806020019051810190613cfd91906145b0565b611a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614b0c565b6060610df0848460008585613d4785613e04565b613d7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614ad5565b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051613da791906146f1565b60006040518083038185875af1925050503d8060008114613de4576040519150601f19603f3d011682016040523d82523d6000602084013e613de9565b606091505b5091509150613df9828286613e0a565b979650505050505050565b3b151590565b60608315613e19575081610ce3565b825115613e295782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e919061484b565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054828255906000526020600020908101928215613f0c579160200282015b82811115613f0c57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190613eb2565b50613f18929150613f58565b5090565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b5b80821115613f185780547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600101613f59565b600082601f830112613f9f578081fd5b8135613fb2613fad82614cfa565b614cd3565b818152915060208083019084810181840286018201871015613fd357600080fd5b60005b84811015613ffb578135613fe981614d46565b84529282019290820190600101613fd6565b505050505092915050565b600082601f830112614016578081fd5b8135614024613fad82614cfa565b81815291506020808301908481018184028601820187101561404557600080fd5b60005b84811015613ffb57813584529282019290820190600101614048565b600082601f830112614074578081fd5b813567ffffffffffffffff81111561408a578182fd5b6140bb60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614cd3565b91508082528360208285010111156140d257600080fd5b8060208401602084013760009082016020015292915050565b6000602082840312156140fc578081fd5b8135610ce381614d46565b600060208284031215614118578081fd5b8151610ce381614d46565b60008060408385031215614135578081fd5b823561414081614d46565b9150602083013561415081614d46565b809150509250929050565b60008060408385031215614135578182fd5b600080600080600060a08688031215614184578081fd5b853561418f81614d46565b9450602086013561419f81614d46565b9350604086013567ffffffffffffffff8111156141ba578182fd5b6141c688828901613f8f565b93505060608601356141d781614d6b565b915060808601356141e781614d6b565b809150509295509295909350565b600080600060608486031215614209578283fd5b833561421481614d46565b9250602084013561422481614d46565b929592945050506040919091013590565b6000806000806080858703121561424a578384fd5b843561425581614d46565b9350602085013561426581614d46565b925060408501359150606085013561427c81614d46565b939692955090935050565b600080600080600060a0868803121561429e578283fd5b85356142a981614d46565b945060208601356142b981614d46565b93506040860135925060608601356142d081614d46565b915060808601356141e781614d46565b600080600080608085870312156142f5578182fd5b843561430081614d46565b9350602085013561431081614d46565b93969395505050506040820135916060013590565b600080600080600060a0868803121561433c578283fd5b853561434781614d46565b9450602086013561435781614d46565b9350604086013592506060860135915060808601356141e781614d46565b60008060408385031215614387578182fd5b823561439281614d46565b9150602083013567ffffffffffffffff8111156143ad578182fd5b6143b985828601614006565b9150509250929050565b6000806000606084860312156143d7578081fd5b83356143e281614d46565b9250602084013567ffffffffffffffff8111156143fd578182fd5b61440986828701614006565b925050604084013561441a81614d46565b809150509250925092565b60008060408385031215614437578182fd5b823561444281614d46565b946020939093013593505050565b600080600060608486031215614464578081fd5b833561446f81614d46565b925060208401359150604084013561441a81614d46565b60008060006060848603121561449a578081fd5b83356144a581614d46565b925060208401359150604084013567ffffffffffffffff8111156144c7578182fd5b6144d386828701614064565b9150509250925092565b6000806000606084860312156144f1578081fd5b833567ffffffffffffffff80821115614508578283fd5b61451487838801613f8f565b945060209150818601358181111561452a578384fd5b61453688828901614006565b94505060408601358181111561454a578384fd5b86019050601f8101871361455c578283fd5b803561456a613fad82614cfa565b81815283810190838501865b8481101561459f5761458d8c888435890101614064565b84529286019290860190600101614576565b505080955050505050509250925092565b6000602082840312156145c1578081fd5b8151610ce381614d6b565b600060c082840312156145dd578081fd5b6145e760c0614cd3565b82516145f281614d46565b8152602083015161460281614d46565b6020820152604083015161461581614d46565b6040820152606083015161462881614d46565b6060820152608083015161463b81614d46565b608082015260a083015161464e81614d6b565b60a08201529392505050565b60006020828403121561466b578081fd5b5035919050565b600060208284031215614683578081fd5b5051919050565b6000806040838503121561469c578182fd5b50508035926020909101359150565b8060005b6002811015610ac85781518452602093840193909101906001016146af565b8060005b6003811015610ac85781518452602093840193909101906001016146d2565b60008251614703818460208701614d1a565b9190910192915050565b90565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6060810161478c82856146ab565b8260408301529392505050565b608081016147a782866146ab565b8360408301528215156060830152949350505050565b608081016147cb82856146ce565b8260608301529392505050565b60a081016147e682866146ce565b8360608301528215156080830152949350505050565b6020808252825182820181905260009190848201906040850190845b8181101561483457835183529284019291840191600101614818565b50909695505050505050565b901515815260200190565b600060208252825180602084015261486a816040850160208701614d1a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526017908201527f4e6174697665207472616e73666572206661696c65642e000000000000000000604082015260600190565b6020808252600f908201527f496e76616c696420616464726573730000000000000000000000000000000000604082015260600190565b6020808252600c908201527f4d697373696e6720636f696e0000000000000000000000000000000000000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b60208082526012908201527f496e73756666696369656e742066756e64730000000000000000000000000000604082015260600190565b60208082526016908201527f4d697373696e6720696d706c656d656e746174696f6e00000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526026908201527f45786563757461626c653a2063616c6c6572206973206e6f742074686520657860408201527f656375746f720000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606082015260800190565b90815260200190565b82815260608101610ce360208301846146ab565b83815260808101614bf760208301856146ab565b8215156060830152949350505050565b82815260808101610ce360208301846146ce565b83815260a08101614c2f60208301856146ce565b8215156080830152949350505050565b9182521515602082015260400190565b928352600f9190910b6020830152604082015260600190565b938452600f9290920b602084015260408301521515606082015260800190565b92835260208301919091521515604082015260600190565b9283526020830191909152604082015260600190565b938452602084019290925260408301521515606082015260800190565b60405181810167ffffffffffffffff81118282101715614cf257600080fd5b604052919050565b600067ffffffffffffffff821115614d10578081fd5b5060209081020190565b60005b83811015614d35578181015183820152602001614d1d565b83811115610ac85750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114614d6857600080fd5b50565b8015158114614d6857600080fdfea2646970667358221220f6d0682f5aad73e9de7290c0583c8ec24a84cf2bdc4ae98714c50ece79eadff564736f6c634300060c0033
[codex:645894]
[codex:645894] thinking
[codex:645894] **Analyzing bytecode for vulnerabilities**
[codex:645894]
[codex:645894] I'm working on parsing the contract's bytecode to find exploitable delegatecall patterns and unprotected fund transfers, using a custom Python EVM disassembler to identify critical opcodes and access controls in this complex multisig-like contract. Let's explore its structure carefully to spot any gaps in authorization or unsafe external calls.
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:645894] # extract hex after 'FILE: runtime_bytecode.hex' and '0x'
[codex:645894] import re
[codex:645894] m = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata)
[codex:645894] if not m:
[codex:645894] raise SystemExit('no hex found')
[codex:645894] hexstr = m.group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894] print('len', len(code))
[codex:645894]
[codex:645894] # opcode table
[codex:645894] ops = {
[codex:645894] 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:645894] 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:645894] 0x20:'SHA3',
[codex:645894] 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:645894] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894] 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:645894] 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',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:645894] 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:645894] 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:645894] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894] }
[codex:645894]
[codex:645894] # disassemble
[codex:645894] instrs = []
[codex:645894] i = 0
[codex:645894] while i < len(code):
[codex:645894] op = code[i]
[codex:645894] name = ops.get(op, f'OP{op:02x}')
[codex:645894] if 0x60 <= op <= 0x7f:
[codex:645894] n = op - 0x5f
[codex:645894] data = code[i+1:i+1+n]
[codex:645894] instrs.append((i, name, data.hex()))
[codex:645894] i += 1 + n
[codex:645894] else:
[codex:645894] instrs.append((i, name, None))
[codex:645894] i += 1
[codex:645894]
[codex:645894] # collect offsets of key ops
[codex:645894] key_ops = {'CALL','DELEGATECALL','CALLCODE','STATICCALL','SELFDESTRUCT','SSTORE'}
[codex:645894] key = [ins for ins in instrs if ins[1] in key_ops]
[codex:645894] print('key ops count', {op: sum(1 for ins in instrs if ins[1]==op) for op in key_ops})
[codex:645894]
[codex:645894] # show a few around delegatecall and selfdestruct
[codex:645894] from collections import defaultdict
[codex:645894]
[codex:645894] def context(idx, back=10, fwd=10):
[codex:645894] # find index in instrs list
[codex:645894] for j,(off,_,_) in enumerate(instrs):
[codex:645894] if off==idx:
[codex:645894] start=max(0,j-back); end=min(len(instrs), j+fwd+1)
[codex:645894] return instrs[start:end]
[codex:645894] return []
[codex:645894]
[codex:645894] for off, name, data in key:
[codex:645894] if name in ('DELEGATECALL','SELFDESTRUCT'):
[codex:645894] print('----', name, 'at', off)
[codex:645894] for off2, n2, d2 in context(off):
[codex:645894] if d2 is None:
[codex:645894] print(f'{off2:06x}: {n2}')
[codex:645894] else:
[codex:645894] print(f'{off2:06x}: {n2} {d2}')
[codex:645894]
[codex:645894] # show first 5 CALL contexts
[codex:645894] count=0
[codex:645894] for off,name,data in key:
[codex:645894] if name=='CALL' and count<5:
[codex:645894] print('---- CALL at', off)
[codex:645894] for off2, n2, d2 in context(off):
[codex:645894] if d2 is None:
[codex:645894] print(f'{off2:06x}: {n2}')
[codex:645894] else:
[codex:645894] print(f'{off2:06x}: {n2} {d2}')
[codex:645894] count+=1
[codex:645894]
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 42ms:
[codex:645894] len 19887
[codex:645894] key ops count {'DELEGATECALL': 0, 'SSTORE': 12, 'CALL': 15, 'SELFDESTRUCT': 0, 'CALLCODE': 0, 'STATICCALL': 8}
[codex:645894] ---- CALL at 2696
[codex:645894] 000a7c: PUSH1 00
[codex:645894] 000a7e: PUSH1 40
[codex:645894] 000a80: MLOAD
[codex:645894] 000a81: DUP1
[codex:645894] 000a82: DUP4
[codex:645894] 000a83: SUB
[codex:645894] 000a84: DUP2
[codex:645894] 000a85: DUP6
[codex:645894] 000a86: DUP8
[codex:645894] 000a87: GAS
[codex:645894] 000a88: CALL
[codex:645894] 000a89: SWAP3
[codex:645894] 000a8a: POP
[codex:645894] 000a8b: POP
[codex:645894] 000a8c: POP
[codex:645894] 000a8d: RETURNDATASIZE
[codex:645894] 000a8e: DUP1
[codex:645894]
[codex:645894] thinking
[codex:645894] **Analyzing external CALL patterns for security**
[codex:645894]
[codex:645894] I'm digging into the CALL and STATICCALL usage to see if any ETH transfers happen without proper access control, focusing on a suspected multi-call executor function that loops over targets and values. This includes detailed bytecode inspection to understand owner/executor checks and identify any unprotected execution paths.
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894]
[codex:645894] # disassemble minimal with op and imm
[codex:645894] ops = {}
[codex:645894] # fill for push only
[codex:645894] def opname(op):
[codex:645894] if 0x60 <= op <= 0x7f:
[codex:645894] return f'PUSH{op-0x5f}'
[codex:645894] return {
[codex:645894] 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:645894] 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:645894] 0x20:'SHA3',
[codex:645894] 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:645894] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894] 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:645894] 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:645894] 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:645894] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894] }.get(op, f'OP{op:02x}')
[codex:645894]
[codex:645894] instrs=[]
[codex:645894] i=0
[codex:645894] while i < len(code):
[codex:645894] op=code[i]
[codex:645894] name=opname(op)
[codex:645894] if 0x60<=op<=0x7f:
[codex:645894] n=op-0x5f
[codex:645894] data=code[i+1:i+1+n]
[codex:645894] instrs.append((i,name,data.hex()))
[codex:645894] i+=1+n
[codex:645894] else:
[codex:645894] instrs.append((i,name,None))
[codex:645894] i+=1
[codex:645894]
[codex:645894] # function to print range
[codex:645894]
[codex:645894] def print_range(start_off, end_off=None, count=None):
[codex:645894] # find index of instr with offset >= start_off
[codex:645894] idx=0
[codex:645894] for j,(off,_,_) in enumerate(instrs):
[codex:645894] if off>=start_off:
[codex:645894] idx=j; break
[codex:645894] if end_off is not None:
[codex:645894] while idx < len(instrs) and instrs[idx][0] < end_off:
[codex:645894] off,name,data=instrs[idx]
[codex:645894] if data is None:
[codex:645894] print(f'{off:06x}: {name}')
[codex:645894] else:
[codex:645894] print(f'{off:06x}: {name} {data}')
[codex:645894] idx+=1
[codex:645894] elif count is not None:
[codex:645894] for _ in range(count):
[codex:645894] if idx>=len(instrs): break
[codex:645894] off,name,data=instrs[idx]
[codex:645894] if data is None:
[codex:645894] print(f'{off:06x}: {name}')
[codex:645894] else:
[codex:645894] print(f'{off:06x}: {name} {data}')
[codex:645894] idx+=1
[codex:645894]
[codex:645894] print('--- around 0x099d')
[codex:645894] print_range(0x0990, 0x0b20)
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 89ms:
[codex:645894] --- around 0x099d
[codex:645894] 000991: MLOAD
[codex:645894] 000992: DUP1
[codex:645894] 000993: SWAP2
[codex:645894] 000994: SUB
[codex:645894] 000995: SWAP1
[codex:645894] 000996: REVERT
[codex:645894] 000997: JUMPDEST
[codex:645894] 000998: SWAP3
[codex:645894] 000999: SWAP2
[codex:645894] 00099a: POP
[codex:645894] 00099b: POP
[codex:645894] 00099c: JUMP
[codex:645894] 00099d: JUMPDEST
[codex:645894] 00099e: PUSH2 09a5
[codex:645894] 0009a1: PUSH2 2d72
[codex:645894] 0009a4: JUMP
[codex:645894] 0009a5: JUMPDEST
[codex:645894] 0009a6: PUSH20 ffffffffffffffffffffffffffffffffffffffff
[codex:645894] 0009bb: AND
[codex:645894]
[codex:645894] thinking
[codex:645894] **Investigating address comparison logic**
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', Path('BYTECODE_BUNDLE.txt').read_text()).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894]
[codex:645894] # disassembler
[codex:645894]
[codex:645894] def disasm(start, count=60):
[codex:645894] ops = {}
[codex:645894] def opname(op):
[codex:645894] if 0x60 <= op <= 0x7f:
[codex:645894] return f'PUSH{op-0x5f}'
[codex:645894] return {
[codex:645894] 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:645894] 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:645894] 0x20:'SHA3',
[codex:645894] 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:645894] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894] 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:645894] 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:645894] 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:645894] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894] }.get(op, f'OP{op:02x}')
[codex:645894] i=start
[codex:645894] printed=0
[codex:645894] while printed < count and i < len(code):
[codex:645894] op=code[i]
[codex:645894] name=opname(op)
[codex:645894] if 0x60 <= op <= 0x7f:
[codex:645894] n=op-0x5f
[codex:645894] data=code[i+1:i+1+n]
[codex:645894] print(f'{i:06x}: {name} {data.hex()}')
[codex:645894] i += 1+n
[codex:645894] else:
[codex:645894] print(f'{i:06x}: {name}')
[codex:645894] i += 1
[codex:645894] printed += 1
[codex:645894]
[codex:645894] print('--- at 0x2d60')
[codex:645894] disasm(0x2d60, 40)
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 28ms:
[codex:645894] --- at 0x2d60
[codex:645894] 002d60: PUSH2 098e
[codex:645894] 002d63: SWAP1
[codex:645894] 002d64: PUSH2 4a78
[codex:645894] 002d67: JUMP
[codex:645894] 002d68: JUMPDEST
[codex:645894] 002d69: PUSH2 0d66
[codex:645894] 002d6c: DUP3
[codex:645894] 002d6d: DUP5
[codex:645894] 002d6e: PUSH2 15b6
[codex:645894] 002d71: JUMP
[codex:645894] 002d72: JUMPDEST
[codex:645894] 002d73: CALLER
[codex:645894] 002d74: SWAP1
[codex:645894] 002d75: JUMP
[codex:645894] 002d76: JUMPDEST
[codex:645894] 002d77: PUSH20 ffffffffffffffffffffffffffffffffffffffff
[codex:645894] 002d8c: DUP4
[codex:645894] 002d8d: DUP2
[codex:645894] 002d8e: AND
[codex:645894]
[codex:645894] thinking
[codex:645894] **Analyzing ownership and access control in bytecode**
[codex:645894]
[codex:645894] I'm figuring out how the contract enforces owner-only access by tracing calls returning `msg.sender` and comparing it to the stored owner. I want to spot any functions that perform external calls without proper access checks by scanning for storage writes (SSTORE) and surrounding access control patterns. Using Python to locate these SSTORE instructions will help me identify potential security risks or misconfigurations.
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', Path('BYTECODE_BUNDLE.txt').read_text()).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894]
[codex:645894] # disassemble as before
[codex:645894] ops = {}
[codex:645894]
[codex:645894] def opname(op):
[codex:645894] if 0x60 <= op <= 0x7f:
[codex:645894] return f'PUSH{op-0x5f}'
[codex:645894] return {
[codex:645894] 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:645894] 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:645894] 0x20:'SHA3',
[codex:645894] 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:645894] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894] 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:645894] 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:645894] 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:645894] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894] }.get(op, f'OP{op:02x}')
[codex:645894]
[codex:645894] instrs=[]
[codex:645894] i=0
[codex:645894] while i < len(code):
[codex:645894] op=code[i]
[codex:645894] name=opname(op)
[codex:645894] if 0x60<=op<=0x7f:
[codex:645894] n=op-0x5f
[codex:645894] data=code[i+1:i+1+n]
[codex:645894] instrs.append((i,name,data.hex()))
[codex:645894] i+=1+n
[codex:645894] else:
[codex:645894] instrs.append((i,name,None))
[codex:645894] i+=1
[codex:645894]
[codex:645894] # locate SSTORE
[codex:645894] sstore_indices=[(idx,off) for idx,(off,name,data) in enumerate(instrs) if name=='SSTORE']
[codex:645894] print('SSTORE count', len(sstore_indices))
[codex:645894]
[codex:645894] # function to print context around each sstore
[codex:645894] for idx, off in sstore_indices:
[codex:645894] print('\\n-- SSTORE at', hex(off))
[codex:645894] start=max(0, idx-15); end=min(len(instrs), idx+10)
[codex:645894] for off2,name,data in instrs[start:end]:
[codex:645894] if data is None:
[codex:645894] print(f'{off2:06x}: {name}')
[codex:645894] else:
[codex:645894] print(f'{off2:06x}: {name} {data}')
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 89ms:
[codex:645894] SSTORE count 12
[codex:645894]
[codex:645894] -- SSTORE at 0x12e3
[codex:645894] 0012b3: DUP2
[codex:645894] 0012b4: SWAP1
[codex:645894] 0012b5: MSTORE
[codex:645894] 0012b6: PUSH1 40
[codex:645894] 0012b8: SWAP1
[codex:645894] 0012b9: SWAP2
[codex:645894] 0012ba: SHA3
[codex:645894] 0012bb: DUP1
[codex:645894] 0012bc: SLOAD
[codex:645894] 0012bd: PUSH32 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
[codex:645894] 0012de: AND
[codex:645894] 0012df: SWAP1
[codex:645894] 0012e0: SWAP2
[codex:645894] 0012e1: OR
[codex:645894] 0012e2: SWAP1
[codex:645894] 0012e3: SSTORE
[codex:645894] 0012e4: JUMP
[codex:645894]
[codex:645894] thinking
[codex:645894] **Analyzing storage updates and access control**
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', Path('BYTECODE_BUNDLE.txt').read_text()).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894]
[codex:645894] # disasm function
[codex:645894]
[codex:645894] def disasm(start, count=120):
[codex:645894] def opname(op):
[codex:645894] if 0x60 <= op <= 0x7f:
[codex:645894] return f'PUSH{op-0x5f}'
[codex:645894] return {
[codex:645894] 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:645894] 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:645894] 0x20:'SHA3',
[codex:645894] 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:645894] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894] 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:645894] 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:645894] 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:645894] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894] }.get(op, f'OP{op:02x}')
[codex:645894] i=start
[codex:645894] for _ in range(count):
[codex:645894] if i>=len(code): break
[codex:645894] op=code[i]
[codex:645894] name=opname(op)
[codex:645894] if 0x60<=op<=0x7f:
[codex:645894] n=op-0x5f
[codex:645894] data=code[i+1:i+1+n]
[codex:645894] print(f'{i:06x}: {name} {data.hex()}')
[codex:645894] i+=1+n
[codex:645894] else:
[codex:645894] print(f'{i:06x}: {name}')
[codex:645894] i+=1
[codex:645894]
[codex:645894] print('--- around 0x11d0')
[codex:645894] disasm(0x11c0, 140)
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 29ms:
[codex:645894] --- around 0x11d0
[codex:645894] 0011c0: RETURNDATASIZE
[codex:645894] 0011c1: PUSH1 00
[codex:645894] 0011c3: DUP1
[codex:645894] 0011c4: RETURNDATACOPY
[codex:645894] 0011c5: RETURNDATASIZE
[codex:645894] 0011c6: PUSH1 00
[codex:645894] 0011c8: REVERT
[codex:645894] 0011c9: JUMPDEST
[codex:645894] 0011ca: POP
[codex:645894] 0011cb: POP
[codex:645894] 0011cc: POP
[codex:645894] 0011cd: POP
[codex:645894] 0011ce: POP
[codex:645894] 0011cf: POP
[codex:645894] 0011d0: JUMP
[codex:645894] 0011d1: JUMPDEST
[codex:645894] 0011d2: PUSH2 11d9
[codex:645894] 0011d5: PUSH2 2d72
[codex:645894] 0011d8: JUMP
[codex:645894]
[codex:645894] thinking
[codex:645894] **Analyzing owner-gated functions and storage writes**
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', Path('BYTECODE_BUNDLE.txt').read_text()).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894]
[codex:645894] # disasm function
[codex:645894]
[codex:645894] def disasm(start, count=120):
[codex:645894] def opname(op):
[codex:645894] if 0x60 <= op <= 0x7f:
[codex:645894] return f'PUSH{op-0x5f}'
[codex:645894] return {
[codex:645894] 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:645894] 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:645894] 0x20:'SHA3',
[codex:645894] 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:645894] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894] 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:645894] 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:645894] 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:645894] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894] }.get(op, f'OP{op:02x}')
[codex:645894] i=start
[codex:645894] for _ in range(count):
[codex:645894] if i>=len(code): break
[codex:645894] op=code[i]
[codex:645894] name=opname(op)
[codex:645894] if 0x60 <= op <= 0x7f:
[codex:645894] n=op-0x5f
[codex:645894] data=code[i+1:i+1+n]
[codex:645894] print(f'{i:06x}: {name} {data.hex()}')
[codex:645894] i += 1+n
[codex:645894] else:
[codex:645894] print(f'{i:06x}: {name}')
[codex:645894] i += 1
[codex:645894]
[codex:645894] print('--- around 0x1e80')
[codex:645894] disasm(0x1e80, 150)
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 30ms:
[codex:645894] --- around 0x1e80
[codex:645894] 001e80: STOP
[codex:645894] 001e81: STOP
[codex:645894] 001e82: STOP
[codex:645894] 001e83: STOP
[codex:645894] 001e84: STOP
[codex:645894] 001e85: STOP
[codex:645894] 001e86: STOP
[codex:645894] 001e87: STOP
[codex:645894] 001e88: STOP
[codex:645894] 001e89: STOP
[codex:645894] 001e8a: STOP
[codex:645894] 001e8b: STOP
[codex:645894] 001e8c: STOP
[codex:645894] 001e8d: STOP
[codex:645894] 001e8e: DUP2
[codex:645894] 001e8f: MSTORE
[codex:645894] 001e90: PUSH1 04
[codex:645894] 001e92: ADD
[codex:645894] 001e93: PUSH2 098e
[codex:645894]
[codex:645894] thinking
[codex:645894] **Analyzing access control and call instructions**
[codex:645894] exec
[codex:645894] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-0md3bvuw succeeded in 5ms:
[codex:645894] {"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:645894]
[codex:645894] thinking
[codex:645894] **Investigating external CALLs for access control**
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', Path('BYTECODE_BUNDLE.txt').read_text()).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894]
[codex:645894] # disassemble with offsets
[codex:645894] ops={}
[codex:645894]
[codex:645894] def opname(op):
[codex:645894] if 0x60 <= op <= 0x7f:
[codex:645894] return f'PUSH{op-0x5f}'
[codex:645894] return {
[codex:645894] 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:645894] 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:645894] 0x20:'SHA3',
[codex:645894] 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:645894] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894] 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:645894] 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:645894] 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:645894] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894] }.get(op, f'OP{op:02x}')
[codex:645894]
[codex:645894] instrs=[]
[codex:645894] i=0
[codex:645894] while i < len(code):
[codex:645894] op=code[i]
[codex:645894] name=opname(op)
[codex:645894] if 0x60<=op<=0x7f:
[codex:645894] n=op-0x5f
[codex:645894] data=code[i+1:i+1+n]
[codex:645894] instrs.append((i,name,data.hex()))
[codex:645894] i+=1+n
[codex:645894] else:
[codex:645894] instrs.append((i,name,None))
[codex:645894] i+=1
[codex:645894]
[codex:645894] # build mapping from offset to index
[codex:645894] idx_by_off = {off:i for i,(off,_,_) in enumerate(instrs)}
[codex:645894]
[codex:645894] # find CALLs
[codex:645894] call_offs=[off for off,name,_ in instrs if name=='CALL']
[codex:645894] print('CALL offsets', [hex(o) for o in call_offs])
[codex:645894]
[codex:645894] # function to find nearest previous JUMPDEST
[codex:645894] jumpdest_indices=[i for i,(off,name,_) in enumerate(instrs) if name=='JUMPDEST']
[codex:645894]
[codex:645894] def prev_jumpdest_index(i):
[codex:645894] # find last jumpdest index < i
[codex:645894] for j in reversed(jumpdest_indices):
[codex:645894] if j < i:
[codex:645894] return j
[codex:645894] return 0
[codex:645894]
[codex:645894] for off in call_offs:
[codex:645894] i = idx_by_off[off]
[codex:645894] j = prev_jumpdest_index(i)
[codex:645894] print('\\n=== CALL at', hex(off), 'context from JUMPDEST', hex(instrs[j][0]))
[codex:645894] # print 40 instrs from j
[codex:645894] for off2,name,data in instrs[j:j+50]:
[codex:645894] if data is None:
[codex:645894] print(f'{off2:06x}: {name}')
[codex:645894] else:
[codex:645894] print(f'{off2:06x}: {name} {data}')
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 112ms:
[codex:645894] CALL offsets ['0xa88', '0xc45', '0x11b8', '0x174d', '0x1a61', '0x1d70', '0x22a3', '0x2331', '0x2420', '0x30d4', '0x315f', '0x3602', '0x3867', '0x38f5', '0x3db4']
[codex:645894]
[codex:645894] === CALL at 0xa88 context from JUMPDEST 0xa7b
[codex:645894] 000a7b: JUMPDEST
[codex:645894] 000a7c: PUSH1 00
[codex:645894] 000a7e: PUSH1 40
[codex:645894] 000a80: MLOAD
[codex:645894] 000a81: DUP1
[codex:645894] 000a82: DUP4
[codex:645894] 000a83: SUB
[codex:645894] 000a84: DUP2
[codex:645894] 000a85: DUP6
[codex:645894] 000a86: DUP8
[codex:645894] 000a87: GAS
[codex:645894] 000a88: CALL
[codex:645894] 000a89: SWAP3
[codex:645894] 000a8a: POP
[codex:645894] 000a8b: POP
[codex:645894] 000a8c: POP
[codex:645894] 000a8d: RETURNDATASIZE
[codex:645894]
[codex:645894] thinking
[codex:645894] **Summarizing security analysis results**
[codex:645894]
[codex:645894] I'll prepare a JSON output summarizing that no exploitable profit paths were found in the bytecode; noting the absence of delegatecall/selfdestruct and that external call sites seem guarded by owner/executor permissions. This will comply with the schema and make clear there are no findings to report.
[codex:645894] codex
[codex:645894] {"no_findings":true,"summary":"Reviewed runtime bytecode; no DELEGATECALL/SELFDESTRUCT and no clearly unrestricted value-transfer or arbitrary-call paths were identified. External CALL sites appear to be behind owner/executor-style checks, so no concrete profit extraction path is evident from bytecode alone.","findings":[]}
[codex:645894] tokens used
[codex:645894] 61,677
[codex:645894] {"no_findings":true,"summary":"Reviewed runtime bytecode; no DELEGATECALL/SELFDESTRUCT and no clearly unrestricted value-transfer or arbitrary-call paths were identified. External CALL sites appear to be behind owner/executor-style checks, so no concrete profit extraction path is evident from bytecode alone.","findings":[]}
{
"codex": {
"ran_at": "2025-12-31T23:57:43.930632+00:00",
"returncode": 0
},
"summary": "Reviewed runtime bytecode; no DELEGATECALL/SELFDESTRUCT and no clearly unrestricted value-transfer or arbitrary-call paths were identified. External CALL sites appear to be behind owner/executor-style checks, so no concrete profit extraction path is evident from bytecode alone.",
"raw_final": {
"summary": "Reviewed runtime bytecode; no DELEGATECALL/SELFDESTRUCT and no clearly unrestricted value-transfer or arbitrary-call paths were identified. External CALL sites appear to be behind owner/executor-style checks, so no concrete profit extraction path is evident from bytecode alone.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x02f5 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0xadc9772e 00000019: GT 0000001a: PUSH2 0x018f 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xda3e3397 00000024: GT 00000025: PUSH2 0x00e1 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xf2a38f65 0000002f: GT 00000030: PUSH2 0x008a 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xf61e8d4d 0000003a: GT 0000003b: PUSH2 0x0064 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xf61e8d4d 00000045: EQ 00000046: PUSH2 0x085d 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xfa09e630 00000050: EQ 00000051: PUSH2 0x087d 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xfcc49d1d 0000005b: EQ 0000005c: PUSH2 0x089d 0000005f: JUMPI 00000060: PUSH2 0x02fc 00000063: JUMP 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xf2a38f65 0000006b: EQ 0000006c: PUSH2 0x07fd 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xf2fde38b 00000076: EQ 00000077: PUSH2 0x081d 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xf3fef3a3 00000081: EQ 00000082: PUSH2 0x083d 00000085: JUMPI 00000086: PUSH2 0x02fc 00000089: JUMP 0000008a: JUMPDEST 0000008b: DUP1 0000008c: PUSH4 0xeaafe247 00000091: GT 00000092: PUSH2 0x00bb 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0xeaafe247 0000009c: EQ 0000009d: PUSH2 0x079d 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xed866cef 000000a7: EQ 000000a8: PUSH2 0x07bd 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xf018a8c1 000000b2: EQ 000000b3: PUSH2 0x07dd 000000b6: JUMPI 000000b7: PUSH2 0x02fc 000000ba: JUMP 000000bb: JUMPDEST 000000bc: DUP1 000000bd: PUSH4 0xda3e3397 000000c2: EQ 000000c3: PUSH2 0x073d 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0xe4a76726 000000cd: EQ 000000ce: PUSH2 0x075d 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0xe676ea95 000000d8: EQ 000000d9: PUSH2 0x077d 000000dc: JUMPI 000000dd: PUSH2 0x02fc 000000e0: JUMP 000000e1: JUMPDEST 000000e2: DUP1 000000e3: PUSH4 0xc2a672e0 000000e8: GT 000000e9: PUSH2 0x0143 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0xc4e2c1e6 000000f3: GT 000000f4: PUSH2 0x011d 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0xc4e2c1e6 000000fe: EQ 000000ff: PUSH2 0x06dd 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0xd752fab2 00000109: EQ 0000010a: PUSH2 0x06fd 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0xda1c7550 00000114: EQ 00000115: PUSH2 0x071d 00000118: JUMPI 00000119: PUSH2 0x02fc 0000011c: JUMP 0000011d: JUMPDEST 0000011e: DUP1 0000011f: PUSH4 0xc2a672e0 00000124: EQ 00000125: PUSH2 0x067d 00000128: JUMPI 00000129: DUP1 0000012a: PUSH4 0xc351666f 0000012f: EQ 00000130: PUSH2 0x069d 00000133: JUMPI 00000134: DUP1 00000135: PUSH4 0xc42fa7f4 0000013a: EQ 0000013b: PUSH2 0x06bd 0000013e: JUMPI 0000013f: PUSH2 0x02fc 00000142: JUMP 00000143: JUMPDEST 00000144: DUP1 00000145: PUSH4 0xaf88dc47 0000014a: GT 0000014b: PUSH2 0x0174 0000014e: JUMPI 0000014f: DUP1 00000150: PUSH4 0xaf88dc47 00000155: EQ 00000156: PUSH2 0x061d 00000159: JUMPI 0000015a: DUP1 0000015b: PUSH4 0xb61d27f6 00000160: EQ 00000161: PUSH2 0x063d 00000164: JUMPI 00000165: DUP1 00000166: PUSH4 0xb6703fcd 0000016b: EQ 0000016c: PUSH2 0x065d 0000016f: JUMPI 00000170: PUSH2 0x02fc 00000173: JUMP 00000174: JUMPDEST 00000175: DUP1 00000176: PUSH4 0xadc9772e 0000017b: EQ 0000017c: PUSH2 0x05dd 0000017f: JUMPI 00000180: DUP1 00000181: PUSH4 0xae59ef9a 00000186: EQ 00000187: PUSH2 0x05fd 0000018a: JUMPI 0000018b: PUSH2 0x02fc 0000018e: JUMP 0000018f: JUMPDEST 00000190: DUP1 00000191: PUSH4 0x3419ba23 00000196: GT 00000197: PUSH2 0x0248 0000019a: JUMPI 0000019b: DUP1 0000019c: PUSH4 0x67974ca4 000001a1: GT 000001a2: PUSH2 0x01fc 000001a5: JUMPI 000001a6: DUP1 000001a7: PUSH4 0x8da5cb5b 000001ac: GT 000001ad: PUSH2 0x01d6 000001b0: JUMPI 000001b1: DUP1 000001b2: PUSH4 0x8da5cb5b 000001b7: EQ 000001b8: PUSH2 0x056e 000001bb: JUMPI 000001bc: DUP1 000001bd: PUSH4 0x9ac2a011 000001c2: EQ 000001c3: PUSH2 0x0590 000001c6: JUMPI 000001c7: DUP1 000001c8: PUSH4 0x9e546c38 000001cd: EQ 000001ce: PUSH2 0x05bd 000001d1: JUMPI 000001d2: PUSH2 0x02fc 000001d5: JUMP 000001d6: JUMPDEST 000001d7: DUP1 000001d8: PUSH4 0x67974ca4 000001dd: EQ 000001de: PUSH2 0x0519 000001e1: JUMPI 000001e2: DUP1 000001e3: PUSH4 0x715018a6 000001e8: EQ 000001e9: PUSH2 0x0539 000001ec: JUMPI 000001ed: DUP1 000001ee: PUSH4 0x7f371461 000001f3: EQ 000001f4: PUSH2 0x054e 000001f7: JUMPI 000001f8: PUSH2 0x02fc 000001fb: JUMP 000001fc: JUMPDEST 000001fd: DUP1 000001fe: PUSH4 0x498ad751 00000203: GT 00000204: PUSH2 0x022d 00000207: JUMPI 00000208: DUP1 00000209: PUSH4 0x498ad751 0000020e: EQ 0000020f: PUSH2 0x04b9 00000212: JUMPI 00000213: DUP1 00000214: PUSH4 0x4dc92fd4 00000219: EQ 0000021a: PUSH2 0x04d9 0000021d: JUMPI 0000021e: DUP1 0000021f: PUSH4 0x5a08a245 00000224: EQ 00000225: PUSH2 0x04f9 00000228: JUMPI 00000229: PUSH2 0x02fc 0000022c: JUMP 0000022d: JUMPDEST 0000022e: DUP1 0000022f: PUSH4 0x3419ba23 00000234: EQ 00000235: PUSH2 0x0479 00000238: JUMPI 00000239: DUP1 0000023a: PUSH4 0x348645d1 0000023f: EQ 00000240: PUSH2 0x0499 00000243: JUMPI 00000244: PUSH2 0x02fc 00000247: JUMP 00000248: JUMPDEST 00000249: DUP1 0000024a: PUSH4 0x12a9aa49 0000024f: GT 00000250: PUSH2 0x02aa 00000253: JUMPI 00000254: DUP1 00000255: PUSH4 0x1c58db4f 0000025a: GT 0000025b: PUSH2 0x0284 0000025e: JUMPI 0000025f: DUP1 00000260: PUSH4 0x1c58db4f 00000265: EQ 00000266: PUSH2 0x0419 00000269: JUMPI 0000026a: DUP1 0000026b: PUSH4 0x1f5a0bbe 00000270: EQ 00000271: PUSH2 0x0439 00000274: JUMPI 00000275: DUP1 00000276: PUSH4 0x24788429 0000027b: EQ 0000027c: PUSH2 0x0459 0000027f: JUMPI 00000280: PUSH2 0x02fc 00000283: JUMP 00000284: JUMPDEST 00000285: DUP1 00000286: PUSH4 0x12a9aa49 0000028b: EQ 0000028c: PUSH2 0x03b9 0000028f: JUMPI 00000290: DUP1 00000291: PUSH4 0x14a08b36 00000296: EQ 00000297: PUSH2 0x03d9 0000029a: JUMPI 0000029b: DUP1 0000029c: PUSH4 0x171c3318 000002a1: EQ 000002a2: PUSH2 0x03f9 000002a5: JUMPI 000002a6: PUSH2 0x02fc 000002a9: JUMP 000002aa: JUMPDEST 000002ab: DUP1 000002ac: PUSH4 0x0de9fac6 000002b1: GT 000002b2: PUSH2 0x02db 000002b5: JUMPI 000002b6: DUP1 000002b7: PUSH4 0x0de9fac6 000002bc: EQ 000002bd: PUSH2 0x0359 000002c0: JUMPI 000002c1: DUP1 000002c2: PUSH4 0x0e801ee1 000002c7: EQ 000002c8: PUSH2 0x0379 000002cb: JUMPI 000002cc: DUP1 000002cd: PUSH4 0x0fd9a255 000002d2: EQ 000002d3: PUSH2 0x0399 000002d6: JUMPI 000002d7: PUSH2 0x02fc 000002da: JUMP 000002db: JUMPDEST 000002dc: DUP1 000002dd: PUSH3 0xeb8ba4 000002e1: EQ 000002e2: PUSH2 0x0301 000002e5: JUMPI 000002e6: DUP1 000002e7: PUSH4 0x077d97d7 000002ec: EQ 000002ed: PUSH2 0x0337 000002f0: JUMPI 000002f1: PUSH2 0x02fc 000002f4: JUMP 000002f5: JUMPDEST 000002f6: CALLDATASIZE 000002f7: PUSH2 0x02fc 000002fa: JUMPI 000002fb: STOP 000002fc: JUMPDEST 000002fd: PUSH1 0x00 000002ff: DUP1 00000300: REVERT 00000301: JUMPDEST 00000302: CALLVALUE 00000303: DUP1 00000304: ISZERO 00000305: PUSH2 0x030d 00000308: JUMPI 00000309: PUSH1 0x00 0000030b: DUP1 0000030c: REVERT 0000030d: JUMPDEST 0000030e: POP 0000030f: PUSH2 0x0321 00000312: PUSH2 0x031c 00000315: CALLDATASIZE 00000316: PUSH1 0x04 00000318: PUSH2 0x4123 0000031b: JUMP 0000031c: JUMPDEST 0000031d: PUSH2 0x08bd 00000320: JUMP 00000321: JUMPDEST 00000322: PUSH1 0x40 00000324: MLOAD 00000325: PUSH2 0x032e 00000328: SWAP2 00000329: SWAP1 0000032a: PUSH2 0x4bc6 0000032d: JUMP 0000032e: JUMPDEST 0000032f: PUSH1 0x40 00000331: MLOAD 00000332: DUP1 00000333: SWAP2 00000334: SUB 00000335: SWAP1 00000336: RETURN 00000337: JUMPDEST 00000338: CALLVALUE 00000339: DUP1 0000033a: ISZERO 0000033b: PUSH2 0x0343 0000033e: JUMPI 0000033f: PUSH1 0x00 00000341: DUP1 00000342: REVERT 00000343: JUMPDEST 00000344: POP 00000345: PUSH2 0x0357 00000348: PUSH2 0x0352 0000034b: CALLDATASIZE 0000034c: PUSH1 0x04 0000034e: PUSH2 0x44dd 00000351: JUMP 00000352: JUMPDEST 00000353: PUSH2 0x099d 00000356: JUMP 00000357: JUMPDEST 00000358: STOP 00000359: JUMPDEST 0000035a: CALLVALUE 0000035b: DUP1 0000035c: ISZERO 0000035d: PUSH2 0x0365 00000360: JUMPI 00000361: PUSH1 0x00 00000363: DUP1 00000364: REVERT 00000365: JUMPDEST 00000366: POP 00000367: PUSH2 0x0321 0000036a: PUSH2 0x0374 0000036d: CALLDATASIZE 0000036e: PUSH1 0x04 00000370: PUSH2 0x4235 00000373: JUMP 00000374: JUMPDEST 00000375: PUSH2 0x0ace 00000378: JUMP 00000379: JUMPDEST 0000037a: CALLVALUE 0000037b: DUP1 0000037c: ISZERO 0000037d: PUSH2 0x0385 00000380: JUMPI 00000381: PUSH1 0x00 00000383: DUP1 00000384: REVERT 00000385: JUMPDEST 00000386: POP 00000387: PUSH2 0x0357 0000038a: PUSH2 0x0394 0000038d: CALLDATASIZE 0000038e: PUSH1 0x04 00000390: PUSH2 0x40eb 00000393: JUMP 00000394: JUMPDEST 00000395: PUSH2 0x0b62 00000398: JUMP 00000399: JUMPDEST 0000039a: CALLVALUE 0000039b: DUP1 0000039c: ISZERO 0000039d: PUSH2 0x03a5 000003a0: JUMPI 000003a1: PUSH1 0x00 000003a3: DUP1 000003a4: REVERT 000003a5: JUMPDEST 000003a6: POP 000003a7: PUSH2 0x0321 000003aa: PUSH2 0x03b4 000003ad: CALLDATASIZE 000003ae: PUSH1 0x04 000003b0: PUSH2 0x4450 000003b3: JUMP 000003b4: JUMPDEST 000003b5: PUSH2 0x0c5d 000003b8: JUMP 000003b9: JUMPDEST 000003ba: CALLVALUE 000003bb: DUP1 000003bc: ISZERO 000003bd: PUSH2 0x03c5 000003c0: JUMPI 000003c1: PUSH1 0x00 000003c3: DUP1 000003c4: REVERT 000003c5: JUMPDEST 000003c6: POP 000003c7: PUSH2 0x0321 000003ca: PUSH2 0x03d4 000003cd: CALLDATASIZE 000003ce: PUSH1 0x04 000003d0: PUSH2 0x4235 000003d3: JUMP 000003d4: JUMPDEST 000003d5: PUSH2 0x0cea 000003d8: JUMP 000003d9: JUMPDEST 000003da: CALLVALUE 000003db: DUP1 000003dc: ISZERO 000003dd: PUSH2 0x03e5 000003e0: JUMPI 000003e1: PUSH1 0x00 000003e3: DUP1 000003e4: REVERT 000003e5: JUMPDEST 000003e6: POP 000003e7: PUSH2 0x0321 000003ea: PUSH2 0x03f4 000003ed: CALLDATASIZE 000003ee: PUSH1 0x04 000003f0: PUSH2 0x4375 000003f3: JUMP 000003f4: JUMPDEST 000003f5: PUSH2 0x0d71 000003f8: JUMP 000003f9: JUMPDEST 000003fa: CALLVALUE 000003fb: DUP1 000003fc: ISZERO 000003fd: PUSH2 0x0405 00000400: JUMPI 00000401: PUSH1 0x00 00000403: DUP1 00000404: REVERT 00000405: JUMPDEST 00000406: POP 00000407: PUSH2 0x0357 0000040a: PUSH2 0x0414 0000040d: CALLDATASIZE 0000040e: PUSH1 0x04 00000410: PUSH2 0x4425 00000413: JUMP 00000414: JUMPDEST 00000415: PUSH2 0x0df8 00000418: JUMP 00000419: JUMPDEST 0000041a: CALLVALUE 0000041b: DUP1 0000041c: ISZERO 0000041d: PUSH2 0x0425 00000420: JUMPI 00000421: PUSH1 0x00 00000423: DUP1 00000424: REVERT 00000425: JUMPDEST 00000426: POP 00000427: PUSH2 0x0357 0000042a: PUSH2 0x0434 0000042d: CALLDATASIZE 0000042e: PUSH1 0x04 00000430: PUSH2 0x465a 00000433: JUMP 00000434: JUMPDEST 00000435: PUSH2 0x10e9 00000438: JUMP 00000439: JUMPDEST 0000043a: CALLVALUE 0000043b: DUP1 0000043c: ISZERO 0000043d: PUSH2 0x0445 00000440: JUMPI 00000441: PUSH1 0x00 00000443: DUP1 00000444: REVERT 00000445: JUMPDEST 00000446: POP 00000447: PUSH2 0x0357 0000044a: PUSH2 0x0454 0000044d: CALLDATASIZE 0000044e: PUSH1 0x04 00000450: PUSH2 0x40eb 00000453: JUMP 00000454: JUMPDEST 00000455: PUSH2 0x11d1 00000458: JUMP 00000459: JUMPDEST 0000045a: CALLVALUE 0000045b: DUP1 0000045c: ISZERO 0000045d: PUSH2 0x0465 00000460: JUMPI 00000461: PUSH1 0x00 00000463: DUP1 00000464: REVERT 00000465: JUMPDEST 00000466: POP 00000467: PUSH2 0x0357 0000046a: PUSH2 0x0474 0000046d: CALLDATASIZE 0000046e: PUSH1 0x04 00000470: PUSH2 0x40eb 00000473: JUMP 00000474: JUMPDEST 00000475: PUSH2 0x12e5 00000478: JUMP 00000479: JUMPDEST 0000047a: CALLVALUE 0000047b: DUP1 0000047c: ISZERO 0000047d: PUSH2 0x0485 00000480: JUMPI 00000481: PUSH1 0x00 00000483: DUP1 00000484: REVERT 00000485: JUMPDEST 00000486: POP 00000487: PUSH2 0x0357 0000048a: PUSH2 0x0494 0000048d: CALLDATASIZE 0000048e: PUSH1 0x04 00000490: PUSH2 0x4123 00000493: JUMP 00000494: JUMPDEST 00000495: PUSH2 0x13f3 00000498: JUMP 00000499: JUMPDEST 0000049a: CALLVALUE 0000049b: DUP1 0000049c: ISZERO 0000049d: PUSH2 0x04a5 000004a0: JUMPI 000004a1: PUSH1 0x00 000004a3: DUP1 000004a4: REVERT 000004a5: JUMPDEST 000004a6: POP 000004a7: PUSH2 0x0321 000004aa: PUSH2 0x04b4 000004ad: CALLDATASIZE 000004ae: PUSH1 0x04 000004b0: PUSH2 0x4287 000004b3: JUMP 000004b4: JUMPDEST 000004b5: PUSH2 0x1476 000004b8: JUMP 000004b9: JUMPDEST 000004ba: CALLVALUE 000004bb: DUP1 000004bc: ISZERO 000004bd: PUSH2 0x04c5 000004c0: JUMPI 000004c1: PUSH1 0x00 000004c3: DUP1 000004c4: REVERT 000004c5: JUMPDEST 000004c6: POP 000004c7: PUSH2 0x0321 000004ca: PUSH2 0x04d4 000004cd: CALLDATASIZE 000004ce: PUSH1 0x04 000004d0: PUSH2 0x4325 000004d3: JUMP 000004d4: JUMPDEST 000004d5: PUSH2 0x151c 000004d8: JUMP 000004d9: JUMPDEST 000004da: CALLVALUE 000004db: DUP1 000004dc: ISZERO 000004dd: PUSH2 0x04e5 000004e0: JUMPI 000004e1: PUSH1 0x00 000004e3: DUP1 000004e4: REVERT 000004e5: JUMPDEST 000004e6: POP 000004e7: PUSH2 0x0357 000004ea: PUSH2 0x04f4 000004ed: CALLDATASIZE 000004ee: PUSH1 0x04 000004f0: PUSH2 0x468a 000004f3: JUMP 000004f4: JUMPDEST 000004f5: PUSH2 0x15b6 000004f8: JUMP 000004f9: JUMPDEST 000004fa: CALLVALUE 000004fb: DUP1 000004fc: ISZERO 000004fd: PUSH2 0x0505 00000500: JUMPI 00000501: PUSH1 0x00 00000503: DUP1 00000504: REVERT 00000505: JUMPDEST 00000506: POP 00000507: PUSH2 0x0321 0000050a: PUSH2 0x0514 0000050d: CALLDATASIZE 0000050e: PUSH1 0x04 00000510: PUSH2 0x42e0 00000513: JUMP 00000514: JUMPDEST 00000515: PUSH2 0x1782 00000518: JUMP 00000519: JUMPDEST 0000051a: CALLVALUE 0000051b: DUP1 0000051c: ISZERO 0000051d: PUSH2 0x0525 00000520: JUMPI 00000521: PUSH1 0x00 00000523: DUP1 00000524: REVERT 00000525: JUMPDEST 00000526: POP 00000527: PUSH2 0x0321 0000052a: PUSH2 0x0534 0000052d: CALLDATASIZE 0000052e: PUSH1 0x04 00000530: PUSH2 0x43c3 00000533: JUMP 00000534: JUMPDEST 00000535: PUSH2 0x180d 00000538: JUMP 00000539: JUMPDEST 0000053a: CALLVALUE 0000053b: DUP1 0000053c: ISZERO 0000053d: PUSH2 0x0545 00000540: JUMPI 00000541: PUSH1 0x00 00000543: DUP1 00000544: REVERT 00000545: JUMPDEST 00000546: POP 00000547: PUSH2 0x0357 0000054a: PUSH2 0x1897 0000054d: JUMP 0000054e: JUMPDEST 0000054f: CALLVALUE 00000550: DUP1 00000551: ISZERO 00000552: PUSH2 0x055a 00000555: JUMPI 00000556: PUSH1 0x00 00000558: DUP1 00000559: REVERT 0000055a: JUMPDEST 0000055b: POP 0000055c: PUSH2 0x0357 0000055f: PUSH2 0x0569 00000562: CALLDATASIZE 00000563: PUSH1 0x04 00000565: PUSH2 0x468a 00000568: JUMP 00000569: JUMPDEST 0000056a: PUSH2 0x1979 0000056d: JUMP 0000056e: JUMPDEST 0000056f: CALLVALUE 00000570: DUP1 00000571: ISZERO 00000572: PUSH2 0x057a 00000575: JUMPI 00000576: PUSH1 0x00 00000578: DUP1 00000579: REVERT 0000057a: JUMPDEST 0000057b: POP 0000057c: PUSH2 0x0583 0000057f: PUSH2 0x1a9b 00000582: JUMP 00000583: JUMPDEST 00000584: PUSH1 0x40 00000586: MLOAD 00000587: PUSH2 0x032e 0000058a: SWAP2 0000058b: SWAP1 0000058c: PUSH2 0x4710 0000058f: JUMP 00000590: JUMPDEST 00000591: CALLVALUE 00000592: DUP1 00000593: ISZERO 00000594: PUSH2 0x059c 00000597: JUMPI 00000598: PUSH1 0x00 0000059a: DUP1 0000059b: REVERT 0000059c: JUMPDEST 0000059d: POP 0000059e: PUSH2 0x05b0 000005a1: PUSH2 0x05ab 000005a4: CALLDATASIZE 000005a5: PUSH1 0x04 000005a7: PUSH2 0x40eb 000005aa: JUMP 000005ab: JUMPDEST 000005ac: PUSH2 0x1ab7 000005af: JUMP 000005b0: JUMPDEST 000005b1: PUSH1 0x40 000005b3: MLOAD 000005b4: PUSH2 0x032e 000005b7: SWAP2 000005b8: SWAP1 000005b9: PUSH2 0x4840 000005bc: JUMP 000005bd: JUMPDEST 000005be: CALLVALUE 000005bf: DUP1 000005c0: ISZERO 000005c1: PUSH2 0x05c9 000005c4: JUMPI 000005c5: PUSH1 0x00 000005c7: DUP1 000005c8: REVERT 000005c9: JUMPDEST 000005ca: POP 000005cb: PUSH2 0x0321 000005ce: PUSH2 0x05d8 000005d1: CALLDATASIZE 000005d2: PUSH1 0x04 000005d4: PUSH2 0x40eb 000005d7: JUMP 000005d8: JUMPDEST 000005d9: PUSH2 0x1acc 000005dc: JUMP 000005dd: JUMPDEST 000005de: CALLVALUE 000005df: DUP1 000005e0: ISZERO 000005e1: PUSH2 0x05e9 000005e4: JUMPI 000005e5: PUSH1 0x00 000005e7: DUP1 000005e8: REVERT 000005e9: JUMPDEST 000005ea: POP 000005eb: PUSH2 0x0357 000005ee: PUSH2 0x05f8 000005f1: CALLDATASIZE 000005f2: PUSH1 0x04 000005f4: PUSH2 0x4425 000005f7: JUMP 000005f8: JUMPDEST 000005f9: PUSH2 0x1bb1 000005fc: JUMP 000005fd: JUMPDEST 000005fe: CALLVALUE 000005ff: DUP1 00000600: ISZERO 00000601: PUSH2 0x0609 00000604: JUMPI 00000605: PUSH1 0x00 00000607: DUP1 00000608: REVERT 00000609: JUMPDEST 0000060a: POP 0000060b: PUSH2 0x05b0 0000060e: PUSH2 0x0618 00000611: CALLDATASIZE 00000612: PUSH1 0x04 00000614: PUSH2 0x40eb 00000617: JUMP 00000618: JUMPDEST 00000619: PUSH2 0x1c8d 0000061c: JUMP 0000061d: JUMPDEST 0000061e: CALLVALUE 0000061f: DUP1 00000620: ISZERO 00000621: PUSH2 0x0629 00000624: JUMPI 00000625: PUSH1 0x00 00000627: DUP1 00000628: REVERT 00000629: JUMPDEST 0000062a: POP 0000062b: PUSH2 0x0583 0000062e: PUSH2 0x0638 00000631: CALLDATASIZE 00000632: PUSH1 0x04 00000634: PUSH2 0x40eb 00000637: JUMP 00000638: JUMPDEST 00000639: PUSH2 0x1ca2 0000063c: JUMP 0000063d: JUMPDEST 0000063e: CALLVALUE 0000063f: DUP1 00000640: ISZERO 00000641: PUSH2 0x0649 00000644: JUMPI 00000645: PUSH1 0x00 00000647: DUP1 00000648: REVERT 00000649: JUMPDEST 0000064a: POP 0000064b: PUSH2 0x0357 0000064e: PUSH2 0x0658 00000651: CALLDATASIZE 00000652: PUSH1 0x04 00000654: PUSH2 0x4486 00000657: JUMP 00000658: JUMPDEST 00000659: PUSH2 0x1cca 0000065c: JUMP 0000065d: JUMPDEST 0000065e: CALLVALUE 0000065f: DUP1 00000660: ISZERO 00000661: PUSH2 0x0669 00000664: JUMPI 00000665: PUSH1 0x00 00000667: DUP1 00000668: REVERT 00000669: JUMPDEST 0000066a: POP 0000066b: PUSH2 0x0357 0000066e: PUSH2 0x0678 00000671: CALLDATASIZE 00000672: PUSH1 0x04 00000674: PUSH2 0x415b 00000677: JUMP 00000678: JUMPDEST 00000679: PUSH2 0x1da0 0000067c: JUMP 0000067d: JUMPDEST 0000067e: CALLVALUE 0000067f: DUP1 00000680: ISZERO 00000681: PUSH2 0x0689 00000684: JUMPI 00000685: PUSH1 0x00 00000687: DUP1 00000688: REVERT 00000689: JUMPDEST 0000068a: POP 0000068b: PUSH2 0x0357 0000068e: PUSH2 0x0698 00000691: CALLDATASIZE 00000692: PUSH1 0x04 00000694: PUSH2 0x4425 00000697: JUMP 00000698: JUMPDEST 00000699: PUSH2 0x1e2b 0000069c: JUMP 0000069d: JUMPDEST 0000069e: CALLVALUE 0000069f: DUP1 000006a0: ISZERO 000006a1: PUSH2 0x06a9 000006a4: JUMPI 000006a5: PUSH1 0x00 000006a7: DUP1 000006a8: REVERT 000006a9: JUMPDEST 000006aa: POP 000006ab: PUSH2 0x0357 000006ae: PUSH2 0x06b8 000006b1: CALLDATASIZE 000006b2: PUSH1 0x04 000006b4: PUSH2 0x416d 000006b7: JUMP 000006b8: JUMPDEST 000006b9: PUSH2 0x1eed 000006bc: JUMP 000006bd: JUMPDEST 000006be: CALLVALUE 000006bf: DUP1 000006c0: ISZERO 000006c1: PUSH2 0x06c9 000006c4: JUMPI 000006c5: PUSH1 0x00 000006c7: DUP1 000006c8: REVERT 000006c9: JUMPDEST 000006ca: POP 000006cb: PUSH2 0x0583 000006ce: PUSH2 0x06d8 000006d1: CALLDATASIZE 000006d2: PUSH1 0x04 000006d4: PUSH2 0x4425 000006d7: JUMP 000006d8: JUMPDEST 000006d9: PUSH2 0x203a 000006dc: JUMP 000006dd: JUMPDEST 000006de: CALLVALUE 000006df: DUP1 000006e0: ISZERO 000006e1: PUSH2 0x06e9 000006e4: JUMPI 000006e5: PUSH1 0x00 000006e7: DUP1 000006e8: REVERT 000006e9: JUMPDEST 000006ea: POP 000006eb: PUSH2 0x0357 000006ee: PUSH2 0x06f8 000006f1: CALLDATASIZE 000006f2: PUSH1 0x04 000006f4: PUSH2 0x4450 000006f7: JUMP 000006f8: JUMPDEST 000006f9: PUSH2 0x207c 000006fc: JUMP 000006fd: JUMPDEST 000006fe: CALLVALUE 000006ff: DUP1 00000700: ISZERO 00000701: PUSH2 0x0709 00000704: JUMPI 00000705: PUSH1 0x00 00000707: DUP1 00000708: REVERT 00000709: JUMPDEST 0000070a: POP 0000070b: PUSH2 0x0321 0000070e: PUSH2 0x0718 00000711: CALLDATASIZE 00000712: PUSH1 0x04 00000714: PUSH2 0x41f5 00000717: JUMP 00000718: JUMPDEST 00000719: PUSH2 0x20fa 0000071c: JUMP 0000071d: JUMPDEST 0000071e: CALLVALUE 0000071f: DUP1 00000720: ISZERO 00000721: PUSH2 0x0729 00000724: JUMPI 00000725: PUSH1 0x00 00000727: DUP1 00000728: REVERT 00000729: JUMPDEST 0000072a: POP 0000072b: PUSH2 0x0357 0000072e: PUSH2 0x0738 00000731: CALLDATASIZE 00000732: PUSH1 0x04 00000734: PUSH2 0x40eb 00000737: JUMP 00000738: JUMPDEST 00000739: PUSH2 0x252a 0000073c: JUMP 0000073d: JUMPDEST 0000073e: CALLVALUE 0000073f: DUP1 00000740: ISZERO 00000741: PUSH2 0x0749 00000744: JUMPI 00000745: PUSH1 0x00 00000747: DUP1 00000748: REVERT 00000749: JUMPDEST 0000074a: POP 0000074b: PUSH2 0x0357 0000074e: PUSH2 0x0758 00000751: CALLDATASIZE 00000752: PUSH1 0x04 00000754: PUSH2 0x41f5 00000757: JUMP 00000758: JUMPDEST 00000759: PUSH2 0x25e4 0000075c: JUMP 0000075d: JUMPDEST 0000075e: CALLVALUE 0000075f: DUP1 00000760: ISZERO 00000761: PUSH2 0x0769 00000764: JUMPI 00000765: PUSH1 0x00 00000767: DUP1 00000768: REVERT 00000769: JUMPDEST 0000076a: POP 0000076b: PUSH2 0x0321 0000076e: PUSH2 0x0778 00000771: CALLDATASIZE 00000772: PUSH1 0x04 00000774: PUSH2 0x41f5 00000777: JUMP 00000778: JUMPDEST 00000779: PUSH2 0x2662 0000077c: JUMP 0000077d: JUMPDEST 0000077e: CALLVALUE 0000077f: DUP1 00000780: ISZERO 00000781: PUSH2 0x0789 00000784: JUMPI 00000785: PUSH1 0x00 00000787: DUP1 00000788: REVERT 00000789: JUMPDEST 0000078a: POP 0000078b: PUSH2 0x0583 0000078e: PUSH2 0x0798 00000791: CALLDATASIZE 00000792: PUSH1 0x04 00000794: PUSH2 0x40eb 00000797: JUMP 00000798: JUMPDEST 00000799: PUSH2 0x27b6 0000079c: JUMP 0000079d: JUMPDEST 0000079e: CALLVALUE 0000079f: DUP1 000007a0: ISZERO 000007a1: PUSH2 0x07a9 000007a4: JUMPI 000007a5: PUSH1 0x00 000007a7: DUP1 000007a8: REVERT 000007a9: JUMPDEST 000007aa: POP 000007ab: PUSH2 0x05b0 000007ae: PUSH2 0x07b8 000007b1: CALLDATASIZE 000007b2: PUSH1 0x04 000007b4: PUSH2 0x40eb 000007b7: JUMP 000007b8: JUMPDEST 000007b9: PUSH2 0x27de 000007bc: JUMP 000007bd: JUMPDEST 000007be: CALLVALUE 000007bf: DUP1 000007c0: ISZERO 000007c1: PUSH2 0x07c9 000007c4: JUMPI 000007c5: PUSH1 0x00 000007c7: DUP1 000007c8: REVERT 000007c9: JUMPDEST 000007ca: POP 000007cb: PUSH2 0x0321 000007ce: PUSH2 0x07d8 000007d1: CALLDATASIZE 000007d2: PUSH1 0x04 000007d4: PUSH2 0x4287 000007d7: JUMP 000007d8: JUMPDEST 000007d9: PUSH2 0x27f3 000007dc: JUMP 000007dd: JUMPDEST 000007de: CALLVALUE 000007df: DUP1 000007e0: ISZERO 000007e1: PUSH2 0x07e9 000007e4: JUMPI 000007e5: PUSH1 0x00 000007e7: DUP1 000007e8: REVERT 000007e9: JUMPDEST 000007ea: POP 000007eb: PUSH2 0x0357 000007ee: PUSH2 0x07f8 000007f1: CALLDATASIZE 000007f2: PUSH1 0x04 000007f4: PUSH2 0x465a 000007f7: JUMP 000007f8: JUMPDEST 000007f9: PUSH2 0x288d 000007fc: JUMP 000007fd: JUMPDEST 000007fe: CALLVALUE 000007ff: DUP1 00000800: ISZERO 00000801: PUSH2 0x0809 00000804: JUMPI 00000805: PUSH1 0x00 00000807: DUP1 00000808: REVERT 00000809: JUMPDEST 0000080a: POP 0000080b: PUSH2 0x0357 0000080e: PUSH2 0x0818 00000811: CALLDATASIZE 00000812: PUSH1 0x04 00000814: PUSH2 0x4123 00000817: JUMP 00000818: JUMPDEST 00000819: PUSH2 0x294d 0000081c: JUMP 0000081d: JUMPDEST 0000081e: CALLVALUE 0000081f: DUP1 00000820: ISZERO 00000821: PUSH2 0x0829 00000824: JUMPI 00000825: PUSH1 0x00 00000827: DUP1 00000828: REVERT 00000829: JUMPDEST 0000082a: POP 0000082b: PUSH2 0x0357 0000082e: PUSH2 0x0838 00000831: CALLDATASIZE 00000832: PUSH1 0x04 00000834: PUSH2 0x40eb 00000837: JUMP 00000838: JUMPDEST 00000839: PUSH2 0x2a13 0000083c: JUMP 0000083d: JUMPDEST 0000083e: CALLVALUE 0000083f: DUP1 00000840: ISZERO 00000841: PUSH2 0x0849 00000844: JUMPI 00000845: PUSH1 0x00 00000847: DUP1 00000848: REVERT 00000849: JUMPDEST 0000084a: POP 0000084b: PUSH2 0x0357 0000084e: PUSH2 0x0858 00000851: CALLDATASIZE 00000852: PUSH1 0x04 00000854: PUSH2 0x4425 00000857: JUMP 00000858: JUMPDEST 00000859: PUSH2 0x2b60 0000085c: JUMP 0000085d: JUMPDEST 0000085e: CALLVALUE 0000085f: DUP1 00000860: ISZERO 00000861: PUSH2 0x0869 00000864: JUMPI 00000865: PUSH1 0x00 00000867: DUP1 00000868: REVERT 00000869: JUMPDEST 0000086a: POP 0000086b: PUSH2 0x0321 0000086e: PUSH2 0x0878 00000871: CALLDATASIZE 00000872: PUSH1 0x04 00000874: PUSH2 0x4325 00000877: JUMP 00000878: JUMPDEST 00000879: PUSH2 0x2bde 0000087c: JUMP 0000087d: JUMPDEST 0000087e: CALLVALUE 0000087f: DUP1 00000880: ISZERO 00000881: PUSH2 0x0889 00000884: JUMPI 00000885: PUSH1 0x00 00000887: DUP1 00000888: REVERT 00000889: JUMPDEST 0000088a: POP 0000088b: PUSH2 0x0357 0000088e: PUSH2 0x0898 00000891: CALLDATASIZE 00000892: PUSH1 0x04 00000894: PUSH2 0x40eb 00000897: JUMP 00000898: JUMPDEST 00000899: PUSH2 0x2c6b 0000089c: JUMP 0000089d: JUMPDEST 0000089e: CALLVALUE 0000089f: DUP1 000008a0: ISZERO 000008a1: PUSH2 0x08a9 000008a4: JUMPI 000008a5: PUSH1 0x00 000008a7: DUP1 000008a8: REVERT 000008a9: JUMPDEST 000008aa: POP 000008ab: PUSH2 0x0321 000008ae: PUSH2 0x08b8 000008b1: CALLDATASIZE 000008b2: PUSH1 0x04 000008b4: PUSH2 0x42e0 000008b7: JUMP 000008b8: JUMPDEST 000008b9: PUSH2 0x2cf6 000008bc: JUMP 000008bd: JUMPDEST 000008be: PUSH1 0x00 000008c0: DUP1 000008c1: JUMPDEST 000008c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008d7: DUP5 000008d8: AND 000008d9: PUSH1 0x00 000008db: SWAP1 000008dc: DUP2 000008dd: MSTORE 000008de: PUSH1 0x04 000008e0: PUSH1 0x20 000008e2: MSTORE 000008e3: PUSH1 0x40 000008e5: SWAP1 000008e6: KECCAK256 000008e7: SLOAD 000008e8: DUP2 000008e9: LT 000008ea: ISZERO 000008eb: PUSH2 0x095b 000008ee: JUMPI 000008ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000904: DUP5 00000905: DUP2 00000906: AND 00000907: PUSH1 0x00 00000909: SWAP1 0000090a: DUP2 0000090b: MSTORE 0000090c: PUSH1 0x04 0000090e: PUSH1 0x20 00000910: MSTORE 00000911: PUSH1 0x40 00000913: SWAP1 00000914: KECCAK256 00000915: DUP1 00000916: SLOAD 00000917: SWAP2 00000918: DUP6 00000919: AND 0000091a: SWAP2 0000091b: DUP4 0000091c: SWAP1 0000091d: DUP2 0000091e: LT 0000091f: PUSH2 0x0924 00000922: JUMPI 00000923: INVALID 00000924: JUMPDEST 00000925: PUSH1 0x00 00000927: SWAP2 00000928: DUP3 00000929: MSTORE 0000092a: PUSH1 0x20 0000092c: SWAP1 0000092d: SWAP2 0000092e: KECCAK256 0000092f: ADD 00000930: SLOAD 00000931: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000946: AND 00000947: EQ 00000948: ISZERO 00000949: PUSH2 0x0953 0000094c: JUMPI 0000094d: SWAP1 0000094e: POP 0000094f: PUSH2 0x0997 00000952: JUMP 00000953: JUMPDEST 00000954: PUSH1 0x01 00000956: ADD 00000957: PUSH2 0x08c1 0000095a: JUMP 0000095b: JUMPDEST 0000095c: POP 0000095d: PUSH1 0x40 0000095f: MLOAD 00000960: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000981: DUP2 00000982: MSTORE 00000983: PUSH1 0x04 00000985: ADD 00000986: PUSH2 0x098e 00000989: SWAP1 0000098a: PUSH2 0x490a 0000098d: JUMP 0000098e: JUMPDEST 0000098f: PUSH1 0x40 00000991: MLOAD 00000992: DUP1 00000993: SWAP2 00000994: SUB 00000995: SWAP1 00000996: REVERT 00000997: JUMPDEST 00000998: SWAP3 00000999: SWAP2 0000099a: POP 0000099b: POP 0000099c: JUMP 0000099d: JUMPDEST 0000099e: PUSH2 0x09a5 000009a1: PUSH2 0x2d72 000009a4: JUMP 000009a5: JUMPDEST 000009a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009bb: AND 000009bc: PUSH2 0x09c3 000009bf: PUSH2 0x1a9b 000009c2: JUMP 000009c3: JUMPDEST 000009c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009d9: AND 000009da: EQ 000009db: PUSH2 0x0a10 000009de: JUMPI 000009df: PUSH1 0x40 000009e1: MLOAD 000009e2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000a03: DUP2 00000a04: MSTORE 00000a05: PUSH1 0x04 00000a07: ADD 00000a08: PUSH2 0x098e 00000a0b: SWAP1 00000a0c: PUSH2 0x4a43 00000a0f: JUMP 00000a10: JUMPDEST 00000a11: PUSH1 0x00 00000a13: JUMPDEST 00000a14: DUP4 00000a15: MLOAD 00000a16: DUP2 00000a17: LT 00000a18: ISZERO 00000a19: PUSH2 0x0ac8 00000a1c: JUMPI 00000a1d: DUP4 00000a1e: DUP2 00000a1f: DUP2 00000a20: MLOAD 00000a21: DUP2 00000a22: LT 00000a23: PUSH2 0x0a28 00000a26: JUMPI 00000a27: INVALID 00000a28: JUMPDEST 00000a29: PUSH1 0x20 00000a2b: MUL 00000a2c: PUSH1 0x20 00000a2e: ADD 00000a2f: ADD 00000a30: MLOAD 00000a31: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a46: AND 00000a47: DUP4 00000a48: DUP3 00000a49: DUP2 00000a4a: MLOAD 00000a4b: DUP2 00000a4c: LT 00000a4d: PUSH2 0x0a52 00000a50: JUMPI 00000a51: INVALID 00000a52: JUMPDEST 00000a53: PUSH1 0x20 00000a55: MUL 00000a56: PUSH1 0x20 00000a58: ADD 00000a59: ADD 00000a5a: MLOAD 00000a5b: DUP4 00000a5c: DUP4 00000a5d: DUP2 00000a5e: MLOAD 00000a5f: DUP2 00000a60: LT 00000a61: PUSH2 0x0a66 00000a64: JUMPI 00000a65: INVALID 00000a66: JUMPDEST 00000a67: PUSH1 0x20 00000a69: MUL 00000a6a: PUSH1 0x20 00000a6c: ADD 00000a6d: ADD 00000a6e: MLOAD 00000a6f: PUSH1 0x40 00000a71: MLOAD 00000a72: PUSH2 0x0a7b 00000a75: SWAP2 00000a76: SWAP1 00000a77: PUSH2 0x46f1 00000a7a: JUMP 00000a7b: JUMPDEST 00000a7c: PUSH1 0x00 00000a7e: PUSH1 0x40 00000a80: MLOAD 00000a81: DUP1 00000a82: DUP4 00000a83: SUB 00000a84: DUP2 00000a85: DUP6 00000a86: DUP8 00000a87: GAS 00000a88: CALL 00000a89: SWAP3 00000a8a: POP 00000a8b: POP 00000a8c: POP 00000a8d: RETURNDATASIZE 00000a8e: DUP1 00000a8f: PUSH1 0x00 00000a91: DUP2 00000a92: EQ 00000a93: PUSH2 0x0ab8 00000a96: JUMPI 00000a97: PUSH1 0x40 00000a99: MLOAD 00000a9a: SWAP2 00000a9b: POP 00000a9c: PUSH1 0x1f 00000a9e: NOT 00000a9f: PUSH1 0x3f 00000aa1: RETURNDATASIZE 00000aa2: ADD 00000aa3: AND 00000aa4: DUP3 00000aa5: ADD 00000aa6: PUSH1 0x40 00000aa8: MSTORE 00000aa9: RETURNDATASIZE 00000aaa: DUP3 00000aab: MSTORE 00000aac: RETURNDATASIZE 00000aad: PUSH1 0x00 00000aaf: PUSH1 0x20 00000ab1: DUP5 00000ab2: ADD 00000ab3: RETURNDATACOPY 00000ab4: PUSH2 0x0abd 00000ab7: JUMP 00000ab8: JUMPDEST 00000ab9: PUSH1 0x60 00000abb: SWAP2 00000abc: POP 00000abd: JUMPDEST 00000abe: POP 00000abf: POP 00000ac0: POP 00000ac1: PUSH1 0x01 00000ac3: ADD 00000ac4: PUSH2 0x0a13 00000ac7: JUMP 00000ac8: JUMPDEST 00000ac9: POP 00000aca: POP 00000acb: POP 00000acc: POP 00000acd: JUMP 00000ace: JUMPDEST 00000acf: PUSH1 0x00 00000ad1: CALLER 00000ad2: PUSH2 0x0ad9 00000ad5: PUSH2 0x1a9b 00000ad8: JUMP 00000ad9: JUMPDEST 00000ada: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000aef: AND 00000af0: EQ 00000af1: DUP1 00000af2: PUSH2 0x0b0a 00000af5: JUMPI 00000af6: POP 00000af7: CALLER 00000af8: PUSH1 0x00 00000afa: SWAP1 00000afb: DUP2 00000afc: MSTORE 00000afd: PUSH1 0x01 00000aff: PUSH1 0x20 00000b01: MSTORE 00000b02: PUSH1 0x40 00000b04: SWAP1 00000b05: KECCAK256 00000b06: SLOAD 00000b07: PUSH1 0xff 00000b09: AND 00000b0a: JUMPDEST 00000b0b: PUSH2 0x0b40 00000b0e: JUMPI 00000b0f: PUSH1 0x40 00000b11: MLOAD 00000b12: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000b33: DUP2 00000b34: MSTORE 00000b35: PUSH1 0x04 00000b37: ADD 00000b38: PUSH2 0x098e 00000b3b: SWAP1 00000b3c: PUSH2 0x4a78 00000b3f: JUMP 00000b40: JUMPDEST 00000b41: PUSH1 0x00 00000b43: PUSH2 0x0b4d 00000b46: DUP7 00000b47: DUP7 00000b48: DUP7 00000b49: PUSH2 0x2662 00000b4c: JUMP 00000b4d: JUMPDEST 00000b4e: SWAP1 00000b4f: POP 00000b50: PUSH2 0x0b59 00000b53: DUP4 00000b54: DUP3 00000b55: PUSH2 0x1bb1 00000b58: JUMP 00000b59: JUMPDEST 00000b5a: SWAP6 00000b5b: SWAP5 00000b5c: POP 00000b5d: POP 00000b5e: POP 00000b5f: POP 00000b60: POP 00000b61: JUMP 00000b62: JUMPDEST 00000b63: CALLER 00000b64: PUSH2 0x0b6b 00000b67: PUSH2 0x1a9b 00000b6a: JUMP 00000b6b: JUMPDEST 00000b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b81: AND 00000b82: EQ 00000b83: DUP1 00000b84: PUSH2 0x0b9c 00000b87: JUMPI 00000b88: POP 00000b89: CALLER 00000b8a: PUSH1 0x00 00000b8c: SWAP1 00000b8d: DUP2 00000b8e: MSTORE 00000b8f: PUSH1 0x01 00000b91: PUSH1 0x20 00000b93: MSTORE 00000b94: PUSH1 0x40 00000b96: SWAP1 00000b97: KECCAK256 00000b98: SLOAD 00000b99: PUSH1 0xff 00000b9b: AND 00000b9c: JUMPDEST 00000b9d: PUSH2 0x0bd2 00000ba0: JUMPI 00000ba1: PUSH1 0x40 00000ba3: MLOAD 00000ba4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000bc5: DUP2 00000bc6: MSTORE 00000bc7: PUSH1 0x04 00000bc9: ADD 00000bca: PUSH2 0x098e 00000bcd: SWAP1 00000bce: PUSH2 0x4a78 00000bd1: JUMP 00000bd2: JUMPDEST 00000bd3: PUSH1 0x02 00000bd5: SLOAD 00000bd6: PUSH1 0x40 00000bd8: MLOAD 00000bd9: PUSH32 0xdd289d6000000000000000000000000000000000000000000000000000000000 00000bfa: DUP2 00000bfb: MSTORE 00000bfc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c11: SWAP1 00000c12: SWAP2 00000c13: AND 00000c14: SWAP1 00000c15: PUSH4 0xdd289d60 00000c1a: SWAP1 00000c1b: PUSH2 0x0c28 00000c1e: SWAP1 00000c1f: DUP5 00000c20: SWAP1 00000c21: PUSH1 0x04 00000c23: ADD 00000c24: PUSH2 0x4710 00000c27: JUMP 00000c28: JUMPDEST 00000c29: PUSH1 0x00 00000c2b: PUSH1 0x40 00000c2d: MLOAD 00000c2e: DUP1 00000c2f: DUP4 00000c30: SUB 00000c31: DUP2 00000c32: PUSH1 0x00 00000c34: DUP8 00000c35: DUP1 00000c36: EXTCODESIZE 00000c37: ISZERO 00000c38: DUP1 00000c39: ISZERO 00000c3a: PUSH2 0x0c42 00000c3d: JUMPI 00000c3e: PUSH1 0x00 00000c40: DUP1 00000c41: REVERT 00000c42: JUMPDEST 00000c43: POP 00000c44: GAS 00000c45: CALL 00000c46: ISZERO 00000c47: DUP1 00000c48: ISZERO 00000c49: PUSH2 0x0c56 00000c4c: JUMPI 00000c4d: RETURNDATASIZE 00000c4e: PUSH1 0x00 00000c50: DUP1 00000c51: RETURNDATACOPY 00000c52: RETURNDATASIZE 00000c53: PUSH1 0x00 00000c55: REVERT 00000c56: JUMPDEST 00000c57: POP 00000c58: POP 00000c59: POP 00000c5a: POP 00000c5b: POP 00000c5c: JUMP 00000c5d: JUMPDEST 00000c5e: PUSH1 0x00 00000c60: CALLER 00000c61: PUSH2 0x0c68 00000c64: PUSH2 0x1a9b 00000c67: JUMP 00000c68: JUMPDEST 00000c69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c7e: AND 00000c7f: EQ 00000c80: DUP1 00000c81: PUSH2 0x0c99 00000c84: JUMPI 00000c85: POP 00000c86: CALLER 00000c87: PUSH1 0x00 00000c89: SWAP1 00000c8a: DUP2 00000c8b: MSTORE 00000c8c: PUSH1 0x01 00000c8e: PUSH1 0x20 00000c90: MSTORE 00000c91: PUSH1 0x40 00000c93: SWAP1 00000c94: KECCAK256 00000c95: SLOAD 00000c96: PUSH1 0xff 00000c98: AND 00000c99: JUMPDEST 00000c9a: PUSH2 0x0ccf 00000c9d: JUMPI 00000c9e: PUSH1 0x40 00000ca0: MLOAD 00000ca1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000cc2: DUP2 00000cc3: MSTORE 00000cc4: PUSH1 0x04 00000cc6: ADD 00000cc7: PUSH2 0x098e 00000cca: SWAP1 00000ccb: PUSH2 0x4a78 00000cce: JUMP 00000ccf: JUMPDEST 00000cd0: PUSH2 0x0cd9 00000cd3: DUP3 00000cd4: DUP5 00000cd5: PUSH2 0x1e2b 00000cd8: JUMP 00000cd9: JUMPDEST 00000cda: PUSH2 0x0ce3 00000cdd: DUP5 00000cde: DUP5 00000cdf: PUSH2 0x0df8 00000ce2: JUMP 00000ce3: JUMPDEST 00000ce4: SWAP4 00000ce5: SWAP3 00000ce6: POP 00000ce7: POP 00000ce8: POP 00000ce9: JUMP 00000cea: JUMPDEST 00000ceb: PUSH1 0x00 00000ced: CALLER 00000cee: PUSH2 0x0cf5 00000cf1: PUSH2 0x1a9b 00000cf4: JUMP 00000cf5: JUMPDEST 00000cf6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d0b: AND 00000d0c: EQ 00000d0d: DUP1 00000d0e: PUSH2 0x0d26 00000d11: JUMPI 00000d12: POP 00000d13: CALLER 00000d14: PUSH1 0x00 00000d16: SWAP1 00000d17: DUP2 00000d18: MSTORE 00000d19: PUSH1 0x01 00000d1b: PUSH1 0x20 00000d1d: MSTORE 00000d1e: PUSH1 0x40 00000d20: SWAP1 00000d21: KECCAK256 00000d22: SLOAD 00000d23: PUSH1 0xff 00000d25: AND 00000d26: JUMPDEST 00000d27: PUSH2 0x0d5c 00000d2a: JUMPI 00000d2b: PUSH1 0x40 00000d2d: MLOAD 00000d2e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000d4f: DUP2 00000d50: MSTORE 00000d51: PUSH1 0x04 00000d53: ADD 00000d54: PUSH2 0x098e 00000d57: SWAP1 00000d58: PUSH2 0x4a78 00000d5b: JUMP 00000d5c: JUMPDEST 00000d5d: PUSH2 0x0d66 00000d60: DUP3 00000d61: DUP5 00000d62: PUSH2 0x1e2b 00000d65: JUMP 00000d66: JUMPDEST 00000d67: PUSH2 0x0b59 00000d6a: DUP6 00000d6b: DUP6 00000d6c: DUP6 00000d6d: PUSH2 0x20fa 00000d70: JUMP 00000d71: JUMPDEST 00000d72: PUSH1 0x00 00000d74: CALLER 00000d75: PUSH2 0x0d7c 00000d78: PUSH2 0x1a9b 00000d7b: JUMP 00000d7c: JUMPDEST 00000d7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d92: AND 00000d93: EQ 00000d94: DUP1 00000d95: PUSH2 0x0dad 00000d98: JUMPI 00000d99: POP 00000d9a: CALLER 00000d9b: PUSH1 0x00 00000d9d: SWAP1 00000d9e: DUP2 00000d9f: MSTORE 00000da0: PUSH1 0x01 00000da2: PUSH1 0x20 00000da4: MSTORE 00000da5: PUSH1 0x40 00000da7: SWAP1 00000da8: KECCAK256 00000da9: SLOAD 00000daa: PUSH1 0xff 00000dac: AND 00000dad: JUMPDEST 00000dae: PUSH2 0x0de3 00000db1: JUMPI 00000db2: PUSH1 0x40 00000db4: MLOAD 00000db5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000dd6: DUP2 00000dd7: MSTORE 00000dd8: PUSH1 0x04 00000dda: ADD 00000ddb: PUSH2 0x098e 00000dde: SWAP1 00000ddf: PUSH2 0x4a78 00000de2: JUMP 00000de3: JUMPDEST 00000de4: PUSH1 0x00 00000de6: PUSH2 0x0df0 00000de9: DUP5 00000dea: DUP5 00000deb: DUP4 00000dec: PUSH2 0x2d76 00000def: JUMP 00000df0: JUMPDEST 00000df1: SWAP5 00000df2: SWAP4 00000df3: POP 00000df4: POP 00000df5: POP 00000df6: POP 00000df7: JUMP 00000df8: JUMPDEST 00000df9: CALLER 00000dfa: PUSH2 0x0e01 00000dfd: PUSH2 0x1a9b 00000e00: JUMP 00000e01: JUMPDEST 00000e02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e17: AND 00000e18: EQ 00000e19: DUP1 00000e1a: PUSH2 0x0e32 00000e1d: JUMPI 00000e1e: POP 00000e1f: CALLER 00000e20: PUSH1 0x00 00000e22: SWAP1 00000e23: DUP2 00000e24: MSTORE 00000e25: PUSH1 0x01 00000e27: PUSH1 0x20 00000e29: MSTORE 00000e2a: PUSH1 0x40 00000e2c: SWAP1 00000e2d: KECCAK256 00000e2e: SLOAD 00000e2f: PUSH1 0xff 00000e31: AND 00000e32: JUMPDEST 00000e33: PUSH2 0x0e68 00000e36: JUMPI 00000e37: PUSH1 0x40 00000e39: MLOAD 00000e3a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000e5b: DUP2 00000e5c: MSTORE 00000e5d: PUSH1 0x04 00000e5f: ADD 00000e60: PUSH2 0x098e 00000e63: SWAP1 00000e64: PUSH2 0x4a78 00000e67: JUMP 00000e68: JUMPDEST 00000e69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e7e: DUP3 00000e7f: AND 00000e80: PUSH1 0x00 00000e82: SWAP1 00000e83: DUP2 00000e84: MSTORE 00000e85: PUSH1 0x04 00000e87: PUSH1 0x20 00000e89: MSTORE 00000e8a: PUSH1 0x40 00000e8c: SWAP1 00000e8d: KECCAK256 00000e8e: SLOAD 00000e8f: PUSH1 0x60 00000e91: DUP2 00000e92: PUSH8 0xffffffffffffffff 00000e9b: DUP2 00000e9c: GT 00000e9d: DUP1 00000e9e: ISZERO 00000e9f: PUSH2 0x0ea7 00000ea2: JUMPI 00000ea3: PUSH1 0x00 00000ea5: DUP1 00000ea6: REVERT 00000ea7: JUMPDEST 00000ea8: POP 00000ea9: PUSH1 0x40 00000eab: MLOAD 00000eac: SWAP1 00000ead: DUP1 00000eae: DUP3 00000eaf: MSTORE 00000eb0: DUP1 00000eb1: PUSH1 0x20 00000eb3: MUL 00000eb4: PUSH1 0x20 00000eb6: ADD 00000eb7: DUP3 00000eb8: ADD 00000eb9: PUSH1 0x40 00000ebb: MSTORE 00000ebc: DUP1 00000ebd: ISZERO 00000ebe: PUSH2 0x0ed1 00000ec1: JUMPI 00000ec2: DUP2 00000ec3: PUSH1 0x20 00000ec5: ADD 00000ec6: PUSH1 0x20 00000ec8: DUP3 00000ec9: MUL 00000eca: DUP1 00000ecb: CALLDATASIZE 00000ecc: DUP4 00000ecd: CALLDATACOPY 00000ece: ADD 00000ecf: SWAP1 00000ed0: POP 00000ed1: JUMPDEST 00000ed2: POP 00000ed3: SWAP1 00000ed4: POP 00000ed5: PUSH1 0x00 00000ed7: JUMPDEST 00000ed8: DUP3 00000ed9: DUP2 00000eda: LT 00000edb: ISZERO 00000edc: PUSH2 0x0f5b 00000edf: JUMPI 00000ee0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ef5: DUP6 00000ef6: AND 00000ef7: PUSH1 0x00 00000ef9: SWAP1 00000efa: DUP2 00000efb: MSTORE 00000efc: PUSH1 0x04 00000efe: PUSH1 0x20 00000f00: MSTORE 00000f01: PUSH1 0x40 00000f03: SWAP1 00000f04: KECCAK256 00000f05: DUP1 00000f06: SLOAD 00000f07: PUSH2 0x0f3c 00000f0a: SWAP2 00000f0b: SWAP1 00000f0c: DUP4 00000f0d: SWAP1 00000f0e: DUP2 00000f0f: LT 00000f10: PUSH2 0x0f15 00000f13: JUMPI 00000f14: INVALID 00000f15: JUMPDEST 00000f16: PUSH1 0x00 00000f18: SWAP2 00000f19: DUP3 00000f1a: MSTORE 00000f1b: PUSH1 0x20 00000f1d: SWAP1 00000f1e: SWAP2 00000f1f: KECCAK256 00000f20: ADD 00000f21: SLOAD 00000f22: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f37: AND 00000f38: PUSH2 0x1acc 00000f3b: JUMP 00000f3c: JUMPDEST 00000f3d: DUP3 00000f3e: DUP3 00000f3f: DUP2 00000f40: MLOAD 00000f41: DUP2 00000f42: LT 00000f43: PUSH2 0x0f48 00000f46: JUMPI 00000f47: INVALID 00000f48: JUMPDEST 00000f49: PUSH1 0x20 00000f4b: SWAP1 00000f4c: DUP2 00000f4d: MUL 00000f4e: SWAP2 00000f4f: SWAP1 00000f50: SWAP2 00000f51: ADD 00000f52: ADD 00000f53: MSTORE 00000f54: PUSH1 0x01 00000f56: ADD 00000f57: PUSH2 0x0ed7 00000f5a: JUMP 00000f5b: JUMPDEST 00000f5c: POP 00000f5d: DUP2 00000f5e: PUSH1 0x02 00000f60: EQ 00000f61: ISZERO 00000f62: PUSH2 0x0f74 00000f65: JUMPI 00000f66: PUSH2 0x0f6f 00000f69: DUP5 00000f6a: DUP5 00000f6b: PUSH2 0x2fca 00000f6e: JUMP 00000f6f: JUMPDEST 00000f70: PUSH2 0x0fb9 00000f73: JUMP 00000f74: JUMPDEST 00000f75: DUP2 00000f76: PUSH1 0x03 00000f78: EQ 00000f79: ISZERO 00000f7a: PUSH2 0x0f87 00000f7d: JUMPI 00000f7e: PUSH2 0x0f6f 00000f81: DUP5 00000f82: DUP5 00000f83: PUSH2 0x317a 00000f86: JUMP 00000f87: JUMPDEST 00000f88: PUSH1 0x40 00000f8a: MLOAD 00000f8b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000fac: DUP2 00000fad: MSTORE 00000fae: PUSH1 0x04 00000fb0: ADD 00000fb1: PUSH2 0x098e 00000fb4: SWAP1 00000fb5: PUSH2 0x4a0c 00000fb8: JUMP 00000fb9: JUMPDEST 00000fba: PUSH1 0x60 00000fbc: DUP3 00000fbd: PUSH8 0xffffffffffffffff 00000fc6: DUP2 00000fc7: GT 00000fc8: DUP1 00000fc9: ISZERO 00000fca: PUSH2 0x0fd2 00000fcd: JUMPI 00000fce: PUSH1 0x00 00000fd0: DUP1 00000fd1: REVERT 00000fd2: JUMPDEST 00000fd3: POP 00000fd4: PUSH1 0x40 00000fd6: MLOAD 00000fd7: SWAP1 00000fd8: DUP1 00000fd9: DUP3 00000fda: MSTORE 00000fdb: DUP1 00000fdc: PUSH1 0x20 00000fde: MUL 00000fdf: PUSH1 0x20 00000fe1: ADD 00000fe2: DUP3 00000fe3: ADD 00000fe4: PUSH1 0x40 00000fe6: MSTORE 00000fe7: DUP1 00000fe8: ISZERO 00000fe9: PUSH2 0x0ffc 00000fec: JUMPI 00000fed: DUP2 00000fee: PUSH1 0x20 00000ff0: ADD 00000ff1: PUSH1 0x20 00000ff3: DUP3 00000ff4: MUL 00000ff5: DUP1 00000ff6: CALLDATASIZE 00000ff7: DUP4 00000ff8: CALLDATACOPY 00000ff9: ADD 00000ffa: SWAP1 00000ffb: POP 00000ffc: JUMPDEST 00000ffd: POP 00000ffe: SWAP1 00000fff: POP 00001000: PUSH1 0x00 00001002: JUMPDEST 00001003: DUP4 00001004: DUP2 00001005: LT 00001006: ISZERO 00001007: PUSH2 0x1093 0000100a: JUMPI 0000100b: PUSH2 0x1074 0000100e: DUP4 0000100f: DUP3 00001010: DUP2 00001011: MLOAD 00001012: DUP2 00001013: LT 00001014: PUSH2 0x1019 00001017: JUMPI 00001018: INVALID 00001019: JUMPDEST 0000101a: PUSH1 0x20 0000101c: MUL 0000101d: PUSH1 0x20 0000101f: ADD 00001020: ADD 00001021: MLOAD 00001022: PUSH2 0x106e 00001025: PUSH1 0x04 00001027: PUSH1 0x00 00001029: DUP11 0000102a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000103f: AND 00001040: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001055: AND 00001056: DUP2 00001057: MSTORE 00001058: PUSH1 0x20 0000105a: ADD 0000105b: SWAP1 0000105c: DUP2 0000105d: MSTORE 0000105e: PUSH1 0x20 00001060: ADD 00001061: PUSH1 0x00 00001063: KECCAK256 00001064: DUP5 00001065: DUP2 00001066: SLOAD 00001067: DUP2 00001068: LT 00001069: PUSH2 0x0f15 0000106c: JUMPI 0000106d: INVALID 0000106e: JUMPDEST 0000106f: SWAP1 00001070: PUSH2 0x32bb 00001073: JUMP 00001074: JUMPDEST 00001075: DUP3 00001076: DUP3 00001077: DUP2 00001078: MLOAD 00001079: DUP2 0000107a: LT 0000107b: PUSH2 0x1080 0000107e: JUMPI 0000107f: INVALID 00001080: JUMPDEST 00001081: PUSH1 0x20 00001083: SWAP1 00001084: DUP2 00001085: MUL 00001086: SWAP2 00001087: SWAP1 00001088: SWAP2 00001089: ADD 0000108a: ADD 0000108b: MSTORE 0000108c: PUSH1 0x01 0000108e: ADD 0000108f: PUSH2 0x1002 00001092: JUMP 00001093: JUMPDEST 00001094: POP 00001095: DUP5 00001096: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010ab: AND 000010ac: PUSH32 0xd2602de014927617147990f1eaef38f72e9787acf22aa14785cefe59164eef1c 000010cd: DUP3 000010ce: PUSH1 0x40 000010d0: MLOAD 000010d1: PUSH2 0x10da 000010d4: SWAP2 000010d5: SWAP1 000010d6: PUSH2 0x47fc 000010d9: JUMP 000010da: JUMPDEST 000010db: PUSH1 0x40 000010dd: MLOAD 000010de: DUP1 000010df: SWAP2 000010e0: SUB 000010e1: SWAP1 000010e2: LOG2 000010e3: POP 000010e4: POP 000010e5: POP 000010e6: POP 000010e7: POP 000010e8: JUMP 000010e9: JUMPDEST 000010ea: CALLER 000010eb: PUSH2 0x10f2 000010ee: PUSH2 0x1a9b 000010f1: JUMP 000010f2: JUMPDEST 000010f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001108: AND 00001109: EQ 0000110a: DUP1 0000110b: PUSH2 0x1123 0000110e: JUMPI 0000110f: POP 00001110: CALLER 00001111: PUSH1 0x00 00001113: SWAP1 00001114: DUP2 00001115: MSTORE 00001116: PUSH1 0x01 00001118: PUSH1 0x20 0000111a: MSTORE 0000111b: PUSH1 0x40 0000111d: SWAP1 0000111e: KECCAK256 0000111f: SLOAD 00001120: PUSH1 0xff 00001122: AND 00001123: JUMPDEST 00001124: PUSH2 0x1159 00001127: JUMPI 00001128: PUSH1 0x40 0000112a: MLOAD 0000112b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000114c: DUP2 0000114d: MSTORE 0000114e: PUSH1 0x04 00001150: ADD 00001151: PUSH2 0x098e 00001154: SWAP1 00001155: PUSH2 0x4a78 00001158: JUMP 00001159: JUMPDEST 0000115a: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000116f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001184: AND 00001185: PUSH4 0xd0e30db0 0000118a: DUP3 0000118b: PUSH1 0x40 0000118d: MLOAD 0000118e: DUP3 0000118f: PUSH4 0xffffffff 00001194: AND 00001195: PUSH1 0xe0 00001197: SHL 00001198: DUP2 00001199: MSTORE 0000119a: PUSH1 0x04 0000119c: ADD 0000119d: PUSH1 0x00 0000119f: PUSH1 0x40 000011a1: MLOAD 000011a2: DUP1 000011a3: DUP4 000011a4: SUB 000011a5: DUP2 000011a6: DUP6 000011a7: DUP9 000011a8: DUP1 000011a9: EXTCODESIZE 000011aa: ISZERO 000011ab: DUP1 000011ac: ISZERO 000011ad: PUSH2 0x11b5 000011b0: JUMPI 000011b1: PUSH1 0x00 000011b3: DUP1 000011b4: REVERT 000011b5: JUMPDEST 000011b6: POP 000011b7: GAS 000011b8: CALL 000011b9: ISZERO 000011ba: DUP1 000011bb: ISZERO 000011bc: PUSH2 0x11c9 000011bf: JUMPI 000011c0: RETURNDATASIZE 000011c1: PUSH1 0x00 000011c3: DUP1 000011c4: RETURNDATACOPY 000011c5: RETURNDATASIZE 000011c6: PUSH1 0x00 000011c8: REVERT 000011c9: JUMPDEST 000011ca: POP 000011cb: POP 000011cc: POP 000011cd: POP 000011ce: POP 000011cf: POP 000011d0: JUMP 000011d1: JUMPDEST 000011d2: PUSH2 0x11d9 000011d5: PUSH2 0x2d72 000011d8: JUMP 000011d9: JUMPDEST 000011da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011ef: AND 000011f0: PUSH2 0x11f7 000011f3: PUSH2 0x1a9b 000011f6: JUMP 000011f7: JUMPDEST 000011f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000120d: AND 0000120e: EQ 0000120f: PUSH2 0x1244 00001212: JUMPI 00001213: PUSH1 0x40 00001215: MLOAD 00001216: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001237: DUP2 00001238: MSTORE 00001239: PUSH1 0x04 0000123b: ADD 0000123c: PUSH2 0x098e 0000123f: SWAP1 00001240: PUSH2 0x4a43 00001243: JUMP 00001244: JUMPDEST 00001245: DUP1 00001246: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000125b: AND 0000125c: PUSH32 0x9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2 0000127d: PUSH1 0x01 0000127f: PUSH1 0x40 00001281: MLOAD 00001282: PUSH2 0x128b 00001285: SWAP2 00001286: SWAP1 00001287: PUSH2 0x4840 0000128a: JUMP 0000128b: JUMPDEST 0000128c: PUSH1 0x40 0000128e: MLOAD 0000128f: DUP1 00001290: SWAP2 00001291: SUB 00001292: SWAP1 00001293: LOG2 00001294: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012a9: AND 000012aa: PUSH1 0x00 000012ac: SWAP1 000012ad: DUP2 000012ae: MSTORE 000012af: PUSH1 0x01 000012b1: PUSH1 0x20 000012b3: DUP2 000012b4: SWAP1 000012b5: MSTORE 000012b6: PUSH1 0x40 000012b8: SWAP1 000012b9: SWAP2 000012ba: KECCAK256 000012bb: DUP1 000012bc: SLOAD 000012bd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000012de: AND 000012df: SWAP1 000012e0: SWAP2 000012e1: OR 000012e2: SWAP1 000012e3: SSTORE 000012e4: JUMP 000012e5: JUMPDEST 000012e6: PUSH2 0x12ed 000012e9: PUSH2 0x2d72 000012ec: JUMP 000012ed: JUMPDEST 000012ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001303: AND 00001304: PUSH2 0x130b 00001307: PUSH2 0x1a9b 0000130a: JUMP 0000130b: JUMPDEST 0000130c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001321: AND 00001322: EQ 00001323: PUSH2 0x1358 00001326: JUMPI 00001327: PUSH1 0x40 00001329: MLOAD 0000132a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000134b: DUP2 0000134c: MSTORE 0000134d: PUSH1 0x04 0000134f: ADD 00001350: PUSH2 0x098e 00001353: SWAP1 00001354: PUSH2 0x4a43 00001357: JUMP 00001358: JUMPDEST 00001359: DUP1 0000135a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000136f: AND 00001370: PUSH32 0x9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2 00001391: PUSH1 0x00 00001393: PUSH1 0x40 00001395: MLOAD 00001396: PUSH2 0x139f 00001399: SWAP2 0000139a: SWAP1 0000139b: PUSH2 0x4840 0000139e: JUMP 0000139f: JUMPDEST 000013a0: PUSH1 0x40 000013a2: MLOAD 000013a3: DUP1 000013a4: SWAP2 000013a5: SUB 000013a6: SWAP1 000013a7: LOG2 000013a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013bd: AND 000013be: PUSH1 0x00 000013c0: SWAP1 000013c1: DUP2 000013c2: MSTORE 000013c3: PUSH1 0x01 000013c5: PUSH1 0x20 000013c7: MSTORE 000013c8: PUSH1 0x40 000013ca: SWAP1 000013cb: KECCAK256 000013cc: DUP1 000013cd: SLOAD 000013ce: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000013ef: AND 000013f0: SWAP1 000013f1: SSTORE 000013f2: JUMP 000013f3: JUMPDEST 000013f4: PUSH2 0x13fb 000013f7: PUSH2 0x2d72 000013fa: JUMP 000013fb: JUMPDEST 000013fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001411: AND 00001412: PUSH2 0x1419 00001415: PUSH2 0x1a9b 00001418: JUMP 00001419: JUMPDEST 0000141a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000142f: AND 00001430: EQ 00001431: PUSH2 0x1466 00001434: JUMPI 00001435: PUSH1 0x40 00001437: MLOAD 00001438: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001459: DUP2 0000145a: MSTORE 0000145b: PUSH1 0x04 0000145d: ADD 0000145e: PUSH2 0x098e 00001461: SWAP1 00001462: PUSH2 0x4a43 00001465: JUMP 00001466: JUMPDEST 00001467: PUSH2 0x1472 0000146a: DUP3 0000146b: DUP3 0000146c: PUSH1 0x00 0000146e: PUSH2 0x32fd 00001471: JUMP 00001472: JUMPDEST 00001473: POP 00001474: POP 00001475: JUMP 00001476: JUMPDEST 00001477: PUSH1 0x00 00001479: CALLER 0000147a: PUSH2 0x1481 0000147d: PUSH2 0x1a9b 00001480: JUMP 00001481: JUMPDEST 00001482: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001497: AND 00001498: EQ 00001499: DUP1 0000149a: PUSH2 0x14b2 0000149d: JUMPI 0000149e: POP 0000149f: CALLER 000014a0: PUSH1 0x00 000014a2: SWAP1 000014a3: DUP2 000014a4: MSTORE 000014a5: PUSH1 0x01 000014a7: PUSH1 0x20 000014a9: MSTORE 000014aa: PUSH1 0x40 000014ac: SWAP1 000014ad: KECCAK256 000014ae: SLOAD 000014af: PUSH1 0xff 000014b1: AND 000014b2: JUMPDEST 000014b3: PUSH2 0x14e8 000014b6: JUMPI 000014b7: PUSH1 0x40 000014b9: MLOAD 000014ba: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000014db: DUP2 000014dc: MSTORE 000014dd: PUSH1 0x04 000014df: ADD 000014e0: PUSH2 0x098e 000014e3: SWAP1 000014e4: PUSH2 0x4a78 000014e7: JUMP 000014e8: JUMPDEST 000014e9: PUSH1 0x00 000014eb: PUSH2 0x14f3 000014ee: DUP4 000014ef: PUSH2 0x331e 000014f2: JUMP 000014f3: JUMPDEST 000014f4: SWAP1 000014f5: POP 000014f6: PUSH1 0x00 000014f8: PUSH2 0x1502 000014fb: DUP5 000014fc: DUP9 000014fd: DUP9 000014fe: PUSH2 0x2662 00001501: JUMP 00001502: JUMPDEST 00001503: SWAP1 00001504: POP 00001505: PUSH2 0x1510 00001508: DUP9 00001509: DUP4 0000150a: DUP4 0000150b: DUP9 0000150c: PUSH2 0x0ace 0000150f: JUMP 00001510: JUMPDEST 00001511: SWAP9 00001512: SWAP8 00001513: POP 00001514: POP 00001515: POP 00001516: POP 00001517: POP 00001518: POP 00001519: POP 0000151a: POP 0000151b: JUMP 0000151c: JUMPDEST 0000151d: PUSH1 0x00 0000151f: CALLER 00001520: PUSH2 0x1527 00001523: PUSH2 0x1a9b 00001526: JUMP 00001527: JUMPDEST 00001528: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000153d: AND 0000153e: EQ 0000153f: DUP1 00001540: PUSH2 0x1558 00001543: JUMPI 00001544: POP 00001545: CALLER 00001546: PUSH1 0x00 00001548: SWAP1 00001549: DUP2 0000154a: MSTORE 0000154b: PUSH1 0x01 0000154d: PUSH1 0x20 0000154f: MSTORE 00001550: PUSH1 0x40 00001552: SWAP1 00001553: KECCAK256 00001554: SLOAD 00001555: PUSH1 0xff 00001557: AND 00001558: JUMPDEST 00001559: PUSH2 0x158e 0000155c: JUMPI 0000155d: PUSH1 0x40 0000155f: MLOAD 00001560: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001581: DUP2 00001582: MSTORE 00001583: PUSH1 0x04 00001585: ADD 00001586: PUSH2 0x098e 00001589: SWAP1 0000158a: PUSH2 0x4a78 0000158d: JUMP 0000158e: JUMPDEST 0000158f: PUSH1 0x00 00001591: PUSH2 0x159b 00001594: DUP4 00001595: DUP8 00001596: DUP8 00001597: PUSH2 0x2662 0000159a: JUMP 0000159b: JUMPDEST 0000159c: SWAP1 0000159d: POP 0000159e: PUSH1 0x00 000015a0: PUSH2 0x15a8 000015a3: DUP5 000015a4: PUSH2 0x331e 000015a7: JUMP 000015a8: JUMPDEST 000015a9: SWAP1 000015aa: POP 000015ab: PUSH2 0x1510 000015ae: DUP9 000015af: DUP3 000015b0: DUP5 000015b1: DUP9 000015b2: PUSH2 0x1782 000015b5: JUMP 000015b6: JUMPDEST 000015b7: CALLER 000015b8: PUSH2 0x15bf 000015bb: PUSH2 0x1a9b 000015be: JUMP 000015bf: JUMPDEST 000015c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015d5: AND 000015d6: EQ 000015d7: DUP1 000015d8: PUSH2 0x15f0 000015db: JUMPI 000015dc: POP 000015dd: CALLER 000015de: PUSH1 0x00 000015e0: SWAP1 000015e1: DUP2 000015e2: MSTORE 000015e3: PUSH1 0x01 000015e5: PUSH1 0x20 000015e7: MSTORE 000015e8: PUSH1 0x40 000015ea: SWAP1 000015eb: KECCAK256 000015ec: SLOAD 000015ed: PUSH1 0xff 000015ef: AND 000015f0: JUMPDEST 000015f1: PUSH2 0x1626 000015f4: JUMPI 000015f5: PUSH1 0x40 000015f7: MLOAD 000015f8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001619: DUP2 0000161a: MSTORE 0000161b: PUSH1 0x04 0000161d: ADD 0000161e: PUSH2 0x098e 00001621: SWAP1 00001622: PUSH2 0x4a78 00001625: JUMP 00001626: JUMPDEST 00001627: PUSH2 0x162e 0000162a: PUSH2 0x3e5d 0000162d: JUMP 0000162e: JUMPDEST 0000162f: PUSH1 0x08 00001631: SLOAD 00001632: PUSH1 0x40 00001634: MLOAD 00001635: PUSH32 0x1526fe2700000000000000000000000000000000000000000000000000000000 00001656: DUP2 00001657: MSTORE 00001658: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000166d: SWAP1 0000166e: SWAP2 0000166f: AND 00001670: SWAP1 00001671: PUSH4 0x1526fe27 00001676: SWAP1 00001677: PUSH2 0x1684 0000167a: SWAP1 0000167b: DUP7 0000167c: SWAP1 0000167d: PUSH1 0x04 0000167f: ADD 00001680: PUSH2 0x4bc6 00001683: JUMP 00001684: JUMPDEST 00001685: PUSH1 0xc0 00001687: PUSH1 0x40 00001689: MLOAD 0000168a: DUP1 0000168b: DUP4 0000168c: SUB 0000168d: DUP2 0000168e: DUP7 0000168f: DUP1 00001690: EXTCODESIZE 00001691: ISZERO 00001692: DUP1 00001693: ISZERO 00001694: PUSH2 0x169c 00001697: JUMPI 00001698: PUSH1 0x00 0000169a: DUP1 0000169b: REVERT 0000169c: JUMPDEST 0000169d: POP 0000169e: GAS 0000169f: STATICCALL 000016a0: ISZERO 000016a1: DUP1 000016a2: ISZERO 000016a3: PUSH2 0x16b0 000016a6: JUMPI 000016a7: RETURNDATASIZE 000016a8: PUSH1 0x00 000016aa: DUP1 000016ab: RETURNDATACOPY 000016ac: RETURNDATASIZE 000016ad: PUSH1 0x00 000016af: REVERT 000016b0: JUMPDEST 000016b1: POP 000016b2: POP 000016b3: POP 000016b4: POP 000016b5: PUSH1 0x40 000016b7: MLOAD 000016b8: RETURNDATASIZE 000016b9: PUSH1 0x1f 000016bb: NOT 000016bc: PUSH1 0x1f 000016be: DUP3 000016bf: ADD 000016c0: AND 000016c1: DUP3 000016c2: ADD 000016c3: DUP1 000016c4: PUSH1 0x40 000016c6: MSTORE 000016c7: POP 000016c8: DUP2 000016c9: ADD 000016ca: SWAP1 000016cb: PUSH2 0x16d4 000016ce: SWAP2 000016cf: SWAP1 000016d0: PUSH2 0x45cc 000016d3: JUMP 000016d4: JUMPDEST 000016d5: PUSH1 0x60 000016d7: DUP2 000016d8: ADD 000016d9: MLOAD 000016da: PUSH1 0x40 000016dc: MLOAD 000016dd: PUSH32 0xc32e720200000000000000000000000000000000000000000000000000000000 000016fe: DUP2 000016ff: MSTORE 00001700: SWAP2 00001701: SWAP3 00001702: POP 00001703: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001718: AND 00001719: SWAP1 0000171a: PUSH4 0xc32e7202 0000171f: SWAP1 00001720: PUSH2 0x1730 00001723: SWAP1 00001724: DUP6 00001725: SWAP1 00001726: PUSH1 0x01 00001728: SWAP1 00001729: PUSH1 0x04 0000172b: ADD 0000172c: PUSH2 0x4c3f 0000172f: JUMP 00001730: JUMPDEST 00001731: PUSH1 0x20 00001733: PUSH1 0x40 00001735: MLOAD 00001736: DUP1 00001737: DUP4 00001738: SUB 00001739: DUP2 0000173a: PUSH1 0x00 0000173c: DUP8 0000173d: DUP1 0000173e: EXTCODESIZE 0000173f: ISZERO 00001740: DUP1 00001741: ISZERO 00001742: PUSH2 0x174a 00001745: JUMPI 00001746: PUSH1 0x00 00001748: DUP1 00001749: REVERT 0000174a: JUMPDEST 0000174b: POP 0000174c: GAS 0000174d: CALL 0000174e: ISZERO 0000174f: DUP1 00001750: ISZERO 00001751: PUSH2 0x175e 00001754: JUMPI 00001755: RETURNDATASIZE 00001756: PUSH1 0x00 00001758: DUP1 00001759: RETURNDATACOPY 0000175a: RETURNDATASIZE 0000175b: PUSH1 0x00 0000175d: REVERT 0000175e: JUMPDEST 0000175f: POP 00001760: POP 00001761: POP 00001762: POP 00001763: PUSH1 0x40 00001765: MLOAD 00001766: RETURNDATASIZE 00001767: PUSH1 0x1f 00001769: NOT 0000176a: PUSH1 0x1f 0000176c: DUP3 0000176d: ADD 0000176e: AND 0000176f: DUP3 00001770: ADD 00001771: DUP1 00001772: PUSH1 0x40 00001774: MSTORE 00001775: POP 00001776: DUP2 00001777: ADD 00001778: SWAP1 00001779: PUSH2 0x0ac8 0000177c: SWAP2 0000177d: SWAP1 0000177e: PUSH2 0x45b0 00001781: JUMP 00001782: JUMPDEST 00001783: PUSH1 0x00 00001785: CALLER 00001786: PUSH2 0x178d 00001789: PUSH2 0x1a9b 0000178c: JUMP 0000178d: JUMPDEST 0000178e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017a3: AND 000017a4: EQ 000017a5: DUP1 000017a6: PUSH2 0x17be 000017a9: JUMPI 000017aa: POP 000017ab: CALLER 000017ac: PUSH1 0x00 000017ae: SWAP1 000017af: DUP2 000017b0: MSTORE 000017b1: PUSH1 0x01 000017b3: PUSH1 0x20 000017b5: MSTORE 000017b6: PUSH1 0x40 000017b8: SWAP1 000017b9: KECCAK256 000017ba: SLOAD 000017bb: PUSH1 0xff 000017bd: AND 000017be: JUMPDEST 000017bf: PUSH2 0x17f4 000017c2: JUMPI 000017c3: PUSH1 0x40 000017c5: MLOAD 000017c6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000017e7: DUP2 000017e8: MSTORE 000017e9: PUSH1 0x04 000017eb: ADD 000017ec: PUSH2 0x098e 000017ef: SWAP1 000017f0: PUSH2 0x4a78 000017f3: JUMP 000017f4: JUMPDEST 000017f5: PUSH1 0x00 000017f7: PUSH2 0x1801 000017fa: DUP7 000017fb: DUP7 000017fc: DUP7 000017fd: PUSH2 0x2662 00001800: JUMP 00001801: JUMPDEST 00001802: SWAP1 00001803: POP 00001804: PUSH2 0x0b59 00001807: DUP4 00001808: DUP3 00001809: PUSH2 0x1979 0000180c: JUMP 0000180d: JUMPDEST 0000180e: PUSH1 0x00 00001810: CALLER 00001811: PUSH2 0x1818 00001814: PUSH2 0x1a9b 00001817: JUMP 00001818: JUMPDEST 00001819: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000182e: AND 0000182f: EQ 00001830: DUP1 00001831: PUSH2 0x1849 00001834: JUMPI 00001835: POP 00001836: CALLER 00001837: PUSH1 0x00 00001839: SWAP1 0000183a: DUP2 0000183b: MSTORE 0000183c: PUSH1 0x01 0000183e: PUSH1 0x20 00001840: MSTORE 00001841: PUSH1 0x40 00001843: SWAP1 00001844: KECCAK256 00001845: SLOAD 00001846: PUSH1 0xff 00001848: AND 00001849: JUMPDEST 0000184a: PUSH2 0x187f 0000184d: JUMPI 0000184e: PUSH1 0x40 00001850: MLOAD 00001851: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001872: DUP2 00001873: MSTORE 00001874: PUSH1 0x04 00001876: ADD 00001877: PUSH2 0x098e 0000187a: SWAP1 0000187b: PUSH2 0x4a78 0000187e: JUMP 0000187f: JUMPDEST 00001880: PUSH1 0x00 00001882: PUSH2 0x188b 00001885: DUP6 00001886: DUP6 00001887: PUSH2 0x0d71 0000188a: JUMP 0000188b: JUMPDEST 0000188c: SWAP1 0000188d: POP 0000188e: PUSH2 0x0df0 00001891: DUP4 00001892: DUP3 00001893: PUSH2 0x1bb1 00001896: JUMP 00001897: JUMPDEST 00001898: PUSH2 0x189f 0000189b: PUSH2 0x2d72 0000189e: JUMP 0000189f: JUMPDEST 000018a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018b5: AND 000018b6: PUSH2 0x18bd 000018b9: PUSH2 0x1a9b 000018bc: JUMP 000018bd: JUMPDEST 000018be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018d3: AND 000018d4: EQ 000018d5: PUSH2 0x190a 000018d8: JUMPI 000018d9: PUSH1 0x40 000018db: MLOAD 000018dc: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000018fd: DUP2 000018fe: MSTORE 000018ff: PUSH1 0x04 00001901: ADD 00001902: PUSH2 0x098e 00001905: SWAP1 00001906: PUSH2 0x4a43 00001909: JUMP 0000190a: JUMPDEST 0000190b: PUSH1 0x00 0000190d: DUP1 0000190e: SLOAD 0000190f: PUSH1 0x40 00001911: MLOAD 00001912: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001927: SWAP1 00001928: SWAP2 00001929: AND 0000192a: SWAP1 0000192b: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 0000194c: SWAP1 0000194d: DUP4 0000194e: SWAP1 0000194f: LOG3 00001950: PUSH1 0x00 00001952: DUP1 00001953: SLOAD 00001954: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00001975: AND 00001976: SWAP1 00001977: SSTORE 00001978: JUMP 00001979: JUMPDEST 0000197a: CALLER 0000197b: PUSH2 0x1982 0000197e: PUSH2 0x1a9b 00001981: JUMP 00001982: JUMPDEST 00001983: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001998: AND 00001999: EQ 0000199a: DUP1 0000199b: PUSH2 0x19b3 0000199e: JUMPI 0000199f: POP 000019a0: CALLER 000019a1: PUSH1 0x00 000019a3: SWAP1 000019a4: DUP2 000019a5: MSTORE 000019a6: PUSH1 0x01 000019a8: PUSH1 0x20 000019aa: MSTORE 000019ab: PUSH1 0x40 000019ad: SWAP1 000019ae: KECCAK256 000019af: SLOAD 000019b0: PUSH1 0xff 000019b2: AND 000019b3: JUMPDEST 000019b4: PUSH2 0x19e9 000019b7: JUMPI 000019b8: PUSH1 0x40 000019ba: MLOAD 000019bb: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000019dc: DUP2 000019dd: MSTORE 000019de: PUSH1 0x04 000019e0: ADD 000019e1: PUSH2 0x098e 000019e4: SWAP1 000019e5: PUSH2 0x4a78 000019e8: JUMP 000019e9: JUMPDEST 000019ea: PUSH1 0x08 000019ec: SLOAD 000019ed: PUSH1 0x40 000019ef: MLOAD 000019f0: PUSH32 0x43a0d06600000000000000000000000000000000000000000000000000000000 00001a11: DUP2 00001a12: MSTORE 00001a13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a28: SWAP1 00001a29: SWAP2 00001a2a: AND 00001a2b: SWAP1 00001a2c: PUSH4 0x43a0d066 00001a31: SWAP1 00001a32: PUSH2 0x1a44 00001a35: SWAP1 00001a36: DUP6 00001a37: SWAP1 00001a38: DUP6 00001a39: SWAP1 00001a3a: PUSH1 0x01 00001a3c: SWAP1 00001a3d: PUSH1 0x04 00001a3f: ADD 00001a40: PUSH2 0x4c88 00001a43: JUMP 00001a44: JUMPDEST 00001a45: PUSH1 0x20 00001a47: PUSH1 0x40 00001a49: MLOAD 00001a4a: DUP1 00001a4b: DUP4 00001a4c: SUB 00001a4d: DUP2 00001a4e: PUSH1 0x00 00001a50: DUP8 00001a51: DUP1 00001a52: EXTCODESIZE 00001a53: ISZERO 00001a54: DUP1 00001a55: ISZERO 00001a56: PUSH2 0x1a5e 00001a59: JUMPI 00001a5a: PUSH1 0x00 00001a5c: DUP1 00001a5d: REVERT 00001a5e: JUMPDEST 00001a5f: POP 00001a60: GAS 00001a61: CALL 00001a62: ISZERO 00001a63: DUP1 00001a64: ISZERO 00001a65: PUSH2 0x1a72 00001a68: JUMPI 00001a69: RETURNDATASIZE 00001a6a: PUSH1 0x00 00001a6c: DUP1 00001a6d: RETURNDATACOPY 00001a6e: RETURNDATASIZE 00001a6f: PUSH1 0x00 00001a71: REVERT 00001a72: JUMPDEST 00001a73: POP 00001a74: POP 00001a75: POP 00001a76: POP 00001a77: PUSH1 0x40 00001a79: MLOAD 00001a7a: RETURNDATASIZE 00001a7b: PUSH1 0x1f 00001a7d: NOT 00001a7e: PUSH1 0x1f 00001a80: DUP3 00001a81: ADD 00001a82: AND 00001a83: DUP3 00001a84: ADD 00001a85: DUP1 00001a86: PUSH1 0x40 00001a88: MSTORE 00001a89: POP 00001a8a: DUP2 00001a8b: ADD 00001a8c: SWAP1 00001a8d: PUSH2 0x1a96 00001a90: SWAP2 00001a91: SWAP1 00001a92: PUSH2 0x45b0 00001a95: JUMP 00001a96: JUMPDEST 00001a97: POP 00001a98: POP 00001a99: POP 00001a9a: JUMP 00001a9b: JUMPDEST 00001a9c: PUSH1 0x00 00001a9e: SLOAD 00001a9f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ab4: AND 00001ab5: SWAP1 00001ab6: JUMP 00001ab7: JUMPDEST 00001ab8: PUSH1 0x01 00001aba: PUSH1 0x20 00001abc: MSTORE 00001abd: PUSH1 0x00 00001abf: SWAP1 00001ac0: DUP2 00001ac1: MSTORE 00001ac2: PUSH1 0x40 00001ac4: SWAP1 00001ac5: KECCAK256 00001ac6: SLOAD 00001ac7: PUSH1 0xff 00001ac9: AND 00001aca: DUP2 00001acb: JUMP 00001acc: JUMPDEST 00001acd: PUSH1 0x00 00001acf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ae4: DUP3 00001ae5: AND 00001ae6: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00001afb: EQ 00001afc: ISZERO 00001afd: PUSH2 0x1b07 00001b00: JUMPI 00001b01: POP 00001b02: SELFBALANCE 00001b03: PUSH2 0x1bac 00001b06: JUMP 00001b07: JUMPDEST 00001b08: PUSH1 0x40 00001b0a: MLOAD 00001b0b: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00001b2c: DUP2 00001b2d: MSTORE 00001b2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b43: DUP4 00001b44: AND 00001b45: SWAP1 00001b46: PUSH4 0x70a08231 00001b4b: SWAP1 00001b4c: PUSH2 0x1b59 00001b4f: SWAP1 00001b50: ADDRESS 00001b51: SWAP1 00001b52: PUSH1 0x04 00001b54: ADD 00001b55: PUSH2 0x4710 00001b58: JUMP 00001b59: JUMPDEST 00001b5a: PUSH1 0x20 00001b5c: PUSH1 0x40 00001b5e: MLOAD 00001b5f: DUP1 00001b60: DUP4 00001b61: SUB 00001b62: DUP2 00001b63: DUP7 00001b64: DUP1 00001b65: EXTCODESIZE 00001b66: ISZERO 00001b67: DUP1 00001b68: ISZERO 00001b69: PUSH2 0x1b71 00001b6c: JUMPI 00001b6d: PUSH1 0x00 00001b6f: DUP1 00001b70: REVERT 00001b71: JUMPDEST 00001b72: POP 00001b73: GAS 00001b74: STATICCALL 00001b75: ISZERO 00001b76: DUP1 00001b77: ISZERO 00001b78: PUSH2 0x1b85 00001b7b: JUMPI 00001b7c: RETURNDATASIZE 00001b7d: PUSH1 0x00 00001b7f: DUP1 00001b80: RETURNDATACOPY 00001b81: RETURNDATASIZE 00001b82: PUSH1 0x00 00001b84: REVERT 00001b85: JUMPDEST 00001b86: POP 00001b87: POP 00001b88: POP 00001b89: POP 00001b8a: PUSH1 0x40 00001b8c: MLOAD 00001b8d: RETURNDATASIZE 00001b8e: PUSH1 0x1f 00001b90: NOT 00001b91: PUSH1 0x1f 00001b93: DUP3 00001b94: ADD 00001b95: AND 00001b96: DUP3 00001b97: ADD 00001b98: DUP1 00001b99: PUSH1 0x40 00001b9b: MSTORE 00001b9c: POP 00001b9d: DUP2 00001b9e: ADD 00001b9f: SWAP1 00001ba0: PUSH2 0x1ba9 00001ba3: SWAP2 00001ba4: SWAP1 00001ba5: PUSH2 0x4672 00001ba8: JUMP 00001ba9: JUMPDEST 00001baa: SWAP1 00001bab: POP 00001bac: JUMPDEST 00001bad: SWAP2 00001bae: SWAP1 00001baf: POP 00001bb0: JUMP 00001bb1: JUMPDEST 00001bb2: CALLER 00001bb3: PUSH2 0x1bba 00001bb6: PUSH2 0x1a9b 00001bb9: JUMP 00001bba: JUMPDEST 00001bbb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bd0: AND 00001bd1: EQ 00001bd2: DUP1 00001bd3: PUSH2 0x1beb 00001bd6: JUMPI 00001bd7: POP 00001bd8: CALLER 00001bd9: PUSH1 0x00 00001bdb: SWAP1 00001bdc: DUP2 00001bdd: MSTORE 00001bde: PUSH1 0x01 00001be0: PUSH1 0x20 00001be2: MSTORE 00001be3: PUSH1 0x40 00001be5: SWAP1 00001be6: KECCAK256 00001be7: SLOAD 00001be8: PUSH1 0xff 00001bea: AND 00001beb: JUMPDEST 00001bec: PUSH2 0x1c21 00001bef: JUMPI 00001bf0: PUSH1 0x40 00001bf2: MLOAD 00001bf3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001c14: DUP2 00001c15: MSTORE 00001c16: PUSH1 0x04 00001c18: ADD 00001c19: PUSH2 0x098e 00001c1c: SWAP1 00001c1d: PUSH2 0x4a78 00001c20: JUMP 00001c21: JUMPDEST 00001c22: PUSH1 0x40 00001c24: MLOAD 00001c25: PUSH32 0xb6b55f2500000000000000000000000000000000000000000000000000000000 00001c46: DUP2 00001c47: MSTORE 00001c48: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c5d: DUP4 00001c5e: AND 00001c5f: SWAP1 00001c60: PUSH4 0xb6b55f25 00001c65: SWAP1 00001c66: PUSH2 0x1c73 00001c69: SWAP1 00001c6a: DUP5 00001c6b: SWAP1 00001c6c: PUSH1 0x04 00001c6e: ADD 00001c6f: PUSH2 0x4bc6 00001c72: JUMP 00001c73: JUMPDEST 00001c74: PUSH1 0x00 00001c76: PUSH1 0x40 00001c78: MLOAD 00001c79: DUP1 00001c7a: DUP4 00001c7b: SUB 00001c7c: DUP2 00001c7d: PUSH1 0x00 00001c7f: DUP8 00001c80: DUP1 00001c81: EXTCODESIZE 00001c82: ISZERO 00001c83: DUP1 00001c84: ISZERO 00001c85: PUSH2 0x11b5 00001c88: JUMPI 00001c89: PUSH1 0x00 00001c8b: DUP1 00001c8c: REVERT 00001c8d: JUMPDEST 00001c8e: PUSH1 0x06 00001c90: PUSH1 0x20 00001c92: MSTORE 00001c93: PUSH1 0x00 00001c95: SWAP1 00001c96: DUP2 00001c97: MSTORE 00001c98: PUSH1 0x40 00001c9a: SWAP1 00001c9b: KECCAK256 00001c9c: SLOAD 00001c9d: PUSH1 0xff 00001c9f: AND 00001ca0: DUP2 00001ca1: JUMP 00001ca2: JUMPDEST 00001ca3: PUSH1 0x03 00001ca5: PUSH1 0x20 00001ca7: MSTORE 00001ca8: PUSH1 0x00 00001caa: SWAP1 00001cab: DUP2 00001cac: MSTORE 00001cad: PUSH1 0x40 00001caf: SWAP1 00001cb0: KECCAK256 00001cb1: SLOAD 00001cb2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cc7: AND 00001cc8: DUP2 00001cc9: JUMP 00001cca: JUMPDEST 00001ccb: PUSH2 0x1cd2 00001cce: PUSH2 0x2d72 00001cd1: JUMP 00001cd2: JUMPDEST 00001cd3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ce8: AND 00001ce9: PUSH2 0x1cf0 00001cec: PUSH2 0x1a9b 00001cef: JUMP 00001cf0: JUMPDEST 00001cf1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d06: AND 00001d07: EQ 00001d08: PUSH2 0x1d3d 00001d0b: JUMPI 00001d0c: PUSH1 0x40 00001d0e: MLOAD 00001d0f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001d30: DUP2 00001d31: MSTORE 00001d32: PUSH1 0x04 00001d34: ADD 00001d35: PUSH2 0x098e 00001d38: SWAP1 00001d39: PUSH2 0x4a43 00001d3c: JUMP 00001d3d: JUMPDEST 00001d3e: DUP3 00001d3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d54: AND 00001d55: DUP3 00001d56: DUP3 00001d57: PUSH1 0x40 00001d59: MLOAD 00001d5a: PUSH2 0x1d63 00001d5d: SWAP2 00001d5e: SWAP1 00001d5f: PUSH2 0x46f1 00001d62: JUMP 00001d63: JUMPDEST 00001d64: PUSH1 0x00 00001d66: PUSH1 0x40 00001d68: MLOAD 00001d69: DUP1 00001d6a: DUP4 00001d6b: SUB 00001d6c: DUP2 00001d6d: DUP6 00001d6e: DUP8 00001d6f: GAS 00001d70: CALL 00001d71: SWAP3 00001d72: POP 00001d73: POP 00001d74: POP 00001d75: RETURNDATASIZE 00001d76: DUP1 00001d77: PUSH1 0x00 00001d79: DUP2 00001d7a: EQ 00001d7b: PUSH2 0x11c9 00001d7e: JUMPI 00001d7f: PUSH1 0x40 00001d81: MLOAD 00001d82: SWAP2 00001d83: POP 00001d84: PUSH1 0x1f 00001d86: NOT 00001d87: PUSH1 0x3f 00001d89: RETURNDATASIZE 00001d8a: ADD 00001d8b: AND 00001d8c: DUP3 00001d8d: ADD 00001d8e: PUSH1 0x40 00001d90: MSTORE 00001d91: RETURNDATASIZE 00001d92: DUP3 00001d93: MSTORE 00001d94: RETURNDATASIZE 00001d95: PUSH1 0x00 00001d97: PUSH1 0x20 00001d99: DUP5 00001d9a: ADD 00001d9b: RETURNDATACOPY 00001d9c: PUSH2 0x11c9 00001d9f: JUMP 00001da0: JUMPDEST 00001da1: PUSH2 0x1da8 00001da4: PUSH2 0x2d72 00001da7: JUMP 00001da8: JUMPDEST 00001da9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dbe: AND 00001dbf: PUSH2 0x1dc6 00001dc2: PUSH2 0x1a9b 00001dc5: JUMP 00001dc6: JUMPDEST 00001dc7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ddc: AND 00001ddd: EQ 00001dde: PUSH2 0x1e13 00001de1: JUMPI 00001de2: PUSH1 0x40 00001de4: MLOAD 00001de5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001e06: DUP2 00001e07: MSTORE 00001e08: PUSH1 0x04 00001e0a: ADD 00001e0b: PUSH2 0x098e 00001e0e: SWAP1 00001e0f: PUSH2 0x4a43 00001e12: JUMP 00001e13: JUMPDEST 00001e14: PUSH1 0x00 00001e16: PUSH2 0x1e1e 00001e19: DUP4 00001e1a: PUSH2 0x3454 00001e1d: JUMP 00001e1e: JUMPDEST 00001e1f: SWAP1 00001e20: POP 00001e21: PUSH2 0x1a96 00001e24: DUP4 00001e25: DUP3 00001e26: DUP5 00001e27: PUSH2 0x3520 00001e2a: JUMP 00001e2b: JUMPDEST 00001e2c: CALLER 00001e2d: PUSH2 0x1e34 00001e30: PUSH2 0x1a9b 00001e33: JUMP 00001e34: JUMPDEST 00001e35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e4a: AND 00001e4b: EQ 00001e4c: DUP1 00001e4d: PUSH2 0x1e65 00001e50: JUMPI 00001e51: POP 00001e52: CALLER 00001e53: PUSH1 0x00 00001e55: SWAP1 00001e56: DUP2 00001e57: MSTORE 00001e58: PUSH1 0x01 00001e5a: PUSH1 0x20 00001e5c: MSTORE 00001e5d: PUSH1 0x40 00001e5f: SWAP1 00001e60: KECCAK256 00001e61: SLOAD 00001e62: PUSH1 0xff 00001e64: AND 00001e65: JUMPDEST 00001e66: PUSH2 0x1e9b 00001e69: JUMPI 00001e6a: PUSH1 0x40 00001e6c: MLOAD 00001e6d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001e8e: DUP2 00001e8f: MSTORE 00001e90: PUSH1 0x04 00001e92: ADD 00001e93: PUSH2 0x098e 00001e96: SWAP1 00001e97: PUSH2 0x4a78 00001e9a: JUMP 00001e9b: JUMPDEST 00001e9c: PUSH1 0x40 00001e9e: MLOAD 00001e9f: PUSH32 0x2e1a7d4d00000000000000000000000000000000000000000000000000000000 00001ec0: DUP2 00001ec1: MSTORE 00001ec2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ed7: DUP4 00001ed8: AND 00001ed9: SWAP1 00001eda: PUSH4 0x2e1a7d4d 00001edf: SWAP1 00001ee0: PUSH2 0x1c73 00001ee3: SWAP1 00001ee4: DUP5 00001ee5: SWAP1 00001ee6: PUSH1 0x04 00001ee8: ADD 00001ee9: PUSH2 0x4bc6 00001eec: JUMP 00001eed: JUMPDEST 00001eee: CALLER 00001eef: PUSH2 0x1ef6 00001ef2: PUSH2 0x1a9b 00001ef5: JUMP 00001ef6: JUMPDEST 00001ef7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f0c: AND 00001f0d: EQ 00001f0e: DUP1 00001f0f: PUSH2 0x1f27 00001f12: JUMPI 00001f13: POP 00001f14: CALLER 00001f15: PUSH1 0x00 00001f17: SWAP1 00001f18: DUP2 00001f19: MSTORE 00001f1a: PUSH1 0x01 00001f1c: PUSH1 0x20 00001f1e: MSTORE 00001f1f: PUSH1 0x40 00001f21: SWAP1 00001f22: KECCAK256 00001f23: SLOAD 00001f24: PUSH1 0xff 00001f26: AND 00001f27: JUMPDEST 00001f28: PUSH2 0x1f5d 00001f2b: JUMPI 00001f2c: PUSH1 0x40 00001f2e: MLOAD 00001f2f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001f50: DUP2 00001f51: MSTORE 00001f52: PUSH1 0x04 00001f54: ADD 00001f55: PUSH2 0x098e 00001f58: SWAP1 00001f59: PUSH2 0x4a78 00001f5c: JUMP 00001f5d: JUMPDEST 00001f5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f73: DUP6 00001f74: DUP2 00001f75: AND 00001f76: PUSH1 0x00 00001f78: SWAP1 00001f79: DUP2 00001f7a: MSTORE 00001f7b: PUSH1 0x03 00001f7d: PUSH1 0x20 00001f7f: SWAP1 00001f80: DUP2 00001f81: MSTORE 00001f82: PUSH1 0x40 00001f84: DUP1 00001f85: DUP4 00001f86: KECCAK256 00001f87: DUP1 00001f88: SLOAD 00001f89: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00001faa: AND 00001fab: SWAP5 00001fac: DUP10 00001fad: AND 00001fae: SWAP5 00001faf: SWAP1 00001fb0: SWAP5 00001fb1: OR 00001fb2: SWAP1 00001fb3: SWAP4 00001fb4: SSTORE 00001fb5: PUSH1 0x04 00001fb7: DUP2 00001fb8: MSTORE 00001fb9: SWAP2 00001fba: SWAP1 00001fbb: KECCAK256 00001fbc: DUP5 00001fbd: MLOAD 00001fbe: PUSH2 0x1fc9 00001fc1: SWAP3 00001fc2: DUP7 00001fc3: ADD 00001fc4: SWAP1 00001fc5: PUSH2 0x3e92 00001fc8: JUMP 00001fc9: JUMPDEST 00001fca: POP 00001fcb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fe0: SWAP1 00001fe1: SWAP5 00001fe2: AND 00001fe3: PUSH1 0x00 00001fe5: SWAP1 00001fe6: DUP2 00001fe7: MSTORE 00001fe8: PUSH1 0x05 00001fea: PUSH1 0x20 00001fec: SWAP1 00001fed: DUP2 00001fee: MSTORE 00001fef: PUSH1 0x40 00001ff1: DUP1 00001ff2: DUP4 00001ff3: KECCAK256 00001ff4: DUP1 00001ff5: SLOAD 00001ff6: SWAP5 00001ff7: ISZERO 00001ff8: ISZERO 00001ff9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000201a: SWAP6 0000201b: DUP7 0000201c: AND 0000201d: OR 0000201e: SWAP1 0000201f: SSTORE 00002020: PUSH1 0x06 00002022: SWAP1 00002023: SWAP2 00002024: MSTORE 00002025: SWAP1 00002026: KECCAK256 00002027: DUP1 00002028: SLOAD 00002029: SWAP5 0000202a: ISZERO 0000202b: ISZERO 0000202c: SWAP5 0000202d: SWAP1 0000202e: SWAP2 0000202f: AND 00002030: SWAP4 00002031: SWAP1 00002032: SWAP4 00002033: OR 00002034: SWAP1 00002035: SWAP3 00002036: SSTORE 00002037: POP 00002038: POP 00002039: JUMP 0000203a: JUMPDEST 0000203b: PUSH1 0x04 0000203d: PUSH1 0x20 0000203f: MSTORE 00002040: DUP2 00002041: PUSH1 0x00 00002043: MSTORE 00002044: PUSH1 0x40 00002046: PUSH1 0x00 00002048: KECCAK256 00002049: DUP2 0000204a: DUP2 0000204b: SLOAD 0000204c: DUP2 0000204d: LT 0000204e: PUSH2 0x2053 00002051: JUMPI 00002052: INVALID 00002053: JUMPDEST 00002054: PUSH1 0x00 00002056: SWAP2 00002057: DUP3 00002058: MSTORE 00002059: PUSH1 0x20 0000205b: SWAP1 0000205c: SWAP2 0000205d: KECCAK256 0000205e: ADD 0000205f: SLOAD 00002060: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002075: AND 00002076: SWAP2 00002077: POP 00002078: DUP3 00002079: SWAP1 0000207a: POP 0000207b: JUMP 0000207c: JUMPDEST 0000207d: PUSH2 0x2084 00002080: PUSH2 0x2d72 00002083: JUMP 00002084: JUMPDEST 00002085: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000209a: AND 0000209b: PUSH2 0x20a2 0000209e: PUSH2 0x1a9b 000020a1: JUMP 000020a2: JUMPDEST 000020a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020b8: AND 000020b9: EQ 000020ba: PUSH2 0x20ef 000020bd: JUMPI 000020be: PUSH1 0x40 000020c0: MLOAD 000020c1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000020e2: DUP2 000020e3: MSTORE 000020e4: PUSH1 0x04 000020e6: ADD 000020e7: PUSH2 0x098e 000020ea: SWAP1 000020eb: PUSH2 0x4a43 000020ee: JUMP 000020ef: JUMPDEST 000020f0: PUSH2 0x1a96 000020f3: DUP4 000020f4: DUP4 000020f5: DUP4 000020f6: PUSH2 0x3520 000020f9: JUMP 000020fa: JUMPDEST 000020fb: PUSH1 0x00 000020fd: CALLER 000020fe: PUSH2 0x2105 00002101: PUSH2 0x1a9b 00002104: JUMP 00002105: JUMPDEST 00002106: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000211b: AND 0000211c: EQ 0000211d: DUP1 0000211e: PUSH2 0x2136 00002121: JUMPI 00002122: POP 00002123: CALLER 00002124: PUSH1 0x00 00002126: SWAP1 00002127: DUP2 00002128: MSTORE 00002129: PUSH1 0x01 0000212b: PUSH1 0x20 0000212d: MSTORE 0000212e: PUSH1 0x40 00002130: SWAP1 00002131: KECCAK256 00002132: SLOAD 00002133: PUSH1 0xff 00002135: AND 00002136: JUMPDEST 00002137: PUSH2 0x216c 0000213a: JUMPI 0000213b: PUSH1 0x40 0000213d: MLOAD 0000213e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000215f: DUP2 00002160: MSTORE 00002161: PUSH1 0x04 00002163: ADD 00002164: PUSH2 0x098e 00002167: SWAP1 00002168: PUSH2 0x4a78 0000216b: JUMP 0000216c: JUMPDEST 0000216d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002182: DUP5 00002183: DUP2 00002184: AND 00002185: PUSH1 0x00 00002187: SWAP1 00002188: DUP2 00002189: MSTORE 0000218a: PUSH1 0x07 0000218c: PUSH1 0x20 0000218e: MSTORE 0000218f: PUSH1 0x40 00002191: DUP2 00002192: KECCAK256 00002193: SLOAD 00002194: SWAP1 00002195: SWAP2 00002196: AND 00002197: ISZERO 00002198: PUSH2 0x21c8 0000219b: JUMPI 0000219c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021b1: DUP1 000021b2: DUP7 000021b3: AND 000021b4: PUSH1 0x00 000021b6: SWAP1 000021b7: DUP2 000021b8: MSTORE 000021b9: PUSH1 0x07 000021bb: PUSH1 0x20 000021bd: MSTORE 000021be: PUSH1 0x40 000021c0: SWAP1 000021c1: KECCAK256 000021c2: SLOAD 000021c3: AND 000021c4: PUSH2 0x21ca 000021c7: JUMP 000021c8: JUMPDEST 000021c9: DUP5 000021ca: JUMPDEST 000021cb: SWAP1 000021cc: POP 000021cd: PUSH1 0x00 000021cf: PUSH2 0x21d8 000021d2: DUP7 000021d3: DUP7 000021d4: PUSH2 0x08bd 000021d7: JUMP 000021d8: JUMPDEST 000021d9: SWAP1 000021da: POP 000021db: PUSH1 0x00 000021dd: PUSH2 0x21e5 000021e0: DUP7 000021e1: PUSH2 0x1acc 000021e4: JUMP 000021e5: JUMPDEST 000021e6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021fb: DUP9 000021fc: AND 000021fd: PUSH1 0x00 000021ff: SWAP1 00002200: DUP2 00002201: MSTORE 00002202: PUSH1 0x06 00002204: PUSH1 0x20 00002206: SWAP1 00002207: DUP2 00002208: MSTORE 00002209: PUSH1 0x40 0000220b: DUP1 0000220c: DUP4 0000220d: KECCAK256 0000220e: SLOAD 0000220f: PUSH1 0x05 00002211: SWAP1 00002212: SWAP3 00002213: MSTORE 00002214: SWAP1 00002215: SWAP2 00002216: KECCAK256 00002217: SLOAD 00002218: SWAP2 00002219: SWAP3 0000221a: POP 0000221b: PUSH1 0xff 0000221d: SWAP1 0000221e: DUP2 0000221f: AND 00002220: SWAP2 00002221: AND 00002222: ISZERO 00002223: PUSH2 0x234c 00002226: JUMPI 00002227: DUP1 00002228: ISZERO 00002229: PUSH2 0x22bd 0000222c: JUMPI 0000222d: PUSH1 0x40 0000222f: MLOAD 00002230: PUSH32 0x8f15b6b500000000000000000000000000000000000000000000000000000000 00002251: DUP2 00002252: MSTORE 00002253: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002268: DUP6 00002269: AND 0000226a: SWAP1 0000226b: PUSH4 0x8f15b6b5 00002270: SWAP1 00002271: PUSH2 0x2286 00002274: SWAP1 00002275: DUP10 00002276: SWAP1 00002277: DUP8 00002278: SWAP1 00002279: PUSH1 0x00 0000227b: SWAP1 0000227c: PUSH1 0x01 0000227e: SWAP1 0000227f: PUSH1 0x04 00002281: ADD 00002282: PUSH2 0x4cb6 00002285: JUMP 00002286: JUMPDEST 00002287: PUSH1 0x00 00002289: PUSH1 0x40 0000228b: MLOAD 0000228c: DUP1 0000228d: DUP4 0000228e: SUB 0000228f: DUP2 00002290: PUSH1 0x00 00002292: DUP8 00002293: DUP1 00002294: EXTCODESIZE 00002295: ISZERO 00002296: DUP1 00002297: ISZERO 00002298: PUSH2 0x22a0 0000229b: JUMPI 0000229c: PUSH1 0x00 0000229e: DUP1 0000229f: REVERT 000022a0: JUMPDEST 000022a1: POP 000022a2: GAS 000022a3: CALL 000022a4: ISZERO 000022a5: DUP1 000022a6: ISZERO 000022a7: PUSH2 0x22b4 000022aa: JUMPI 000022ab: RETURNDATASIZE 000022ac: PUSH1 0x00 000022ae: DUP1 000022af: RETURNDATACOPY 000022b0: RETURNDATASIZE 000022b1: PUSH1 0x00 000022b3: REVERT 000022b4: JUMPDEST 000022b5: POP 000022b6: POP 000022b7: POP 000022b8: POP 000022b9: PUSH2 0x2347 000022bc: JUMP 000022bd: JUMPDEST 000022be: PUSH1 0x40 000022c0: MLOAD 000022c1: PUSH32 0xf1dc3cc900000000000000000000000000000000000000000000000000000000 000022e2: DUP2 000022e3: MSTORE 000022e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022f9: DUP6 000022fa: AND 000022fb: SWAP1 000022fc: PUSH4 0xf1dc3cc9 00002301: SWAP1 00002302: PUSH2 0x2314 00002305: SWAP1 00002306: DUP10 00002307: SWAP1 00002308: DUP8 00002309: SWAP1 0000230a: PUSH1 0x00 0000230c: SWAP1 0000230d: PUSH1 0x04 0000230f: ADD 00002310: PUSH2 0x4ca0 00002313: JUMP 00002314: JUMPDEST 00002315: PUSH1 0x00 00002317: PUSH1 0x40 00002319: MLOAD 0000231a: DUP1 0000231b: DUP4 0000231c: SUB 0000231d: DUP2 0000231e: PUSH1 0x00 00002320: DUP8 00002321: DUP1 00002322: EXTCODESIZE 00002323: ISZERO 00002324: DUP1 00002325: ISZERO 00002326: PUSH2 0x232e 00002329: JUMPI 0000232a: PUSH1 0x00 0000232c: DUP1 0000232d: REVERT 0000232e: JUMPDEST 0000232f: POP 00002330: GAS 00002331: CALL 00002332: ISZERO 00002333: DUP1 00002334: ISZERO 00002335: PUSH2 0x2342 00002338: JUMPI 00002339: RETURNDATASIZE 0000233a: PUSH1 0x00 0000233c: DUP1 0000233d: RETURNDATACOPY 0000233e: RETURNDATASIZE 0000233f: PUSH1 0x00 00002341: REVERT 00002342: JUMPDEST 00002343: POP 00002344: POP 00002345: POP 00002346: POP 00002347: JUMPDEST 00002348: PUSH2 0x2436 0000234b: JUMP 0000234c: JUMPDEST 0000234d: DUP1 0000234e: ISZERO 0000234f: PUSH2 0x23ac 00002352: JUMPI 00002353: PUSH1 0x40 00002355: MLOAD 00002356: PUSH32 0x517a55a300000000000000000000000000000000000000000000000000000000 00002377: DUP2 00002378: MSTORE 00002379: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000238e: DUP6 0000238f: AND 00002390: SWAP1 00002391: PUSH4 0x517a55a3 00002396: SWAP1 00002397: PUSH2 0x2314 0000239a: SWAP1 0000239b: DUP10 0000239c: SWAP1 0000239d: DUP8 0000239e: SWAP1 0000239f: PUSH1 0x00 000023a1: SWAP1 000023a2: PUSH1 0x01 000023a4: SWAP1 000023a5: PUSH1 0x04 000023a7: ADD 000023a8: PUSH2 0x4c68 000023ab: JUMP 000023ac: JUMPDEST 000023ad: PUSH1 0x40 000023af: MLOAD 000023b0: PUSH32 0x1a4d01d200000000000000000000000000000000000000000000000000000000 000023d1: DUP2 000023d2: MSTORE 000023d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023e8: DUP6 000023e9: AND 000023ea: SWAP1 000023eb: PUSH4 0x1a4d01d2 000023f0: SWAP1 000023f1: PUSH2 0x2403 000023f4: SWAP1 000023f5: DUP10 000023f6: SWAP1 000023f7: DUP8 000023f8: SWAP1 000023f9: PUSH1 0x00 000023fb: SWAP1 000023fc: PUSH1 0x04 000023fe: ADD 000023ff: PUSH2 0x4c4f 00002402: JUMP 00002403: JUMPDEST 00002404: PUSH1 0x00 00002406: PUSH1 0x40 00002408: MLOAD 00002409: DUP1 0000240a: DUP4 0000240b: SUB 0000240c: DUP2 0000240d: PUSH1 0x00 0000240f: DUP8 00002410: DUP1 00002411: EXTCODESIZE 00002412: ISZERO 00002413: DUP1 00002414: ISZERO 00002415: PUSH2 0x241d 00002418: JUMPI 00002419: PUSH1 0x00 0000241b: DUP1 0000241c: REVERT 0000241d: JUMPDEST 0000241e: POP 0000241f: GAS 00002420: CALL 00002421: ISZERO 00002422: DUP1 00002423: ISZERO 00002424: PUSH2 0x2431 00002427: JUMPI 00002428: RETURNDATASIZE 00002429: PUSH1 0x00 0000242b: DUP1 0000242c: RETURNDATACOPY 0000242d: RETURNDATASIZE 0000242e: PUSH1 0x00 00002430: REVERT 00002431: JUMPDEST 00002432: POP 00002433: POP 00002434: POP 00002435: POP 00002436: JUMPDEST 00002437: PUSH1 0x00 00002439: PUSH2 0x2445 0000243c: DUP4 0000243d: PUSH2 0x106e 00002440: DUP11 00002441: PUSH2 0x1acc 00002444: JUMP 00002445: JUMPDEST 00002446: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000245b: DUP11 0000245c: AND 0000245d: PUSH1 0x00 0000245f: SWAP1 00002460: DUP2 00002461: MSTORE 00002462: PUSH1 0x04 00002464: PUSH1 0x20 00002466: MSTORE 00002467: PUSH1 0x40 00002469: SWAP1 0000246a: KECCAK256 0000246b: SLOAD 0000246c: SWAP1 0000246d: SWAP2 0000246e: POP 0000246f: PUSH1 0x60 00002471: DUP2 00002472: PUSH8 0xffffffffffffffff 0000247b: DUP2 0000247c: GT 0000247d: DUP1 0000247e: ISZERO 0000247f: PUSH2 0x2487 00002482: JUMPI 00002483: PUSH1 0x00 00002485: DUP1 00002486: REVERT 00002487: JUMPDEST 00002488: POP 00002489: PUSH1 0x40 0000248b: MLOAD 0000248c: SWAP1 0000248d: DUP1 0000248e: DUP3 0000248f: MSTORE 00002490: DUP1 00002491: PUSH1 0x20 00002493: MUL 00002494: PUSH1 0x20 00002496: ADD 00002497: DUP3 00002498: ADD 00002499: PUSH1 0x40 0000249b: MSTORE 0000249c: DUP1 0000249d: ISZERO 0000249e: PUSH2 0x24b1 000024a1: JUMPI 000024a2: DUP2 000024a3: PUSH1 0x20 000024a5: ADD 000024a6: PUSH1 0x20 000024a8: DUP3 000024a9: MUL 000024aa: DUP1 000024ab: CALLDATASIZE 000024ac: DUP4 000024ad: CALLDATACOPY 000024ae: ADD 000024af: SWAP1 000024b0: POP 000024b1: JUMPDEST 000024b2: POP 000024b3: SWAP1 000024b4: POP 000024b5: DUP3 000024b6: DUP2 000024b7: DUP8 000024b8: DUP2 000024b9: MLOAD 000024ba: DUP2 000024bb: LT 000024bc: PUSH2 0x24c1 000024bf: JUMPI 000024c0: INVALID 000024c1: JUMPDEST 000024c2: PUSH1 0x20 000024c4: MUL 000024c5: PUSH1 0x20 000024c7: ADD 000024c8: ADD 000024c9: DUP2 000024ca: DUP2 000024cb: MSTORE 000024cc: POP 000024cd: POP 000024ce: DUP11 000024cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024e4: AND 000024e5: PUSH32 0xd2602de014927617147990f1eaef38f72e9787acf22aa14785cefe59164eef1c 00002506: DUP3 00002507: PUSH1 0x40 00002509: MLOAD 0000250a: PUSH2 0x2513 0000250d: SWAP2 0000250e: SWAP1 0000250f: PUSH2 0x47fc 00002512: JUMP 00002513: JUMPDEST 00002514: PUSH1 0x40 00002516: MLOAD 00002517: DUP1 00002518: SWAP2 00002519: SUB 0000251a: SWAP1 0000251b: LOG2 0000251c: POP 0000251d: SWAP1 0000251e: SWAP10 0000251f: SWAP9 00002520: POP 00002521: POP 00002522: POP 00002523: POP 00002524: POP 00002525: POP 00002526: POP 00002527: POP 00002528: POP 00002529: JUMP 0000252a: JUMPDEST 0000252b: PUSH2 0x2532 0000252e: PUSH2 0x2d72 00002531: JUMP 00002532: JUMPDEST 00002533: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002548: AND 00002549: PUSH2 0x2550 0000254c: PUSH2 0x1a9b 0000254f: JUMP 00002550: JUMPDEST 00002551: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002566: AND 00002567: EQ 00002568: PUSH2 0x259d 0000256b: JUMPI 0000256c: PUSH1 0x40 0000256e: MLOAD 0000256f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002590: DUP2 00002591: MSTORE 00002592: PUSH1 0x04 00002594: ADD 00002595: PUSH2 0x098e 00002598: SWAP1 00002599: PUSH2 0x4a43 0000259c: JUMP 0000259d: JUMPDEST 0000259e: PUSH1 0x08 000025a0: DUP1 000025a1: SLOAD 000025a2: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000025c3: AND 000025c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025d9: SWAP3 000025da: SWAP1 000025db: SWAP3 000025dc: AND 000025dd: SWAP2 000025de: SWAP1 000025df: SWAP2 000025e0: OR 000025e1: SWAP1 000025e2: SSTORE 000025e3: JUMP 000025e4: JUMPDEST 000025e5: PUSH2 0x25ec 000025e8: PUSH2 0x2d72 000025eb: JUMP 000025ec: JUMPDEST 000025ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002602: AND 00002603: PUSH2 0x260a 00002606: PUSH2 0x1a9b 00002609: JUMP 0000260a: JUMPDEST 0000260b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002620: AND 00002621: EQ 00002622: PUSH2 0x2657 00002625: JUMPI 00002626: PUSH1 0x40 00002628: MLOAD 00002629: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000264a: DUP2 0000264b: MSTORE 0000264c: PUSH1 0x04 0000264e: ADD 0000264f: PUSH2 0x098e 00002652: SWAP1 00002653: PUSH2 0x4a43 00002656: JUMP 00002657: JUMPDEST 00002658: PUSH2 0x1a96 0000265b: DUP4 0000265c: DUP4 0000265d: DUP4 0000265e: PUSH2 0x32fd 00002661: JUMP 00002662: JUMPDEST 00002663: PUSH1 0x00 00002665: CALLER 00002666: PUSH2 0x266d 00002669: PUSH2 0x1a9b 0000266c: JUMP 0000266d: JUMPDEST 0000266e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002683: AND 00002684: EQ 00002685: DUP1 00002686: PUSH2 0x269e 00002689: JUMPI 0000268a: POP 0000268b: CALLER 0000268c: PUSH1 0x00 0000268e: SWAP1 0000268f: DUP2 00002690: MSTORE 00002691: PUSH1 0x01 00002693: PUSH1 0x20 00002695: MSTORE 00002696: PUSH1 0x40 00002698: SWAP1 00002699: KECCAK256 0000269a: SLOAD 0000269b: PUSH1 0xff 0000269d: AND 0000269e: JUMPDEST 0000269f: PUSH2 0x26d4 000026a2: JUMPI 000026a3: PUSH1 0x40 000026a5: MLOAD 000026a6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000026c7: DUP2 000026c8: MSTORE 000026c9: PUSH1 0x04 000026cb: ADD 000026cc: PUSH2 0x098e 000026cf: SWAP1 000026d0: PUSH2 0x4a78 000026d3: JUMP 000026d4: JUMPDEST 000026d5: PUSH1 0x00 000026d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026ec: DUP5 000026ed: AND 000026ee: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00002703: EQ 00002704: PUSH2 0x270e 00002707: JUMPI 00002708: PUSH1 0x00 0000270a: PUSH2 0x2710 0000270d: JUMP 0000270e: JUMPDEST 0000270f: DUP3 00002710: JUMPDEST 00002711: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002726: DUP7 00002727: AND 00002728: PUSH1 0x00 0000272a: SWAP1 0000272b: DUP2 0000272c: MSTORE 0000272d: PUSH1 0x04 0000272f: PUSH1 0x20 00002731: MSTORE 00002732: PUSH1 0x40 00002734: SWAP1 00002735: KECCAK256 00002736: SLOAD 00002737: SWAP1 00002738: SWAP2 00002739: POP 0000273a: PUSH1 0x60 0000273c: SWAP1 0000273d: PUSH8 0xffffffffffffffff 00002746: DUP2 00002747: GT 00002748: DUP1 00002749: ISZERO 0000274a: PUSH2 0x2752 0000274d: JUMPI 0000274e: PUSH1 0x00 00002750: DUP1 00002751: REVERT 00002752: JUMPDEST 00002753: POP 00002754: PUSH1 0x40 00002756: MLOAD 00002757: SWAP1 00002758: DUP1 00002759: DUP3 0000275a: MSTORE 0000275b: DUP1 0000275c: PUSH1 0x20 0000275e: MUL 0000275f: PUSH1 0x20 00002761: ADD 00002762: DUP3 00002763: ADD 00002764: PUSH1 0x40 00002766: MSTORE 00002767: DUP1 00002768: ISZERO 00002769: PUSH2 0x277c 0000276c: JUMPI 0000276d: DUP2 0000276e: PUSH1 0x20 00002770: ADD 00002771: PUSH1 0x20 00002773: DUP3 00002774: MUL 00002775: DUP1 00002776: CALLDATASIZE 00002777: DUP4 00002778: CALLDATACOPY 00002779: ADD 0000277a: SWAP1 0000277b: POP 0000277c: JUMPDEST 0000277d: POP 0000277e: SWAP1 0000277f: POP 00002780: DUP4 00002781: DUP2 00002782: PUSH2 0x278b 00002785: DUP9 00002786: DUP9 00002787: PUSH2 0x08bd 0000278a: JUMP 0000278b: JUMPDEST 0000278c: DUP2 0000278d: MLOAD 0000278e: DUP2 0000278f: LT 00002790: PUSH2 0x2795 00002793: JUMPI 00002794: INVALID 00002795: JUMPDEST 00002796: PUSH1 0x20 00002798: MUL 00002799: PUSH1 0x20 0000279b: ADD 0000279c: ADD 0000279d: DUP2 0000279e: DUP2 0000279f: MSTORE 000027a0: POP 000027a1: POP 000027a2: PUSH2 0x27ac 000027a5: DUP7 000027a6: DUP3 000027a7: DUP5 000027a8: PUSH2 0x2d76 000027ab: JUMP 000027ac: JUMPDEST 000027ad: SWAP7 000027ae: SWAP6 000027af: POP 000027b0: POP 000027b1: POP 000027b2: POP 000027b3: POP 000027b4: POP 000027b5: JUMP 000027b6: JUMPDEST 000027b7: PUSH1 0x07 000027b9: PUSH1 0x20 000027bb: MSTORE 000027bc: PUSH1 0x00 000027be: SWAP1 000027bf: DUP2 000027c0: MSTORE 000027c1: PUSH1 0x40 000027c3: SWAP1 000027c4: KECCAK256 000027c5: SLOAD 000027c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027db: AND 000027dc: DUP2 000027dd: JUMP 000027de: JUMPDEST 000027df: PUSH1 0x05 000027e1: PUSH1 0x20 000027e3: MSTORE 000027e4: PUSH1 0x00 000027e6: SWAP1 000027e7: DUP2 000027e8: MSTORE 000027e9: PUSH1 0x40 000027eb: SWAP1 000027ec: KECCAK256 000027ed: SLOAD 000027ee: PUSH1 0xff 000027f0: AND 000027f1: DUP2 000027f2: JUMP 000027f3: JUMPDEST 000027f4: PUSH1 0x00 000027f6: CALLER 000027f7: PUSH2 0x27fe 000027fa: PUSH2 0x1a9b 000027fd: JUMP 000027fe: JUMPDEST 000027ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002814: AND 00002815: EQ 00002816: DUP1 00002817: PUSH2 0x282f 0000281a: JUMPI 0000281b: POP 0000281c: CALLER 0000281d: PUSH1 0x00 0000281f: SWAP1 00002820: DUP2 00002821: MSTORE 00002822: PUSH1 0x01 00002824: PUSH1 0x20 00002826: MSTORE 00002827: PUSH1 0x40 00002829: SWAP1 0000282a: KECCAK256 0000282b: SLOAD 0000282c: PUSH1 0xff 0000282e: AND 0000282f: JUMPDEST 00002830: PUSH2 0x2865 00002833: JUMPI 00002834: PUSH1 0x40 00002836: MLOAD 00002837: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002858: DUP2 00002859: MSTORE 0000285a: PUSH1 0x04 0000285c: ADD 0000285d: PUSH2 0x098e 00002860: SWAP1 00002861: PUSH2 0x4a78 00002864: JUMP 00002865: JUMPDEST 00002866: PUSH1 0x00 00002868: PUSH2 0x2870 0000286b: DUP4 0000286c: PUSH2 0x331e 0000286f: JUMP 00002870: JUMPDEST 00002871: SWAP1 00002872: POP 00002873: PUSH1 0x00 00002875: PUSH2 0x2880 00002878: DUP9 00002879: DUP4 0000287a: DUP9 0000287b: DUP9 0000287c: PUSH2 0x0cea 0000287f: JUMP 00002880: JUMPDEST 00002881: SWAP1 00002882: POP 00002883: PUSH2 0x1510 00002886: DUP5 00002887: DUP9 00002888: DUP4 00002889: PUSH2 0x20fa 0000288c: JUMP 0000288d: JUMPDEST 0000288e: CALLER 0000288f: PUSH2 0x2896 00002892: PUSH2 0x1a9b 00002895: JUMP 00002896: JUMPDEST 00002897: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028ac: AND 000028ad: EQ 000028ae: DUP1 000028af: PUSH2 0x28c7 000028b2: JUMPI 000028b3: POP 000028b4: CALLER 000028b5: PUSH1 0x00 000028b7: SWAP1 000028b8: DUP2 000028b9: MSTORE 000028ba: PUSH1 0x01 000028bc: PUSH1 0x20 000028be: MSTORE 000028bf: PUSH1 0x40 000028c1: SWAP1 000028c2: KECCAK256 000028c3: SLOAD 000028c4: PUSH1 0xff 000028c6: AND 000028c7: JUMPDEST 000028c8: PUSH2 0x28fd 000028cb: JUMPI 000028cc: PUSH1 0x40 000028ce: MLOAD 000028cf: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000028f0: DUP2 000028f1: MSTORE 000028f2: PUSH1 0x04 000028f4: ADD 000028f5: PUSH2 0x098e 000028f8: SWAP1 000028f9: PUSH2 0x4a78 000028fc: JUMP 000028fd: JUMPDEST 000028fe: PUSH1 0x40 00002900: MLOAD 00002901: PUSH32 0x2e1a7d4d00000000000000000000000000000000000000000000000000000000 00002922: DUP2 00002923: MSTORE 00002924: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00002939: SWAP1 0000293a: PUSH4 0x2e1a7d4d 0000293f: SWAP1 00002940: PUSH2 0x0c28 00002943: SWAP1 00002944: DUP5 00002945: SWAP1 00002946: PUSH1 0x04 00002948: ADD 00002949: PUSH2 0x4bc6 0000294c: JUMP 0000294d: JUMPDEST 0000294e: PUSH2 0x2955 00002951: PUSH2 0x2d72 00002954: JUMP 00002955: JUMPDEST 00002956: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000296b: AND 0000296c: PUSH2 0x2973 0000296f: PUSH2 0x1a9b 00002972: JUMP 00002973: JUMPDEST 00002974: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002989: AND 0000298a: EQ 0000298b: PUSH2 0x29c0 0000298e: JUMPI 0000298f: PUSH1 0x40 00002991: MLOAD 00002992: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000029b3: DUP2 000029b4: MSTORE 000029b5: PUSH1 0x04 000029b7: ADD 000029b8: PUSH2 0x098e 000029bb: SWAP1 000029bc: PUSH2 0x4a43 000029bf: JUMP 000029c0: JUMPDEST 000029c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029d6: SWAP2 000029d7: DUP3 000029d8: AND 000029d9: PUSH1 0x00 000029db: SWAP1 000029dc: DUP2 000029dd: MSTORE 000029de: PUSH1 0x07 000029e0: PUSH1 0x20 000029e2: MSTORE 000029e3: PUSH1 0x40 000029e5: SWAP1 000029e6: KECCAK256 000029e7: DUP1 000029e8: SLOAD 000029e9: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002a0a: AND 00002a0b: SWAP2 00002a0c: SWAP1 00002a0d: SWAP3 00002a0e: AND 00002a0f: OR 00002a10: SWAP1 00002a11: SSTORE 00002a12: JUMP 00002a13: JUMPDEST 00002a14: PUSH2 0x2a1b 00002a17: PUSH2 0x2d72 00002a1a: JUMP 00002a1b: JUMPDEST 00002a1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a31: AND 00002a32: PUSH2 0x2a39 00002a35: PUSH2 0x1a9b 00002a38: JUMP 00002a39: JUMPDEST 00002a3a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a4f: AND 00002a50: EQ 00002a51: PUSH2 0x2a86 00002a54: JUMPI 00002a55: PUSH1 0x40 00002a57: MLOAD 00002a58: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002a79: DUP2 00002a7a: MSTORE 00002a7b: PUSH1 0x04 00002a7d: ADD 00002a7e: PUSH2 0x098e 00002a81: SWAP1 00002a82: PUSH2 0x4a43 00002a85: JUMP 00002a86: JUMPDEST 00002a87: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a9c: DUP2 00002a9d: AND 00002a9e: PUSH2 0x2ad3 00002aa1: JUMPI 00002aa2: PUSH1 0x40 00002aa4: MLOAD 00002aa5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002ac6: DUP2 00002ac7: MSTORE 00002ac8: PUSH1 0x04 00002aca: ADD 00002acb: PUSH2 0x098e 00002ace: SWAP1 00002acf: PUSH2 0x4941 00002ad2: JUMP 00002ad3: JUMPDEST 00002ad4: PUSH1 0x00 00002ad6: DUP1 00002ad7: SLOAD 00002ad8: PUSH1 0x40 00002ada: MLOAD 00002adb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002af0: DUP1 00002af1: DUP6 00002af2: AND 00002af3: SWAP4 00002af4: SWAP3 00002af5: AND 00002af6: SWAP2 00002af7: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002b18: SWAP2 00002b19: LOG3 00002b1a: PUSH1 0x00 00002b1c: DUP1 00002b1d: SLOAD 00002b1e: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002b3f: AND 00002b40: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b55: SWAP3 00002b56: SWAP1 00002b57: SWAP3 00002b58: AND 00002b59: SWAP2 00002b5a: SWAP1 00002b5b: SWAP2 00002b5c: OR 00002b5d: SWAP1 00002b5e: SSTORE 00002b5f: JUMP 00002b60: JUMPDEST 00002b61: PUSH2 0x2b68 00002b64: PUSH2 0x2d72 00002b67: JUMP 00002b68: JUMPDEST 00002b69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b7e: AND 00002b7f: PUSH2 0x2b86 00002b82: PUSH2 0x1a9b 00002b85: JUMP 00002b86: JUMPDEST 00002b87: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b9c: AND 00002b9d: EQ 00002b9e: PUSH2 0x2bd3 00002ba1: JUMPI 00002ba2: PUSH1 0x40 00002ba4: MLOAD 00002ba5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002bc6: DUP2 00002bc7: MSTORE 00002bc8: PUSH1 0x04 00002bca: ADD 00002bcb: PUSH2 0x098e 00002bce: SWAP1 00002bcf: PUSH2 0x4a43 00002bd2: JUMP 00002bd3: JUMPDEST 00002bd4: PUSH2 0x1472 00002bd7: DUP3 00002bd8: DUP3 00002bd9: CALLER 00002bda: PUSH2 0x3520 00002bdd: JUMP 00002bde: JUMPDEST 00002bdf: PUSH1 0x00 00002be1: CALLER 00002be2: PUSH2 0x2be9 00002be5: PUSH2 0x1a9b 00002be8: JUMP 00002be9: JUMPDEST 00002bea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bff: AND 00002c00: EQ 00002c01: DUP1 00002c02: PUSH2 0x2c1a 00002c05: JUMPI 00002c06: POP 00002c07: CALLER 00002c08: PUSH1 0x00 00002c0a: SWAP1 00002c0b: DUP2 00002c0c: MSTORE 00002c0d: PUSH1 0x01 00002c0f: PUSH1 0x20 00002c11: MSTORE 00002c12: PUSH1 0x40 00002c14: SWAP1 00002c15: KECCAK256 00002c16: SLOAD 00002c17: PUSH1 0xff 00002c19: AND 00002c1a: JUMPDEST 00002c1b: PUSH2 0x2c50 00002c1e: JUMPI 00002c1f: PUSH1 0x40 00002c21: MLOAD 00002c22: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002c43: DUP2 00002c44: MSTORE 00002c45: PUSH1 0x04 00002c47: ADD 00002c48: PUSH2 0x098e 00002c4b: SWAP1 00002c4c: PUSH2 0x4a78 00002c4f: JUMP 00002c50: JUMPDEST 00002c51: PUSH1 0x00 00002c53: PUSH2 0x2c5b 00002c56: DUP4 00002c57: PUSH2 0x331e 00002c5a: JUMP 00002c5b: JUMPDEST 00002c5c: SWAP1 00002c5d: POP 00002c5e: PUSH1 0x00 00002c60: PUSH2 0x2880 00002c63: DUP9 00002c64: DUP4 00002c65: DUP9 00002c66: DUP9 00002c67: PUSH2 0x2cf6 00002c6a: JUMP 00002c6b: JUMPDEST 00002c6c: PUSH2 0x2c73 00002c6f: PUSH2 0x2d72 00002c72: JUMP 00002c73: JUMPDEST 00002c74: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c89: AND 00002c8a: PUSH2 0x2c91 00002c8d: PUSH2 0x1a9b 00002c90: JUMP 00002c91: JUMPDEST 00002c92: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ca7: AND 00002ca8: EQ 00002ca9: PUSH2 0x2cde 00002cac: JUMPI 00002cad: PUSH1 0x40 00002caf: MLOAD 00002cb0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002cd1: DUP2 00002cd2: MSTORE 00002cd3: PUSH1 0x04 00002cd5: ADD 00002cd6: PUSH2 0x098e 00002cd9: SWAP1 00002cda: PUSH2 0x4a43 00002cdd: JUMP 00002cde: JUMPDEST 00002cdf: PUSH1 0x00 00002ce1: PUSH2 0x2ce9 00002ce4: DUP3 00002ce5: PUSH2 0x3454 00002ce8: JUMP 00002ce9: JUMPDEST 00002cea: SWAP1 00002ceb: POP 00002cec: PUSH2 0x1472 00002cef: DUP3 00002cf0: DUP3 00002cf1: CALLER 00002cf2: PUSH2 0x3520 00002cf5: JUMP 00002cf6: JUMPDEST 00002cf7: PUSH1 0x00 00002cf9: CALLER 00002cfa: PUSH2 0x2d01 00002cfd: PUSH2 0x1a9b 00002d00: JUMP 00002d01: JUMPDEST 00002d02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d17: AND 00002d18: EQ 00002d19: DUP1 00002d1a: PUSH2 0x2d32 00002d1d: JUMPI 00002d1e: POP 00002d1f: CALLER 00002d20: PUSH1 0x00 00002d22: SWAP1 00002d23: DUP2 00002d24: MSTORE 00002d25: PUSH1 0x01 00002d27: PUSH1 0x20 00002d29: MSTORE 00002d2a: PUSH1 0x40 00002d2c: SWAP1 00002d2d: KECCAK256 00002d2e: SLOAD 00002d2f: PUSH1 0xff 00002d31: AND 00002d32: JUMPDEST 00002d33: PUSH2 0x2d68 00002d36: JUMPI 00002d37: PUSH1 0x40 00002d39: MLOAD 00002d3a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002d5b: DUP2 00002d5c: MSTORE 00002d5d: PUSH1 0x04 00002d5f: ADD 00002d60: PUSH2 0x098e 00002d63: SWAP1 00002d64: PUSH2 0x4a78 00002d67: JUMP 00002d68: JUMPDEST 00002d69: PUSH2 0x0d66 00002d6c: DUP3 00002d6d: DUP5 00002d6e: PUSH2 0x15b6 00002d71: JUMP 00002d72: JUMPDEST 00002d73: CALLER 00002d74: SWAP1 00002d75: JUMP 00002d76: JUMPDEST 00002d77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d8c: DUP4 00002d8d: DUP2 00002d8e: AND 00002d8f: PUSH1 0x00 00002d91: SWAP1 00002d92: DUP2 00002d93: MSTORE 00002d94: PUSH1 0x07 00002d96: PUSH1 0x20 00002d98: MSTORE 00002d99: PUSH1 0x40 00002d9b: DUP2 00002d9c: KECCAK256 00002d9d: SLOAD 00002d9e: SWAP1 00002d9f: SWAP2 00002da0: AND 00002da1: PUSH2 0x2ebc 00002da4: JUMPI 00002da5: PUSH16 0x22d53366457f9d5e68ec105046fc4383 00002db6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002dcb: AND 00002dcc: PUSH4 0xa262904b 00002dd1: PUSH1 0x40 00002dd3: MLOAD 00002dd4: DUP2 00002dd5: PUSH4 0xffffffff 00002dda: AND 00002ddb: PUSH1 0xe0 00002ddd: SHL 00002dde: DUP2 00002ddf: MSTORE 00002de0: PUSH1 0x04 00002de2: ADD 00002de3: PUSH1 0x20 00002de5: PUSH1 0x40 00002de7: MLOAD 00002de8: DUP1 00002de9: DUP4 00002dea: SUB 00002deb: DUP2 00002dec: DUP7 00002ded: DUP1 00002dee: EXTCODESIZE 00002def: ISZERO 00002df0: DUP1 00002df1: ISZERO 00002df2: PUSH2 0x2dfa 00002df5: JUMPI 00002df6: PUSH1 0x00 00002df8: DUP1 00002df9: REVERT 00002dfa: JUMPDEST 00002dfb: POP 00002dfc: GAS 00002dfd: STATICCALL 00002dfe: ISZERO 00002dff: DUP1 00002e00: ISZERO 00002e01: PUSH2 0x2e0e 00002e04: JUMPI 00002e05: RETURNDATASIZE 00002e06: PUSH1 0x00 00002e08: DUP1 00002e09: RETURNDATACOPY 00002e0a: RETURNDATASIZE 00002e0b: PUSH1 0x00 00002e0d: REVERT 00002e0e: JUMPDEST 00002e0f: POP 00002e10: POP 00002e11: POP 00002e12: POP 00002e13: PUSH1 0x40 00002e15: MLOAD 00002e16: RETURNDATASIZE 00002e17: PUSH1 0x1f 00002e19: NOT 00002e1a: PUSH1 0x1f 00002e1c: DUP3 00002e1d: ADD 00002e1e: AND 00002e1f: DUP3 00002e20: ADD 00002e21: DUP1 00002e22: PUSH1 0x40 00002e24: MSTORE 00002e25: POP 00002e26: DUP2 00002e27: ADD 00002e28: SWAP1 00002e29: PUSH2 0x2e32 00002e2c: SWAP2 00002e2d: SWAP1 00002e2e: PUSH2 0x4107 00002e31: JUMP 00002e32: JUMPDEST 00002e33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e48: AND 00002e49: PUSH4 0x55b30b19 00002e4e: DUP6 00002e4f: PUSH1 0x40 00002e51: MLOAD 00002e52: DUP3 00002e53: PUSH4 0xffffffff 00002e58: AND 00002e59: PUSH1 0xe0 00002e5b: SHL 00002e5c: DUP2 00002e5d: MSTORE 00002e5e: PUSH1 0x04 00002e60: ADD 00002e61: PUSH2 0x2e6a 00002e64: SWAP2 00002e65: SWAP1 00002e66: PUSH2 0x4710 00002e69: JUMP 00002e6a: JUMPDEST 00002e6b: PUSH1 0x20 00002e6d: PUSH1 0x40 00002e6f: MLOAD 00002e70: DUP1 00002e71: DUP4 00002e72: SUB 00002e73: DUP2 00002e74: DUP7 00002e75: DUP1 00002e76: EXTCODESIZE 00002e77: ISZERO 00002e78: DUP1 00002e79: ISZERO 00002e7a: PUSH2 0x2e82 00002e7d: JUMPI 00002e7e: PUSH1 0x00 00002e80: DUP1 00002e81: REVERT 00002e82: JUMPDEST 00002e83: POP 00002e84: GAS 00002e85: STATICCALL 00002e86: ISZERO 00002e87: DUP1 00002e88: ISZERO 00002e89: PUSH2 0x2e96 00002e8c: JUMPI 00002e8d: RETURNDATASIZE 00002e8e: PUSH1 0x00 00002e90: DUP1 00002e91: RETURNDATACOPY 00002e92: RETURNDATASIZE 00002e93: PUSH1 0x00 00002e95: REVERT 00002e96: JUMPDEST 00002e97: POP 00002e98: POP 00002e99: POP 00002e9a: POP 00002e9b: PUSH1 0x40 00002e9d: MLOAD 00002e9e: RETURNDATASIZE 00002e9f: PUSH1 0x1f 00002ea1: NOT 00002ea2: PUSH1 0x1f 00002ea4: DUP3 00002ea5: ADD 00002ea6: AND 00002ea7: DUP3 00002ea8: ADD 00002ea9: DUP1 00002eaa: PUSH1 0x40 00002eac: MSTORE 00002ead: POP 00002eae: DUP2 00002eaf: ADD 00002eb0: SWAP1 00002eb1: PUSH2 0x2eba 00002eb4: SWAP2 00002eb5: SWAP1 00002eb6: PUSH2 0x4672 00002eb9: JUMP 00002eba: JUMPDEST 00002ebb: POP 00002ebc: JUMPDEST 00002ebd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ed2: DUP1 00002ed3: DUP6 00002ed4: AND 00002ed5: PUSH1 0x00 00002ed7: SWAP1 00002ed8: DUP2 00002ed9: MSTORE 00002eda: PUSH1 0x03 00002edc: PUSH1 0x20 00002ede: MSTORE 00002edf: PUSH1 0x40 00002ee1: DUP2 00002ee2: KECCAK256 00002ee3: SLOAD 00002ee4: SWAP1 00002ee5: SWAP2 00002ee6: PUSH2 0x2eef 00002ee9: SWAP2 00002eea: AND 00002eeb: PUSH2 0x1acc 00002eee: JUMP 00002eef: JUMPDEST 00002ef0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f05: DUP7 00002f06: AND 00002f07: PUSH1 0x00 00002f09: SWAP1 00002f0a: DUP2 00002f0b: MSTORE 00002f0c: PUSH1 0x04 00002f0e: PUSH1 0x20 00002f10: MSTORE 00002f11: PUSH1 0x40 00002f13: SWAP1 00002f14: KECCAK256 00002f15: SLOAD 00002f16: SWAP1 00002f17: SWAP2 00002f18: POP 00002f19: PUSH1 0x02 00002f1b: DUP2 00002f1c: EQ 00002f1d: ISZERO 00002f1e: PUSH2 0x2f31 00002f21: JUMPI 00002f22: PUSH2 0x2f2c 00002f25: DUP7 00002f26: DUP7 00002f27: DUP7 00002f28: PUSH2 0x3704 00002f2b: JUMP 00002f2c: JUMPDEST 00002f2d: PUSH2 0x2f45 00002f30: JUMP 00002f31: JUMPDEST 00002f32: DUP1 00002f33: PUSH1 0x03 00002f35: EQ 00002f36: ISZERO 00002f37: PUSH2 0x0f87 00002f3a: JUMPI 00002f3b: PUSH2 0x2f2c 00002f3e: DUP7 00002f3f: DUP7 00002f40: DUP7 00002f41: PUSH2 0x3912 00002f44: JUMP 00002f45: JUMPDEST 00002f46: DUP6 00002f47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f5c: AND 00002f5d: PUSH32 0x8a07cc9636edd256126516f66fbc1eb9bfa42631953cc7ffb96dbb4dd7c7360b 00002f7e: DUP7 00002f7f: PUSH1 0x40 00002f81: MLOAD 00002f82: PUSH2 0x2f8b 00002f85: SWAP2 00002f86: SWAP1 00002f87: PUSH2 0x47fc 00002f8a: JUMP 00002f8b: JUMPDEST 00002f8c: PUSH1 0x40 00002f8e: MLOAD 00002f8f: DUP1 00002f90: SWAP2 00002f91: SUB 00002f92: SWAP1 00002f93: LOG2 00002f94: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002fa9: DUP1 00002faa: DUP8 00002fab: AND 00002fac: PUSH1 0x00 00002fae: SWAP1 00002faf: DUP2 00002fb0: MSTORE 00002fb1: PUSH1 0x03 00002fb3: PUSH1 0x20 00002fb5: MSTORE 00002fb6: PUSH1 0x40 00002fb8: SWAP1 00002fb9: KECCAK256 00002fba: SLOAD 00002fbb: PUSH2 0x27ac 00002fbe: SWAP2 00002fbf: DUP5 00002fc0: SWAP2 00002fc1: PUSH2 0x106e 00002fc4: SWAP2 00002fc5: AND 00002fc6: PUSH2 0x1acc 00002fc9: JUMP 00002fca: JUMPDEST 00002fcb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002fe0: DUP3 00002fe1: DUP2 00002fe2: AND 00002fe3: PUSH1 0x00 00002fe5: SWAP1 00002fe6: DUP2 00002fe7: MSTORE 00002fe8: PUSH1 0x07 00002fea: PUSH1 0x20 00002fec: MSTORE 00002fed: PUSH1 0x40 00002fef: DUP2 00002ff0: KECCAK256 00002ff1: SLOAD 00002ff2: SWAP1 00002ff3: SWAP2 00002ff4: AND 00002ff5: ISZERO 00002ff6: PUSH2 0x3026 00002ff9: JUMPI 00002ffa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000300f: DUP1 00003010: DUP5 00003011: AND 00003012: PUSH1 0x00 00003014: SWAP1 00003015: DUP2 00003016: MSTORE 00003017: PUSH1 0x07 00003019: PUSH1 0x20 0000301b: MSTORE 0000301c: PUSH1 0x40 0000301e: SWAP1 0000301f: KECCAK256 00003020: SLOAD 00003021: AND 00003022: PUSH2 0x3028 00003025: JUMP 00003026: JUMPDEST 00003027: DUP3 00003028: JUMPDEST 00003029: SWAP1 0000302a: POP 0000302b: PUSH2 0x3032 0000302e: PUSH2 0x3f1c 00003031: JUMP 00003032: JUMPDEST 00003033: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003048: DUP5 00003049: AND 0000304a: PUSH1 0x00 0000304c: SWAP1 0000304d: DUP2 0000304e: MSTORE 0000304f: PUSH1 0x06 00003051: PUSH1 0x20 00003053: MSTORE 00003054: PUSH1 0x40 00003056: SWAP1 00003057: KECCAK256 00003058: SLOAD 00003059: PUSH1 0xff 0000305b: AND 0000305c: ISZERO 0000305d: PUSH2 0x30ee 00003060: JUMPI 00003061: PUSH1 0x40 00003063: MLOAD 00003064: PUSH32 0x269b558100000000000000000000000000000000000000000000000000000000 00003085: DUP2 00003086: MSTORE 00003087: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000309c: DUP4 0000309d: AND 0000309e: SWAP1 0000309f: PUSH4 0x269b5581 000030a4: SWAP1 000030a5: PUSH2 0x30b7 000030a8: SWAP1 000030a9: DUP7 000030aa: SWAP1 000030ab: DUP6 000030ac: SWAP1 000030ad: PUSH1 0x01 000030af: SWAP1 000030b0: PUSH1 0x04 000030b2: ADD 000030b3: PUSH2 0x4be3 000030b6: JUMP 000030b7: JUMPDEST 000030b8: PUSH1 0x00 000030ba: PUSH1 0x40 000030bc: MLOAD 000030bd: DUP1 000030be: DUP4 000030bf: SUB 000030c0: DUP2 000030c1: PUSH1 0x00 000030c3: DUP8 000030c4: DUP1 000030c5: EXTCODESIZE 000030c6: ISZERO 000030c7: DUP1 000030c8: ISZERO 000030c9: PUSH2 0x30d1 000030cc: JUMPI 000030cd: PUSH1 0x00 000030cf: DUP1 000030d0: REVERT 000030d1: JUMPDEST 000030d2: POP 000030d3: GAS 000030d4: CALL 000030d5: ISZERO 000030d6: DUP1 000030d7: ISZERO 000030d8: PUSH2 0x30e5 000030db: JUMPI 000030dc: RETURNDATASIZE 000030dd: PUSH1 0x00 000030df: DUP1 000030e0: RETURNDATACOPY 000030e1: RETURNDATASIZE 000030e2: PUSH1 0x00 000030e4: REVERT 000030e5: JUMPDEST 000030e6: POP 000030e7: POP 000030e8: POP 000030e9: POP 000030ea: PUSH2 0x0ac8 000030ed: JUMP 000030ee: JUMPDEST 000030ef: PUSH1 0x40 000030f1: MLOAD 000030f2: PUSH32 0x5b36389c00000000000000000000000000000000000000000000000000000000 00003113: DUP2 00003114: MSTORE 00003115: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000312a: DUP4 0000312b: AND 0000312c: SWAP1 0000312d: PUSH4 0x5b36389c 00003132: SWAP1 00003133: PUSH2 0x3142 00003136: SWAP1 00003137: DUP7 00003138: SWAP1 00003139: DUP6 0000313a: SWAP1 0000313b: PUSH1 0x04 0000313d: ADD 0000313e: PUSH2 0x4bcf 00003141: JUMP 00003142: JUMPDEST 00003143: PUSH1 0x00 00003145: PUSH1 0x40 00003147: MLOAD 00003148: DUP1 00003149: DUP4 0000314a: SUB 0000314b: DUP2 0000314c: PUSH1 0x00 0000314e: DUP8 0000314f: DUP1 00003150: EXTCODESIZE 00003151: ISZERO 00003152: DUP1 00003153: ISZERO 00003154: PUSH2 0x315c 00003157: JUMPI 00003158: PUSH1 0x00 0000315a: DUP1 0000315b: REVERT 0000315c: JUMPDEST 0000315d: POP 0000315e: GAS 0000315f: CALL 00003160: ISZERO 00003161: DUP1 00003162: ISZERO 00003163: PUSH2 0x3170 00003166: JUMPI 00003167: RETURNDATASIZE 00003168: PUSH1 0x00 0000316a: DUP1 0000316b: RETURNDATACOPY 0000316c: RETURNDATASIZE 0000316d: PUSH1 0x00 0000316f: REVERT 00003170: JUMPDEST 00003171: POP 00003172: POP 00003173: POP 00003174: POP 00003175: POP 00003176: POP 00003177: POP 00003178: POP 00003179: JUMP 0000317a: JUMPDEST 0000317b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003190: DUP3 00003191: DUP2 00003192: AND 00003193: PUSH1 0x00 00003195: SWAP1 00003196: DUP2 00003197: MSTORE 00003198: PUSH1 0x07 0000319a: PUSH1 0x20 0000319c: MSTORE 0000319d: PUSH1 0x40 0000319f: DUP2 000031a0: KECCAK256 000031a1: SLOAD 000031a2: SWAP1 000031a3: SWAP2 000031a4: AND 000031a5: ISZERO 000031a6: PUSH2 0x31d6 000031a9: JUMPI 000031aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031bf: DUP1 000031c0: DUP5 000031c1: AND 000031c2: PUSH1 0x00 000031c4: SWAP1 000031c5: DUP2 000031c6: MSTORE 000031c7: PUSH1 0x07 000031c9: PUSH1 0x20 000031cb: MSTORE 000031cc: PUSH1 0x40 000031ce: SWAP1 000031cf: KECCAK256 000031d0: SLOAD 000031d1: AND 000031d2: PUSH2 0x31d8 000031d5: JUMP 000031d6: JUMPDEST 000031d7: DUP3 000031d8: JUMPDEST 000031d9: SWAP1 000031da: POP 000031db: PUSH2 0x31e2 000031de: PUSH2 0x3f3a 000031e1: JUMP 000031e2: JUMPDEST 000031e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031f8: DUP5 000031f9: AND 000031fa: PUSH1 0x00 000031fc: SWAP1 000031fd: DUP2 000031fe: MSTORE 000031ff: PUSH1 0x06 00003201: PUSH1 0x20 00003203: MSTORE 00003204: PUSH1 0x40 00003206: SWAP1 00003207: KECCAK256 00003208: SLOAD 00003209: PUSH1 0xff 0000320b: AND 0000320c: ISZERO 0000320d: PUSH2 0x3267 00003210: JUMPI 00003211: PUSH1 0x40 00003213: MLOAD 00003214: PUSH32 0xfce6473600000000000000000000000000000000000000000000000000000000 00003235: DUP2 00003236: MSTORE 00003237: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000324c: DUP4 0000324d: AND 0000324e: SWAP1 0000324f: PUSH4 0xfce64736 00003254: SWAP1 00003255: PUSH2 0x30b7 00003258: SWAP1 00003259: DUP7 0000325a: SWAP1 0000325b: DUP6 0000325c: SWAP1 0000325d: PUSH1 0x01 0000325f: SWAP1 00003260: PUSH1 0x04 00003262: ADD 00003263: PUSH2 0x4c1b 00003266: JUMP 00003267: JUMPDEST 00003268: PUSH1 0x40 0000326a: MLOAD 0000326b: PUSH32 0xecb586a500000000000000000000000000000000000000000000000000000000 0000328c: DUP2 0000328d: MSTORE 0000328e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032a3: DUP4 000032a4: AND 000032a5: SWAP1 000032a6: PUSH4 0xecb586a5 000032ab: SWAP1 000032ac: PUSH2 0x3142 000032af: SWAP1 000032b0: DUP7 000032b1: SWAP1 000032b2: DUP6 000032b3: SWAP1 000032b4: PUSH1 0x04 000032b6: ADD 000032b7: PUSH2 0x4c07 000032ba: JUMP 000032bb: JUMPDEST 000032bc: PUSH1 0x00 000032be: DUP3 000032bf: DUP3 000032c0: GT 000032c1: ISZERO 000032c2: PUSH2 0x32f7 000032c5: JUMPI 000032c6: PUSH1 0x40 000032c8: MLOAD 000032c9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000032ea: DUP2 000032eb: MSTORE 000032ec: PUSH1 0x04 000032ee: ADD 000032ef: PUSH2 0x098e 000032f2: SWAP1 000032f3: PUSH2 0x499e 000032f6: JUMP 000032f7: JUMPDEST 000032f8: POP 000032f9: SWAP1 000032fa: SUB 000032fb: SWAP1 000032fc: JUMP 000032fd: JUMPDEST 000032fe: PUSH2 0x1a96 00003301: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003316: DUP5 00003317: AND 00003318: DUP4 00003319: DUP4 0000331a: PUSH2 0x3ad9 0000331d: JUMP 0000331e: JUMPDEST 0000331f: PUSH1 0x00 00003321: DUP1 00003322: PUSH16 0x22d53366457f9d5e68ec105046fc4383 00003333: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003348: AND 00003349: PUSH4 0xa262904b 0000334e: PUSH1 0x40 00003350: MLOAD 00003351: DUP2 00003352: PUSH4 0xffffffff 00003357: AND 00003358: PUSH1 0xe0 0000335a: SHL 0000335b: DUP2 0000335c: MSTORE 0000335d: PUSH1 0x04 0000335f: ADD 00003360: PUSH1 0x20 00003362: PUSH1 0x40 00003364: MLOAD 00003365: DUP1 00003366: DUP4 00003367: SUB 00003368: DUP2 00003369: DUP7 0000336a: DUP1 0000336b: EXTCODESIZE 0000336c: ISZERO 0000336d: DUP1 0000336e: ISZERO 0000336f: PUSH2 0x3377 00003372: JUMPI 00003373: PUSH1 0x00 00003375: DUP1 00003376: REVERT 00003377: JUMPDEST 00003378: POP 00003379: GAS 0000337a: STATICCALL 0000337b: ISZERO 0000337c: DUP1 0000337d: ISZERO 0000337e: PUSH2 0x338b 00003381: JUMPI 00003382: RETURNDATASIZE 00003383: PUSH1 0x00 00003385: DUP1 00003386: RETURNDATACOPY 00003387: RETURNDATASIZE 00003388: PUSH1 0x00 0000338a: REVERT 0000338b: JUMPDEST 0000338c: POP 0000338d: POP 0000338e: POP 0000338f: POP 00003390: PUSH1 0x40 00003392: MLOAD 00003393: RETURNDATASIZE 00003394: PUSH1 0x1f 00003396: NOT 00003397: PUSH1 0x1f 00003399: DUP3 0000339a: ADD 0000339b: AND 0000339c: DUP3 0000339d: ADD 0000339e: DUP1 0000339f: PUSH1 0x40 000033a1: MSTORE 000033a2: POP 000033a3: DUP2 000033a4: ADD 000033a5: SWAP1 000033a6: PUSH2 0x33af 000033a9: SWAP2 000033aa: SWAP1 000033ab: PUSH2 0x4107 000033ae: JUMP 000033af: JUMPDEST 000033b0: PUSH1 0x40 000033b2: MLOAD 000033b3: PUSH32 0x3795104900000000000000000000000000000000000000000000000000000000 000033d4: DUP2 000033d5: MSTORE 000033d6: SWAP1 000033d7: SWAP2 000033d8: POP 000033d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000033ee: DUP3 000033ef: AND 000033f0: SWAP1 000033f1: PUSH4 0x37951049 000033f6: SWAP1 000033f7: PUSH2 0x3404 000033fa: SWAP1 000033fb: DUP7 000033fc: SWAP1 000033fd: PUSH1 0x04 000033ff: ADD 00003400: PUSH2 0x4710 00003403: JUMP 00003404: JUMPDEST 00003405: PUSH1 0x20 00003407: PUSH1 0x40 00003409: MLOAD 0000340a: DUP1 0000340b: DUP4 0000340c: SUB 0000340d: DUP2 0000340e: DUP7 0000340f: DUP1 00003410: EXTCODESIZE 00003411: ISZERO 00003412: DUP1 00003413: ISZERO 00003414: PUSH2 0x341c 00003417: JUMPI 00003418: PUSH1 0x00 0000341a: DUP1 0000341b: REVERT 0000341c: JUMPDEST 0000341d: POP 0000341e: GAS 0000341f: STATICCALL 00003420: ISZERO 00003421: DUP1 00003422: ISZERO 00003423: PUSH2 0x3430 00003426: JUMPI 00003427: RETURNDATASIZE 00003428: PUSH1 0x00 0000342a: DUP1 0000342b: RETURNDATACOPY 0000342c: RETURNDATASIZE 0000342d: PUSH1 0x00 0000342f: REVERT 00003430: JUMPDEST 00003431: POP 00003432: POP 00003433: POP 00003434: POP 00003435: PUSH1 0x40 00003437: MLOAD 00003438: RETURNDATASIZE 00003439: PUSH1 0x1f 0000343b: NOT 0000343c: PUSH1 0x1f 0000343e: DUP3 0000343f: ADD 00003440: AND 00003441: DUP3 00003442: ADD 00003443: DUP1 00003444: PUSH1 0x40 00003446: MSTORE 00003447: POP 00003448: DUP2 00003449: ADD 0000344a: SWAP1 0000344b: PUSH2 0x0ce3 0000344e: SWAP2 0000344f: SWAP1 00003450: PUSH2 0x4107 00003453: JUMP 00003454: JUMPDEST 00003455: PUSH1 0x00 00003457: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000346c: DUP3 0000346d: AND 0000346e: ISZERO 0000346f: PUSH2 0x3519 00003472: JUMPI 00003473: PUSH1 0x40 00003475: MLOAD 00003476: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00003497: DUP2 00003498: MSTORE 00003499: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034ae: DUP4 000034af: AND 000034b0: SWAP1 000034b1: PUSH4 0x70a08231 000034b6: SWAP1 000034b7: PUSH2 0x34c4 000034ba: SWAP1 000034bb: ADDRESS 000034bc: SWAP1 000034bd: PUSH1 0x04 000034bf: ADD 000034c0: PUSH2 0x4710 000034c3: JUMP 000034c4: JUMPDEST 000034c5: PUSH1 0x20 000034c7: PUSH1 0x40 000034c9: MLOAD 000034ca: DUP1 000034cb: DUP4 000034cc: SUB 000034cd: DUP2 000034ce: DUP7 000034cf: DUP1 000034d0: EXTCODESIZE 000034d1: ISZERO 000034d2: DUP1 000034d3: ISZERO 000034d4: PUSH2 0x34dc 000034d7: JUMPI 000034d8: PUSH1 0x00 000034da: DUP1 000034db: REVERT 000034dc: JUMPDEST 000034dd: POP 000034de: GAS 000034df: STATICCALL 000034e0: ISZERO 000034e1: DUP1 000034e2: ISZERO 000034e3: PUSH2 0x34f0 000034e6: JUMPI 000034e7: RETURNDATASIZE 000034e8: PUSH1 0x00 000034ea: DUP1 000034eb: RETURNDATACOPY 000034ec: RETURNDATASIZE 000034ed: PUSH1 0x00 000034ef: REVERT 000034f0: JUMPDEST 000034f1: POP 000034f2: POP 000034f3: POP 000034f4: POP 000034f5: PUSH1 0x40 000034f7: MLOAD 000034f8: RETURNDATASIZE 000034f9: PUSH1 0x1f 000034fb: NOT 000034fc: PUSH1 0x1f 000034fe: DUP3 000034ff: ADD 00003500: AND 00003501: DUP3 00003502: ADD 00003503: DUP1 00003504: PUSH1 0x40 00003506: MSTORE 00003507: POP 00003508: DUP2 00003509: ADD 0000350a: SWAP1 0000350b: PUSH2 0x3514 0000350e: SWAP2 0000350f: SWAP1 00003510: PUSH2 0x4672 00003513: JUMP 00003514: JUMPDEST 00003515: PUSH2 0x1ba9 00003518: JUMP 00003519: JUMPDEST 0000351a: POP 0000351b: SELFBALANCE 0000351c: SWAP2 0000351d: SWAP1 0000351e: POP 0000351f: JUMP 00003520: JUMPDEST 00003521: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003536: DUP2 00003537: AND 00003538: PUSH2 0x356d 0000353b: JUMPI 0000353c: PUSH1 0x40 0000353e: MLOAD 0000353f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003560: DUP2 00003561: MSTORE 00003562: PUSH1 0x04 00003564: ADD 00003565: PUSH2 0x098e 00003568: SWAP1 00003569: PUSH2 0x48d3 0000356c: JUMP 0000356d: JUMPDEST 0000356e: PUSH1 0x00 00003570: PUSH2 0x3578 00003573: DUP5 00003574: PUSH2 0x3454 00003577: JUMP 00003578: JUMPDEST 00003579: SWAP1 0000357a: POP 0000357b: DUP3 0000357c: DUP2 0000357d: LT 0000357e: ISZERO 0000357f: PUSH2 0x35b4 00003582: JUMPI 00003583: PUSH1 0x40 00003585: MLOAD 00003586: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000035a7: DUP2 000035a8: MSTORE 000035a9: PUSH1 0x04 000035ab: ADD 000035ac: PUSH2 0x098e 000035af: SWAP1 000035b0: PUSH2 0x49d5 000035b3: JUMP 000035b4: JUMPDEST 000035b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035ca: DUP5 000035cb: AND 000035cc: PUSH2 0x3678 000035cf: JUMPI 000035d0: PUSH1 0x00 000035d2: DUP3 000035d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035e8: AND 000035e9: DUP5 000035ea: PUSH1 0x40 000035ec: MLOAD 000035ed: PUSH2 0x35f5 000035f0: SWAP1 000035f1: PUSH2 0x470d 000035f4: JUMP 000035f5: JUMPDEST 000035f6: PUSH1 0x00 000035f8: PUSH1 0x40 000035fa: MLOAD 000035fb: DUP1 000035fc: DUP4 000035fd: SUB 000035fe: DUP2 000035ff: DUP6 00003600: DUP8 00003601: GAS 00003602: CALL 00003603: SWAP3 00003604: POP 00003605: POP 00003606: POP 00003607: RETURNDATASIZE 00003608: DUP1 00003609: PUSH1 0x00 0000360b: DUP2 0000360c: EQ 0000360d: PUSH2 0x3632 00003610: JUMPI 00003611: PUSH1 0x40 00003613: MLOAD 00003614: SWAP2 00003615: POP 00003616: PUSH1 0x1f 00003618: NOT 00003619: PUSH1 0x3f 0000361b: RETURNDATASIZE 0000361c: ADD 0000361d: AND 0000361e: DUP3 0000361f: ADD 00003620: PUSH1 0x40 00003622: MSTORE 00003623: RETURNDATASIZE 00003624: DUP3 00003625: MSTORE 00003626: RETURNDATASIZE 00003627: PUSH1 0x00 00003629: PUSH1 0x20 0000362b: DUP5 0000362c: ADD 0000362d: RETURNDATACOPY 0000362e: PUSH2 0x3637 00003631: JUMP 00003632: JUMPDEST 00003633: PUSH1 0x60 00003635: SWAP2 00003636: POP 00003637: JUMPDEST 00003638: POP 00003639: POP 0000363a: SWAP1 0000363b: POP 0000363c: DUP1 0000363d: PUSH2 0x3672 00003640: JUMPI 00003641: PUSH1 0x40 00003643: MLOAD 00003644: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003665: DUP2 00003666: MSTORE 00003667: PUSH1 0x04 00003669: ADD 0000366a: PUSH2 0x098e 0000366d: SWAP1 0000366e: PUSH2 0x489c 00003671: JUMP 00003672: JUMPDEST 00003673: POP 00003674: PUSH2 0x3699 00003677: JUMP 00003678: JUMPDEST 00003679: PUSH2 0x3699 0000367c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003691: DUP6 00003692: AND 00003693: DUP4 00003694: DUP6 00003695: PUSH2 0x3c5e 00003698: JUMP 00003699: JUMPDEST 0000369a: DUP4 0000369b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036b0: AND 000036b1: DUP3 000036b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036c7: AND 000036c8: PUSH32 0x9207361cc2a04b9c7a06691df1eb87c6a63957ae88bf01d0d18c81e3d1272099 000036e9: DUP6 000036ea: PUSH1 0x40 000036ec: MLOAD 000036ed: PUSH2 0x36f6 000036f0: SWAP2 000036f1: SWAP1 000036f2: PUSH2 0x4bc6 000036f5: JUMP 000036f6: JUMPDEST 000036f7: PUSH1 0x40 000036f9: MLOAD 000036fa: DUP1 000036fb: SWAP2 000036fc: SUB 000036fd: SWAP1 000036fe: LOG3 000036ff: POP 00003700: POP 00003701: POP 00003702: POP 00003703: JUMP 00003704: JUMPDEST 00003705: PUSH2 0x370c 00003708: PUSH2 0x3f1c 0000370b: JUMP 0000370c: JUMPDEST 0000370d: DUP3 0000370e: PUSH1 0x00 00003710: DUP2 00003711: MLOAD 00003712: DUP2 00003713: LT 00003714: PUSH2 0x3719 00003717: JUMPI 00003718: INVALID 00003719: JUMPDEST 0000371a: PUSH1 0x20 0000371c: MUL 0000371d: PUSH1 0x20 0000371f: ADD 00003720: ADD 00003721: MLOAD 00003722: DUP2 00003723: PUSH1 0x00 00003725: PUSH1 0x02 00003727: DUP2 00003728: LT 00003729: PUSH2 0x372e 0000372c: JUMPI 0000372d: INVALID 0000372e: JUMPDEST 0000372f: PUSH1 0x20 00003731: MUL 00003732: ADD 00003733: MSTORE 00003734: DUP3 00003735: MLOAD 00003736: DUP4 00003737: SWAP1 00003738: PUSH1 0x01 0000373a: SWAP1 0000373b: DUP2 0000373c: LT 0000373d: PUSH2 0x3742 00003740: JUMPI 00003741: INVALID 00003742: JUMPDEST 00003743: PUSH1 0x20 00003745: MUL 00003746: PUSH1 0x20 00003748: ADD 00003749: ADD 0000374a: MLOAD 0000374b: DUP2 0000374c: PUSH1 0x01 0000374e: PUSH1 0x02 00003750: DUP2 00003751: LT 00003752: PUSH2 0x3757 00003755: JUMPI 00003756: INVALID 00003757: JUMPDEST 00003758: PUSH1 0x20 0000375a: SWAP1 0000375b: DUP2 0000375c: MUL 0000375d: SWAP2 0000375e: SWAP1 0000375f: SWAP2 00003760: ADD 00003761: SWAP2 00003762: SWAP1 00003763: SWAP2 00003764: MSTORE 00003765: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000377a: DUP6 0000377b: DUP2 0000377c: AND 0000377d: PUSH1 0x00 0000377f: SWAP1 00003780: DUP2 00003781: MSTORE 00003782: PUSH1 0x07 00003784: SWAP1 00003785: SWAP3 00003786: MSTORE 00003787: PUSH1 0x40 00003789: DUP3 0000378a: KECCAK256 0000378b: SLOAD 0000378c: AND 0000378d: ISZERO 0000378e: PUSH2 0x37be 00003791: JUMPI 00003792: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000037a7: DUP1 000037a8: DUP7 000037a9: AND 000037aa: PUSH1 0x00 000037ac: SWAP1 000037ad: DUP2 000037ae: MSTORE 000037af: PUSH1 0x07 000037b1: PUSH1 0x20 000037b3: MSTORE 000037b4: PUSH1 0x40 000037b6: SWAP1 000037b7: KECCAK256 000037b8: SLOAD 000037b9: AND 000037ba: PUSH2 0x37c0 000037bd: JUMP 000037be: JUMPDEST 000037bf: DUP5 000037c0: JUMPDEST 000037c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000037d6: DUP7 000037d7: AND 000037d8: PUSH1 0x00 000037da: SWAP1 000037db: DUP2 000037dc: MSTORE 000037dd: PUSH1 0x06 000037df: PUSH1 0x20 000037e1: MSTORE 000037e2: PUSH1 0x40 000037e4: SWAP1 000037e5: KECCAK256 000037e6: SLOAD 000037e7: SWAP1 000037e8: SWAP2 000037e9: POP 000037ea: PUSH1 0xff 000037ec: AND 000037ed: ISZERO 000037ee: PUSH2 0x3882 000037f1: JUMPI 000037f2: PUSH1 0x40 000037f4: MLOAD 000037f5: PUSH32 0xee22be2300000000000000000000000000000000000000000000000000000000 00003816: DUP2 00003817: MSTORE 00003818: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000382d: DUP3 0000382e: AND 0000382f: SWAP1 00003830: PUSH4 0xee22be23 00003835: SWAP1 00003836: DUP6 00003837: SWAP1 00003838: PUSH2 0x384b 0000383b: SWAP1 0000383c: DUP7 0000383d: SWAP1 0000383e: PUSH1 0x00 00003840: SWAP1 00003841: PUSH1 0x01 00003843: SWAP1 00003844: PUSH1 0x04 00003846: ADD 00003847: PUSH2 0x4799 0000384a: JUMP 0000384b: JUMPDEST 0000384c: PUSH1 0x00 0000384e: PUSH1 0x40 00003850: MLOAD 00003851: DUP1 00003852: DUP4 00003853: SUB 00003854: DUP2 00003855: DUP6 00003856: DUP9 00003857: DUP1 00003858: EXTCODESIZE 00003859: ISZERO 0000385a: DUP1 0000385b: ISZERO 0000385c: PUSH2 0x3864 0000385f: JUMPI 00003860: PUSH1 0x00 00003862: DUP1 00003863: REVERT 00003864: JUMPDEST 00003865: POP 00003866: GAS 00003867: CALL 00003868: ISZERO 00003869: DUP1 0000386a: ISZERO 0000386b: PUSH2 0x3878 0000386e: JUMPI 0000386f: RETURNDATASIZE 00003870: PUSH1 0x00 00003872: DUP1 00003873: RETURNDATACOPY 00003874: RETURNDATASIZE 00003875: PUSH1 0x00 00003877: REVERT 00003878: JUMPDEST 00003879: POP 0000387a: POP 0000387b: POP 0000387c: POP 0000387d: POP 0000387e: PUSH2 0x0c56 00003881: JUMP 00003882: JUMPDEST 00003883: PUSH1 0x40 00003885: MLOAD 00003886: PUSH32 0x0b4c7e4d00000000000000000000000000000000000000000000000000000000 000038a7: DUP2 000038a8: MSTORE 000038a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000038be: DUP3 000038bf: AND 000038c0: SWAP1 000038c1: PUSH4 0x0b4c7e4d 000038c6: SWAP1 000038c7: DUP6 000038c8: SWAP1 000038c9: PUSH2 0x38d9 000038cc: SWAP1 000038cd: DUP7 000038ce: SWAP1 000038cf: PUSH1 0x00 000038d1: SWAP1 000038d2: PUSH1 0x04 000038d4: ADD 000038d5: PUSH2 0x477e 000038d8: JUMP 000038d9: JUMPDEST 000038da: PUSH1 0x00 000038dc: PUSH1 0x40 000038de: MLOAD 000038df: DUP1 000038e0: DUP4 000038e1: SUB 000038e2: DUP2 000038e3: DUP6 000038e4: DUP9 000038e5: DUP1 000038e6: EXTCODESIZE 000038e7: ISZERO 000038e8: DUP1 000038e9: ISZERO 000038ea: PUSH2 0x38f2 000038ed: JUMPI 000038ee: PUSH1 0x00 000038f0: DUP1 000038f1: REVERT 000038f2: JUMPDEST 000038f3: POP 000038f4: GAS 000038f5: CALL 000038f6: ISZERO 000038f7: DUP1 000038f8: ISZERO 000038f9: PUSH2 0x3906 000038fc: JUMPI 000038fd: RETURNDATASIZE 000038fe: PUSH1 0x00 00003900: DUP1 00003901: RETURNDATACOPY 00003902: RETURNDATASIZE 00003903: PUSH1 0x00 00003905: REVERT 00003906: JUMPDEST 00003907: POP 00003908: POP 00003909: POP 0000390a: POP 0000390b: POP 0000390c: POP 0000390d: POP 0000390e: POP 0000390f: POP 00003910: POP 00003911: JUMP 00003912: JUMPDEST 00003913: PUSH2 0x391a 00003916: PUSH2 0x3f3a 00003919: JUMP 0000391a: JUMPDEST 0000391b: DUP3 0000391c: PUSH1 0x00 0000391e: DUP2 0000391f: MLOAD 00003920: DUP2 00003921: LT 00003922: PUSH2 0x3927 00003925: JUMPI 00003926: INVALID 00003927: JUMPDEST 00003928: PUSH1 0x20 0000392a: MUL 0000392b: PUSH1 0x20 0000392d: ADD 0000392e: ADD 0000392f: MLOAD 00003930: DUP2 00003931: PUSH1 0x00 00003933: PUSH1 0x03 00003935: DUP2 00003936: LT 00003937: PUSH2 0x393c 0000393a: JUMPI 0000393b: INVALID 0000393c: JUMPDEST 0000393d: PUSH1 0x20 0000393f: MUL 00003940: ADD 00003941: MSTORE 00003942: DUP3 00003943: MLOAD 00003944: DUP4 00003945: SWAP1 00003946: PUSH1 0x01 00003948: SWAP1 00003949: DUP2 0000394a: LT 0000394b: PUSH2 0x3950 0000394e: JUMPI 0000394f: INVALID 00003950: JUMPDEST 00003951: PUSH1 0x20 00003953: MUL 00003954: PUSH1 0x20 00003956: ADD 00003957: ADD 00003958: MLOAD 00003959: DUP2 0000395a: PUSH1 0x01 0000395c: PUSH1 0x03 0000395e: DUP2 0000395f: LT 00003960: PUSH2 0x3965 00003963: JUMPI 00003964: INVALID 00003965: JUMPDEST 00003966: PUSH1 0x20 00003968: MUL 00003969: ADD 0000396a: MSTORE 0000396b: DUP3 0000396c: MLOAD 0000396d: DUP4 0000396e: SWAP1 0000396f: PUSH1 0x02 00003971: SWAP1 00003972: DUP2 00003973: LT 00003974: PUSH2 0x3979 00003977: JUMPI 00003978: INVALID 00003979: JUMPDEST 0000397a: PUSH1 0x20 0000397c: MUL 0000397d: PUSH1 0x20 0000397f: ADD 00003980: ADD 00003981: MLOAD 00003982: DUP2 00003983: PUSH1 0x02 00003985: PUSH1 0x03 00003987: DUP2 00003988: LT 00003989: PUSH2 0x398e 0000398c: JUMPI 0000398d: INVALID 0000398e: JUMPDEST 0000398f: PUSH1 0x20 00003991: SWAP1 00003992: DUP2 00003993: MUL 00003994: SWAP2 00003995: SWAP1 00003996: SWAP2 00003997: ADD 00003998: SWAP2 00003999: SWAP1 0000399a: SWAP2 0000399b: MSTORE 0000399c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000039b1: DUP6 000039b2: DUP2 000039b3: AND 000039b4: PUSH1 0x00 000039b6: SWAP1 000039b7: DUP2 000039b8: MSTORE 000039b9: PUSH1 0x07 000039bb: SWAP1 000039bc: SWAP3 000039bd: MSTORE 000039be: PUSH1 0x40 000039c0: DUP3 000039c1: KECCAK256 000039c2: SLOAD 000039c3: AND 000039c4: ISZERO 000039c5: PUSH2 0x39f5 000039c8: JUMPI 000039c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000039de: DUP1 000039df: DUP7 000039e0: AND 000039e1: PUSH1 0x00 000039e3: SWAP1 000039e4: DUP2 000039e5: MSTORE 000039e6: PUSH1 0x07 000039e8: PUSH1 0x20 000039ea: MSTORE 000039eb: PUSH1 0x40 000039ed: SWAP1 000039ee: KECCAK256 000039ef: SLOAD 000039f0: AND 000039f1: PUSH2 0x39f7 000039f4: JUMP 000039f5: JUMPDEST 000039f6: DUP5 000039f7: JUMPDEST 000039f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003a0d: DUP7 00003a0e: AND 00003a0f: PUSH1 0x00 00003a11: SWAP1 00003a12: DUP2 00003a13: MSTORE 00003a14: PUSH1 0x06 00003a16: PUSH1 0x20 00003a18: MSTORE 00003a19: PUSH1 0x40 00003a1b: SWAP1 00003a1c: KECCAK256 00003a1d: SLOAD 00003a1e: SWAP1 00003a1f: SWAP2 00003a20: POP 00003a21: PUSH1 0xff 00003a23: AND 00003a24: ISZERO 00003a25: PUSH2 0x3a82 00003a28: JUMPI 00003a29: PUSH1 0x40 00003a2b: MLOAD 00003a2c: PUSH32 0x2b6e993a00000000000000000000000000000000000000000000000000000000 00003a4d: DUP2 00003a4e: MSTORE 00003a4f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003a64: DUP3 00003a65: AND 00003a66: SWAP1 00003a67: PUSH4 0x2b6e993a 00003a6c: SWAP1 00003a6d: DUP6 00003a6e: SWAP1 00003a6f: PUSH2 0x384b 00003a72: SWAP1 00003a73: DUP7 00003a74: SWAP1 00003a75: PUSH1 0x00 00003a77: SWAP1 00003a78: PUSH1 0x01 00003a7a: SWAP1 00003a7b: PUSH1 0x04 00003a7d: ADD 00003a7e: PUSH2 0x47d8 00003a81: JUMP 00003a82: JUMPDEST 00003a83: PUSH1 0x40 00003a85: MLOAD 00003a86: PUSH32 0x4515cef300000000000000000000000000000000000000000000000000000000 00003aa7: DUP2 00003aa8: MSTORE 00003aa9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003abe: DUP3 00003abf: AND 00003ac0: SWAP1 00003ac1: PUSH4 0x4515cef3 00003ac6: SWAP1 00003ac7: DUP6 00003ac8: SWAP1 00003ac9: PUSH2 0x38d9 00003acc: SWAP1 00003acd: DUP7 00003ace: SWAP1 00003acf: PUSH1 0x00 00003ad1: SWAP1 00003ad2: PUSH1 0x04 00003ad4: ADD 00003ad5: PUSH2 0x47bd 00003ad8: JUMP 00003ad9: JUMPDEST 00003ada: DUP1 00003adb: ISZERO 00003adc: DUP1 00003add: PUSH2 0x3b87 00003ae0: JUMPI 00003ae1: POP 00003ae2: PUSH1 0x40 00003ae4: MLOAD 00003ae5: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 00003b06: DUP2 00003b07: MSTORE 00003b08: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003b1d: DUP5 00003b1e: AND 00003b1f: SWAP1 00003b20: PUSH4 0xdd62ed3e 00003b25: SWAP1 00003b26: PUSH2 0x3b35 00003b29: SWAP1 00003b2a: ADDRESS 00003b2b: SWAP1 00003b2c: DUP7 00003b2d: SWAP1 00003b2e: PUSH1 0x04 00003b30: ADD 00003b31: PUSH2 0x4731 00003b34: JUMP 00003b35: JUMPDEST 00003b36: PUSH1 0x20 00003b38: PUSH1 0x40 00003b3a: MLOAD 00003b3b: DUP1 00003b3c: DUP4 00003b3d: SUB 00003b3e: DUP2 00003b3f: DUP7 00003b40: DUP1 00003b41: EXTCODESIZE 00003b42: ISZERO 00003b43: DUP1 00003b44: ISZERO 00003b45: PUSH2 0x3b4d 00003b48: JUMPI 00003b49: PUSH1 0x00 00003b4b: DUP1 00003b4c: REVERT 00003b4d: JUMPDEST 00003b4e: POP 00003b4f: GAS 00003b50: STATICCALL 00003b51: ISZERO 00003b52: DUP1 00003b53: ISZERO 00003b54: PUSH2 0x3b61 00003b57: JUMPI 00003b58: RETURNDATASIZE 00003b59: PUSH1 0x00 00003b5b: DUP1 00003b5c: RETURNDATACOPY 00003b5d: RETURNDATASIZE 00003b5e: PUSH1 0x00 00003b60: REVERT 00003b61: JUMPDEST 00003b62: POP 00003b63: POP 00003b64: POP 00003b65: POP 00003b66: PUSH1 0x40 00003b68: MLOAD 00003b69: RETURNDATASIZE 00003b6a: PUSH1 0x1f 00003b6c: NOT 00003b6d: PUSH1 0x1f 00003b6f: DUP3 00003b70: ADD 00003b71: AND 00003b72: DUP3 00003b73: ADD 00003b74: DUP1 00003b75: PUSH1 0x40 00003b77: MSTORE 00003b78: POP 00003b79: DUP2 00003b7a: ADD 00003b7b: SWAP1 00003b7c: PUSH2 0x3b85 00003b7f: SWAP2 00003b80: SWAP1 00003b81: PUSH2 0x4672 00003b84: JUMP 00003b85: JUMPDEST 00003b86: ISZERO 00003b87: JUMPDEST 00003b88: PUSH2 0x3bbd 00003b8b: JUMPI 00003b8c: PUSH1 0x40 00003b8e: MLOAD 00003b8f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003bb0: DUP2 00003bb1: MSTORE 00003bb2: PUSH1 0x04 00003bb4: ADD 00003bb5: PUSH2 0x098e 00003bb8: SWAP1 00003bb9: PUSH2 0x4b69 00003bbc: JUMP 00003bbd: JUMPDEST 00003bbe: PUSH2 0x1a96 00003bc1: DUP4 00003bc2: PUSH4 0x095ea7b3 00003bc7: PUSH1 0xe0 00003bc9: SHL 00003bca: DUP5 00003bcb: DUP5 00003bcc: PUSH1 0x40 00003bce: MLOAD 00003bcf: PUSH1 0x24 00003bd1: ADD 00003bd2: PUSH2 0x3bdc 00003bd5: SWAP3 00003bd6: SWAP2 00003bd7: SWAP1 00003bd8: PUSH2 0x4758 00003bdb: JUMP 00003bdc: JUMPDEST 00003bdd: PUSH1 0x40 00003bdf: DUP1 00003be0: MLOAD 00003be1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00003c02: DUP2 00003c03: DUP5 00003c04: SUB 00003c05: ADD 00003c06: DUP2 00003c07: MSTORE 00003c08: SWAP2 00003c09: SWAP1 00003c0a: MSTORE 00003c0b: PUSH1 0x20 00003c0d: DUP2 00003c0e: ADD 00003c0f: DUP1 00003c10: MLOAD 00003c11: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003c2e: AND 00003c2f: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00003c50: SWAP1 00003c51: SWAP4 00003c52: AND 00003c53: SWAP3 00003c54: SWAP1 00003c55: SWAP3 00003c56: OR 00003c57: SWAP1 00003c58: SWAP2 00003c59: MSTORE 00003c5a: PUSH2 0x3c7d 00003c5d: JUMP 00003c5e: JUMPDEST 00003c5f: PUSH2 0x1a96 00003c62: DUP4 00003c63: PUSH4 0xa9059cbb 00003c68: PUSH1 0xe0 00003c6a: SHL 00003c6b: DUP5 00003c6c: DUP5 00003c6d: PUSH1 0x40 00003c6f: MLOAD 00003c70: PUSH1 0x24 00003c72: ADD 00003c73: PUSH2 0x3bdc 00003c76: SWAP3 00003c77: SWAP2 00003c78: SWAP1 00003c79: PUSH2 0x4758 00003c7c: JUMP 00003c7d: JUMPDEST 00003c7e: PUSH1 0x60 00003c80: PUSH2 0x3cdf 00003c83: DUP3 00003c84: PUSH1 0x40 00003c86: MLOAD 00003c87: DUP1 00003c88: PUSH1 0x40 00003c8a: ADD 00003c8b: PUSH1 0x40 00003c8d: MSTORE 00003c8e: DUP1 00003c8f: PUSH1 0x20 00003c91: DUP2 00003c92: MSTORE 00003c93: PUSH1 0x20 00003c95: ADD 00003c96: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00003cb7: DUP2 00003cb8: MSTORE 00003cb9: POP 00003cba: DUP6 00003cbb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003cd0: AND 00003cd1: PUSH2 0x3d33 00003cd4: SWAP1 00003cd5: SWAP3 00003cd6: SWAP2 00003cd7: SWAP1 00003cd8: PUSH4 0xffffffff 00003cdd: AND 00003cde: JUMP 00003cdf: JUMPDEST 00003ce0: DUP1 00003ce1: MLOAD 00003ce2: SWAP1 00003ce3: SWAP2 00003ce4: POP 00003ce5: ISZERO 00003ce6: PUSH2 0x1a96 00003ce9: JUMPI 00003cea: DUP1 00003ceb: DUP1 00003cec: PUSH1 0x20 00003cee: ADD 00003cef: SWAP1 00003cf0: MLOAD 00003cf1: DUP2 00003cf2: ADD 00003cf3: SWAP1 00003cf4: PUSH2 0x3cfd 00003cf7: SWAP2 00003cf8: SWAP1 00003cf9: PUSH2 0x45b0 00003cfc: JUMP 00003cfd: JUMPDEST 00003cfe: PUSH2 0x1a96 00003d01: JUMPI 00003d02: PUSH1 0x40 00003d04: MLOAD 00003d05: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003d26: DUP2 00003d27: MSTORE 00003d28: PUSH1 0x04 00003d2a: ADD 00003d2b: PUSH2 0x098e 00003d2e: SWAP1 00003d2f: PUSH2 0x4b0c 00003d32: JUMP 00003d33: JUMPDEST 00003d34: PUSH1 0x60 00003d36: PUSH2 0x0df0 00003d39: DUP5 00003d3a: DUP5 00003d3b: PUSH1 0x00 00003d3d: DUP6 00003d3e: DUP6 00003d3f: PUSH2 0x3d47 00003d42: DUP6 00003d43: PUSH2 0x3e04 00003d46: JUMP 00003d47: JUMPDEST 00003d48: PUSH2 0x3d7d 00003d4b: JUMPI 00003d4c: PUSH1 0x40 00003d4e: MLOAD 00003d4f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003d70: DUP2 00003d71: MSTORE 00003d72: PUSH1 0x04 00003d74: ADD 00003d75: PUSH2 0x098e 00003d78: SWAP1 00003d79: PUSH2 0x4ad5 00003d7c: JUMP 00003d7d: JUMPDEST 00003d7e: PUSH1 0x00 00003d80: PUSH1 0x60 00003d82: DUP7 00003d83: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d98: AND 00003d99: DUP6 00003d9a: DUP8 00003d9b: PUSH1 0x40 00003d9d: MLOAD 00003d9e: PUSH2 0x3da7 00003da1: SWAP2 00003da2: SWAP1 00003da3: PUSH2 0x46f1 00003da6: JUMP 00003da7: JUMPDEST 00003da8: PUSH1 0x00 00003daa: PUSH1 0x40 00003dac: MLOAD 00003dad: DUP1 00003dae: DUP4 00003daf: SUB 00003db0: DUP2 00003db1: DUP6 00003db2: DUP8 00003db3: GAS 00003db4: CALL 00003db5: SWAP3 00003db6: POP 00003db7: POP 00003db8: POP 00003db9: RETURNDATASIZE 00003dba: DUP1 00003dbb: PUSH1 0x00 00003dbd: DUP2 00003dbe: EQ 00003dbf: PUSH2 0x3de4 00003dc2: JUMPI 00003dc3: PUSH1 0x40 00003dc5: MLOAD 00003dc6: SWAP2 00003dc7: POP 00003dc8: PUSH1 0x1f 00003dca: NOT 00003dcb: PUSH1 0x3f 00003dcd: RETURNDATASIZE 00003dce: ADD 00003dcf: AND 00003dd0: DUP3 00003dd1: ADD 00003dd2: PUSH1 0x40 00003dd4: MSTORE 00003dd5: RETURNDATASIZE 00003dd6: DUP3 00003dd7: MSTORE 00003dd8: RETURNDATASIZE 00003dd9: PUSH1 0x00 00003ddb: PUSH1 0x20 00003ddd: DUP5 00003dde: ADD 00003ddf: RETURNDATACOPY 00003de0: PUSH2 0x3de9 00003de3: JUMP 00003de4: JUMPDEST 00003de5: PUSH1 0x60 00003de7: SWAP2 00003de8: POP 00003de9: JUMPDEST 00003dea: POP 00003deb: SWAP2 00003dec: POP 00003ded: SWAP2 00003dee: POP 00003def: PUSH2 0x3df9 00003df2: DUP3 00003df3: DUP3 00003df4: DUP7 00003df5: PUSH2 0x3e0a 00003df8: JUMP 00003df9: JUMPDEST 00003dfa: SWAP8 00003dfb: SWAP7 00003dfc: POP 00003dfd: POP 00003dfe: POP 00003dff: POP 00003e00: POP 00003e01: POP 00003e02: POP 00003e03: JUMP 00003e04: JUMPDEST 00003e05: EXTCODESIZE 00003e06: ISZERO 00003e07: ISZERO 00003e08: SWAP1 00003e09: JUMP 00003e0a: JUMPDEST 00003e0b: PUSH1 0x60 00003e0d: DUP4 00003e0e: ISZERO 00003e0f: PUSH2 0x3e19 00003e12: JUMPI 00003e13: POP 00003e14: DUP2 00003e15: PUSH2 0x0ce3 00003e18: JUMP 00003e19: JUMPDEST 00003e1a: DUP3 00003e1b: MLOAD 00003e1c: ISZERO 00003e1d: PUSH2 0x3e29 00003e20: JUMPI 00003e21: DUP3 00003e22: MLOAD 00003e23: DUP1 00003e24: DUP5 00003e25: PUSH1 0x20 00003e27: ADD 00003e28: REVERT 00003e29: JUMPDEST 00003e2a: DUP2 00003e2b: PUSH1 0x40 00003e2d: MLOAD 00003e2e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003e4f: DUP2 00003e50: MSTORE 00003e51: PUSH1 0x04 00003e53: ADD 00003e54: PUSH2 0x098e 00003e57: SWAP2 00003e58: SWAP1 00003e59: PUSH2 0x484b 00003e5c: JUMP 00003e5d: JUMPDEST 00003e5e: PUSH1 0x40 00003e60: DUP1 00003e61: MLOAD 00003e62: PUSH1 0xc0 00003e64: DUP2 00003e65: ADD 00003e66: DUP3 00003e67: MSTORE 00003e68: PUSH1 0x00 00003e6a: DUP1 00003e6b: DUP3 00003e6c: MSTORE 00003e6d: PUSH1 0x20 00003e6f: DUP3 00003e70: ADD 00003e71: DUP2 00003e72: SWAP1 00003e73: MSTORE 00003e74: SWAP2 00003e75: DUP2 00003e76: ADD 00003e77: DUP3 00003e78: SWAP1 00003e79: MSTORE 00003e7a: PUSH1 0x60 00003e7c: DUP2 00003e7d: ADD 00003e7e: DUP3 00003e7f: SWAP1 00003e80: MSTORE 00003e81: PUSH1 0x80 00003e83: DUP2 00003e84: ADD 00003e85: DUP3 00003e86: SWAP1 00003e87: MSTORE 00003e88: PUSH1 0xa0 00003e8a: DUP2 00003e8b: ADD 00003e8c: SWAP2 00003e8d: SWAP1 00003e8e: SWAP2 00003e8f: MSTORE 00003e90: SWAP1 00003e91: JUMP 00003e92: JUMPDEST 00003e93: DUP3 00003e94: DUP1 00003e95: SLOAD 00003e96: DUP3 00003e97: DUP3 00003e98: SSTORE 00003e99: SWAP1 00003e9a: PUSH1 0x00 00003e9c: MSTORE 00003e9d: PUSH1 0x20 00003e9f: PUSH1 0x00 00003ea1: KECCAK256 00003ea2: SWAP1 00003ea3: DUP2 00003ea4: ADD 00003ea5: SWAP3 00003ea6: DUP3 00003ea7: ISZERO 00003ea8: PUSH2 0x3f0c 00003eab: JUMPI 00003eac: SWAP2 00003ead: PUSH1 0x20 00003eaf: MUL 00003eb0: DUP3 00003eb1: ADD 00003eb2: JUMPDEST 00003eb3: DUP3 00003eb4: DUP2 00003eb5: GT 00003eb6: ISZERO 00003eb7: PUSH2 0x3f0c 00003eba: JUMPI 00003ebb: DUP3 00003ebc: MLOAD 00003ebd: DUP3 00003ebe: SLOAD 00003ebf: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00003ee0: AND 00003ee1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003ef6: SWAP1 00003ef7: SWAP2 00003ef8: AND 00003ef9: OR 00003efa: DUP3 00003efb: SSTORE 00003efc: PUSH1 0x20 00003efe: SWAP1 00003eff: SWAP3 00003f00: ADD 00003f01: SWAP2 00003f02: PUSH1 0x01 00003f04: SWAP1 00003f05: SWAP2 00003f06: ADD 00003f07: SWAP1 00003f08: PUSH2 0x3eb2 00003f0b: JUMP 00003f0c: JUMPDEST 00003f0d: POP 00003f0e: PUSH2 0x3f18 00003f11: SWAP3 00003f12: SWAP2 00003f13: POP 00003f14: PUSH2 0x3f58 00003f17: JUMP 00003f18: JUMPDEST 00003f19: POP 00003f1a: SWAP1 00003f1b: JUMP 00003f1c: JUMPDEST 00003f1d: PUSH1 0x40 00003f1f: MLOAD 00003f20: DUP1 00003f21: PUSH1 0x40 00003f23: ADD 00003f24: PUSH1 0x40 00003f26: MSTORE 00003f27: DUP1 00003f28: PUSH1 0x02 00003f2a: SWAP1 00003f2b: PUSH1 0x20 00003f2d: DUP3 00003f2e: MUL 00003f2f: DUP1 00003f30: CALLDATASIZE 00003f31: DUP4 00003f32: CALLDATACOPY 00003f33: POP 00003f34: SWAP2 00003f35: SWAP3 00003f36: SWAP2 00003f37: POP 00003f38: POP 00003f39: JUMP 00003f3a: JUMPDEST 00003f3b: PUSH1 0x40 00003f3d: MLOAD 00003f3e: DUP1 00003f3f: PUSH1 0x60 00003f41: ADD 00003f42: PUSH1 0x40 00003f44: MSTORE 00003f45: DUP1 00003f46: PUSH1 0x03 00003f48: SWAP1 00003f49: PUSH1 0x20 00003f4b: DUP3 00003f4c: MUL 00003f4d: DUP1 00003f4e: CALLDATASIZE 00003f4f: DUP4 00003f50: CALLDATACOPY 00003f51: POP 00003f52: SWAP2 00003f53: SWAP3 00003f54: SWAP2 00003f55: POP 00003f56: POP 00003f57: JUMP 00003f58: JUMPDEST 00003f59: JUMPDEST 00003f5a: DUP1 00003f5b: DUP3 00003f5c: GT 00003f5d: ISZERO 00003f5e: PUSH2 0x3f18 00003f61: JUMPI 00003f62: DUP1 00003f63: SLOAD 00003f64: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00003f85: AND 00003f86: DUP2 00003f87: SSTORE 00003f88: PUSH1 0x01 00003f8a: ADD 00003f8b: PUSH2 0x3f59 00003f8e: JUMP 00003f8f: JUMPDEST 00003f90: PUSH1 0x00 00003f92: DUP3 00003f93: PUSH1 0x1f 00003f95: DUP4 00003f96: ADD 00003f97: SLT 00003f98: PUSH2 0x3f9f 00003f9b: JUMPI 00003f9c: DUP1 00003f9d: DUP2 00003f9e: REVERT 00003f9f: JUMPDEST 00003fa0: DUP2 00003fa1: CALLDATALOAD 00003fa2: PUSH2 0x3fb2 00003fa5: PUSH2 0x3fad 00003fa8: DUP3 00003fa9: PUSH2 0x4cfa 00003fac: JUMP 00003fad: JUMPDEST 00003fae: PUSH2 0x4cd3 00003fb1: JUMP 00003fb2: JUMPDEST 00003fb3: DUP2 00003fb4: DUP2 00003fb5: MSTORE 00003fb6: SWAP2 00003fb7: POP 00003fb8: PUSH1 0x20 00003fba: DUP1 00003fbb: DUP4 00003fbc: ADD 00003fbd: SWAP1 00003fbe: DUP5 00003fbf: DUP2 00003fc0: ADD 00003fc1: DUP2 00003fc2: DUP5 00003fc3: MUL 00003fc4: DUP7 00003fc5: ADD 00003fc6: DUP3 00003fc7: ADD 00003fc8: DUP8 00003fc9: LT 00003fca: ISZERO 00003fcb: PUSH2 0x3fd3 00003fce: JUMPI 00003fcf: PUSH1 0x00 00003fd1: DUP1 00003fd2: REVERT 00003fd3: JUMPDEST 00003fd4: PUSH1 0x00 00003fd6: JUMPDEST 00003fd7: DUP5 00003fd8: DUP2 00003fd9: LT 00003fda: ISZERO 00003fdb: PUSH2 0x3ffb 00003fde: JUMPI 00003fdf: DUP2 00003fe0: CALLDATALOAD 00003fe1: PUSH2 0x3fe9 00003fe4: DUP2 00003fe5: PUSH2 0x4d46 00003fe8: JUMP 00003fe9: JUMPDEST 00003fea: DUP5 00003feb: MSTORE 00003fec: SWAP3 00003fed: DUP3 00003fee: ADD 00003fef: SWAP3 00003ff0: SWAP1 00003ff1: DUP3 00003ff2: ADD 00003ff3: SWAP1 00003ff4: PUSH1 0x01 00003ff6: ADD 00003ff7: PUSH2 0x3fd6 00003ffa: JUMP 00003ffb: JUMPDEST 00003ffc: POP 00003ffd: POP 00003ffe: POP 00003fff: POP 00004000: POP 00004001: SWAP3 00004002: SWAP2 00004003: POP 00004004: POP 00004005: JUMP 00004006: JUMPDEST 00004007: PUSH1 0x00 00004009: DUP3 0000400a: PUSH1 0x1f 0000400c: DUP4 0000400d: ADD 0000400e: SLT 0000400f: PUSH2 0x4016 00004012: JUMPI 00004013: DUP1 00004014: DUP2 00004015: REVERT 00004016: JUMPDEST 00004017: DUP2 00004018: CALLDATALOAD 00004019: PUSH2 0x4024 0000401c: PUSH2 0x3fad 0000401f: DUP3 00004020: PUSH2 0x4cfa 00004023: JUMP 00004024: JUMPDEST 00004025: DUP2 00004026: DUP2 00004027: MSTORE 00004028: SWAP2 00004029: POP 0000402a: PUSH1 0x20 0000402c: DUP1 0000402d: DUP4 0000402e: ADD 0000402f: SWAP1 00004030: DUP5 00004031: DUP2 00004032: ADD 00004033: DUP2 00004034: DUP5 00004035: MUL 00004036: DUP7 00004037: ADD 00004038: DUP3 00004039: ADD 0000403a: DUP8 0000403b: LT 0000403c: ISZERO 0000403d: PUSH2 0x4045 00004040: JUMPI 00004041: PUSH1 0x00 00004043: DUP1 00004044: REVERT 00004045: JUMPDEST 00004046: PUSH1 0x00 00004048: JUMPDEST 00004049: DUP5 0000404a: DUP2 0000404b: LT 0000404c: ISZERO 0000404d: PUSH2 0x3ffb 00004050: JUMPI 00004051: DUP2 00004052: CALLDATALOAD 00004053: DUP5 00004054: MSTORE 00004055: SWAP3 00004056: DUP3 00004057: ADD 00004058: SWAP3 00004059: SWAP1 0000405a: DUP3 0000405b: ADD 0000405c: SWAP1 0000405d: PUSH1 0x01 0000405f: ADD 00004060: PUSH2 0x4048 00004063: JUMP 00004064: JUMPDEST 00004065: PUSH1 0x00 00004067: DUP3 00004068: PUSH1 0x1f 0000406a: DUP4 0000406b: ADD 0000406c: SLT 0000406d: PUSH2 0x4074 00004070: JUMPI 00004071: DUP1 00004072: DUP2 00004073: REVERT 00004074: JUMPDEST 00004075: DUP2 00004076: CALLDATALOAD 00004077: PUSH8 0xffffffffffffffff 00004080: DUP2 00004081: GT 00004082: ISZERO 00004083: PUSH2 0x408a 00004086: JUMPI 00004087: DUP2 00004088: DUP3 00004089: REVERT 0000408a: JUMPDEST 0000408b: PUSH2 0x40bb 0000408e: PUSH1 0x20 00004090: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000040b1: PUSH1 0x1f 000040b3: DUP5 000040b4: ADD 000040b5: AND 000040b6: ADD 000040b7: PUSH2 0x4cd3 000040ba: JUMP 000040bb: JUMPDEST 000040bc: SWAP2 000040bd: POP 000040be: DUP1 000040bf: DUP3 000040c0: MSTORE 000040c1: DUP4 000040c2: PUSH1 0x20 000040c4: DUP3 000040c5: DUP6 000040c6: ADD 000040c7: ADD 000040c8: GT 000040c9: ISZERO 000040ca: PUSH2 0x40d2 000040cd: JUMPI 000040ce: PUSH1 0x00 000040d0: DUP1 000040d1: REVERT 000040d2: JUMPDEST 000040d3: DUP1 000040d4: PUSH1 0x20 000040d6: DUP5 000040d7: ADD 000040d8: PUSH1 0x20 000040da: DUP5 000040db: ADD 000040dc: CALLDATACOPY 000040dd: PUSH1 0x00 000040df: SWAP1 000040e0: DUP3 000040e1: ADD 000040e2: PUSH1 0x20 000040e4: ADD 000040e5: MSTORE 000040e6: SWAP3 000040e7: SWAP2 000040e8: POP 000040e9: POP 000040ea: JUMP 000040eb: JUMPDEST 000040ec: PUSH1 0x00 000040ee: PUSH1 0x20 000040f0: DUP3 000040f1: DUP5 000040f2: SUB 000040f3: SLT 000040f4: ISZERO 000040f5: PUSH2 0x40fc 000040f8: JUMPI 000040f9: DUP1 000040fa: DUP2 000040fb: REVERT 000040fc: JUMPDEST 000040fd: DUP2 000040fe: CALLDATALOAD 000040ff: PUSH2 0x0ce3 00004102: DUP2 00004103: PUSH2 0x4d46 00004106: JUMP 00004107: JUMPDEST 00004108: PUSH1 0x00 0000410a: PUSH1 0x20 0000410c: DUP3 0000410d: DUP5 0000410e: SUB 0000410f: SLT 00004110: ISZERO 00004111: PUSH2 0x4118 00004114: JUMPI 00004115: DUP1 00004116: DUP2 00004117: REVERT 00004118: JUMPDEST 00004119: DUP2 0000411a: MLOAD 0000411b: PUSH2 0x0ce3 0000411e: DUP2 0000411f: PUSH2 0x4d46 00004122: JUMP 00004123: JUMPDEST 00004124: PUSH1 0x00 00004126: DUP1 00004127: PUSH1 0x40 00004129: DUP4 0000412a: DUP6 0000412b: SUB 0000412c: SLT 0000412d: ISZERO 0000412e: PUSH2 0x4135 00004131: JUMPI 00004132: DUP1 00004133: DUP2 00004134: REVERT 00004135: JUMPDEST 00004136: DUP3 00004137: CALLDATALOAD 00004138: PUSH2 0x4140 0000413b: DUP2 0000413c: PUSH2 0x4d46 0000413f: JUMP 00004140: JUMPDEST 00004141: SWAP2 00004142: POP 00004143: PUSH1 0x20 00004145: DUP4 00004146: ADD 00004147: CALLDATALOAD 00004148: PUSH2 0x4150 0000414b: DUP2 0000414c: PUSH2 0x4d46 0000414f: JUMP 00004150: JUMPDEST 00004151: DUP1 00004152: SWAP2 00004153: POP 00004154: POP 00004155: SWAP3 00004156: POP 00004157: SWAP3 00004158: SWAP1 00004159: POP 0000415a: JUMP 0000415b: JUMPDEST 0000415c: PUSH1 0x00 0000415e: DUP1 0000415f: PUSH1 0x40 00004161: DUP4 00004162: DUP6 00004163: SUB 00004164: SLT 00004165: ISZERO 00004166: PUSH2 0x4135 00004169: JUMPI 0000416a: DUP2 0000416b: DUP3 0000416c: REVERT 0000416d: JUMPDEST 0000416e: PUSH1 0x00 00004170: DUP1 00004171: PUSH1 0x00 00004173: DUP1 00004174: PUSH1 0x00 00004176: PUSH1 0xa0 00004178: DUP7 00004179: DUP9 0000417a: SUB 0000417b: SLT 0000417c: ISZERO 0000417d: PUSH2 0x4184 00004180: JUMPI 00004181: DUP1 00004182: DUP2 00004183: REVERT 00004184: JUMPDEST 00004185: DUP6 00004186: CALLDATALOAD 00004187: PUSH2 0x418f 0000418a: DUP2 0000418b: PUSH2 0x4d46 0000418e: JUMP 0000418f: JUMPDEST 00004190: SWAP5 00004191: POP 00004192: PUSH1 0x20 00004194: DUP7 00004195: ADD 00004196: CALLDATALOAD 00004197: PUSH2 0x419f 0000419a: DUP2 0000419b: PUSH2 0x4d46 0000419e: JUMP 0000419f: JUMPDEST 000041a0: SWAP4 000041a1: POP 000041a2: PUSH1 0x40 000041a4: DUP7 000041a5: ADD 000041a6: CALLDATALOAD 000041a7: PUSH8 0xffffffffffffffff 000041b0: DUP2 000041b1: GT 000041b2: ISZERO 000041b3: PUSH2 0x41ba 000041b6: JUMPI 000041b7: DUP2 000041b8: DUP3 000041b9: REVERT 000041ba: JUMPDEST 000041bb: PUSH2 0x41c6 000041be: DUP9 000041bf: DUP3 000041c0: DUP10 000041c1: ADD 000041c2: PUSH2 0x3f8f 000041c5: JUMP 000041c6: JUMPDEST 000041c7: SWAP4 000041c8: POP 000041c9: POP 000041ca: PUSH1 0x60 000041cc: DUP7 000041cd: ADD 000041ce: CALLDATALOAD 000041cf: PUSH2 0x41d7 000041d2: DUP2 000041d3: PUSH2 0x4d6b 000041d6: JUMP 000041d7: JUMPDEST 000041d8: SWAP2 000041d9: POP 000041da: PUSH1 0x80 000041dc: DUP7 000041dd: ADD 000041de: CALLDATALOAD 000041df: PUSH2 0x41e7 000041e2: DUP2 000041e3: PUSH2 0x4d6b 000041e6: JUMP 000041e7: JUMPDEST 000041e8: DUP1 000041e9: SWAP2 000041ea: POP 000041eb: POP 000041ec: SWAP3 000041ed: SWAP6 000041ee: POP 000041ef: SWAP3 000041f0: SWAP6 000041f1: SWAP1 000041f2: SWAP4 000041f3: POP 000041f4: JUMP 000041f5: JUMPDEST 000041f6: PUSH1 0x00 000041f8: DUP1 000041f9: PUSH1 0x00 000041fb: PUSH1 0x60 000041fd: DUP5 000041fe: DUP7 000041ff: SUB 00004200: SLT 00004201: ISZERO 00004202: PUSH2 0x4209 00004205: JUMPI 00004206: DUP3 00004207: DUP4 00004208: REVERT 00004209: JUMPDEST 0000420a: DUP4 0000420b: CALLDATALOAD 0000420c: PUSH2 0x4214 0000420f: DUP2 00004210: PUSH2 0x4d46 00004213: JUMP 00004214: JUMPDEST 00004215: SWAP3 00004216: POP 00004217: PUSH1 0x20 00004219: DUP5 0000421a: ADD 0000421b: CALLDATALOAD 0000421c: PUSH2 0x4224 0000421f: DUP2 00004220: PUSH2 0x4d46 00004223: JUMP 00004224: JUMPDEST 00004225: SWAP3 00004226: SWAP6 00004227: SWAP3 00004228: SWAP5 00004229: POP 0000422a: POP 0000422b: POP 0000422c: PUSH1 0x40 0000422e: SWAP2 0000422f: SWAP1 00004230: SWAP2 00004231: ADD 00004232: CALLDATALOAD 00004233: SWAP1 00004234: JUMP 00004235: JUMPDEST 00004236: PUSH1 0x00 00004238: DUP1 00004239: PUSH1 0x00 0000423b: DUP1 0000423c: PUSH1 0x80 0000423e: DUP6 0000423f: DUP8 00004240: SUB 00004241: SLT 00004242: ISZERO 00004243: PUSH2 0x424a 00004246: JUMPI 00004247: DUP4 00004248: DUP5 00004249: REVERT 0000424a: JUMPDEST 0000424b: DUP5 0000424c: CALLDATALOAD 0000424d: PUSH2 0x4255 00004250: DUP2 00004251: PUSH2 0x4d46 00004254: JUMP 00004255: JUMPDEST 00004256: SWAP4 00004257: POP 00004258: PUSH1 0x20 0000425a: DUP6 0000425b: ADD 0000425c: CALLDATALOAD 0000425d: PUSH2 0x4265 00004260: DUP2 00004261: PUSH2 0x4d46 00004264: JUMP 00004265: JUMPDEST 00004266: SWAP3 00004267: POP 00004268: PUSH1 0x40 0000426a: DUP6 0000426b: ADD 0000426c: CALLDATALOAD 0000426d: SWAP2 0000426e: POP 0000426f: PUSH1 0x60 00004271: DUP6 00004272: ADD 00004273: CALLDATALOAD 00004274: PUSH2 0x427c 00004277: DUP2 00004278: PUSH2 0x4d46 0000427b: JUMP 0000427c: JUMPDEST 0000427d: SWAP4 0000427e: SWAP7 0000427f: SWAP3 00004280: SWAP6 00004281: POP 00004282: SWAP1 00004283: SWAP4 00004284: POP 00004285: POP 00004286: JUMP 00004287: JUMPDEST 00004288: PUSH1 0x00 0000428a: DUP1 0000428b: PUSH1 0x00 0000428d: DUP1 0000428e: PUSH1 0x00 00004290: PUSH1 0xa0 00004292: DUP7 00004293: DUP9 00004294: SUB 00004295: SLT 00004296: ISZERO 00004297: PUSH2 0x429e 0000429a: JUMPI 0000429b: DUP3 0000429c: DUP4 0000429d: REVERT 0000429e: JUMPDEST 0000429f: DUP6 000042a0: CALLDATALOAD 000042a1: PUSH2 0x42a9 000042a4: DUP2 000042a5: PUSH2 0x4d46 000042a8: JUMP 000042a9: JUMPDEST 000042aa: SWAP5 000042ab: POP 000042ac: PUSH1 0x20 000042ae: DUP7 000042af: ADD 000042b0: CALLDATALOAD 000042b1: PUSH2 0x42b9 000042b4: DUP2 000042b5: PUSH2 0x4d46 000042b8: JUMP 000042b9: JUMPDEST 000042ba: SWAP4 000042bb: POP 000042bc: PUSH1 0x40 000042be: DUP7 000042bf: ADD 000042c0: CALLDATALOAD 000042c1: SWAP3 000042c2: POP 000042c3: PUSH1 0x60 000042c5: DUP7 000042c6: ADD 000042c7: CALLDATALOAD 000042c8: PUSH2 0x42d0 000042cb: DUP2 000042cc: PUSH2 0x4d46 000042cf: JUMP 000042d0: JUMPDEST 000042d1: SWAP2 000042d2: POP 000042d3: PUSH1 0x80 000042d5: DUP7 000042d6: ADD 000042d7: CALLDATALOAD 000042d8: PUSH2 0x41e7 000042db: DUP2 000042dc: PUSH2 0x4d46 000042df: JUMP 000042e0: JUMPDEST 000042e1: PUSH1 0x00 000042e3: DUP1 000042e4: PUSH1 0x00 000042e6: DUP1 000042e7: PUSH1 0x80 000042e9: DUP6 000042ea: DUP8 000042eb: SUB 000042ec: SLT 000042ed: ISZERO 000042ee: PUSH2 0x42f5 000042f1: JUMPI 000042f2: DUP2 000042f3: DUP3 000042f4: REVERT 000042f5: JUMPDEST 000042f6: DUP5 000042f7: CALLDATALOAD 000042f8: PUSH2 0x4300 000042fb: DUP2 000042fc: PUSH2 0x4d46 000042ff: JUMP 00004300: JUMPDEST 00004301: SWAP4 00004302: POP 00004303: PUSH1 0x20 00004305: DUP6 00004306: ADD 00004307: CALLDATALOAD 00004308: PUSH2 0x4310 0000430b: DUP2 0000430c: PUSH2 0x4d46 0000430f: JUMP 00004310: JUMPDEST 00004311: SWAP4 00004312: SWAP7 00004313: SWAP4 00004314: SWAP6 00004315: POP 00004316: POP 00004317: POP 00004318: POP 00004319: PUSH1 0x40 0000431b: DUP3 0000431c: ADD 0000431d: CALLDATALOAD 0000431e: SWAP2 0000431f: PUSH1 0x60 00004321: ADD 00004322: CALLDATALOAD 00004323: SWAP1 00004324: JUMP 00004325: JUMPDEST 00004326: PUSH1 0x00 00004328: DUP1 00004329: PUSH1 0x00 0000432b: DUP1 0000432c: PUSH1 0x00 0000432e: PUSH1 0xa0 00004330: DUP7 00004331: DUP9 00004332: SUB 00004333: SLT 00004334: ISZERO 00004335: PUSH2 0x433c 00004338: JUMPI 00004339: DUP3 0000433a: DUP4 0000433b: REVERT 0000433c: JUMPDEST 0000433d: DUP6 0000433e: CALLDATALOAD 0000433f: PUSH2 0x4347 00004342: DUP2 00004343: PUSH2 0x4d46 00004346: JUMP 00004347: JUMPDEST 00004348: SWAP5 00004349: POP 0000434a: PUSH1 0x20 0000434c: DUP7 0000434d: ADD 0000434e: CALLDATALOAD 0000434f: PUSH2 0x4357 00004352: DUP2 00004353: PUSH2 0x4d46 00004356: JUMP 00004357: JUMPDEST 00004358: SWAP4 00004359: POP 0000435a: PUSH1 0x40 0000435c: DUP7 0000435d: ADD 0000435e: CALLDATALOAD 0000435f: SWAP3 00004360: POP 00004361: PUSH1 0x60 00004363: DUP7 00004364: ADD 00004365: CALLDATALOAD 00004366: SWAP2 00004367: POP 00004368: PUSH1 0x80 0000436a: DUP7 0000436b: ADD 0000436c: CALLDATALOAD 0000436d: PUSH2 0x41e7 00004370: DUP2 00004371: PUSH2 0x4d46 00004374: JUMP 00004375: JUMPDEST 00004376: PUSH1 0x00 00004378: DUP1 00004379: PUSH1 0x40 0000437b: DUP4 0000437c: DUP6 0000437d: SUB 0000437e: SLT 0000437f: ISZERO 00004380: PUSH2 0x4387 00004383: JUMPI 00004384: DUP2 00004385: DUP3 00004386: REVERT 00004387: JUMPDEST 00004388: DUP3 00004389: CALLDATALOAD 0000438a: PUSH2 0x4392 0000438d: DUP2 0000438e: PUSH2 0x4d46 00004391: JUMP 00004392: JUMPDEST 00004393: SWAP2 00004394: POP 00004395: PUSH1 0x20 00004397: DUP4 00004398: ADD 00004399: CALLDATALOAD 0000439a: PUSH8 0xffffffffffffffff 000043a3: DUP2 000043a4: GT 000043a5: ISZERO 000043a6: PUSH2 0x43ad 000043a9: JUMPI 000043aa: DUP2 000043ab: DUP3 000043ac: REVERT 000043ad: JUMPDEST 000043ae: PUSH2 0x43b9 000043b1: DUP6 000043b2: DUP3 000043b3: DUP7 000043b4: ADD 000043b5: PUSH2 0x4006 000043b8: JUMP 000043b9: JUMPDEST 000043ba: SWAP2 000043bb: POP 000043bc: POP 000043bd: SWAP3 000043be: POP 000043bf: SWAP3 000043c0: SWAP1 000043c1: POP 000043c2: JUMP 000043c3: JUMPDEST 000043c4: PUSH1 0x00 000043c6: DUP1 000043c7: PUSH1 0x00 000043c9: PUSH1 0x60 000043cb: DUP5 000043cc: DUP7 000043cd: SUB 000043ce: SLT 000043cf: ISZERO 000043d0: PUSH2 0x43d7 000043d3: JUMPI 000043d4: DUP1 000043d5: DUP2 000043d6: REVERT 000043d7: JUMPDEST 000043d8: DUP4 000043d9: CALLDATALOAD 000043da: PUSH2 0x43e2 000043dd: DUP2 000043de: PUSH2 0x4d46 000043e1: JUMP 000043e2: JUMPDEST 000043e3: SWAP3 000043e4: POP 000043e5: PUSH1 0x20 000043e7: DUP5 000043e8: ADD 000043e9: CALLDATALOAD 000043ea: PUSH8 0xffffffffffffffff 000043f3: DUP2 000043f4: GT 000043f5: ISZERO 000043f6: PUSH2 0x43fd 000043f9: JUMPI 000043fa: DUP2 000043fb: DUP3 000043fc: REVERT 000043fd: JUMPDEST 000043fe: PUSH2 0x4409 00004401: DUP7 00004402: DUP3 00004403: DUP8 00004404: ADD 00004405: PUSH2 0x4006 00004408: JUMP 00004409: JUMPDEST 0000440a: SWAP3 0000440b: POP 0000440c: POP 0000440d: PUSH1 0x40 0000440f: DUP5 00004410: ADD 00004411: CALLDATALOAD 00004412: PUSH2 0x441a 00004415: DUP2 00004416: PUSH2 0x4d46 00004419: JUMP 0000441a: JUMPDEST 0000441b: DUP1 0000441c: SWAP2 0000441d: POP 0000441e: POP 0000441f: SWAP3 00004420: POP 00004421: SWAP3 00004422: POP 00004423: SWAP3 00004424: JUMP 00004425: JUMPDEST 00004426: PUSH1 0x00 00004428: DUP1 00004429: PUSH1 0x40 0000442b: DUP4 0000442c: DUP6 0000442d: SUB 0000442e: SLT 0000442f: ISZERO 00004430: PUSH2 0x4437 00004433: JUMPI 00004434: DUP2 00004435: DUP3 00004436: REVERT 00004437: JUMPDEST 00004438: DUP3 00004439: CALLDATALOAD 0000443a: PUSH2 0x4442 0000443d: DUP2 0000443e: PUSH2 0x4d46 00004441: JUMP 00004442: JUMPDEST 00004443: SWAP5 00004444: PUSH1 0x20 00004446: SWAP4 00004447: SWAP1 00004448: SWAP4 00004449: ADD 0000444a: CALLDATALOAD 0000444b: SWAP4 0000444c: POP 0000444d: POP 0000444e: POP 0000444f: JUMP 00004450: JUMPDEST 00004451: PUSH1 0x00 00004453: DUP1 00004454: PUSH1 0x00 00004456: PUSH1 0x60 00004458: DUP5 00004459: DUP7 0000445a: SUB 0000445b: SLT 0000445c: ISZERO 0000445d: PUSH2 0x4464 00004460: JUMPI 00004461: DUP1 00004462: DUP2 00004463: REVERT 00004464: JUMPDEST 00004465: DUP4 00004466: CALLDATALOAD 00004467: PUSH2 0x446f 0000446a: DUP2 0000446b: PUSH2 0x4d46 0000446e: JUMP 0000446f: JUMPDEST 00004470: SWAP3 00004471: POP 00004472: PUSH1 0x20 00004474: DUP5 00004475: ADD 00004476: CALLDATALOAD 00004477: SWAP2 00004478: POP 00004479: PUSH1 0x40 0000447b: DUP5 0000447c: ADD 0000447d: CALLDATALOAD 0000447e: PUSH2 0x441a 00004481: DUP2 00004482: PUSH2 0x4d46 00004485: JUMP 00004486: JUMPDEST 00004487: PUSH1 0x00 00004489: DUP1 0000448a: PUSH1 0x00 0000448c: PUSH1 0x60 0000448e: DUP5 0000448f: DUP7 00004490: SUB 00004491: SLT 00004492: ISZERO 00004493: PUSH2 0x449a 00004496: JUMPI 00004497: DUP1 00004498: DUP2 00004499: REVERT 0000449a: JUMPDEST 0000449b: DUP4 0000449c: CALLDATALOAD 0000449d: PUSH2 0x44a5 000044a0: DUP2 000044a1: PUSH2 0x4d46 000044a4: JUMP 000044a5: JUMPDEST 000044a6: SWAP3 000044a7: POP 000044a8: PUSH1 0x20 000044aa: DUP5 000044ab: ADD 000044ac: CALLDATALOAD 000044ad: SWAP2 000044ae: POP 000044af: PUSH1 0x40 000044b1: DUP5 000044b2: ADD 000044b3: CALLDATALOAD 000044b4: PUSH8 0xffffffffffffffff 000044bd: DUP2 000044be: GT 000044bf: ISZERO 000044c0: PUSH2 0x44c7 000044c3: JUMPI 000044c4: DUP2 000044c5: DUP3 000044c6: REVERT 000044c7: JUMPDEST 000044c8: PUSH2 0x44d3 000044cb: DUP7 000044cc: DUP3 000044cd: DUP8 000044ce: ADD 000044cf: PUSH2 0x4064 000044d2: JUMP 000044d3: JUMPDEST 000044d4: SWAP2 000044d5: POP 000044d6: POP 000044d7: SWAP3 000044d8: POP 000044d9: SWAP3 000044da: POP 000044db: SWAP3 000044dc: JUMP 000044dd: JUMPDEST 000044de: PUSH1 0x00 000044e0: DUP1 000044e1: PUSH1 0x00 000044e3: PUSH1 0x60 000044e5: DUP5 000044e6: DUP7 000044e7: SUB 000044e8: SLT 000044e9: ISZERO 000044ea: PUSH2 0x44f1 000044ed: JUMPI 000044ee: DUP1 000044ef: DUP2 000044f0: REVERT 000044f1: JUMPDEST 000044f2: DUP4 000044f3: CALLDATALOAD 000044f4: PUSH8 0xffffffffffffffff 000044fd: DUP1 000044fe: DUP3 000044ff: GT 00004500: ISZERO 00004501: PUSH2 0x4508 00004504: JUMPI 00004505: DUP3 00004506: DUP4 00004507: REVERT 00004508: JUMPDEST 00004509: PUSH2 0x4514 0000450c: DUP8 0000450d: DUP4 0000450e: DUP9 0000450f: ADD 00004510: PUSH2 0x3f8f 00004513: JUMP 00004514: JUMPDEST 00004515: SWAP5 00004516: POP 00004517: PUSH1 0x20 00004519: SWAP2 0000451a: POP 0000451b: DUP2 0000451c: DUP7 0000451d: ADD 0000451e: CALLDATALOAD 0000451f: DUP2 00004520: DUP2 00004521: GT 00004522: ISZERO 00004523: PUSH2 0x452a 00004526: JUMPI 00004527: DUP4 00004528: DUP5 00004529: REVERT 0000452a: JUMPDEST 0000452b: PUSH2 0x4536 0000452e: DUP9 0000452f: DUP3 00004530: DUP10 00004531: ADD 00004532: PUSH2 0x4006 00004535: JUMP 00004536: JUMPDEST 00004537: SWAP5 00004538: POP 00004539: POP 0000453a: PUSH1 0x40 0000453c: DUP7 0000453d: ADD 0000453e: CALLDATALOAD 0000453f: DUP2 00004540: DUP2 00004541: GT 00004542: ISZERO 00004543: PUSH2 0x454a 00004546: JUMPI 00004547: DUP4 00004548: DUP5 00004549: REVERT 0000454a: JUMPDEST 0000454b: DUP7 0000454c: ADD 0000454d: SWAP1 0000454e: POP 0000454f: PUSH1 0x1f 00004551: DUP2 00004552: ADD 00004553: DUP8 00004554: SGT 00004555: PUSH2 0x455c 00004558: JUMPI 00004559: DUP3 0000455a: DUP4 0000455b: REVERT 0000455c: JUMPDEST 0000455d: DUP1 0000455e: CALLDATALOAD 0000455f: PUSH2 0x456a 00004562: PUSH2 0x3fad 00004565: DUP3 00004566: PUSH2 0x4cfa 00004569: JUMP 0000456a: JUMPDEST 0000456b: DUP2 0000456c: DUP2 0000456d: MSTORE 0000456e: DUP4 0000456f: DUP2 00004570: ADD 00004571: SWAP1 00004572: DUP4 00004573: DUP6 00004574: ADD 00004575: DUP7 00004576: JUMPDEST 00004577: DUP5 00004578: DUP2 00004579: LT 0000457a: ISZERO 0000457b: PUSH2 0x459f 0000457e: JUMPI 0000457f: PUSH2 0x458d 00004582: DUP13 00004583: DUP9 00004584: DUP5 00004585: CALLDATALOAD 00004586: DUP10 00004587: ADD 00004588: ADD 00004589: PUSH2 0x4064 0000458c: JUMP 0000458d: JUMPDEST 0000458e: DUP5 0000458f: MSTORE 00004590: SWAP3 00004591: DUP7 00004592: ADD 00004593: SWAP3 00004594: SWAP1 00004595: DUP7 00004596: ADD 00004597: SWAP1 00004598: PUSH1 0x01 0000459a: ADD 0000459b: PUSH2 0x4576 0000459e: JUMP 0000459f: JUMPDEST 000045a0: POP 000045a1: POP 000045a2: DUP1 000045a3: SWAP6 000045a4: POP 000045a5: POP 000045a6: POP 000045a7: POP 000045a8: POP 000045a9: POP 000045aa: SWAP3 000045ab: POP 000045ac: SWAP3 000045ad: POP 000045ae: SWAP3 000045af: JUMP 000045b0: JUMPDEST 000045b1: PUSH1 0x00 000045b3: PUSH1 0x20 000045b5: DUP3 000045b6: DUP5 000045b7: SUB 000045b8: SLT 000045b9: ISZERO 000045ba: PUSH2 0x45c1 000045bd: JUMPI 000045be: DUP1 000045bf: DUP2 000045c0: REVERT 000045c1: JUMPDEST 000045c2: DUP2 000045c3: MLOAD 000045c4: PUSH2 0x0ce3 000045c7: DUP2 000045c8: PUSH2 0x4d6b 000045cb: JUMP 000045cc: JUMPDEST 000045cd: PUSH1 0x00 000045cf: PUSH1 0xc0 000045d1: DUP3 000045d2: DUP5 000045d3: SUB 000045d4: SLT 000045d5: ISZERO 000045d6: PUSH2 0x45dd 000045d9: JUMPI 000045da: DUP1 000045db: DUP2 000045dc: REVERT 000045dd: JUMPDEST 000045de: PUSH2 0x45e7 000045e1: PUSH1 0xc0 000045e3: PUSH2 0x4cd3 000045e6: JUMP 000045e7: JUMPDEST 000045e8: DUP3 000045e9: MLOAD 000045ea: PUSH2 0x45f2 000045ed: DUP2 000045ee: PUSH2 0x4d46 000045f1: JUMP 000045f2: JUMPDEST 000045f3: DUP2 000045f4: MSTORE 000045f5: PUSH1 0x20 000045f7: DUP4 000045f8: ADD 000045f9: MLOAD 000045fa: PUSH2 0x4602 000045fd: DUP2 000045fe: PUSH2 0x4d46 00004601: JUMP 00004602: JUMPDEST 00004603: PUSH1 0x20 00004605: DUP3 00004606: ADD 00004607: MSTORE 00004608: PUSH1 0x40 0000460a: DUP4 0000460b: ADD 0000460c: MLOAD 0000460d: PUSH2 0x4615 00004610: DUP2 00004611: PUSH2 0x4d46 00004614: JUMP 00004615: JUMPDEST 00004616: PUSH1 0x40 00004618: DUP3 00004619: ADD 0000461a: MSTORE 0000461b: PUSH1 0x60 0000461d: DUP4 0000461e: ADD 0000461f: MLOAD 00004620: PUSH2 0x4628 00004623: DUP2 00004624: PUSH2 0x4d46 00004627: JUMP 00004628: JUMPDEST 00004629: PUSH1 0x60 0000462b: DUP3 0000462c: ADD 0000462d: MSTORE 0000462e: PUSH1 0x80 00004630: DUP4 00004631: ADD 00004632: MLOAD 00004633: PUSH2 0x463b 00004636: DUP2 00004637: PUSH2 0x4d46 0000463a: JUMP 0000463b: JUMPDEST 0000463c: PUSH1 0x80 0000463e: DUP3 0000463f: ADD 00004640: MSTORE 00004641: PUSH1 0xa0 00004643: DUP4 00004644: ADD 00004645: MLOAD 00004646: PUSH2 0x464e 00004649: DUP2 0000464a: PUSH2 0x4d6b 0000464d: JUMP 0000464e: JUMPDEST 0000464f: PUSH1 0xa0 00004651: DUP3 00004652: ADD 00004653: MSTORE 00004654: SWAP4 00004655: SWAP3 00004656: POP 00004657: POP 00004658: POP 00004659: JUMP 0000465a: JUMPDEST 0000465b: PUSH1 0x00 0000465d: PUSH1 0x20 0000465f: DUP3 00004660: DUP5 00004661: SUB 00004662: SLT 00004663: ISZERO 00004664: PUSH2 0x466b 00004667: JUMPI 00004668: DUP1 00004669: DUP2 0000466a: REVERT 0000466b: JUMPDEST 0000466c: POP 0000466d: CALLDATALOAD 0000466e: SWAP2 0000466f: SWAP1 00004670: POP 00004671: JUMP 00004672: JUMPDEST 00004673: PUSH1 0x00 00004675: PUSH1 0x20 00004677: DUP3 00004678: DUP5 00004679: SUB 0000467a: SLT 0000467b: ISZERO 0000467c: PUSH2 0x4683 0000467f: JUMPI 00004680: DUP1 00004681: DUP2 00004682: REVERT 00004683: JUMPDEST 00004684: POP 00004685: MLOAD 00004686: SWAP2 00004687: SWAP1 00004688: POP 00004689: JUMP 0000468a: JUMPDEST 0000468b: PUSH1 0x00 0000468d: DUP1 0000468e: PUSH1 0x40 00004690: DUP4 00004691: DUP6 00004692: SUB 00004693: SLT 00004694: ISZERO 00004695: PUSH2 0x469c 00004698: JUMPI 00004699: DUP2 0000469a: DUP3 0000469b: REVERT 0000469c: JUMPDEST 0000469d: POP 0000469e: POP 0000469f: DUP1 000046a0: CALLDATALOAD 000046a1: SWAP3 000046a2: PUSH1 0x20 000046a4: SWAP1 000046a5: SWAP2 000046a6: ADD 000046a7: CALLDATALOAD 000046a8: SWAP2 000046a9: POP 000046aa: JUMP 000046ab: JUMPDEST 000046ac: DUP1 000046ad: PUSH1 0x00 000046af: JUMPDEST 000046b0: PUSH1 0x02 000046b2: DUP2 000046b3: LT 000046b4: ISZERO 000046b5: PUSH2 0x0ac8 000046b8: JUMPI 000046b9: DUP2 000046ba: MLOAD 000046bb: DUP5 000046bc: MSTORE 000046bd: PUSH1 0x20 000046bf: SWAP4 000046c0: DUP5 000046c1: ADD 000046c2: SWAP4 000046c3: SWAP1 000046c4: SWAP2 000046c5: ADD 000046c6: SWAP1 000046c7: PUSH1 0x01 000046c9: ADD 000046ca: PUSH2 0x46af 000046cd: JUMP 000046ce: JUMPDEST 000046cf: DUP1 000046d0: PUSH1 0x00 000046d2: JUMPDEST 000046d3: PUSH1 0x03 000046d5: DUP2 000046d6: LT 000046d7: ISZERO 000046d8: PUSH2 0x0ac8 000046db: JUMPI 000046dc: DUP2 000046dd: MLOAD 000046de: DUP5 000046df: MSTORE 000046e0: PUSH1 0x20 000046e2: SWAP4 000046e3: DUP5 000046e4: ADD 000046e5: SWAP4 000046e6: SWAP1 000046e7: SWAP2 000046e8: ADD 000046e9: SWAP1 000046ea: PUSH1 0x01 000046ec: ADD 000046ed: PUSH2 0x46d2 000046f0: JUMP 000046f1: JUMPDEST 000046f2: PUSH1 0x00 000046f4: DUP3 000046f5: MLOAD 000046f6: PUSH2 0x4703 000046f9: DUP2 000046fa: DUP5 000046fb: PUSH1 0x20 000046fd: DUP8 000046fe: ADD 000046ff: PUSH2 0x4d1a 00004702: JUMP 00004703: JUMPDEST 00004704: SWAP2 00004705: SWAP1 00004706: SWAP2 00004707: ADD 00004708: SWAP3 00004709: SWAP2 0000470a: POP 0000470b: POP 0000470c: JUMP 0000470d: JUMPDEST 0000470e: SWAP1 0000470f: JUMP 00004710: JUMPDEST 00004711: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004726: SWAP2 00004727: SWAP1 00004728: SWAP2 00004729: AND 0000472a: DUP2 0000472b: MSTORE 0000472c: PUSH1 0x20 0000472e: ADD 0000472f: SWAP1 00004730: JUMP 00004731: JUMPDEST 00004732: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004747: SWAP3 00004748: DUP4 00004749: AND 0000474a: DUP2 0000474b: MSTORE 0000474c: SWAP2 0000474d: AND 0000474e: PUSH1 0x20 00004750: DUP3 00004751: ADD 00004752: MSTORE 00004753: PUSH1 0x40 00004755: ADD 00004756: SWAP1 00004757: JUMP 00004758: JUMPDEST 00004759: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000476e: SWAP3 0000476f: SWAP1 00004770: SWAP3 00004771: AND 00004772: DUP3 00004773: MSTORE 00004774: PUSH1 0x20 00004776: DUP3 00004777: ADD 00004778: MSTORE 00004779: PUSH1 0x40 0000477b: ADD 0000477c: SWAP1 0000477d: JUMP 0000477e: JUMPDEST 0000477f: PUSH1 0x60 00004781: DUP2 00004782: ADD 00004783: PUSH2 0x478c 00004786: DUP3 00004787: DUP6 00004788: PUSH2 0x46ab 0000478b: JUMP 0000478c: JUMPDEST 0000478d: DUP3 0000478e: PUSH1 0x40 00004790: DUP4 00004791: ADD 00004792: MSTORE 00004793: SWAP4 00004794: SWAP3 00004795: POP 00004796: POP 00004797: POP 00004798: JUMP 00004799: JUMPDEST 0000479a: PUSH1 0x80 0000479c: DUP2 0000479d: ADD 0000479e: PUSH2 0x47a7 000047a1: DUP3 000047a2: DUP7 000047a3: PUSH2 0x46ab 000047a6: JUMP 000047a7: JUMPDEST 000047a8: DUP4 000047a9: PUSH1 0x40 000047ab: DUP4 000047ac: ADD 000047ad: MSTORE 000047ae: DUP3 000047af: ISZERO 000047b0: ISZERO 000047b1: PUSH1 0x60 000047b3: DUP4 000047b4: ADD 000047b5: MSTORE 000047b6: SWAP5 000047b7: SWAP4 000047b8: POP 000047b9: POP 000047ba: POP 000047bb: POP 000047bc: JUMP 000047bd: JUMPDEST 000047be: PUSH1 0x80 000047c0: DUP2 000047c1: ADD 000047c2: PUSH2 0x47cb 000047c5: DUP3 000047c6: DUP6 000047c7: PUSH2 0x46ce 000047ca: JUMP 000047cb: JUMPDEST 000047cc: DUP3 000047cd: PUSH1 0x60 000047cf: DUP4 000047d0: ADD 000047d1: MSTORE 000047d2: SWAP4 000047d3: SWAP3 000047d4: POP 000047d5: POP 000047d6: POP 000047d7: JUMP 000047d8: JUMPDEST 000047d9: PUSH1 0xa0 000047db: DUP2 000047dc: ADD 000047dd: PUSH2 0x47e6 000047e0: DUP3 000047e1: DUP7 000047e2: PUSH2 0x46ce 000047e5: JUMP 000047e6: JUMPDEST 000047e7: DUP4 000047e8: PUSH1 0x60 000047ea: DUP4 000047eb: ADD 000047ec: MSTORE 000047ed: DUP3 000047ee: ISZERO 000047ef: ISZERO 000047f0: PUSH1 0x80 000047f2: DUP4 000047f3: ADD 000047f4: MSTORE 000047f5: SWAP5 000047f6: SWAP4 000047f7: POP 000047f8: POP 000047f9: POP 000047fa: POP 000047fb: JUMP 000047fc: JUMPDEST 000047fd: PUSH1 0x20 000047ff: DUP1 00004800: DUP3 00004801: MSTORE 00004802: DUP3 00004803: MLOAD 00004804: DUP3 00004805: DUP3 00004806: ADD 00004807: DUP2 00004808: SWAP1 00004809: MSTORE 0000480a: PUSH1 0x00 0000480c: SWAP2 0000480d: SWAP1 0000480e: DUP5 0000480f: DUP3 00004810: ADD 00004811: SWAP1 00004812: PUSH1 0x40 00004814: DUP6 00004815: ADD 00004816: SWAP1 00004817: DUP5 00004818: JUMPDEST 00004819: DUP2 0000481a: DUP2 0000481b: LT 0000481c: ISZERO 0000481d: PUSH2 0x4834 00004820: JUMPI 00004821: DUP4 00004822: MLOAD 00004823: DUP4 00004824: MSTORE 00004825: SWAP3 00004826: DUP5 00004827: ADD 00004828: SWAP3 00004829: SWAP2 0000482a: DUP5 0000482b: ADD 0000482c: SWAP2 0000482d: PUSH1 0x01 0000482f: ADD 00004830: PUSH2 0x4818 00004833: JUMP 00004834: JUMPDEST 00004835: POP 00004836: SWAP1 00004837: SWAP7 00004838: SWAP6 00004839: POP 0000483a: POP 0000483b: POP 0000483c: POP 0000483d: POP 0000483e: POP 0000483f: JUMP 00004840: JUMPDEST 00004841: SWAP1 00004842: ISZERO 00004843: ISZERO 00004844: DUP2 00004845: MSTORE 00004846: PUSH1 0x20 00004848: ADD 00004849: SWAP1 0000484a: JUMP 0000484b: JUMPDEST 0000484c: PUSH1 0x00 0000484e: PUSH1 0x20 00004850: DUP3 00004851: MSTORE 00004852: DUP3 00004853: MLOAD 00004854: DUP1 00004855: PUSH1 0x20 00004857: DUP5 00004858: ADD 00004859: MSTORE 0000485a: PUSH2 0x486a 0000485d: DUP2 0000485e: PUSH1 0x40 00004860: DUP6 00004861: ADD 00004862: PUSH1 0x20 00004864: DUP8 00004865: ADD 00004866: PUSH2 0x4d1a 00004869: JUMP 0000486a: JUMPDEST 0000486b: PUSH1 0x1f 0000486d: ADD 0000486e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000488f: AND 00004890: SWAP2 00004891: SWAP1 00004892: SWAP2 00004893: ADD 00004894: PUSH1 0x40 00004896: ADD 00004897: SWAP3 00004898: SWAP2 00004899: POP 0000489a: POP 0000489b: JUMP 0000489c: JUMPDEST 0000489d: PUSH1 0x20 0000489f: DUP1 000048a0: DUP3 000048a1: MSTORE 000048a2: PUSH1 0x17 000048a4: SWAP1 000048a5: DUP3 000048a6: ADD 000048a7: MSTORE 000048a8: PUSH32 0x4e6174697665207472616e73666572206661696c65642e000000000000000000 000048c9: PUSH1 0x40 000048cb: DUP3 000048cc: ADD 000048cd: MSTORE 000048ce: PUSH1 0x60 000048d0: ADD 000048d1: SWAP1 000048d2: JUMP 000048d3: JUMPDEST 000048d4: PUSH1 0x20 000048d6: DUP1 000048d7: DUP3 000048d8: MSTORE 000048d9: PUSH1 0x0f 000048db: SWAP1 000048dc: DUP3 000048dd: ADD 000048de: MSTORE 000048df: PUSH32 0x496e76616c696420616464726573730000000000000000000000000000000000 00004900: PUSH1 0x40 00004902: DUP3 00004903: ADD 00004904: MSTORE 00004905: PUSH1 0x60 00004907: ADD 00004908: SWAP1 00004909: JUMP 0000490a: JUMPDEST 0000490b: PUSH1 0x20 0000490d: DUP1 0000490e: DUP3 0000490f: MSTORE 00004910: PUSH1 0x0c 00004912: SWAP1 00004913: DUP3 00004914: ADD 00004915: MSTORE 00004916: PUSH32 0x4d697373696e6720636f696e0000000000000000000000000000000000000000 00004937: PUSH1 0x40 00004939: DUP3 0000493a: ADD 0000493b: MSTORE 0000493c: PUSH1 0x60 0000493e: ADD 0000493f: SWAP1 00004940: JUMP 00004941: JUMPDEST 00004942: PUSH1 0x20 00004944: DUP1 00004945: DUP3 00004946: MSTORE 00004947: PUSH1 0x26 00004949: SWAP1 0000494a: DUP3 0000494b: ADD 0000494c: MSTORE 0000494d: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 0000496e: PUSH1 0x40 00004970: DUP3 00004971: ADD 00004972: MSTORE 00004973: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 00004994: PUSH1 0x60 00004996: DUP3 00004997: ADD 00004998: MSTORE 00004999: PUSH1 0x80 0000499b: ADD 0000499c: SWAP1 0000499d: JUMP 0000499e: JUMPDEST 0000499f: PUSH1 0x20 000049a1: DUP1 000049a2: DUP3 000049a3: MSTORE 000049a4: PUSH1 0x1e 000049a6: SWAP1 000049a7: DUP3 000049a8: ADD 000049a9: MSTORE 000049aa: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 000049cb: PUSH1 0x40 000049cd: DUP3 000049ce: ADD 000049cf: MSTORE 000049d0: PUSH1 0x60 000049d2: ADD 000049d3: SWAP1 000049d4: JUMP 000049d5: JUMPDEST 000049d6: PUSH1 0x20 000049d8: DUP1 000049d9: DUP3 000049da: MSTORE 000049db: PUSH1 0x12 000049dd: SWAP1 000049de: DUP3 000049df: ADD 000049e0: MSTORE 000049e1: PUSH32 0x496e73756666696369656e742066756e64730000000000000000000000000000 00004a02: PUSH1 0x40 00004a04: DUP3 00004a05: ADD 00004a06: MSTORE 00004a07: PUSH1 0x60 00004a09: ADD 00004a0a: SWAP1 00004a0b: JUMP 00004a0c: JUMPDEST 00004a0d: PUSH1 0x20 00004a0f: DUP1 00004a10: DUP3 00004a11: MSTORE 00004a12: PUSH1 0x16 00004a14: SWAP1 00004a15: DUP3 00004a16: ADD 00004a17: MSTORE 00004a18: PUSH32 0x4d697373696e6720696d706c656d656e746174696f6e00000000000000000000 00004a39: PUSH1 0x40 00004a3b: DUP3 00004a3c: ADD 00004a3d: MSTORE 00004a3e: PUSH1 0x60 00004a40: ADD 00004a41: SWAP1 00004a42: JUMP 00004a43: JUMPDEST 00004a44: PUSH1 0x20 00004a46: DUP1 00004a47: DUP3 00004a48: MSTORE 00004a49: DUP2 00004a4a: DUP2 00004a4b: ADD 00004a4c: MSTORE 00004a4d: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00004a6e: PUSH1 0x40 00004a70: DUP3 00004a71: ADD 00004a72: MSTORE 00004a73: PUSH1 0x60 00004a75: ADD 00004a76: SWAP1 00004a77: JUMP 00004a78: JUMPDEST 00004a79: PUSH1 0x20 00004a7b: DUP1 00004a7c: DUP3 00004a7d: MSTORE 00004a7e: PUSH1 0x26 00004a80: SWAP1 00004a81: DUP3 00004a82: ADD 00004a83: MSTORE 00004a84: PUSH32 0x45786563757461626c653a2063616c6c6572206973206e6f7420746865206578 00004aa5: PUSH1 0x40 00004aa7: DUP3 00004aa8: ADD 00004aa9: MSTORE 00004aaa: PUSH32 0x656375746f720000000000000000000000000000000000000000000000000000 00004acb: PUSH1 0x60 00004acd: DUP3 00004ace: ADD 00004acf: MSTORE 00004ad0: PUSH1 0x80 00004ad2: ADD 00004ad3: SWAP1 00004ad4: JUMP 00004ad5: JUMPDEST 00004ad6: PUSH1 0x20 00004ad8: DUP1 00004ad9: DUP3 00004ada: MSTORE 00004adb: PUSH1 0x1d 00004add: SWAP1 00004ade: DUP3 00004adf: ADD 00004ae0: MSTORE 00004ae1: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00004b02: PUSH1 0x40 00004b04: DUP3 00004b05: ADD 00004b06: MSTORE 00004b07: PUSH1 0x60 00004b09: ADD 00004b0a: SWAP1 00004b0b: JUMP 00004b0c: JUMPDEST 00004b0d: PUSH1 0x20 00004b0f: DUP1 00004b10: DUP3 00004b11: MSTORE 00004b12: PUSH1 0x2a 00004b14: SWAP1 00004b15: DUP3 00004b16: ADD 00004b17: MSTORE 00004b18: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00004b39: PUSH1 0x40 00004b3b: DUP3 00004b3c: ADD 00004b3d: MSTORE 00004b3e: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 00004b5f: PUSH1 0x60 00004b61: DUP3 00004b62: ADD 00004b63: MSTORE 00004b64: PUSH1 0x80 00004b66: ADD 00004b67: SWAP1 00004b68: JUMP 00004b69: JUMPDEST 00004b6a: PUSH1 0x20 00004b6c: DUP1 00004b6d: DUP3 00004b6e: MSTORE 00004b6f: PUSH1 0x36 00004b71: SWAP1 00004b72: DUP3 00004b73: ADD 00004b74: MSTORE 00004b75: PUSH32 0x5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f 00004b96: PUSH1 0x40 00004b98: DUP3 00004b99: ADD 00004b9a: MSTORE 00004b9b: PUSH32 0x20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000 00004bbc: PUSH1 0x60 00004bbe: DUP3 00004bbf: ADD 00004bc0: MSTORE 00004bc1: PUSH1 0x80 00004bc3: ADD 00004bc4: SWAP1 00004bc5: JUMP 00004bc6: JUMPDEST 00004bc7: SWAP1 00004bc8: DUP2 00004bc9: MSTORE 00004bca: PUSH1 0x20 00004bcc: ADD 00004bcd: SWAP1 00004bce: JUMP 00004bcf: JUMPDEST 00004bd0: DUP3 00004bd1: DUP2 00004bd2: MSTORE 00004bd3: PUSH1 0x60 00004bd5: DUP2 00004bd6: ADD 00004bd7: PUSH2 0x0ce3 00004bda: PUSH1 0x20 00004bdc: DUP4 00004bdd: ADD 00004bde: DUP5 00004bdf: PUSH2 0x46ab 00004be2: JUMP 00004be3: JUMPDEST 00004be4: DUP4 00004be5: DUP2 00004be6: MSTORE 00004be7: PUSH1 0x80 00004be9: DUP2 00004bea: ADD 00004beb: PUSH2 0x4bf7 00004bee: PUSH1 0x20 00004bf0: DUP4 00004bf1: ADD 00004bf2: DUP6 00004bf3: PUSH2 0x46ab 00004bf6: JUMP 00004bf7: JUMPDEST 00004bf8: DUP3 00004bf9: ISZERO 00004bfa: ISZERO 00004bfb: PUSH1 0x60 00004bfd: DUP4 00004bfe: ADD 00004bff: MSTORE 00004c00: SWAP5 00004c01: SWAP4 00004c02: POP 00004c03: POP 00004c04: POP 00004c05: POP 00004c06: JUMP 00004c07: JUMPDEST 00004c08: DUP3 00004c09: DUP2 00004c0a: MSTORE 00004c0b: PUSH1 0x80 00004c0d: DUP2 00004c0e: ADD 00004c0f: PUSH2 0x0ce3 00004c12: PUSH1 0x20 00004c14: DUP4 00004c15: ADD 00004c16: DUP5 00004c17: PUSH2 0x46ce 00004c1a: JUMP 00004c1b: JUMPDEST 00004c1c: DUP4 00004c1d: DUP2 00004c1e: MSTORE 00004c1f: PUSH1 0xa0 00004c21: DUP2 00004c22: ADD 00004c23: PUSH2 0x4c2f 00004c26: PUSH1 0x20 00004c28: DUP4 00004c29: ADD 00004c2a: DUP6 00004c2b: PUSH2 0x46ce 00004c2e: JUMP 00004c2f: JUMPDEST 00004c30: DUP3 00004c31: ISZERO 00004c32: ISZERO 00004c33: PUSH1 0x80 00004c35: DUP4 00004c36: ADD 00004c37: MSTORE 00004c38: SWAP5 00004c39: SWAP4 00004c3a: POP 00004c3b: POP 00004c3c: POP 00004c3d: POP 00004c3e: JUMP 00004c3f: JUMPDEST 00004c40: SWAP2 00004c41: DUP3 00004c42: MSTORE 00004c43: ISZERO 00004c44: ISZERO 00004c45: PUSH1 0x20 00004c47: DUP3 00004c48: ADD 00004c49: MSTORE 00004c4a: PUSH1 0x40 00004c4c: ADD 00004c4d: SWAP1 00004c4e: JUMP 00004c4f: JUMPDEST 00004c50: SWAP3 00004c51: DUP4 00004c52: MSTORE 00004c53: PUSH1 0x0f 00004c55: SWAP2 00004c56: SWAP1 00004c57: SWAP2 00004c58: SIGNEXTEND 00004c59: PUSH1 0x20 00004c5b: DUP4 00004c5c: ADD 00004c5d: MSTORE 00004c5e: PUSH1 0x40 00004c60: DUP3 00004c61: ADD 00004c62: MSTORE 00004c63: PUSH1 0x60 00004c65: ADD 00004c66: SWAP1 00004c67: JUMP 00004c68: JUMPDEST 00004c69: SWAP4 00004c6a: DUP5 00004c6b: MSTORE 00004c6c: PUSH1 0x0f 00004c6e: SWAP3 00004c6f: SWAP1 00004c70: SWAP3 00004c71: SIGNEXTEND 00004c72: PUSH1 0x20 00004c74: DUP5 00004c75: ADD 00004c76: MSTORE 00004c77: PUSH1 0x40 00004c79: DUP4 00004c7a: ADD 00004c7b: MSTORE 00004c7c: ISZERO 00004c7d: ISZERO 00004c7e: PUSH1 0x60 00004c80: DUP3 00004c81: ADD 00004c82: MSTORE 00004c83: PUSH1 0x80 00004c85: ADD 00004c86: SWAP1 00004c87: JUMP 00004c88: JUMPDEST 00004c89: SWAP3 00004c8a: DUP4 00004c8b: MSTORE 00004c8c: PUSH1 0x20 00004c8e: DUP4 00004c8f: ADD 00004c90: SWAP2 00004c91: SWAP1 00004c92: SWAP2 00004c93: MSTORE 00004c94: ISZERO 00004c95: ISZERO 00004c96: PUSH1 0x40 00004c98: DUP3 00004c99: ADD 00004c9a: MSTORE 00004c9b: PUSH1 0x60 00004c9d: ADD 00004c9e: SWAP1 00004c9f: JUMP 00004ca0: JUMPDEST 00004ca1: SWAP3 00004ca2: DUP4 00004ca3: MSTORE 00004ca4: PUSH1 0x20 00004ca6: DUP4 00004ca7: ADD 00004ca8: SWAP2 00004ca9: SWAP1 00004caa: SWAP2 00004cab: MSTORE 00004cac: PUSH1 0x40 00004cae: DUP3 00004caf: ADD 00004cb0: MSTORE 00004cb1: PUSH1 0x60 00004cb3: ADD 00004cb4: SWAP1 00004cb5: JUMP 00004cb6: JUMPDEST 00004cb7: SWAP4 00004cb8: DUP5 00004cb9: MSTORE 00004cba: PUSH1 0x20 00004cbc: DUP5 00004cbd: ADD 00004cbe: SWAP3 00004cbf: SWAP1 00004cc0: SWAP3 00004cc1: MSTORE 00004cc2: PUSH1 0x40 00004cc4: DUP4 00004cc5: ADD 00004cc6: MSTORE 00004cc7: ISZERO 00004cc8: ISZERO 00004cc9: PUSH1 0x60 00004ccb: DUP3 00004ccc: ADD 00004ccd: MSTORE 00004cce: PUSH1 0x80 00004cd0: ADD 00004cd1: SWAP1 00004cd2: JUMP 00004cd3: JUMPDEST 00004cd4: PUSH1 0x40 00004cd6: MLOAD 00004cd7: DUP2 00004cd8: DUP2 00004cd9: ADD 00004cda: PUSH8 0xffffffffffffffff 00004ce3: DUP2 00004ce4: GT 00004ce5: DUP3 00004ce6: DUP3 00004ce7: LT 00004ce8: OR 00004ce9: ISZERO 00004cea: PUSH2 0x4cf2 00004ced: JUMPI 00004cee: PUSH1 0x00 00004cf0: DUP1 00004cf1: REVERT 00004cf2: JUMPDEST 00004cf3: PUSH1 0x40 00004cf5: MSTORE 00004cf6: SWAP2 00004cf7: SWAP1 00004cf8: POP 00004cf9: JUMP 00004cfa: JUMPDEST 00004cfb: PUSH1 0x00 00004cfd: PUSH8 0xffffffffffffffff 00004d06: DUP3 00004d07: GT 00004d08: ISZERO 00004d09: PUSH2 0x4d10 00004d0c: JUMPI 00004d0d: DUP1 00004d0e: DUP2 00004d0f: REVERT 00004d10: JUMPDEST 00004d11: POP 00004d12: PUSH1 0x20 00004d14: SWAP1 00004d15: DUP2 00004d16: MUL 00004d17: ADD 00004d18: SWAP1 00004d19: JUMP 00004d1a: JUMPDEST 00004d1b: PUSH1 0x00 00004d1d: JUMPDEST 00004d1e: DUP4 00004d1f: DUP2 00004d20: LT 00004d21: ISZERO 00004d22: PUSH2 0x4d35 00004d25: JUMPI 00004d26: DUP2 00004d27: DUP2 00004d28: ADD 00004d29: MLOAD 00004d2a: DUP4 00004d2b: DUP3 00004d2c: ADD 00004d2d: MSTORE 00004d2e: PUSH1 0x20 00004d30: ADD 00004d31: PUSH2 0x4d1d 00004d34: JUMP 00004d35: JUMPDEST 00004d36: DUP4 00004d37: DUP2 00004d38: GT 00004d39: ISZERO 00004d3a: PUSH2 0x0ac8 00004d3d: JUMPI 00004d3e: POP 00004d3f: POP 00004d40: PUSH1 0x00 00004d42: SWAP2 00004d43: ADD 00004d44: MSTORE 00004d45: JUMP 00004d46: JUMPDEST 00004d47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004d5c: DUP2 00004d5d: AND 00004d5e: DUP2 00004d5f: EQ 00004d60: PUSH2 0x4d68 00004d63: JUMPI 00004d64: PUSH1 0x00 00004d66: DUP1 00004d67: REVERT 00004d68: JUMPDEST 00004d69: POP 00004d6a: JUMP 00004d6b: JUMPDEST 00004d6c: DUP1 00004d6d: ISZERO 00004d6e: ISZERO 00004d6f: DUP2 00004d70: EQ 00004d71: PUSH2 0x4d68 00004d74: JUMPI 00004d75: PUSH1 0x00 00004d77: DUP1 00004d78: REVERT 00004d79: INVALID 00004d7a: LOG2 00004d7b: PUSH5 0x6970667358 00004d81: UNKNOWN(0x22) 00004d82: SLT 00004d83: KECCAK256 00004d84: UNKNOWN(0xF6) 00004d85: UNKNOWN(0xD0) 00004d86: PUSH9 0x2f5aad73e9de7290c0 00004d90: PC 00004d91: EXTCODECOPY 00004d92: DUP15 00004d93: UNKNOWN(0xC2) 00004d94: BLOBBASEFEE 00004d95: DUP5 00004d96: UNKNOWN(0xCF) 00004d97: UNKNOWN(0x2B) 00004d98: UNKNOWN(0xDC) 00004d99: BLOBBASEFEE 00004d9a: UNKNOWN(0xE9) 00004d9b: DUP8 00004d9c: EQ 00004d9d: UNKNOWN(0xC5) 00004d9e: UNKNOWN(0x0E) 00004d9f: UNKNOWN(0xCE) 00004da0: PUSH26
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x8a705d6800ccfcbefff44c013a3b692fd79e76652491e7178020f3b31070042b
call_targets:
0x49ad84cca260dddd7d7e8ec7be5f79eb5d1be1b0
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x8a705d6800ccfcbefff44c013a3b692fd79e76652491e7178020f3b31070042b",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x49ad84cca260dddd7d7e8ec7be5f79eb5d1be1b0"
],
"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": "0xf61e8d4d",
"selector": "0xf61e8d4d",
"calldata_variants": [
"0xf61e8d4d",
"0xf61e8d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa09e630",
"selector": "0xfa09e630",
"calldata_variants": [
"0xfa09e630",
"0xfa09e6300000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcc49d1d",
"selector": "0xfcc49d1d",
"calldata_variants": [
"0xfcc49d1d",
"0xfcc49d1d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2a38f65",
"selector": "0xf2a38f65",
"calldata_variants": [
"0xf2a38f65",
"0xf2a38f650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3fef3a3",
"selector": "0xf3fef3a3",
"calldata_variants": [
"0xf3fef3a3",
"0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeaafe247",
"selector": "0xeaafe247",
"calldata_variants": [
"0xeaafe247",
"0xeaafe2470000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xed866cef",
"selector": "0xed866cef",
"calldata_variants": [
"0xed866cef",
"0xed866cef0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2696,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3141,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4536,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 15,
"guards_detected": [],
"untrusted_call_count": 15
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x8a705d6800ccfcbefff44c013a3b692fd79e76652491e7178020f3b31070042b
call_targets:
0x49ad84cca260dddd7d7e8ec7be5f79eb5d1be1b0
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x8a705d6800ccfcbefff44c013a3b692fd79e76652491e7178020f3b31070042b",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x49ad84cca260dddd7d7e8ec7be5f79eb5d1be1b0"
],
"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": "0xf61e8d4d",
"selector": "0xf61e8d4d",
"calldata_variants": [
"0xf61e8d4d",
"0xf61e8d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa09e630",
"selector": "0xfa09e630",
"calldata_variants": [
"0xfa09e630",
"0xfa09e6300000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcc49d1d",
"selector": "0xfcc49d1d",
"calldata_variants": [
"0xfcc49d1d",
"0xfcc49d1d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2a38f65",
"selector": "0xf2a38f65",
"calldata_variants": [
"0xf2a38f65",
"0xf2a38f650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3fef3a3",
"selector": "0xf3fef3a3",
"calldata_variants": [
"0xf3fef3a3",
"0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeaafe247",
"selector": "0xeaafe247",
"calldata_variants": [
"0xeaafe247",
"0xeaafe2470000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xed866cef",
"selector": "0xed866cef",
"calldata_variants": [
"0xed866cef",
"0xed866cef0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2696,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3141,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4536,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 15,
"guards_detected": []
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 22
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 23
}
|