28beba35-69fc-4696-bdc3-790cf8022029
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 |
|---|---|---|---|---|
| 30740 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 75436 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 75437 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 75438 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 75439 | capability.graph | complete | 1 / 3 | 1 week ago |
| 75440 | detector.run | complete | 1 / 3 | 1 week ago |
| 75441 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1305563] OpenAI Codex v0.77.0 (research preview)
[codex:1305563] --------
[codex:1305563] workdir: /tmp/codex-multi-c_j_6gc6
[codex:1305563] model: gpt-5.2-codex
[codex:1305563] provider: openai
[codex:1305563] approval: never
[codex:1305563] sandbox: read-only
[codex:1305563] reasoning effort: xhigh
[codex:1305563] reasoning summaries: auto
[codex:1305563] session id: 019b70bc-75e2-7be0-bf0b-b542c616cd4d
[codex:1305563] --------
[codex:1305563] user
[codex:1305563] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:1305563] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:1305563]
[codex:1305563] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:1305563]
[codex:1305563] Output MUST be valid JSON matching the provided schema.
[codex:1305563] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:1305563] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:1305563]
[codex:1305563] Output constraints (IMPORTANT):
[codex:1305563] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1305563] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1305563] mcp startup: no servers
[codex:1305563]
[codex:1305563] thinking
[codex:1305563] **Reading file content via shell**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc ls in /tmp/codex-multi-c_j_6gc6 succeeded in 5ms:
[codex:1305563] BYTECODE_BUNDLE.txt
[codex:1305563] codex-output-schema.json
[codex:1305563] exec
[codex:1305563] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-c_j_6gc6 succeeded in 5ms:
[codex:1305563] Runtime bytecode bundle for best-effort auditing.
[codex:1305563] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1305563]
[codex:1305563] FILE: runtime_bytecode.hex
[codex:1305563] 0x608060405260043610610113575f3560e01c8063613a7b481161009d578063c34684eb11610062578063c34684eb1461029d578063d7c41ef9146102b0578063ea60efed146102d0578063f0a2003e146102e3578063fa461e33146102f6575f5ffd5b8063613a7b48146101fb5780637b3341541461021a5780637f64784f14610258578063856c1a571461026b578063954e75b01461027e575f5ffd5b80630da84181116100e35780630da841811461017857806312065fe0146101975780631c8ef6c6146101b65780634782f779146101c95780634b74bc84146101e8575f5ffd5b806301e336671461011e57806305397ed41461013f57806306411cbb1461015257806308539c9414610165575f5ffd5b3661011a57005b5f5ffd5b348015610129575f5ffd5b5061013d610138366004613a5b565b610315565b005b61013d61014d366004613a99565b610395565b61013d610160366004613ad3565b61090c565b61013d610173366004613a99565b610ee4565b348015610183575f5ffd5b5061013d610192366004613ad3565b610fe8565b3480156101a2575f5ffd5b506040514781526020015b60405180910390f35b61013d6101c4366004613a99565b6115a2565b3480156101d4575f5ffd5b5061013d6101e3366004613b18565b611bc0565b61013d6101f6366004613ad3565b611ca9565b348015610206575f5ffd5b5061013d610215366004613b42565b61231c565b348015610225575f5ffd5b50610248610234366004613b42565b5f6020819052908152604090205460ff1681565b60405190151581526020016101ad565b61013d610266366004613ad3565b612384565b61013d610279366004613ad3565b61296a565b348015610289575f5ffd5b5061013d610298366004613b64565b612a5e565b61013d6102ab366004613a99565b612f1a565b6102c36102be366004613c01565b613017565b6040516101ad9190613c80565b61013d6102de366004613b64565b613115565b61013d6102f1366004613b64565b613202565b348015610301575f5ffd5b5061013d610310366004613c92565b6136c2565b5f516020613f6c5f395f51905f5233148061033e5750335f9081526020819052604090205460ff165b6103635760405162461bcd60e51b815260040161035a90613ce1565b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b03831660048201528160248201525f5f6044835f885af15050505050565b5f516020613f6c5f395f51905f523314806103be5750335f9081526020819052604090205460ff165b6103da5760405162461bcd60e51b815260040161035a90613ce1565b834311156103fa5760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610440573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104649190613d55565b50915091505f600160ff1b86165f036104fd5761049434846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f69190613da1565b905061057f565b61051a34836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610558573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057c9190613da1565b90505b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29034905f81818185875af1925050503d805f81146105d0576040519150601f19603f3d011682016040523d82523d5f602084013e6105d5565b606091505b50506040516323b872dd60e01b81523060048201526001600160a01b038a16602482015234604482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291506323b872dd906064016020604051808303815f875af115801561063b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065f9190613dbc565b506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa1580156106a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106cb9190613ddb565b90505f600160fe1b881615610743576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561071c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107409190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611610767578b610769565b305b6040518463ffffffff1660e01b815260040161078793929190613df2565b5f604051808303815f87803b15801561079e575f5ffd5b505af11580156107b0573d5f5f3e3d5ffd5b50505050600160fe1b88161561086b576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610804573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108289190613ddb565b9050815f0361085a57610841848a610138600185613e33565b89156108555761085260018b613e33565b99505b610869565b610869848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa1580156108b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d79190613ddb565b6108e19190613e33565b10156108ff5760405162461bcd60e51b815260040161035a90613e4c565b5050505050505050505050565b5f516020613f6c5f395f51905f523314806109355750335f9081526020819052604090205460ff165b6109515760405162461bcd60e51b815260040161035a90613ce1565b834311156109715760405162461bcd60e51b815260040161035a90613d10565b5f61097c8634613e33565b90505f5f90505f5f90505f5f876001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156109c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e89190613d55565b50915091505f600160ff1b87165f03610a8157610a1886846001600160701b0316846001600160701b03166138cc565b9350886001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a56573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7a9190613da1565b9050610b03565b610a9e86836001600160701b0316856001600160701b03166138cc565b9450886001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b009190613da1565b90505b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087905f81818185875af1925050503d805f8114610b54576040519150601f19603f3d011682016040523d82523d5f602084013e610b59565b606091505b50506040516323b872dd60e01b81523060048201526001600160a01b038b1660248201526044810188905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291506323b872dd906064016020604051808303815f875af1158015610bc0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be49190613dbc565b506040516370a0823160e01b81526001600160a01b0388811660048301525f91908316906370a0823190602401602060405180830381865afa158015610c2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c509190613ddb565b90505f600160fe1b891615610cc8576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ca1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc59190613ddb565b90505b8a6001600160a01b031663022c0d9f88885f600160fe1b8e1611610cec578c610cee565b305b6040518463ffffffff1660e01b8152600401610d0c93929190613df2565b5f604051808303815f87803b158015610d23575f5ffd5b505af1158015610d35573d5f5f3e3d5ffd5b50505050600160fe1b891615610df0576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610d89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dad9190613ddb565b9050815f03610ddf57610dc6848b610138600185613e33565b8a15610dda57610dd760018c613e33565b9a505b610dee565b610dee848b6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038a811660048301528b9184918616906370a0823190602401602060405180830381865afa158015610e38573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5c9190613ddb565b610e669190613e33565b1015610e845760405162461bcd60e51b815260040161035a90613e4c565b416001600160a01b03168d6040515b5f6040518083038185875af1925050503d805f8114610ecd576040519150601f19603f3d011682016040523d82523d5f602084013e610ed2565b606091505b50505050505050505050505050505050565b5f516020613f6c5f395f51905f52331480610f0d5750335f9081526020819052604090205460ff165b610f295760405162461bcd60e51b815260040161035a90613ce1565b6001603460831936010615610f735760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60845b813682101615610fba575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114610fb2575f91505b603401610f76565b508015610fd5575f5f5f5f34335ff161013d573d5f5f3e3d5ffd5b610fe1858585856115a2565b5050505050565b5f516020613f6c5f395f51905f523314806110115750335f9081526020819052604090205460ff165b61102d5760405162461bcd60e51b815260040161035a90613ce1565b8443111561104d5760405162461bcd60e51b815260040161035a90613d10565b5f5f5f600160ff1b84165f0361125057856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611099573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110bd9190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611105573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111299190613ddb565b9150600160fe1b8416156111a0576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611179573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119d9190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116111c257856111c4565b305b604080513060208201526001918c916401000276a491016040516020818303038152906040526040518663ffffffff1660e01b815260040161120a959493929190613e77565b60408051808303815f875af1158015611225573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112499190613eb1565b505061144d565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b09190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa1580156112f8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131c9190613ddb565b9150600160fe1b841615611393576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561136c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113909190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116113b557856113b7565b305b604080513060208201525f918c9173fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b815260040161140b959493929190613e77565b60408051808303815f875af1158015611426573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144a9190613eb1565b50505b600160fe1b841615611504576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561149d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c19190613ddb565b9050815f036114f3576114da8486610138600185613e33565b85156114ee576114eb600187613e33565b95505b611502565b61150284866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa15801561154c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115709190613ddb565b61157a9190613e33565b10156115985760405162461bcd60e51b815260040161035a90613e4c565b5050505050505050565b5f516020613f6c5f395f51905f523314806115cb5750335f9081526020819052604090205460ff165b6115e75760405162461bcd60e51b815260040161035a90613ce1565b834311156116075760405162461bcd60e51b815260040161035a90613d10565b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29034905f81818185875af1925050503d805f8114611658576040519150601f19603f3d011682016040523d82523d5f602084013e61165d565b606091505b5050505f5f5f600160ff1b84165f0361186957856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d09190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611718573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173c9190613ddb565b9150600160fe1b8416156117b3576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561178c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b09190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116117d557856117d7565b305b60016117e2346139d7565b604080513060208201526401000276a491016040516020818303038152906040526040518663ffffffff1660e01b8152600401611823959493929190613e77565b60408051808303815f875af115801561183e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118629190613eb1565b5050611a6c565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c99190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611911573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119359190613ddb565b9150600160fe1b8416156119ac576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611985573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a99190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116119ce57856119d0565b305b5f6119da346139d7565b6040805130602082015273fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b8152600401611a2a959493929190613e77565b60408051808303815f875af1158015611a45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a699190613eb1565b50505b600160fe1b841615611b23576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015611abc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae09190613ddb565b9050815f03611b1257611af98486610138600185613e33565b8515611b0d57611b0a600187613e33565b95505b611b21565b611b2184866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa158015611b6b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8f9190613ddb565b611b999190613e33565b1015611bb75760405162461bcd60e51b815260040161035a90613e4c565b50505050505050565b5f516020613f6c5f395f51905f52331480611be95750335f9081526020819052604090205460ff165b611c055760405162461bcd60e51b815260040161035a90613ce1565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611c4e576040519150601f19603f3d011682016040523d82523d5f602084013e611c53565b606091505b5050905080611ca45760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f2077697468647261772045746865720000000000000000604482015260640161035a565b505050565b5f516020613f6c5f395f51905f52331480611cd25750335f9081526020819052604090205460ff165b611cee5760405162461bcd60e51b815260040161035a90613ce1565b83431115611d0e5760405162461bcd60e51b815260040161035a90613d10565b5f611d198634613e33565b60405190915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29082905f81818185875af1925050503d805f8114611d6d576040519150601f19603f3d011682016040523d82523d5f602084013e611d72565b606091505b5050505f5f5f600160ff1b85165f03611f7e57866001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611de59190613da1565b6040516370a0823160e01b81526001600160a01b038781166004830152919450908416906370a0823190602401602060405180830381865afa158015611e2d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e519190613ddb565b9150600160fe1b851615611ec8576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611ea1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ec59190613ddb565b90505b866001600160a01b031663128acb085f600160fe1b881611611eea5786611eec565b305b6001611ef7886139d7565b604080513060208201526401000276a491016040516020818303038152906040526040518663ffffffff1660e01b8152600401611f38959493929190613e77565b60408051808303815f875af1158015611f53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f779190613eb1565b5050612181565b866001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fba573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fde9190613da1565b6040516370a0823160e01b81526001600160a01b038781166004830152919450908416906370a0823190602401602060405180830381865afa158015612026573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204a9190613ddb565b9150600160fe1b8516156120c1576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561209a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120be9190613ddb565b90505b866001600160a01b031663128acb085f600160fe1b8816116120e357866120e5565b305b5f6120ef886139d7565b6040805130602082015273fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b815260040161213f959493929190613e77565b60408051808303815f875af115801561215a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061217e9190613eb1565b50505b600160fe1b851615612238576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa1580156121d1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f59190613ddb565b9050815f036122275761220e8487610138600185613e33565b86156122225761221f600188613e33565b96505b612236565b61223684876101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038681166004830152879184918616906370a0823190602401602060405180830381865afa158015612280573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122a49190613ddb565b6122ae9190613e33565b10156122cc5760405162461bcd60e51b815260040161035a90613e4c565b60405141908a905f81818185875af1925050503d805f8114612309576040519150601f19603f3d011682016040523d82523d5f602084013e61230e565b606091505b505050505050505050505050565b5f516020613f6c5f395f51905f523314806123455750335f9081526020819052604090205460ff165b6123615760405162461bcd60e51b815260040161035a90613ce1565b6001600160a01b03165f908152602081905260409020805460ff19166001179055565b5f516020613f6c5f395f51905f523314806123ad5750335f9081526020819052604090205460ff165b6123c95760405162461bcd60e51b815260040161035a90613ce1565b844311156123e95760405162461bcd60e51b815260040161035a90613d10565b5f5f5f600160ff1b84165f036125ec57856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612435573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124599190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa1580156124a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124c59190613ddb565b9150600160fe1b84161561253c576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612515573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125399190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b87161161255e5785612560565b305b604080513060208201526001918c916401000276a491016040516020818303038152906040526040518663ffffffff1660e01b81526004016125a6959493929190613e77565b60408051808303815f875af11580156125c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e59190613eb1565b50506127e9565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612628573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061264c9190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015612694573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126b89190613ddb565b9150600160fe1b84161561272f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612708573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272c9190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116127515785612753565b305b604080513060208201525f918c9173fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b81526004016127a7959493929190613e77565b60408051808303815f875af11580156127c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127e69190613eb1565b50505b600160fe1b841615612899576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015612839573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061285d9190613ddb565b9050815f03612888576128768486610138600185613e33565b612881600187613e33565b9550612897565b61289784866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa1580156128e1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129059190613ddb565b61290f9190613e33565b101561292d5760405162461bcd60e51b815260040161035a90613e4c565b604051419034905f81818185875af1925050503d805f81146108ff576040519150601f19603f3d011682016040523d82523d5f602084013e6108ff565b5f516020613f6c5f395f51905f523314806129935750335f9081526020819052604090205460ff165b6129af5760405162461bcd60e51b815260040161035a90613ce1565b6001603460a319360106156129f95760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60a45b813682101615612a40575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114612a38575f91505b6034016129fc565b508015612a4957005b612a568686868686610fe8565b505050505050565b5f516020613f6c5f395f51905f52331480612a875750335f9081526020819052604090205460ff165b612aa35760405162461bcd60e51b815260040161035a90613ce1565b85431115612ac35760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612b09573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2d9190613d55565b50915091505f600160ff1b86165f03612bc657612b5d8a846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bbf9190613da1565b9050612c48565b612be38a836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c459190613da1565b90505b60405163a9059cbb60e01b81528860048201528a60248201525f5f6044835f8e5af150506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa158015612cb3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cd79190613ddb565b90505f600160fe1b881615612d4f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612d28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d4c9190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611612d73578b612d75565b305b6040518463ffffffff1660e01b8152600401612d9393929190613df2565b5f604051808303815f87803b158015612daa575f5ffd5b505af1158015612dbc573d5f5f3e3d5ffd5b50505050600160fe1b881615612e77576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015612e10573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e349190613ddb565b9050815f03612e6657612e4d848a610138600185613e33565b8915612e6157612e5e60018b613e33565b99505b612e75565b612e75848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa158015612ebf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ee39190613ddb565b612eed9190613e33565b1015612f0b5760405162461bcd60e51b815260040161035a90613e4c565b50505050505050505050505050565b5f516020613f6c5f395f51905f52331480612f435750335f9081526020819052604090205460ff165b612f5f5760405162461bcd60e51b815260040161035a90613ce1565b6001603460831936010615612fa95760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60845b813682101615612ff0575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114612fe8575f91505b603401612fac565b50801561300b575f5f5f5f34335ff161013d573d5f5f3e3d5ffd5b610fe185858585610395565b60605f516020613f6c5f395f51905f523314806130425750335f9081526020819052604090205460ff165b61305e5760405162461bcd60e51b815260040161035a90613ce1565b5f5f856001600160a01b031634868660405161307b929190613ed3565b5f6040518083038185875af1925050503d805f81146130b5576040519150601f19603f3d011682016040523d82523d5f602084013e6130ba565b606091505b50915091508161310c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73706172656e7443616c6c3a2063616c6c206661696c656400000000604482015260640161035a565b95945050505050565b5f516020613f6c5f395f51905f5233148061313e5750335f9081526020819052604090205460ff165b61315a5760405162461bcd60e51b815260040161035a90613ce1565b6001603460c319360106156131a45760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60c45b8136821016156131eb575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c1831146131e3575f91505b6034016131a7565b5080156131f457005b611bb7878787878787612a5e565b5f516020613f6c5f395f51905f5233148061322b5750335f9081526020819052604090205460ff165b6132475760405162461bcd60e51b815260040161035a90613ce1565b854311156132675760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156132ad573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132d19190613d55565b50915091505f600160ff1b86165f0361336a576133018a846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561333f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133639190613da1565b90506133ec565b6133878a836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133e99190613da1565b90505b60405163a9059cbb60e01b81528860048201528a60248201525f5f6044835f8e5af150506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa158015613457573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061347b9190613ddb565b90505f600160fe1b8816156134f3576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156134cc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134f09190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611613517578b613519565b305b6040518463ffffffff1660e01b815260040161353793929190613df2565b5f604051808303815f87803b15801561354e575f5ffd5b505af1158015613560573d5f5f3e3d5ffd5b50505050600160fe1b88161561361b576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa1580156135b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135d89190613ddb565b9050815f0361360a576135f1848a610138600185613e33565b89156136055761360260018b613e33565b99505b613619565b613619848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa158015613663573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136879190613ddb565b6136919190613e33565b10156136af5760405162461bcd60e51b815260040161035a90613e4c565b416001600160a01b031634604051610e93565b5f516020613f6c5f395f51905f523214806136eb5750325f9081526020819052604090205460ff165b6137075760405162461bcd60e51b815260040161035a90613ce1565b613746565b3d5f5f3e3d5ffd5b806137215761372161370c565b60015f5114601f3d11163d15178061374257633c9fd93960e21b5f5260045ffd5b5050565b60405160158101730dfe1681d21220a7ddca3f43a9059cbb23b872dd60601b8252602081600484335afa61377c5761377c61370c565b60208082016004808501335afa6137955761379561370c565b602060408201600460088501335afa6137b0576137b061370c565b5f5f5f8813600181146137cc57602084015192508791506137d4565b835192508891505b507fff1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000084526060832083527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460208401526001600160a01b03605585201692503383181561384a57635960139160e11b5f5260045ffd5b6084359250730dfe1681d21220a7ddca3f43a9059cbb23b872dd60601b8452308314600181146138a05783601486015233603486015281605486015261389b60205f6064601089015f885af1613714565b6138c1565b3360108601528160308601526138c160205f6044600c89015f885af1613714565b505050505050505050565b5f5f84116139285760405162461bcd60e51b8152602060048201526024808201527f556e697377617056323a20494e53554646494349454e545f494e5055545f414d60448201526313d5539560e21b606482015260840161035a565b5f8311801561393657505f82115b61398c5760405162461bcd60e51b815260206004820152602160248201527f556e697377617056323a20494e53554646494349454e545f4c495155494449546044820152605960f81b606482015260840161035a565b5f613999856103e5613ee2565b90505f6139a68483613ee2565b90505f826139b6876103e8613ee2565b6139c09190613ef9565b90506139cc8183613f0c565b979650505050505050565b5f6001600160ff1b03821115613a405760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161035a565b5090565b6001600160a01b0381168114613a58575f5ffd5b50565b5f5f5f60608486031215613a6d575f5ffd5b8335613a7881613a44565b92506020840135613a8881613a44565b929592945050506040919091013590565b5f5f5f5f60808587031215613aac575f5ffd5b843593506020850135613abe81613a44565b93969395505050506040820135916060013590565b5f5f5f5f5f60a08688031215613ae7575f5ffd5b85359450602086013593506040860135613b0081613a44565b94979396509394606081013594506080013592915050565b5f5f60408385031215613b29575f5ffd5b8235613b3481613a44565b946020939093013593505050565b5f60208284031215613b52575f5ffd5b8135613b5d81613a44565b9392505050565b5f5f5f5f5f5f60c08789031215613b79575f5ffd5b86359550602087013594506040870135613b9281613a44565b93506060870135613ba281613a44565b9598949750929560808101359460a0909101359350915050565b5f5f83601f840112613bcc575f5ffd5b50813567ffffffffffffffff811115613be3575f5ffd5b602083019150836020828501011115613bfa575f5ffd5b9250929050565b5f5f5f60408486031215613c13575f5ffd5b8335613c1e81613a44565b9250602084013567ffffffffffffffff811115613c39575f5ffd5b613c4586828701613bbc565b9497909650939450505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f613b5d6020830184613c52565b5f5f5f5f60608587031215613ca5575f5ffd5b8435935060208501359250604085013567ffffffffffffffff811115613cc9575f5ffd5b613cd587828801613bbc565b95989497509550505050565b60208082526015908201527410d85b1b195c881a5cc81b9bdd08185b1b1bddd959605a1b604082015260600190565b60208082526010908201526f189b1bd8dac8195e1c1a5c9e481a1a5d60821b604082015260600190565b80516001600160701b0381168114613d50575f5ffd5b919050565b5f5f5f60608486031215613d67575f5ffd5b613d7084613d3a565b9250613d7e60208501613d3a565b9150604084015163ffffffff81168114613d96575f5ffd5b809150509250925092565b5f60208284031215613db1575f5ffd5b8151613b5d81613a44565b5f60208284031215613dcc575f5ffd5b81518015158114613b5d575f5ffd5b5f60208284031215613deb575f5ffd5b5051919050565b92835260208301919091526001600160a01b031660408201526080606082018190525f9082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115613e4657613e46613e1f565b92915050565b60208082526011908201527014db1a5c1c1859d948195e18d959591959607a1b604082015260600190565b6001600160a01b0386811682528515156020830152604082018590528316606082015260a0608082018190525f906139cc90830184613c52565b5f5f60408385031215613ec2575f5ffd5b505080516020909101519092909150565b818382375f9101908152919050565b8082028115828204841417613e4657613e46613e1f565b80820180821115613e4657613e46613e1f565b5f82613f2657634e487b7160e01b5f52601260045260245ffd5b50049056fe1725c69472b0d35be4e865c78e45538ce31f51e1c4f309908f969ccb89593e157c96ed2c20512d7b7221b71f3608be92d18a5dadfc18b3b0dce63e83e07e73b800000000000000000000000054620b9a8a2c43aa8ed028450a7ce656a9c69feba2646970667358221220413fe934988e8c081892a8f94bdb4b7c9ba591e16ff3a52b1757a0fc3df4633464736f6c634300081b0033
[codex:1305563]
[codex:1305563] thinking
[codex:1305563] **Analyzing bytecode for security patterns**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc "python - <<'PY'
[codex:1305563] from binascii import unhexlify
[codex:1305563] import re
[codex:1305563] code=open('BYTECODE_BUNDLE.txt').read()
[codex:1305563] # extract hex after 0x in runtime_bytecode.hex
[codex:1305563] import re
[codex:1305563] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', code)
[codex:1305563] hexstr=m.group(1)[2:]
[codex:1305563] # disassemble minimal opcodes; track positions
[codex:1305563] code_bytes=bytes.fromhex(hexstr)
[codex:1305563] # opcode sizes
[codex:1305563] push_sizes={i: i-0x5f for i in range(0x60,0x80)}
[codex:1305563] # collect opcodes by name
[codex:1305563] names={
[codex:1305563] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xff:'SELFDESTRUCT'
[codex:1305563] }
[codex:1305563] ops=[]
[codex:1305563] i=0
[codex:1305563] while i<len(code_bytes):
[codex:1305563] op=code_bytes[i]
[codex:1305563] ops.append((i,op))
[codex:1305563] i+=1
[codex:1305563] if op in push_sizes:
[codex:1305563] i+=push_sizes[op]
[codex:1305563] # count target ops
[codex:1305563] counts={k:0 for k in names.values()}
[codex:1305563] positions={k:[] for k in names.values()}
[codex:1305563] for pos,op in ops:
[codex:1305563] if op in names:
[codex:1305563] nm=names[op]
[codex:1305563] counts[nm]+=1
[codex:1305563] positions[nm].append(pos)
[codex:1305563] print('counts',counts)
[codex:1305563] print('delegatecall positions',positions['DELEGATECALL'][:10])
[codex:1305563] print('selfdestruct positions',positions['SELFDESTRUCT'][:10])
[codex:1305563] PY" in /tmp/codex-multi-c_j_6gc6 succeeded in 36ms:
[codex:1305563] counts {'CREATE': 0, 'CALL': 30, 'CALLCODE': 0, 'RETURN': 1, 'DELEGATECALL': 0, 'CREATE2': 0, 'STATICCALL': 63, 'REVERT': 125, 'SELFDESTRUCT': 0}
[codex:1305563] delegatecall positions []
[codex:1305563] selfdestruct positions []
[codex:1305563]
[codex:1305563] thinking
[codex:1305563] **Analyzing low-level call patterns and access controls**
[codex:1305563]
[codex:1305563] I'm inspecting the bytecode for external calls, reentrancy risks, and checking if permission controls exist around critical functions like `transparentCall`; I'm also deciphering a distinctive opcode pattern that might load immutable constants, planning to disassemble it with Python to better understand function entry points and access checks.
[codex:1305563] exec
[codex:1305563] /bin/bash -lc "python - <<'PY'
[codex:1305563] from binascii import unhexlify
[codex:1305563] import re
[codex:1305563] code=open('BYTECODE_BUNDLE.txt').read()
[codex:1305563] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', code).group(1)[2:]
[codex:1305563] code_bytes=bytes.fromhex(hexstr)
[codex:1305563] # disassemble function at offset 0x3115? But we can search for pattern at start of function (5f51 6020 613f6c 5f39 5f51 905f52 33 14 80)
[codex:1305563] pat=bytes.fromhex('5f516020613f6c5f395f51905f52331480')
[codex:1305563] idxs=[]
[codex:1305563] start=0
[codex:1305563] while True:
[codex:1305563] i=code_bytes.find(pat,start)
[codex:1305563] if i==-1: break
[codex:1305563] idxs.append(i)
[codex:1305563] start=i+1
[codex:1305563] print('pattern occurrences',len(idxs))
[codex:1305563] print('first few',idxs[:5])
[codex:1305563] PY" in /tmp/codex-multi-c_j_6gc6 succeeded in 23ms:
[codex:1305563] pattern occurrences 16
[codex:1305563] first few [790, 918, 2317, 3813, 4073]
[codex:1305563]
[codex:1305563] thinking
[codex:1305563] **Analyzing access control patterns**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc "python - <<'PY'
[codex:1305563] from binascii import unhexlify
[codex:1305563] import re
[codex:1305563] code=open('BYTECODE_BUNDLE.txt').read()
[codex:1305563] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', code).group(1)[2:]
[codex:1305563] code_bytes=bytes.fromhex(hexstr)
[codex:1305563] # simple disassembler
[codex:1305563] push_sizes={i: i-0x5f for i in range(0x60,0x80)}
[codex:1305563] # opcodes names minimal
[codex:1305563] names={
[codex:1305563] 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:1305563] 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:1305563] 0x20:'SHA3',
[codex:1305563] 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:1305563] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1305563] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',
[codex:1305563] 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:1305563] 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:1305563] 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:1305563] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1305563] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xff:'SELFDESTRUCT'
[codex:1305563] }
[codex:1305563]
[codex:1305563] # function to disassemble range
[codex:1305563]
[codex:1305563] def disasm(start, end):
[codex:1305563] i=start
[codex:1305563] while i<end:
[codex:1305563] op=code_bytes[i]
[codex:1305563] name=names.get(op, f'OP{op:02x}')
[codex:1305563] if 0x60 <= op <= 0x7f:
[codex:1305563] n=op-0x5f
[codex:1305563] data=code_bytes[i+1:i+1+n]
[codex:1305563] print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1305563] i+=1+n
[codex:1305563] else:
[codex:1305563] print(f'{i:04x}: {name}')
[codex:1305563] i+=1
[codex:1305563]
[codex:1305563] # disassemble around first occurrence at 0x316? find idx
[codex:1305563] pat=bytes.fromhex('5f516020613f6c5f395f51905f52331480')
[codex:1305563] idx=code_bytes.find(pat)
[codex:1305563] print('first occurrence',hex(idx))
[codex:1305563] # disasm 40 bytes around idx
[codex:1305563] start=idx
[codex:1305563] end=idx+50
[codex:1305563] print('--- disasm ---')
[codex:1305563] disasm(start,end)
[codex:1305563] PY" in /tmp/codex-multi-c_j_6gc6 succeeded in 24ms:
[codex:1305563] first occurrence 0x316
[codex:1305563] --- disasm ---
[codex:1305563] 0316: PUSH0
[codex:1305563] 0317: MLOAD
[codex:1305563] 0318: PUSH1 0x20
[codex:1305563] 031a: PUSH2 0x3f6c
[codex:1305563] 031d: PUSH0
[codex:1305563] 031e: CODECOPY
[codex:1305563] 031f: PUSH0
[codex:1305563] 0320: MLOAD
[codex:1305563] 0321: SWAP1
[codex:1305563] 0322: PUSH0
[codex:1305563] 0323: MSTORE
[codex:1305563] 0324: CALLER
[codex:1305563] 0325: EQ
[codex:1305563] 0326: DUP1
[codex:1305563] 0327: PUSH2 0x033e
[codex:1305563] 032a: JUMPI
[codex:1305563] 032b: POP
[codex:1305563] 032c: CALLER
[codex:1305563]
[codex:1305563] thinking
[codex:1305563] **Analyzing access control and token transfer patterns**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc "python - <<'PY'
[codex:1305563] from binascii import unhexlify
[codex:1305563] import re
[codex:1305563] code=open('BYTECODE_BUNDLE.txt').read()
[codex:1305563] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', code).group(1)[2:]
[codex:1305563] code_bytes=bytes.fromhex(hexstr)
[codex:1305563] # disassembler from earlier
[codex:1305563] push_sizes={i: i-0x5f for i in range(0x60,0x80)}
[codex:1305563]
[codex:1305563] names={
[codex:1305563] 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:1305563] 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:1305563] 0x20:'SHA3',
[codex:1305563] 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:1305563] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1305563] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',
[codex:1305563] 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:1305563] 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:1305563] 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:1305563] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1305563] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xff:'SELFDESTRUCT'
[codex:1305563] }
[codex:1305563]
[codex:1305563] def disasm(start, end):
[codex:1305563] i=start
[codex:1305563] while i<end:
[codex:1305563] op=code_bytes[i]
[codex:1305563] name=names.get(op, f'OP{op:02x}')
[codex:1305563] if 0x60 <= op <= 0x7f:
[codex:1305563] n=op-0x5f
[codex:1305563] data=code_bytes[i+1:i+1+n]
[codex:1305563] print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1305563] i+=1+n
[codex:1305563] else:
[codex:1305563] print(f'{i:04x}: {name}')
[codex:1305563] i+=1
[codex:1305563]
[codex:1305563] # disasm around 0x0340-0x0390
[codex:1305563] start=0x033e
[codex:1305563] end=0x0378
[codex:1305563] print('--- disasm ---')
[codex:1305563] disasm(start,end)
[codex:1305563] PY" in /tmp/codex-multi-c_j_6gc6 succeeded in 24ms:
[codex:1305563] --- disasm ---
[codex:1305563] 033e: JUMPDEST
[codex:1305563] 033f: PUSH2 0x0363
[codex:1305563] 0342: JUMPI
[codex:1305563] 0343: PUSH1 0x40
[codex:1305563] 0345: MLOAD
[codex:1305563] 0346: PUSH3 0x461bcd
[codex:1305563] 034a: PUSH1 0xe5
[codex:1305563] 034c: SHL
[codex:1305563] 034d: DUP2
[codex:1305563] 034e: MSTORE
[codex:1305563] 034f: PUSH1 0x04
[codex:1305563] 0351: ADD
[codex:1305563] 0352: PUSH2 0x035a
[codex:1305563] 0355: SWAP1
[codex:1305563] 0356: PUSH2 0x3ce1
[codex:1305563] 0359: JUMP
[codex:1305563] 035a: JUMPDEST
[codex:1305563] 035b: PUSH1 0x40
[codex:1305563] 035d: MLOAD
[codex:1305563]
[codex:1305563] thinking
[codex:1305563] **Continuing exploration**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc "python - <<'PY'
[codex:1305563] from binascii import unhexlify
[codex:1305563] import re
[codex:1305563] code=open('BYTECODE_BUNDLE.txt').read()
[codex:1305563] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', code).group(1)[2:]
[codex:1305563] code_bytes=bytes.fromhex(hexstr)
[codex:1305563] # disassembler from earlier
[codex:1305563] push_sizes={i: i-0x5f for i in range(0x60,0x80)}
[codex:1305563]
[codex:1305563] names={
[codex:1305563] 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:1305563] 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:1305563] 0x20:'SHA3',
[codex:1305563] 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:1305563] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1305563] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',
[codex:1305563] 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:1305563] 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:1305563] 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:1305563] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1305563] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xff:'SELFDESTRUCT'
[codex:1305563] }
[codex:1305563]
[codex:1305563]
[codex:1305563] def disasm(start, end):
[codex:1305563] i=start
[codex:1305563] while i<end:
[codex:1305563] op=code_bytes[i]
[codex:1305563] name=names.get(op, f'OP{op:02x}')
[codex:1305563] if 0x60 <= op <= 0x7f:
[codex:1305563] n=op-0x5f
[codex:1305563] data=code_bytes[i+1:i+1+n]
[codex:1305563] print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:1305563] i+=1+n
[codex:1305563] else:
[codex:1305563] print(f'{i:04x}: {name}')
[codex:1305563] i+=1
[codex:1305563]
[codex:1305563] # disasm around call for a9059cbb
[codex:1305563] start=0x0363
[codex:1305563] end=0x03a0
[codex:1305563] print('--- disasm ---')
[codex:1305563] disasm(start,end)
[codex:1305563] PY" in /tmp/codex-multi-c_j_6gc6 succeeded in 27ms:
[codex:1305563] --- disasm ---
[codex:1305563] 0363: JUMPDEST
[codex:1305563] 0364: PUSH1 0x40
[codex:1305563] 0366: MLOAD
[codex:1305563] 0367: PUSH4 0xa9059cbb
[codex:1305563] 036c: PUSH1 0xe0
[codex:1305563] 036e: SHL
[codex:1305563] 036f: DUP2
[codex:1305563] 0370: MSTORE
[codex:1305563] 0371: PUSH1 0x01
[codex:1305563] 0373: PUSH1 0x01
[codex:1305563] 0375: PUSH1 0xa0
[codex:1305563] 0377: SHL
[codex:1305563] 0378: SUB
[codex:1305563] 0379: DUP4
[codex:1305563] 037a: AND
[codex:1305563] 037b: PUSH1 0x04
[codex:1305563] 037d: DUP3
[codex:1305563] 037e: ADD
[codex:1305563] 037f: MSTORE
[codex:1305563]
[codex:1305563] thinking
[codex:1305563] **Analyzing unchecked ERC20 transfer calls**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc 'nl -ba BYTECODE_BUNDLE.txt | head -n 5' in /tmp/codex-multi-c_j_6gc6 succeeded in 6ms:
[codex:1305563] 1 Runtime bytecode bundle for best-effort auditing.
[codex:1305563] 2 Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1305563] 3
[codex:1305563] 4 FILE: runtime_bytecode.hex
[codex:1305563] 5 0x608060405260043610610113575f3560e01c8063613a7b481161009d578063c34684eb11610062578063c34684eb1461029d578063d7c41ef9146102b0578063ea60efed146102d0578063f0a2003e146102e3578063fa461e33146102f6575f5ffd5b8063613a7b48146101fb5780637b3341541461021a5780637f64784f14610258578063856c1a571461026b578063954e75b01461027e575f5ffd5b80630da84181116100e35780630da841811461017857806312065fe0146101975780631c8ef6c6146101b65780634782f779146101c95780634b74bc84146101e8575f5ffd5b806301e336671461011e57806305397ed41461013f57806306411cbb1461015257806308539c9414610165575f5ffd5b3661011a57005b5f5ffd5b348015610129575f5ffd5b5061013d610138366004613a5b565b610315565b005b61013d61014d366004613a99565b610395565b61013d610160366004613ad3565b61090c565b61013d610173366004613a99565b610ee4565b348015610183575f5ffd5b5061013d610192366004613ad3565b610fe8565b3480156101a2575f5ffd5b506040514781526020015b60405180910390f35b61013d6101c4366004613a99565b6115a2565b3480156101d4575f5ffd5b5061013d6101e3366004613b18565b611bc0565b61013d6101f6366004613ad3565b611ca9565b348015610206575f5ffd5b5061013d610215366004613b42565b61231c565b348015610225575f5ffd5b50610248610234366004613b42565b5f6020819052908152604090205460ff1681565b60405190151581526020016101ad565b61013d610266366004613ad3565b612384565b61013d610279366004613ad3565b61296a565b348015610289575f5ffd5b5061013d610298366004613b64565b612a5e565b61013d6102ab366004613a99565b612f1a565b6102c36102be366004613c01565b613017565b6040516101ad9190613c80565b61013d6102de366004613b64565b613115565b61013d6102f1366004613b64565b613202565b348015610301575f5ffd5b5061013d610310366004613c92565b6136c2565b5f516020613f6c5f395f51905f5233148061033e5750335f9081526020819052604090205460ff165b6103635760405162461bcd60e51b815260040161035a90613ce1565b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b03831660048201528160248201525f5f6044835f885af15050505050565b5f516020613f6c5f395f51905f523314806103be5750335f9081526020819052604090205460ff165b6103da5760405162461bcd60e51b815260040161035a90613ce1565b834311156103fa5760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610440573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104649190613d55565b50915091505f600160ff1b86165f036104fd5761049434846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f69190613da1565b905061057f565b61051a34836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610558573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057c9190613da1565b90505b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29034905f81818185875af1925050503d805f81146105d0576040519150601f19603f3d011682016040523d82523d5f602084013e6105d5565b606091505b50506040516323b872dd60e01b81523060048201526001600160a01b038a16602482015234604482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291506323b872dd906064016020604051808303815f875af115801561063b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065f9190613dbc565b506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa1580156106a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106cb9190613ddb565b90505f600160fe1b881615610743576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561071c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107409190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611610767578b610769565b305b6040518463ffffffff1660e01b815260040161078793929190613df2565b5f604051808303815f87803b15801561079e575f5ffd5b505af11580156107b0573d5f5f3e3d5ffd5b50505050600160fe1b88161561086b576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610804573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108289190613ddb565b9050815f0361085a57610841848a610138600185613e33565b89156108555761085260018b613e33565b99505b610869565b610869848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa1580156108b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d79190613ddb565b6108e19190613e33565b10156108ff5760405162461bcd60e51b815260040161035a90613e4c565b5050505050505050505050565b5f516020613f6c5f395f51905f523314806109355750335f9081526020819052604090205460ff165b6109515760405162461bcd60e51b815260040161035a90613ce1565b834311156109715760405162461bcd60e51b815260040161035a90613d10565b5f61097c8634613e33565b90505f5f90505f5f90505f5f876001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156109c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e89190613d55565b50915091505f600160ff1b87165f03610a8157610a1886846001600160701b0316846001600160701b03166138cc565b9350886001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a56573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7a9190613da1565b9050610b03565b610a9e86836001600160701b0316856001600160701b03166138cc565b9450886001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b009190613da1565b90505b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087905f81818185875af1925050503d805f8114610b54576040519150601f19603f3d011682016040523d82523d5f602084013e610b59565b606091505b50506040516323b872dd60e01b81523060048201526001600160a01b038b1660248201526044810188905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291506323b872dd906064016020604051808303815f875af1158015610bc0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be49190613dbc565b506040516370a0823160e01b81526001600160a01b0388811660048301525f91908316906370a0823190602401602060405180830381865afa158015610c2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c509190613ddb565b90505f600160fe1b891615610cc8576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ca1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc59190613ddb565b90505b8a6001600160a01b031663022c0d9f88885f600160fe1b8e1611610cec578c610cee565b305b6040518463ffffffff1660e01b8152600401610d0c93929190613df2565b5f604051808303815f87803b158015610d23575f5ffd5b505af1158015610d35573d5f5f3e3d5ffd5b50505050600160fe1b891615610df0576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610d89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dad9190613ddb565b9050815f03610ddf57610dc6848b610138600185613e33565b8a15610dda57610dd760018c613e33565b9a505b610dee565b610dee848b6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038a811660048301528b9184918616906370a0823190602401602060405180830381865afa158015610e38573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5c9190613ddb565b610e669190613e33565b1015610e845760405162461bcd60e51b815260040161035a90613e4c565b416001600160a01b03168d6040515b5f6040518083038185875af1925050503d805f8114610ecd576040519150601f19603f3d011682016040523d82523d5f602084013e610ed2565b606091505b50505050505050505050505050505050565b5f516020613f6c5f395f51905f52331480610f0d5750335f9081526020819052604090205460ff165b610f295760405162461bcd60e51b815260040161035a90613ce1565b6001603460831936010615610f735760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60845b813682101615610fba575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114610fb2575f91505b603401610f76565b508015610fd5575f5f5f5f34335ff161013d573d5f5f3e3d5ffd5b610fe1858585856115a2565b5050505050565b5f516020613f6c5f395f51905f523314806110115750335f9081526020819052604090205460ff165b61102d5760405162461bcd60e51b815260040161035a90613ce1565b8443111561104d5760405162461bcd60e51b815260040161035a90613d10565b5f5f5f600160ff1b84165f0361125057856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611099573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110bd9190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611105573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111299190613ddb565b9150600160fe1b8416156111a0576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611179573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119d9190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116111c257856111c4565b305b604080513060208201526001918c916401000276a491016040516020818303038152906040526040518663ffffffff1660e01b815260040161120a959493929190613e77565b60408051808303815f875af1158015611225573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112499190613eb1565b505061144d565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b09190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa1580156112f8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131c9190613ddb565b9150600160fe1b841615611393576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561136c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113909190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116113b557856113b7565b305b604080513060208201525f918c9173fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b815260040161140b959493929190613e77565b60408051808303815f875af1158015611426573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144a9190613eb1565b50505b600160fe1b841615611504576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561149d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c19190613ddb565b9050815f036114f3576114da8486610138600185613e33565b85156114ee576114eb600187613e33565b95505b611502565b61150284866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa15801561154c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115709190613ddb565b61157a9190613e33565b10156115985760405162461bcd60e51b815260040161035a90613e4c565b5050505050505050565b5f516020613f6c5f395f51905f523314806115cb5750335f9081526020819052604090205460ff165b6115e75760405162461bcd60e51b815260040161035a90613ce1565b834311156116075760405162461bcd60e51b815260040161035a90613d10565b60405173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29034905f81818185875af1925050503d805f8114611658576040519150601f19603f3d011682016040523d82523d5f602084013e61165d565b606091505b5050505f5f5f600160ff1b84165f0361186957856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d09190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611718573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173c9190613ddb565b9150600160fe1b8416156117b3576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561178c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b09190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116117d557856117d7565b305b60016117e2346139d7565b604080513060208201526401000276a491016040516020818303038152906040526040518663ffffffff1660e01b8152600401611823959493929190613e77565b60408051808303815f875af115801561183e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118629190613eb1565b5050611a6c565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c99190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015611911573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119359190613ddb565b9150600160fe1b8416156119ac576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611985573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a99190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116119ce57856119d0565b305b5f6119da346139d7565b6040805130602082015273fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b8152600401611a2a959493929190613e77565b60408051808303815f875af1158015611a45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a699190613eb1565b50505b600160fe1b841615611b23576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015611abc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae09190613ddb565b9050815f03611b1257611af98486610138600185613e33565b8515611b0d57611b0a600187613e33565b95505b611b21565b611b2184866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa158015611b6b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8f9190613ddb565b611b999190613e33565b1015611bb75760405162461bcd60e51b815260040161035a90613e4c565b50505050505050565b5f516020613f6c5f395f51905f52331480611be95750335f9081526020819052604090205460ff165b611c055760405162461bcd60e51b815260040161035a90613ce1565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611c4e576040519150601f19603f3d011682016040523d82523d5f602084013e611c53565b606091505b5050905080611ca45760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f2077697468647261772045746865720000000000000000604482015260640161035a565b505050565b5f516020613f6c5f395f51905f52331480611cd25750335f9081526020819052604090205460ff165b611cee5760405162461bcd60e51b815260040161035a90613ce1565b83431115611d0e5760405162461bcd60e51b815260040161035a90613d10565b5f611d198634613e33565b60405190915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29082905f81818185875af1925050503d805f8114611d6d576040519150601f19603f3d011682016040523d82523d5f602084013e611d72565b606091505b5050505f5f5f600160ff1b85165f03611f7e57866001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611de59190613da1565b6040516370a0823160e01b81526001600160a01b038781166004830152919450908416906370a0823190602401602060405180830381865afa158015611e2d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e519190613ddb565b9150600160fe1b851615611ec8576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611ea1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ec59190613ddb565b90505b866001600160a01b031663128acb085f600160fe1b881611611eea5786611eec565b305b6001611ef7886139d7565b604080513060208201526401000276a491016040516020818303038152906040526040518663ffffffff1660e01b8152600401611f38959493929190613e77565b60408051808303815f875af1158015611f53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f779190613eb1565b5050612181565b866001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fba573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fde9190613da1565b6040516370a0823160e01b81526001600160a01b038781166004830152919450908416906370a0823190602401602060405180830381865afa158015612026573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204a9190613ddb565b9150600160fe1b8516156120c1576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561209a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120be9190613ddb565b90505b866001600160a01b031663128acb085f600160fe1b8816116120e357866120e5565b305b5f6120ef886139d7565b6040805130602082015273fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b815260040161213f959493929190613e77565b60408051808303815f875af115801561215a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061217e9190613eb1565b50505b600160fe1b851615612238576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa1580156121d1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f59190613ddb565b9050815f036122275761220e8487610138600185613e33565b86156122225761221f600188613e33565b96505b612236565b61223684876101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038681166004830152879184918616906370a0823190602401602060405180830381865afa158015612280573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122a49190613ddb565b6122ae9190613e33565b10156122cc5760405162461bcd60e51b815260040161035a90613e4c565b60405141908a905f81818185875af1925050503d805f8114612309576040519150601f19603f3d011682016040523d82523d5f602084013e61230e565b606091505b505050505050505050505050565b5f516020613f6c5f395f51905f523314806123455750335f9081526020819052604090205460ff165b6123615760405162461bcd60e51b815260040161035a90613ce1565b6001600160a01b03165f908152602081905260409020805460ff19166001179055565b5f516020613f6c5f395f51905f523314806123ad5750335f9081526020819052604090205460ff165b6123c95760405162461bcd60e51b815260040161035a90613ce1565b844311156123e95760405162461bcd60e51b815260040161035a90613d10565b5f5f5f600160ff1b84165f036125ec57856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612435573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124599190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa1580156124a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124c59190613ddb565b9150600160fe1b84161561253c576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612515573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125399190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b87161161255e5785612560565b305b604080513060208201526001918c916401000276a491016040516020818303038152906040526040518663ffffffff1660e01b81526004016125a6959493929190613e77565b60408051808303815f875af11580156125c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e59190613eb1565b50506127e9565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612628573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061264c9190613da1565b6040516370a0823160e01b81526001600160a01b038681166004830152919450908416906370a0823190602401602060405180830381865afa158015612694573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126b89190613ddb565b9150600160fe1b84161561272f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612708573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272c9190613ddb565b90505b856001600160a01b031663128acb085f600160fe1b8716116127515785612753565b305b604080513060208201525f918c9173fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b81526004016127a7959493929190613e77565b60408051808303815f875af11580156127c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127e69190613eb1565b50505b600160fe1b841615612899576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015612839573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061285d9190613ddb565b9050815f03612888576128768486610138600185613e33565b612881600187613e33565b9550612897565b61289784866101388585613e33565b505b6040516370a0823160e01b81526001600160a01b038581166004830152869184918616906370a0823190602401602060405180830381865afa1580156128e1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129059190613ddb565b61290f9190613e33565b101561292d5760405162461bcd60e51b815260040161035a90613e4c565b604051419034905f81818185875af1925050503d805f81146108ff576040519150601f19603f3d011682016040523d82523d5f602084013e6108ff565b5f516020613f6c5f395f51905f523314806129935750335f9081526020819052604090205460ff165b6129af5760405162461bcd60e51b815260040161035a90613ce1565b6001603460a319360106156129f95760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60a45b813682101615612a40575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114612a38575f91505b6034016129fc565b508015612a4957005b612a568686868686610fe8565b505050505050565b5f516020613f6c5f395f51905f52331480612a875750335f9081526020819052604090205460ff165b612aa35760405162461bcd60e51b815260040161035a90613ce1565b85431115612ac35760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612b09573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2d9190613d55565b50915091505f600160ff1b86165f03612bc657612b5d8a846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bbf9190613da1565b9050612c48565b612be38a836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c459190613da1565b90505b60405163a9059cbb60e01b81528860048201528a60248201525f5f6044835f8e5af150506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa158015612cb3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cd79190613ddb565b90505f600160fe1b881615612d4f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612d28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d4c9190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611612d73578b612d75565b305b6040518463ffffffff1660e01b8152600401612d9393929190613df2565b5f604051808303815f87803b158015612daa575f5ffd5b505af1158015612dbc573d5f5f3e3d5ffd5b50505050600160fe1b881615612e77576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015612e10573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e349190613ddb565b9050815f03612e6657612e4d848a610138600185613e33565b8915612e6157612e5e60018b613e33565b99505b612e75565b612e75848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa158015612ebf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ee39190613ddb565b612eed9190613e33565b1015612f0b5760405162461bcd60e51b815260040161035a90613e4c565b50505050505050505050505050565b5f516020613f6c5f395f51905f52331480612f435750335f9081526020819052604090205460ff165b612f5f5760405162461bcd60e51b815260040161035a90613ce1565b6001603460831936010615612fa95760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60845b813682101615612ff0575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c183114612fe8575f91505b603401612fac565b50801561300b575f5f5f5f34335ff161013d573d5f5f3e3d5ffd5b610fe185858585610395565b60605f516020613f6c5f395f51905f523314806130425750335f9081526020819052604090205460ff165b61305e5760405162461bcd60e51b815260040161035a90613ce1565b5f5f856001600160a01b031634868660405161307b929190613ed3565b5f6040518083038185875af1925050503d805f81146130b5576040519150601f19603f3d011682016040523d82523d5f602084013e6130ba565b606091505b50915091508161310c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73706172656e7443616c6c3a2063616c6c206661696c656400000000604482015260640161035a565b95945050505050565b5f516020613f6c5f395f51905f5233148061313e5750335f9081526020819052604090205460ff165b61315a5760405162461bcd60e51b815260040161035a90613ce1565b6001603460c319360106156131a45760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b6044820152606481fd5b60c45b8136821016156131eb575f516020613f4c5f395f51905f528160140135185f516020613f2c5f395f51905f52823560601c1831146131e3575f91505b6034016131a7565b5080156131f457005b611bb7878787878787612a5e565b5f516020613f6c5f395f51905f5233148061322b5750335f9081526020819052604090205460ff165b6132475760405162461bcd60e51b815260040161035a90613ce1565b854311156132675760405162461bcd60e51b815260040161035a90613d10565b5f5f90505f5f90505f5f866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156132ad573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132d19190613d55565b50915091505f600160ff1b86165f0361336a576133018a846001600160701b0316846001600160701b03166138cc565b9350876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561333f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133639190613da1565b90506133ec565b6133878a836001600160701b0316856001600160701b03166138cc565b9450876001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133e99190613da1565b90505b60405163a9059cbb60e01b81528860048201528a60248201525f5f6044835f8e5af150506040516370a0823160e01b81526001600160a01b0387811660048301525f91908316906370a0823190602401602060405180830381865afa158015613457573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061347b9190613ddb565b90505f600160fe1b8816156134f3576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156134cc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134f09190613ddb565b90505b896001600160a01b031663022c0d9f88885f600160fe1b8d1611613517578b613519565b305b6040518463ffffffff1660e01b815260040161353793929190613df2565b5f604051808303815f87803b15801561354e575f5ffd5b505af1158015613560573d5f5f3e3d5ffd5b50505050600160fe1b88161561361b576040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa1580156135b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135d89190613ddb565b9050815f0361360a576135f1848a610138600185613e33565b89156136055761360260018b613e33565b99505b613619565b613619848a6101388585613e33565b505b6040516370a0823160e01b81526001600160a01b0389811660048301528a9184918616906370a0823190602401602060405180830381865afa158015613663573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136879190613ddb565b6136919190613e33565b10156136af5760405162461bcd60e51b815260040161035a90613e4c565b416001600160a01b031634604051610e93565b5f516020613f6c5f395f51905f523214806136eb5750325f9081526020819052604090205460ff165b6137075760405162461bcd60e51b815260040161035a90613ce1565b613746565b3d5f5f3e3d5ffd5b806137215761372161370c565b60015f5114601f3d11163d15178061374257633c9fd93960e21b5f5260045ffd5b5050565b60405160158101730dfe1681d21220a7ddca3f43a9059cbb23b872dd60601b8252602081600484335afa61377c5761377c61370c565b60208082016004808501335afa6137955761379561370c565b602060408201600460088501335afa6137b0576137b061370c565b5f5f5f8813600181146137cc57602084015192508791506137d4565b835192508891505b507fff1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000084526060832083527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460208401526001600160a01b03605585201692503383181561384a57635960139160e11b5f5260045ffd5b6084359250730dfe1681d21220a7ddca3f43a9059cbb23b872dd60601b8452308314600181146138a05783601486015233603486015281605486015261389b60205f6064601089015f885af1613714565b6138c1565b3360108601528160308601526138c160205f6044600c89015f885af1613714565b505050505050505050565b5f5f84116139285760405162461bcd60e51b8152602060048201526024808201527f556e697377617056323a20494e53554646494349454e545f494e5055545f414d60448201526313d5539560e21b606482015260840161035a565b5f8311801561393657505f82115b61398c5760405162461bcd60e51b815260206004820152602160248201527f556e697377617056323a20494e53554646494349454e545f4c495155494449546044820152605960f81b606482015260840161035a565b5f613999856103e5613ee2565b90505f6139a68483613ee2565b90505f826139b6876103e8613ee2565b6139c09190613ef9565b90506139cc8183613f0c565b979650505050505050565b5f6001600160ff1b03821115613a405760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161035a565b5090565b6001600160a01b0381168114613a58575f5ffd5b50565b5f5f5f60608486031215613a6d575f5ffd5b8335613a7881613a44565b92506020840135613a8881613a44565b929592945050506040919091013590565b5f5f5f5f60808587031215613aac575f5ffd5b843593506020850135613abe81613a44565b93969395505050506040820135916060013590565b5f5f5f5f5f60a08688031215613ae7575f5ffd5b85359450602086013593506040860135613b0081613a44565b94979396509394606081013594506080013592915050565b5f5f60408385031215613b29575f5ffd5b8235613b3481613a44565b946020939093013593505050565b5f60208284031215613b52575f5ffd5b8135613b5d81613a44565b9392505050565b5f5f5f5f5f5f60c08789031215613b79575f5ffd5b86359550602087013594506040870135613b9281613a44565b93506060870135613ba281613a44565b9598949750929560808101359460a0909101359350915050565b5f5f83601f840112613bcc575f5ffd5b50813567ffffffffffffffff811115613be3575f5ffd5b602083019150836020828501011115613bfa575f5ffd5b9250929050565b5f5f5f60408486031215613c13575f5ffd5b8335613c1e81613a44565b9250602084013567ffffffffffffffff811115613c39575f5ffd5b613c4586828701613bbc565b9497909650939450505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f613b5d6020830184613c52565b5f5f5f5f60608587031215613ca5575f5ffd5b8435935060208501359250604085013567ffffffffffffffff811115613cc9575f5ffd5b613cd587828801613bbc565b95989497509550505050565b60208082526015908201527410d85b1b195c881a5cc81b9bdd08185b1b1bddd959605a1b604082015260600190565b60208082526010908201526f189b1bd8dac8195e1c1a5c9e481a1a5d60821b604082015260600190565b80516001600160701b0381168114613d50575f5ffd5b919050565b5f5f5f60608486031215613d67575f5ffd5b613d7084613d3a565b9250613d7e60208501613d3a565b9150604084015163ffffffff81168114613d96575f5ffd5b809150509250925092565b5f60208284031215613db1575f5ffd5b8151613b5d81613a44565b5f60208284031215613dcc575f5ffd5b81518015158114613b5d575f5ffd5b5f60208284031215613deb575f5ffd5b5051919050565b92835260208301919091526001600160a01b031660408201526080606082018190525f9082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115613e4657613e46613e1f565b92915050565b60208082526011908201527014db1a5c1c1859d948195e18d959591959607a1b604082015260600190565b6001600160a01b0386811682528515156020830152604082018590528316606082015260a0608082018190525f906139cc90830184613c52565b5f5f60408385031215613ec2575f5ffd5b505080516020909101519092909150565b818382375f9101908152919050565b8082028115828204841417613e4657613e46613e1f565b80820180821115613e4657613e46613e1f565b5f82613f2657634e487b7160e01b5f52601260045260245ffd5b50049056fe1725c69472b0d35be4e865c78e45538ce31f51e1c4f309908f969ccb89593e157c96ed2c20512d7b7221b71f3608be92d18a5dadfc18b3b0dce63e83e07e73b800000000000000000000000054620b9a8a2c43aa8ed028450a7ce656a9c69feba2646970667358221220413fe934988e8c081892a8f94bdb4b7c9ba591e16ff3a52b1757a0fc3df4633464736f6c634300081b0033
[codex:1305563]
[codex:1305563] thinking
[codex:1305563] **Analyzing unchecked ERC20 return values**
[codex:1305563] exec
[codex:1305563] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-c_j_6gc6 succeeded in 5ms:
[codex:1305563] {"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:1305563]
[codex:1305563] thinking
[codex:1305563] **Preparing issue summary and evidence**
[codex:1305563] codex
[codex:1305563] {"no_findings":false,"summary":"Found a low-severity pattern where ERC20 transfer calls ignore the CALL result/return data, which can allow silent transfer failures with non‑standard tokens.","findings":[{"severity":"low","category":"other","title":"Unchecked ERC20 transfer return value (silent failures possible)","exploit_scenario":"A malicious or non‑standard ERC20 can return false or revert on `transfer` while the low‑level CALL result is ignored. The function can continue as if the transfer succeeded, leading to incorrect assumptions about token movement or silent failures in downstream logic.","recommendation":"Use a safe ERC20 wrapper that requires `success` and verifies return data (`returndata.length == 0 || abi.decode(returndata, bool)`), and revert on failure for all token transfers.","evidence":"Line 5 contains a low‑level CALL to selector `a9059cbb` followed immediately by POPs with no `ISZERO`/returndata checks, e.g., `...63a9059cbb...5af1 50505050...` (CALL result is discarded).","locations":["BYTECODE_BUNDLE.txt:5"]}]}
[codex:1305563] tokens used
[codex:1305563] 94,551
[codex:1305563] {"no_findings":false,"summary":"Found a low-severity pattern where ERC20 transfer calls ignore the CALL result/return data, which can allow silent transfer failures with non‑standard tokens.","findings":[{"severity":"low","category":"other","title":"Unchecked ERC20 transfer return value (silent failures possible)","exploit_scenario":"A malicious or non‑standard ERC20 can return false or revert on `transfer` while the low‑level CALL result is ignored. The function can continue as if the transfer succeeded, leading to incorrect assumptions about token movement or silent failures in downstream logic.","recommendation":"Use a safe ERC20 wrapper that requires `success` and verifies return data (`returndata.length == 0 || abi.decode(returndata, bool)`), and revert on failure for all token transfers.","evidence":"Line 5 contains a low‑level CALL to selector `a9059cbb` followed immediately by POPs with no `ISZERO`/returndata checks, e.g., `...63a9059cbb...5af1 50505050...` (CALL result is discarded).","locations":["BYTECODE_BUNDLE.txt:5"]}]}
{
"codex": {
"ran_at": "2025-12-30T19:33:57.143708+00:00",
"returncode": 0
},
"summary": "Found a low-severity pattern where ERC20 transfer calls ignore the CALL result/return data, which can allow silent transfer failures with non\u2011standard tokens.",
"raw_final": {
"summary": "Found a low-severity pattern where ERC20 transfer calls ignore the CALL result/return data, which can allow silent transfer failures with non\u2011standard tokens.",
"findings": [
{
"title": "Unchecked ERC20 transfer return value (silent failures possible)",
"category": "other",
"evidence": "Line 5 contains a low\u2011level CALL to selector `a9059cbb` followed immediately by POPs with no `ISZERO`/returndata checks, e.g., `...63a9059cbb...5af1 50505050...` (CALL result is discarded).",
"severity": "low",
"locations": [
"BYTECODE_BUNDLE.txt:5"
],
"recommendation": "Use a safe ERC20 wrapper that requires `success` and verifies return data (`returndata.length == 0 || abi.decode(returndata, bool)`), and revert on failure for all token transfers.",
"exploit_scenario": "A malicious or non\u2011standard ERC20 can return false or revert on `transfer` while the low\u2011level CALL result is ignored. The function can continue as if the transfer succeeded, leading to incorrect assumptions about token movement or silent failures in downstream logic."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0113 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x613a7b48 00000018: GT 00000019: PUSH2 0x009d 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xc34684eb 00000023: GT 00000024: PUSH2 0x0062 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xc34684eb 0000002e: EQ 0000002f: PUSH2 0x029d 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xd7c41ef9 00000039: EQ 0000003a: PUSH2 0x02b0 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xea60efed 00000044: EQ 00000045: PUSH2 0x02d0 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xf0a2003e 0000004f: EQ 00000050: PUSH2 0x02e3 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xfa461e33 0000005a: EQ 0000005b: PUSH2 0x02f6 0000005e: JUMPI 0000005f: PUSH0 00000060: PUSH0 00000061: REVERT 00000062: JUMPDEST 00000063: DUP1 00000064: PUSH4 0x613a7b48 00000069: EQ 0000006a: PUSH2 0x01fb 0000006d: JUMPI 0000006e: DUP1 0000006f: PUSH4 0x7b334154 00000074: EQ 00000075: PUSH2 0x021a 00000078: JUMPI 00000079: DUP1 0000007a: PUSH4 0x7f64784f 0000007f: EQ 00000080: PUSH2 0x0258 00000083: JUMPI 00000084: DUP1 00000085: PUSH4 0x856c1a57 0000008a: EQ 0000008b: PUSH2 0x026b 0000008e: JUMPI 0000008f: DUP1 00000090: PUSH4 0x954e75b0 00000095: EQ 00000096: PUSH2 0x027e 00000099: JUMPI 0000009a: PUSH0 0000009b: PUSH0 0000009c: REVERT 0000009d: JUMPDEST 0000009e: DUP1 0000009f: PUSH4 0x0da84181 000000a4: GT 000000a5: PUSH2 0x00e3 000000a8: JUMPI 000000a9: DUP1 000000aa: PUSH4 0x0da84181 000000af: EQ 000000b0: PUSH2 0x0178 000000b3: JUMPI 000000b4: DUP1 000000b5: PUSH4 0x12065fe0 000000ba: EQ 000000bb: PUSH2 0x0197 000000be: JUMPI 000000bf: DUP1 000000c0: PUSH4 0x1c8ef6c6 000000c5: EQ 000000c6: PUSH2 0x01b6 000000c9: JUMPI 000000ca: DUP1 000000cb: PUSH4 0x4782f779 000000d0: EQ 000000d1: PUSH2 0x01c9 000000d4: JUMPI 000000d5: DUP1 000000d6: PUSH4 0x4b74bc84 000000db: EQ 000000dc: PUSH2 0x01e8 000000df: JUMPI 000000e0: PUSH0 000000e1: PUSH0 000000e2: REVERT 000000e3: JUMPDEST 000000e4: DUP1 000000e5: PUSH4 0x01e33667 000000ea: EQ 000000eb: PUSH2 0x011e 000000ee: JUMPI 000000ef: DUP1 000000f0: PUSH4 0x05397ed4 000000f5: EQ 000000f6: PUSH2 0x013f 000000f9: JUMPI 000000fa: DUP1 000000fb: PUSH4 0x06411cbb 00000100: EQ 00000101: PUSH2 0x0152 00000104: JUMPI 00000105: DUP1 00000106: PUSH4 0x08539c94 0000010b: EQ 0000010c: PUSH2 0x0165 0000010f: JUMPI 00000110: PUSH0 00000111: PUSH0 00000112: REVERT 00000113: JUMPDEST 00000114: CALLDATASIZE 00000115: PUSH2 0x011a 00000118: JUMPI 00000119: STOP 0000011a: JUMPDEST 0000011b: PUSH0 0000011c: PUSH0 0000011d: REVERT 0000011e: JUMPDEST 0000011f: CALLVALUE 00000120: DUP1 00000121: ISZERO 00000122: PUSH2 0x0129 00000125: JUMPI 00000126: PUSH0 00000127: PUSH0 00000128: REVERT 00000129: JUMPDEST 0000012a: POP 0000012b: PUSH2 0x013d 0000012e: PUSH2 0x0138 00000131: CALLDATASIZE 00000132: PUSH1 0x04 00000134: PUSH2 0x3a5b 00000137: JUMP 00000138: JUMPDEST 00000139: PUSH2 0x0315 0000013c: JUMP 0000013d: JUMPDEST 0000013e: STOP 0000013f: JUMPDEST 00000140: PUSH2 0x013d 00000143: PUSH2 0x014d 00000146: CALLDATASIZE 00000147: PUSH1 0x04 00000149: PUSH2 0x3a99 0000014c: JUMP 0000014d: JUMPDEST 0000014e: PUSH2 0x0395 00000151: JUMP 00000152: JUMPDEST 00000153: PUSH2 0x013d 00000156: PUSH2 0x0160 00000159: CALLDATASIZE 0000015a: PUSH1 0x04 0000015c: PUSH2 0x3ad3 0000015f: JUMP 00000160: JUMPDEST 00000161: PUSH2 0x090c 00000164: JUMP 00000165: JUMPDEST 00000166: PUSH2 0x013d 00000169: PUSH2 0x0173 0000016c: CALLDATASIZE 0000016d: PUSH1 0x04 0000016f: PUSH2 0x3a99 00000172: JUMP 00000173: JUMPDEST 00000174: PUSH2 0x0ee4 00000177: JUMP 00000178: JUMPDEST 00000179: CALLVALUE 0000017a: DUP1 0000017b: ISZERO 0000017c: PUSH2 0x0183 0000017f: JUMPI 00000180: PUSH0 00000181: PUSH0 00000182: REVERT 00000183: JUMPDEST 00000184: POP 00000185: PUSH2 0x013d 00000188: PUSH2 0x0192 0000018b: CALLDATASIZE 0000018c: PUSH1 0x04 0000018e: PUSH2 0x3ad3 00000191: JUMP 00000192: JUMPDEST 00000193: PUSH2 0x0fe8 00000196: JUMP 00000197: JUMPDEST 00000198: CALLVALUE 00000199: DUP1 0000019a: ISZERO 0000019b: PUSH2 0x01a2 0000019e: JUMPI 0000019f: PUSH0 000001a0: PUSH0 000001a1: REVERT 000001a2: JUMPDEST 000001a3: POP 000001a4: PUSH1 0x40 000001a6: MLOAD 000001a7: SELFBALANCE 000001a8: DUP2 000001a9: MSTORE 000001aa: PUSH1 0x20 000001ac: ADD 000001ad: JUMPDEST 000001ae: PUSH1 0x40 000001b0: MLOAD 000001b1: DUP1 000001b2: SWAP2 000001b3: SUB 000001b4: SWAP1 000001b5: RETURN 000001b6: JUMPDEST 000001b7: PUSH2 0x013d 000001ba: PUSH2 0x01c4 000001bd: CALLDATASIZE 000001be: PUSH1 0x04 000001c0: PUSH2 0x3a99 000001c3: JUMP 000001c4: JUMPDEST 000001c5: PUSH2 0x15a2 000001c8: JUMP 000001c9: JUMPDEST 000001ca: CALLVALUE 000001cb: DUP1 000001cc: ISZERO 000001cd: PUSH2 0x01d4 000001d0: JUMPI 000001d1: PUSH0 000001d2: PUSH0 000001d3: REVERT 000001d4: JUMPDEST 000001d5: POP 000001d6: PUSH2 0x013d 000001d9: PUSH2 0x01e3 000001dc: CALLDATASIZE 000001dd: PUSH1 0x04 000001df: PUSH2 0x3b18 000001e2: JUMP 000001e3: JUMPDEST 000001e4: PUSH2 0x1bc0 000001e7: JUMP 000001e8: JUMPDEST 000001e9: PUSH2 0x013d 000001ec: PUSH2 0x01f6 000001ef: CALLDATASIZE 000001f0: PUSH1 0x04 000001f2: PUSH2 0x3ad3 000001f5: JUMP 000001f6: JUMPDEST 000001f7: PUSH2 0x1ca9 000001fa: JUMP 000001fb: JUMPDEST 000001fc: CALLVALUE 000001fd: DUP1 000001fe: ISZERO 000001ff: PUSH2 0x0206 00000202: JUMPI 00000203: PUSH0 00000204: PUSH0 00000205: REVERT 00000206: JUMPDEST 00000207: POP 00000208: PUSH2 0x013d 0000020b: PUSH2 0x0215 0000020e: CALLDATASIZE 0000020f: PUSH1 0x04 00000211: PUSH2 0x3b42 00000214: JUMP 00000215: JUMPDEST 00000216: PUSH2 0x231c 00000219: JUMP 0000021a: JUMPDEST 0000021b: CALLVALUE 0000021c: DUP1 0000021d: ISZERO 0000021e: PUSH2 0x0225 00000221: JUMPI 00000222: PUSH0 00000223: PUSH0 00000224: REVERT 00000225: JUMPDEST 00000226: POP 00000227: PUSH2 0x0248 0000022a: PUSH2 0x0234 0000022d: CALLDATASIZE 0000022e: PUSH1 0x04 00000230: PUSH2 0x3b42 00000233: JUMP 00000234: JUMPDEST 00000235: PUSH0 00000236: PUSH1 0x20 00000238: DUP2 00000239: SWAP1 0000023a: MSTORE 0000023b: SWAP1 0000023c: DUP2 0000023d: MSTORE 0000023e: PUSH1 0x40 00000240: SWAP1 00000241: KECCAK256 00000242: SLOAD 00000243: PUSH1 0xff 00000245: AND 00000246: DUP2 00000247: JUMP 00000248: JUMPDEST 00000249: PUSH1 0x40 0000024b: MLOAD 0000024c: SWAP1 0000024d: ISZERO 0000024e: ISZERO 0000024f: DUP2 00000250: MSTORE 00000251: PUSH1 0x20 00000253: ADD 00000254: PUSH2 0x01ad 00000257: JUMP 00000258: JUMPDEST 00000259: PUSH2 0x013d 0000025c: PUSH2 0x0266 0000025f: CALLDATASIZE 00000260: PUSH1 0x04 00000262: PUSH2 0x3ad3 00000265: JUMP 00000266: JUMPDEST 00000267: PUSH2 0x2384 0000026a: JUMP 0000026b: JUMPDEST 0000026c: PUSH2 0x013d 0000026f: PUSH2 0x0279 00000272: CALLDATASIZE 00000273: PUSH1 0x04 00000275: PUSH2 0x3ad3 00000278: JUMP 00000279: JUMPDEST 0000027a: PUSH2 0x296a 0000027d: JUMP 0000027e: JUMPDEST 0000027f: CALLVALUE 00000280: DUP1 00000281: ISZERO 00000282: PUSH2 0x0289 00000285: JUMPI 00000286: PUSH0 00000287: PUSH0 00000288: REVERT 00000289: JUMPDEST 0000028a: POP 0000028b: PUSH2 0x013d 0000028e: PUSH2 0x0298 00000291: CALLDATASIZE 00000292: PUSH1 0x04 00000294: PUSH2 0x3b64 00000297: JUMP 00000298: JUMPDEST 00000299: PUSH2 0x2a5e 0000029c: JUMP 0000029d: JUMPDEST 0000029e: PUSH2 0x013d 000002a1: PUSH2 0x02ab 000002a4: CALLDATASIZE 000002a5: PUSH1 0x04 000002a7: PUSH2 0x3a99 000002aa: JUMP 000002ab: JUMPDEST 000002ac: PUSH2 0x2f1a 000002af: JUMP 000002b0: JUMPDEST 000002b1: PUSH2 0x02c3 000002b4: PUSH2 0x02be 000002b7: CALLDATASIZE 000002b8: PUSH1 0x04 000002ba: PUSH2 0x3c01 000002bd: JUMP 000002be: JUMPDEST 000002bf: PUSH2 0x3017 000002c2: JUMP 000002c3: JUMPDEST 000002c4: PUSH1 0x40 000002c6: MLOAD 000002c7: PUSH2 0x01ad 000002ca: SWAP2 000002cb: SWAP1 000002cc: PUSH2 0x3c80 000002cf: JUMP 000002d0: JUMPDEST 000002d1: PUSH2 0x013d 000002d4: PUSH2 0x02de 000002d7: CALLDATASIZE 000002d8: PUSH1 0x04 000002da: PUSH2 0x3b64 000002dd: JUMP 000002de: JUMPDEST 000002df: PUSH2 0x3115 000002e2: JUMP 000002e3: JUMPDEST 000002e4: PUSH2 0x013d 000002e7: PUSH2 0x02f1 000002ea: CALLDATASIZE 000002eb: PUSH1 0x04 000002ed: PUSH2 0x3b64 000002f0: JUMP 000002f1: JUMPDEST 000002f2: PUSH2 0x3202 000002f5: JUMP 000002f6: JUMPDEST 000002f7: CALLVALUE 000002f8: DUP1 000002f9: ISZERO 000002fa: PUSH2 0x0301 000002fd: JUMPI 000002fe: PUSH0 000002ff: PUSH0 00000300: REVERT 00000301: JUMPDEST 00000302: POP 00000303: PUSH2 0x013d 00000306: PUSH2 0x0310 00000309: CALLDATASIZE 0000030a: PUSH1 0x04 0000030c: PUSH2 0x3c92 0000030f: JUMP 00000310: JUMPDEST 00000311: PUSH2 0x36c2 00000314: JUMP 00000315: JUMPDEST 00000316: PUSH0 00000317: MLOAD 00000318: PUSH1 0x20 0000031a: PUSH2 0x3f6c 0000031d: PUSH0 0000031e: CODECOPY 0000031f: PUSH0 00000320: MLOAD 00000321: SWAP1 00000322: PUSH0 00000323: MSTORE 00000324: CALLER 00000325: EQ 00000326: DUP1 00000327: PUSH2 0x033e 0000032a: JUMPI 0000032b: POP 0000032c: CALLER 0000032d: PUSH0 0000032e: SWAP1 0000032f: DUP2 00000330: MSTORE 00000331: PUSH1 0x20 00000333: DUP2 00000334: SWAP1 00000335: MSTORE 00000336: PUSH1 0x40 00000338: SWAP1 00000339: KECCAK256 0000033a: SLOAD 0000033b: PUSH1 0xff 0000033d: AND 0000033e: JUMPDEST 0000033f: PUSH2 0x0363 00000342: JUMPI 00000343: PUSH1 0x40 00000345: MLOAD 00000346: PUSH3 0x461bcd 0000034a: PUSH1 0xe5 0000034c: SHL 0000034d: DUP2 0000034e: MSTORE 0000034f: PUSH1 0x04 00000351: ADD 00000352: PUSH2 0x035a 00000355: SWAP1 00000356: PUSH2 0x3ce1 00000359: JUMP 0000035a: JUMPDEST 0000035b: PUSH1 0x40 0000035d: MLOAD 0000035e: DUP1 0000035f: SWAP2 00000360: SUB 00000361: SWAP1 00000362: REVERT 00000363: JUMPDEST 00000364: PUSH1 0x40 00000366: MLOAD 00000367: PUSH4 0xa9059cbb 0000036c: PUSH1 0xe0 0000036e: SHL 0000036f: DUP2 00000370: MSTORE 00000371: PUSH1 0x01 00000373: PUSH1 0x01 00000375: PUSH1 0xa0 00000377: SHL 00000378: SUB 00000379: DUP4 0000037a: AND 0000037b: PUSH1 0x04 0000037d: DUP3 0000037e: ADD 0000037f: MSTORE 00000380: DUP2 00000381: PUSH1 0x24 00000383: DUP3 00000384: ADD 00000385: MSTORE 00000386: PUSH0 00000387: PUSH0 00000388: PUSH1 0x44 0000038a: DUP4 0000038b: PUSH0 0000038c: DUP9 0000038d: GAS 0000038e: CALL 0000038f: POP 00000390: POP 00000391: POP 00000392: POP 00000393: POP 00000394: JUMP 00000395: JUMPDEST 00000396: PUSH0 00000397: MLOAD 00000398: PUSH1 0x20 0000039a: PUSH2 0x3f6c 0000039d: PUSH0 0000039e: CODECOPY 0000039f: PUSH0 000003a0: MLOAD 000003a1: SWAP1 000003a2: PUSH0 000003a3: MSTORE 000003a4: CALLER 000003a5: EQ 000003a6: DUP1 000003a7: PUSH2 0x03be 000003aa: JUMPI 000003ab: POP 000003ac: CALLER 000003ad: PUSH0 000003ae: SWAP1 000003af: DUP2 000003b0: MSTORE 000003b1: PUSH1 0x20 000003b3: DUP2 000003b4: SWAP1 000003b5: MSTORE 000003b6: PUSH1 0x40 000003b8: SWAP1 000003b9: KECCAK256 000003ba: SLOAD 000003bb: PUSH1 0xff 000003bd: AND 000003be: JUMPDEST 000003bf: PUSH2 0x03da 000003c2: JUMPI 000003c3: PUSH1 0x40 000003c5: MLOAD 000003c6: PUSH3 0x461bcd 000003ca: PUSH1 0xe5 000003cc: SHL 000003cd: DUP2 000003ce: MSTORE 000003cf: PUSH1 0x04 000003d1: ADD 000003d2: PUSH2 0x035a 000003d5: SWAP1 000003d6: PUSH2 0x3ce1 000003d9: JUMP 000003da: JUMPDEST 000003db: DUP4 000003dc: NUMBER 000003dd: GT 000003de: ISZERO 000003df: PUSH2 0x03fa 000003e2: JUMPI 000003e3: PUSH1 0x40 000003e5: MLOAD 000003e6: PUSH3 0x461bcd 000003ea: PUSH1 0xe5 000003ec: SHL 000003ed: DUP2 000003ee: MSTORE 000003ef: PUSH1 0x04 000003f1: ADD 000003f2: PUSH2 0x035a 000003f5: SWAP1 000003f6: PUSH2 0x3d10 000003f9: JUMP 000003fa: JUMPDEST 000003fb: PUSH0 000003fc: PUSH0 000003fd: SWAP1 000003fe: POP 000003ff: PUSH0 00000400: PUSH0 00000401: SWAP1 00000402: POP 00000403: PUSH0 00000404: PUSH0 00000405: DUP7 00000406: PUSH1 0x01 00000408: PUSH1 0x01 0000040a: PUSH1 0xa0 0000040c: SHL 0000040d: SUB 0000040e: AND 0000040f: PUSH4 0x0902f1ac 00000414: PUSH1 0x40 00000416: MLOAD 00000417: DUP2 00000418: PUSH4 0xffffffff 0000041d: AND 0000041e: PUSH1 0xe0 00000420: SHL 00000421: DUP2 00000422: MSTORE 00000423: PUSH1 0x04 00000425: ADD 00000426: PUSH1 0x60 00000428: PUSH1 0x40 0000042a: MLOAD 0000042b: DUP1 0000042c: DUP4 0000042d: SUB 0000042e: DUP2 0000042f: DUP7 00000430: GAS 00000431: STATICCALL 00000432: ISZERO 00000433: DUP1 00000434: ISZERO 00000435: PUSH2 0x0440 00000438: JUMPI 00000439: RETURNDATASIZE 0000043a: PUSH0 0000043b: PUSH0 0000043c: RETURNDATACOPY 0000043d: RETURNDATASIZE 0000043e: PUSH0 0000043f: REVERT 00000440: JUMPDEST 00000441: POP 00000442: POP 00000443: POP 00000444: POP 00000445: PUSH1 0x40 00000447: MLOAD 00000448: RETURNDATASIZE 00000449: PUSH1 0x1f 0000044b: NOT 0000044c: PUSH1 0x1f 0000044e: DUP3 0000044f: ADD 00000450: AND 00000451: DUP3 00000452: ADD 00000453: DUP1 00000454: PUSH1 0x40 00000456: MSTORE 00000457: POP 00000458: DUP2 00000459: ADD 0000045a: SWAP1 0000045b: PUSH2 0x0464 0000045e: SWAP2 0000045f: SWAP1 00000460: PUSH2 0x3d55 00000463: JUMP 00000464: JUMPDEST 00000465: POP 00000466: SWAP2 00000467: POP 00000468: SWAP2 00000469: POP 0000046a: PUSH0 0000046b: PUSH1 0x01 0000046d: PUSH1 0xff 0000046f: SHL 00000470: DUP7 00000471: AND 00000472: PUSH0 00000473: SUB 00000474: PUSH2 0x04fd 00000477: JUMPI 00000478: PUSH2 0x0494 0000047b: CALLVALUE 0000047c: DUP5 0000047d: PUSH1 0x01 0000047f: PUSH1 0x01 00000481: PUSH1 0x70 00000483: SHL 00000484: SUB 00000485: AND 00000486: DUP5 00000487: PUSH1 0x01 00000489: PUSH1 0x01 0000048b: PUSH1 0x70 0000048d: SHL 0000048e: SUB 0000048f: AND 00000490: PUSH2 0x38cc 00000493: JUMP 00000494: JUMPDEST 00000495: SWAP4 00000496: POP 00000497: DUP8 00000498: PUSH1 0x01 0000049a: PUSH1 0x01 0000049c: PUSH1 0xa0 0000049e: SHL 0000049f: SUB 000004a0: AND 000004a1: PUSH4 0xd21220a7 000004a6: PUSH1 0x40 000004a8: MLOAD 000004a9: DUP2 000004aa: PUSH4 0xffffffff 000004af: AND 000004b0: PUSH1 0xe0 000004b2: SHL 000004b3: DUP2 000004b4: MSTORE 000004b5: PUSH1 0x04 000004b7: ADD 000004b8: PUSH1 0x20 000004ba: PUSH1 0x40 000004bc: MLOAD 000004bd: DUP1 000004be: DUP4 000004bf: SUB 000004c0: DUP2 000004c1: DUP7 000004c2: GAS 000004c3: STATICCALL 000004c4: ISZERO 000004c5: DUP1 000004c6: ISZERO 000004c7: PUSH2 0x04d2 000004ca: JUMPI 000004cb: RETURNDATASIZE 000004cc: PUSH0 000004cd: PUSH0 000004ce: RETURNDATACOPY 000004cf: RETURNDATASIZE 000004d0: PUSH0 000004d1: REVERT 000004d2: JUMPDEST 000004d3: POP 000004d4: POP 000004d5: POP 000004d6: POP 000004d7: PUSH1 0x40 000004d9: MLOAD 000004da: RETURNDATASIZE 000004db: PUSH1 0x1f 000004dd: NOT 000004de: PUSH1 0x1f 000004e0: DUP3 000004e1: ADD 000004e2: AND 000004e3: DUP3 000004e4: ADD 000004e5: DUP1 000004e6: PUSH1 0x40 000004e8: MSTORE 000004e9: POP 000004ea: DUP2 000004eb: ADD 000004ec: SWAP1 000004ed: PUSH2 0x04f6 000004f0: SWAP2 000004f1: SWAP1 000004f2: PUSH2 0x3da1 000004f5: JUMP 000004f6: JUMPDEST 000004f7: SWAP1 000004f8: POP 000004f9: PUSH2 0x057f 000004fc: JUMP 000004fd: JUMPDEST 000004fe: PUSH2 0x051a 00000501: CALLVALUE 00000502: DUP4 00000503: PUSH1 0x01 00000505: PUSH1 0x01 00000507: PUSH1 0x70 00000509: SHL 0000050a: SUB 0000050b: AND 0000050c: DUP6 0000050d: PUSH1 0x01 0000050f: PUSH1 0x01 00000511: PUSH1 0x70 00000513: SHL 00000514: SUB 00000515: AND 00000516: PUSH2 0x38cc 00000519: JUMP 0000051a: JUMPDEST 0000051b: SWAP5 0000051c: POP 0000051d: DUP8 0000051e: PUSH1 0x01 00000520: PUSH1 0x01 00000522: PUSH1 0xa0 00000524: SHL 00000525: SUB 00000526: AND 00000527: PUSH4 0x0dfe1681 0000052c: PUSH1 0x40 0000052e: MLOAD 0000052f: DUP2 00000530: PUSH4 0xffffffff 00000535: AND 00000536: PUSH1 0xe0 00000538: SHL 00000539: DUP2 0000053a: MSTORE 0000053b: PUSH1 0x04 0000053d: ADD 0000053e: PUSH1 0x20 00000540: PUSH1 0x40 00000542: MLOAD 00000543: DUP1 00000544: DUP4 00000545: SUB 00000546: DUP2 00000547: DUP7 00000548: GAS 00000549: STATICCALL 0000054a: ISZERO 0000054b: DUP1 0000054c: ISZERO 0000054d: PUSH2 0x0558 00000550: JUMPI 00000551: RETURNDATASIZE 00000552: PUSH0 00000553: PUSH0 00000554: RETURNDATACOPY 00000555: RETURNDATASIZE 00000556: PUSH0 00000557: REVERT 00000558: JUMPDEST 00000559: POP 0000055a: POP 0000055b: POP 0000055c: POP 0000055d: PUSH1 0x40 0000055f: MLOAD 00000560: RETURNDATASIZE 00000561: PUSH1 0x1f 00000563: NOT 00000564: PUSH1 0x1f 00000566: DUP3 00000567: ADD 00000568: AND 00000569: DUP3 0000056a: ADD 0000056b: DUP1 0000056c: PUSH1 0x40 0000056e: MSTORE 0000056f: POP 00000570: DUP2 00000571: ADD 00000572: SWAP1 00000573: PUSH2 0x057c 00000576: SWAP2 00000577: SWAP1 00000578: PUSH2 0x3da1 0000057b: JUMP 0000057c: JUMPDEST 0000057d: SWAP1 0000057e: POP 0000057f: JUMPDEST 00000580: PUSH1 0x40 00000582: MLOAD 00000583: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000598: SWAP1 00000599: CALLVALUE 0000059a: SWAP1 0000059b: PUSH0 0000059c: DUP2 0000059d: DUP2 0000059e: DUP2 0000059f: DUP6 000005a0: DUP8 000005a1: GAS 000005a2: CALL 000005a3: SWAP3 000005a4: POP 000005a5: POP 000005a6: POP 000005a7: RETURNDATASIZE 000005a8: DUP1 000005a9: PUSH0 000005aa: DUP2 000005ab: EQ 000005ac: PUSH2 0x05d0 000005af: JUMPI 000005b0: PUSH1 0x40 000005b2: MLOAD 000005b3: SWAP2 000005b4: POP 000005b5: PUSH1 0x1f 000005b7: NOT 000005b8: PUSH1 0x3f 000005ba: RETURNDATASIZE 000005bb: ADD 000005bc: AND 000005bd: DUP3 000005be: ADD 000005bf: PUSH1 0x40 000005c1: MSTORE 000005c2: RETURNDATASIZE 000005c3: DUP3 000005c4: MSTORE 000005c5: RETURNDATASIZE 000005c6: PUSH0 000005c7: PUSH1 0x20 000005c9: DUP5 000005ca: ADD 000005cb: RETURNDATACOPY 000005cc: PUSH2 0x05d5 000005cf: JUMP 000005d0: JUMPDEST 000005d1: PUSH1 0x60 000005d3: SWAP2 000005d4: POP 000005d5: JUMPDEST 000005d6: POP 000005d7: POP 000005d8: PUSH1 0x40 000005da: MLOAD 000005db: PUSH4 0x23b872dd 000005e0: PUSH1 0xe0 000005e2: SHL 000005e3: DUP2 000005e4: MSTORE 000005e5: ADDRESS 000005e6: PUSH1 0x04 000005e8: DUP3 000005e9: ADD 000005ea: MSTORE 000005eb: PUSH1 0x01 000005ed: PUSH1 0x01 000005ef: PUSH1 0xa0 000005f1: SHL 000005f2: SUB 000005f3: DUP11 000005f4: AND 000005f5: PUSH1 0x24 000005f7: DUP3 000005f8: ADD 000005f9: MSTORE 000005fa: CALLVALUE 000005fb: PUSH1 0x44 000005fd: DUP3 000005fe: ADD 000005ff: MSTORE 00000600: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000615: SWAP2 00000616: POP 00000617: PUSH4 0x23b872dd 0000061c: SWAP1 0000061d: PUSH1 0x64 0000061f: ADD 00000620: PUSH1 0x20 00000622: PUSH1 0x40 00000624: MLOAD 00000625: DUP1 00000626: DUP4 00000627: SUB 00000628: DUP2 00000629: PUSH0 0000062a: DUP8 0000062b: GAS 0000062c: CALL 0000062d: ISZERO 0000062e: DUP1 0000062f: ISZERO 00000630: PUSH2 0x063b 00000633: JUMPI 00000634: RETURNDATASIZE 00000635: PUSH0 00000636: PUSH0 00000637: RETURNDATACOPY 00000638: RETURNDATASIZE 00000639: PUSH0 0000063a: REVERT 0000063b: JUMPDEST 0000063c: POP 0000063d: POP 0000063e: POP 0000063f: POP 00000640: PUSH1 0x40 00000642: MLOAD 00000643: RETURNDATASIZE 00000644: PUSH1 0x1f 00000646: NOT 00000647: PUSH1 0x1f 00000649: DUP3 0000064a: ADD 0000064b: AND 0000064c: DUP3 0000064d: ADD 0000064e: DUP1 0000064f: PUSH1 0x40 00000651: MSTORE 00000652: POP 00000653: DUP2 00000654: ADD 00000655: SWAP1 00000656: PUSH2 0x065f 00000659: SWAP2 0000065a: SWAP1 0000065b: PUSH2 0x3dbc 0000065e: JUMP 0000065f: JUMPDEST 00000660: POP 00000661: PUSH1 0x40 00000663: MLOAD 00000664: PUSH4 0x70a08231 00000669: PUSH1 0xe0 0000066b: SHL 0000066c: DUP2 0000066d: MSTORE 0000066e: PUSH1 0x01 00000670: PUSH1 0x01 00000672: PUSH1 0xa0 00000674: SHL 00000675: SUB 00000676: DUP8 00000677: DUP2 00000678: AND 00000679: PUSH1 0x04 0000067b: DUP4 0000067c: ADD 0000067d: MSTORE 0000067e: PUSH0 0000067f: SWAP2 00000680: SWAP1 00000681: DUP4 00000682: AND 00000683: SWAP1 00000684: PUSH4 0x70a08231 00000689: SWAP1 0000068a: PUSH1 0x24 0000068c: ADD 0000068d: PUSH1 0x20 0000068f: PUSH1 0x40 00000691: MLOAD 00000692: DUP1 00000693: DUP4 00000694: SUB 00000695: DUP2 00000696: DUP7 00000697: GAS 00000698: STATICCALL 00000699: ISZERO 0000069a: DUP1 0000069b: ISZERO 0000069c: PUSH2 0x06a7 0000069f: JUMPI 000006a0: RETURNDATASIZE 000006a1: PUSH0 000006a2: PUSH0 000006a3: RETURNDATACOPY 000006a4: RETURNDATASIZE 000006a5: PUSH0 000006a6: REVERT 000006a7: JUMPDEST 000006a8: POP 000006a9: POP 000006aa: POP 000006ab: POP 000006ac: PUSH1 0x40 000006ae: MLOAD 000006af: RETURNDATASIZE 000006b0: PUSH1 0x1f 000006b2: NOT 000006b3: PUSH1 0x1f 000006b5: DUP3 000006b6: ADD 000006b7: AND 000006b8: DUP3 000006b9: ADD 000006ba: DUP1 000006bb: PUSH1 0x40 000006bd: MSTORE 000006be: POP 000006bf: DUP2 000006c0: ADD 000006c1: SWAP1 000006c2: PUSH2 0x06cb 000006c5: SWAP2 000006c6: SWAP1 000006c7: PUSH2 0x3ddb 000006ca: JUMP 000006cb: JUMPDEST 000006cc: SWAP1 000006cd: POP 000006ce: PUSH0 000006cf: PUSH1 0x01 000006d1: PUSH1 0xfe 000006d3: SHL 000006d4: DUP9 000006d5: AND 000006d6: ISZERO 000006d7: PUSH2 0x0743 000006da: JUMPI 000006db: PUSH1 0x40 000006dd: MLOAD 000006de: PUSH4 0x70a08231 000006e3: PUSH1 0xe0 000006e5: SHL 000006e6: DUP2 000006e7: MSTORE 000006e8: ADDRESS 000006e9: PUSH1 0x04 000006eb: DUP3 000006ec: ADD 000006ed: MSTORE 000006ee: PUSH1 0x01 000006f0: PUSH1 0x01 000006f2: PUSH1 0xa0 000006f4: SHL 000006f5: SUB 000006f6: DUP5 000006f7: AND 000006f8: SWAP1 000006f9: PUSH4 0x70a08231 000006fe: SWAP1 000006ff: PUSH1 0x24 00000701: ADD 00000702: PUSH1 0x20 00000704: PUSH1 0x40 00000706: MLOAD 00000707: DUP1 00000708: DUP4 00000709: SUB 0000070a: DUP2 0000070b: DUP7 0000070c: GAS 0000070d: STATICCALL 0000070e: ISZERO 0000070f: DUP1 00000710: ISZERO 00000711: PUSH2 0x071c 00000714: JUMPI 00000715: RETURNDATASIZE 00000716: PUSH0 00000717: PUSH0 00000718: RETURNDATACOPY 00000719: RETURNDATASIZE 0000071a: PUSH0 0000071b: REVERT 0000071c: JUMPDEST 0000071d: POP 0000071e: POP 0000071f: POP 00000720: POP 00000721: PUSH1 0x40 00000723: MLOAD 00000724: RETURNDATASIZE 00000725: PUSH1 0x1f 00000727: NOT 00000728: PUSH1 0x1f 0000072a: DUP3 0000072b: ADD 0000072c: AND 0000072d: DUP3 0000072e: ADD 0000072f: DUP1 00000730: PUSH1 0x40 00000732: MSTORE 00000733: POP 00000734: DUP2 00000735: ADD 00000736: SWAP1 00000737: PUSH2 0x0740 0000073a: SWAP2 0000073b: SWAP1 0000073c: PUSH2 0x3ddb 0000073f: JUMP 00000740: JUMPDEST 00000741: SWAP1 00000742: POP 00000743: JUMPDEST 00000744: DUP10 00000745: PUSH1 0x01 00000747: PUSH1 0x01 00000749: PUSH1 0xa0 0000074b: SHL 0000074c: SUB 0000074d: AND 0000074e: PUSH4 0x022c0d9f 00000753: DUP9 00000754: DUP9 00000755: PUSH0 00000756: PUSH1 0x01 00000758: PUSH1 0xfe 0000075a: SHL 0000075b: DUP14 0000075c: AND 0000075d: GT 0000075e: PUSH2 0x0767 00000761: JUMPI 00000762: DUP12 00000763: PUSH2 0x0769 00000766: JUMP 00000767: JUMPDEST 00000768: ADDRESS 00000769: JUMPDEST 0000076a: PUSH1 0x40 0000076c: MLOAD 0000076d: DUP5 0000076e: PUSH4 0xffffffff 00000773: AND 00000774: PUSH1 0xe0 00000776: SHL 00000777: DUP2 00000778: MSTORE 00000779: PUSH1 0x04 0000077b: ADD 0000077c: PUSH2 0x0787 0000077f: SWAP4 00000780: SWAP3 00000781: SWAP2 00000782: SWAP1 00000783: PUSH2 0x3df2 00000786: JUMP 00000787: JUMPDEST 00000788: PUSH0 00000789: PUSH1 0x40 0000078b: MLOAD 0000078c: DUP1 0000078d: DUP4 0000078e: SUB 0000078f: DUP2 00000790: PUSH0 00000791: DUP8 00000792: DUP1 00000793: EXTCODESIZE 00000794: ISZERO 00000795: DUP1 00000796: ISZERO 00000797: PUSH2 0x079e 0000079a: JUMPI 0000079b: PUSH0 0000079c: PUSH0 0000079d: REVERT 0000079e: JUMPDEST 0000079f: POP 000007a0: GAS 000007a1: CALL 000007a2: ISZERO 000007a3: DUP1 000007a4: ISZERO 000007a5: PUSH2 0x07b0 000007a8: JUMPI 000007a9: RETURNDATASIZE 000007aa: PUSH0 000007ab: PUSH0 000007ac: RETURNDATACOPY 000007ad: RETURNDATASIZE 000007ae: PUSH0 000007af: REVERT 000007b0: JUMPDEST 000007b1: POP 000007b2: POP 000007b3: POP 000007b4: POP 000007b5: PUSH1 0x01 000007b7: PUSH1 0xfe 000007b9: SHL 000007ba: DUP9 000007bb: AND 000007bc: ISZERO 000007bd: PUSH2 0x086b 000007c0: JUMPI 000007c1: PUSH1 0x40 000007c3: MLOAD 000007c4: PUSH4 0x70a08231 000007c9: PUSH1 0xe0 000007cb: SHL 000007cc: DUP2 000007cd: MSTORE 000007ce: ADDRESS 000007cf: PUSH1 0x04 000007d1: DUP3 000007d2: ADD 000007d3: MSTORE 000007d4: PUSH0 000007d5: SWAP1 000007d6: PUSH1 0x01 000007d8: PUSH1 0x01 000007da: PUSH1 0xa0 000007dc: SHL 000007dd: SUB 000007de: DUP6 000007df: AND 000007e0: SWAP1 000007e1: PUSH4 0x70a08231 000007e6: SWAP1 000007e7: PUSH1 0x24 000007e9: ADD 000007ea: PUSH1 0x20 000007ec: PUSH1 0x40 000007ee: MLOAD 000007ef: DUP1 000007f0: DUP4 000007f1: SUB 000007f2: DUP2 000007f3: DUP7 000007f4: GAS 000007f5: STATICCALL 000007f6: ISZERO 000007f7: DUP1 000007f8: ISZERO 000007f9: PUSH2 0x0804 000007fc: JUMPI 000007fd: RETURNDATASIZE 000007fe: PUSH0 000007ff: PUSH0 00000800: RETURNDATACOPY 00000801: RETURNDATASIZE 00000802: PUSH0 00000803: REVERT 00000804: JUMPDEST 00000805: POP 00000806: POP 00000807: POP 00000808: POP 00000809: PUSH1 0x40 0000080b: MLOAD 0000080c: RETURNDATASIZE 0000080d: PUSH1 0x1f 0000080f: NOT 00000810: PUSH1 0x1f 00000812: DUP3 00000813: ADD 00000814: AND 00000815: DUP3 00000816: ADD 00000817: DUP1 00000818: PUSH1 0x40 0000081a: MSTORE 0000081b: POP 0000081c: DUP2 0000081d: ADD 0000081e: SWAP1 0000081f: PUSH2 0x0828 00000822: SWAP2 00000823: SWAP1 00000824: PUSH2 0x3ddb 00000827: JUMP 00000828: JUMPDEST 00000829: SWAP1 0000082a: POP 0000082b: DUP2 0000082c: PUSH0 0000082d: SUB 0000082e: PUSH2 0x085a 00000831: JUMPI 00000832: PUSH2 0x0841 00000835: DUP5 00000836: DUP11 00000837: PUSH2 0x0138 0000083a: PUSH1 0x01 0000083c: DUP6 0000083d: PUSH2 0x3e33 00000840: JUMP 00000841: JUMPDEST 00000842: DUP10 00000843: ISZERO 00000844: PUSH2 0x0855 00000847: JUMPI 00000848: PUSH2 0x0852 0000084b: PUSH1 0x01 0000084d: DUP12 0000084e: PUSH2 0x3e33 00000851: JUMP 00000852: JUMPDEST 00000853: SWAP10 00000854: POP 00000855: JUMPDEST 00000856: PUSH2 0x0869 00000859: JUMP 0000085a: JUMPDEST 0000085b: PUSH2 0x0869 0000085e: DUP5 0000085f: DUP11 00000860: PUSH2 0x0138 00000863: DUP6 00000864: DUP6 00000865: PUSH2 0x3e33 00000868: JUMP 00000869: JUMPDEST 0000086a: POP 0000086b: JUMPDEST 0000086c: PUSH1 0x40 0000086e: MLOAD 0000086f: PUSH4 0x70a08231 00000874: PUSH1 0xe0 00000876: SHL 00000877: DUP2 00000878: MSTORE 00000879: PUSH1 0x01 0000087b: PUSH1 0x01 0000087d: PUSH1 0xa0 0000087f: SHL 00000880: SUB 00000881: DUP10 00000882: DUP2 00000883: AND 00000884: PUSH1 0x04 00000886: DUP4 00000887: ADD 00000888: MSTORE 00000889: DUP11 0000088a: SWAP2 0000088b: DUP5 0000088c: SWAP2 0000088d: DUP7 0000088e: AND 0000088f: SWAP1 00000890: PUSH4 0x70a08231 00000895: SWAP1 00000896: PUSH1 0x24 00000898: ADD 00000899: PUSH1 0x20 0000089b: PUSH1 0x40 0000089d: MLOAD 0000089e: DUP1 0000089f: DUP4 000008a0: SUB 000008a1: DUP2 000008a2: DUP7 000008a3: GAS 000008a4: STATICCALL 000008a5: ISZERO 000008a6: DUP1 000008a7: ISZERO 000008a8: PUSH2 0x08b3 000008ab: JUMPI 000008ac: RETURNDATASIZE 000008ad: PUSH0 000008ae: PUSH0 000008af: RETURNDATACOPY 000008b0: RETURNDATASIZE 000008b1: PUSH0 000008b2: REVERT 000008b3: JUMPDEST 000008b4: POP 000008b5: POP 000008b6: POP 000008b7: POP 000008b8: PUSH1 0x40 000008ba: MLOAD 000008bb: RETURNDATASIZE 000008bc: PUSH1 0x1f 000008be: NOT 000008bf: PUSH1 0x1f 000008c1: DUP3 000008c2: ADD 000008c3: AND 000008c4: DUP3 000008c5: ADD 000008c6: DUP1 000008c7: PUSH1 0x40 000008c9: MSTORE 000008ca: POP 000008cb: DUP2 000008cc: ADD 000008cd: SWAP1 000008ce: PUSH2 0x08d7 000008d1: SWAP2 000008d2: SWAP1 000008d3: PUSH2 0x3ddb 000008d6: JUMP 000008d7: JUMPDEST 000008d8: PUSH2 0x08e1 000008db: SWAP2 000008dc: SWAP1 000008dd: PUSH2 0x3e33 000008e0: JUMP 000008e1: JUMPDEST 000008e2: LT 000008e3: ISZERO 000008e4: PUSH2 0x08ff 000008e7: JUMPI 000008e8: PUSH1 0x40 000008ea: MLOAD 000008eb: PUSH3 0x461bcd 000008ef: PUSH1 0xe5 000008f1: SHL 000008f2: DUP2 000008f3: MSTORE 000008f4: PUSH1 0x04 000008f6: ADD 000008f7: PUSH2 0x035a 000008fa: SWAP1 000008fb: PUSH2 0x3e4c 000008fe: JUMP 000008ff: JUMPDEST 00000900: POP 00000901: POP 00000902: POP 00000903: POP 00000904: POP 00000905: POP 00000906: POP 00000907: POP 00000908: POP 00000909: POP 0000090a: POP 0000090b: JUMP 0000090c: JUMPDEST 0000090d: PUSH0 0000090e: MLOAD 0000090f: PUSH1 0x20 00000911: PUSH2 0x3f6c 00000914: PUSH0 00000915: CODECOPY 00000916: PUSH0 00000917: MLOAD 00000918: SWAP1 00000919: PUSH0 0000091a: MSTORE 0000091b: CALLER 0000091c: EQ 0000091d: DUP1 0000091e: PUSH2 0x0935 00000921: JUMPI 00000922: POP 00000923: CALLER 00000924: PUSH0 00000925: SWAP1 00000926: DUP2 00000927: MSTORE 00000928: PUSH1 0x20 0000092a: DUP2 0000092b: SWAP1 0000092c: MSTORE 0000092d: PUSH1 0x40 0000092f: SWAP1 00000930: KECCAK256 00000931: SLOAD 00000932: PUSH1 0xff 00000934: AND 00000935: JUMPDEST 00000936: PUSH2 0x0951 00000939: JUMPI 0000093a: PUSH1 0x40 0000093c: MLOAD 0000093d: PUSH3 0x461bcd 00000941: PUSH1 0xe5 00000943: SHL 00000944: DUP2 00000945: MSTORE 00000946: PUSH1 0x04 00000948: ADD 00000949: PUSH2 0x035a 0000094c: SWAP1 0000094d: PUSH2 0x3ce1 00000950: JUMP 00000951: JUMPDEST 00000952: DUP4 00000953: NUMBER 00000954: GT 00000955: ISZERO 00000956: PUSH2 0x0971 00000959: JUMPI 0000095a: PUSH1 0x40 0000095c: MLOAD 0000095d: PUSH3 0x461bcd 00000961: PUSH1 0xe5 00000963: SHL 00000964: DUP2 00000965: MSTORE 00000966: PUSH1 0x04 00000968: ADD 00000969: PUSH2 0x035a 0000096c: SWAP1 0000096d: PUSH2 0x3d10 00000970: JUMP 00000971: JUMPDEST 00000972: PUSH0 00000973: PUSH2 0x097c 00000976: DUP7 00000977: CALLVALUE 00000978: PUSH2 0x3e33 0000097b: JUMP 0000097c: JUMPDEST 0000097d: SWAP1 0000097e: POP 0000097f: PUSH0 00000980: PUSH0 00000981: SWAP1 00000982: POP 00000983: PUSH0 00000984: PUSH0 00000985: SWAP1 00000986: POP 00000987: PUSH0 00000988: PUSH0 00000989: DUP8 0000098a: PUSH1 0x01 0000098c: PUSH1 0x01 0000098e: PUSH1 0xa0 00000990: SHL 00000991: SUB 00000992: AND 00000993: PUSH4 0x0902f1ac 00000998: PUSH1 0x40 0000099a: MLOAD 0000099b: DUP2 0000099c: PUSH4 0xffffffff 000009a1: AND 000009a2: PUSH1 0xe0 000009a4: SHL 000009a5: DUP2 000009a6: MSTORE 000009a7: PUSH1 0x04 000009a9: ADD 000009aa: PUSH1 0x60 000009ac: PUSH1 0x40 000009ae: MLOAD 000009af: DUP1 000009b0: DUP4 000009b1: SUB 000009b2: DUP2 000009b3: DUP7 000009b4: GAS 000009b5: STATICCALL 000009b6: ISZERO 000009b7: DUP1 000009b8: ISZERO 000009b9: PUSH2 0x09c4 000009bc: JUMPI 000009bd: RETURNDATASIZE 000009be: PUSH0 000009bf: PUSH0 000009c0: RETURNDATACOPY 000009c1: RETURNDATASIZE 000009c2: PUSH0 000009c3: REVERT 000009c4: JUMPDEST 000009c5: POP 000009c6: POP 000009c7: POP 000009c8: POP 000009c9: PUSH1 0x40 000009cb: MLOAD 000009cc: RETURNDATASIZE 000009cd: PUSH1 0x1f 000009cf: NOT 000009d0: PUSH1 0x1f 000009d2: DUP3 000009d3: ADD 000009d4: AND 000009d5: DUP3 000009d6: ADD 000009d7: DUP1 000009d8: PUSH1 0x40 000009da: MSTORE 000009db: POP 000009dc: DUP2 000009dd: ADD 000009de: SWAP1 000009df: PUSH2 0x09e8 000009e2: SWAP2 000009e3: SWAP1 000009e4: PUSH2 0x3d55 000009e7: JUMP 000009e8: JUMPDEST 000009e9: POP 000009ea: SWAP2 000009eb: POP 000009ec: SWAP2 000009ed: POP 000009ee: PUSH0 000009ef: PUSH1 0x01 000009f1: PUSH1 0xff 000009f3: SHL 000009f4: DUP8 000009f5: AND 000009f6: PUSH0 000009f7: SUB 000009f8: PUSH2 0x0a81 000009fb: JUMPI 000009fc: PUSH2 0x0a18 000009ff: DUP7 00000a00: DUP5 00000a01: PUSH1 0x01 00000a03: PUSH1 0x01 00000a05: PUSH1 0x70 00000a07: SHL 00000a08: SUB 00000a09: AND 00000a0a: DUP5 00000a0b: PUSH1 0x01 00000a0d: PUSH1 0x01 00000a0f: PUSH1 0x70 00000a11: SHL 00000a12: SUB 00000a13: AND 00000a14: PUSH2 0x38cc 00000a17: JUMP 00000a18: JUMPDEST 00000a19: SWAP4 00000a1a: POP 00000a1b: DUP9 00000a1c: PUSH1 0x01 00000a1e: PUSH1 0x01 00000a20: PUSH1 0xa0 00000a22: SHL 00000a23: SUB 00000a24: AND 00000a25: PUSH4 0xd21220a7 00000a2a: PUSH1 0x40 00000a2c: MLOAD 00000a2d: DUP2 00000a2e: PUSH4 0xffffffff 00000a33: AND 00000a34: PUSH1 0xe0 00000a36: SHL 00000a37: DUP2 00000a38: MSTORE 00000a39: PUSH1 0x04 00000a3b: ADD 00000a3c: PUSH1 0x20 00000a3e: PUSH1 0x40 00000a40: MLOAD 00000a41: DUP1 00000a42: DUP4 00000a43: SUB 00000a44: DUP2 00000a45: DUP7 00000a46: GAS 00000a47: STATICCALL 00000a48: ISZERO 00000a49: DUP1 00000a4a: ISZERO 00000a4b: PUSH2 0x0a56 00000a4e: JUMPI 00000a4f: RETURNDATASIZE 00000a50: PUSH0 00000a51: PUSH0 00000a52: RETURNDATACOPY 00000a53: RETURNDATASIZE 00000a54: PUSH0 00000a55: REVERT 00000a56: JUMPDEST 00000a57: POP 00000a58: POP 00000a59: POP 00000a5a: POP 00000a5b: PUSH1 0x40 00000a5d: MLOAD 00000a5e: RETURNDATASIZE 00000a5f: PUSH1 0x1f 00000a61: NOT 00000a62: PUSH1 0x1f 00000a64: DUP3 00000a65: ADD 00000a66: AND 00000a67: DUP3 00000a68: ADD 00000a69: DUP1 00000a6a: PUSH1 0x40 00000a6c: MSTORE 00000a6d: POP 00000a6e: DUP2 00000a6f: ADD 00000a70: SWAP1 00000a71: PUSH2 0x0a7a 00000a74: SWAP2 00000a75: SWAP1 00000a76: PUSH2 0x3da1 00000a79: JUMP 00000a7a: JUMPDEST 00000a7b: SWAP1 00000a7c: POP 00000a7d: PUSH2 0x0b03 00000a80: JUMP 00000a81: JUMPDEST 00000a82: PUSH2 0x0a9e 00000a85: DUP7 00000a86: DUP4 00000a87: PUSH1 0x01 00000a89: PUSH1 0x01 00000a8b: PUSH1 0x70 00000a8d: SHL 00000a8e: SUB 00000a8f: AND 00000a90: DUP6 00000a91: PUSH1 0x01 00000a93: PUSH1 0x01 00000a95: PUSH1 0x70 00000a97: SHL 00000a98: SUB 00000a99: AND 00000a9a: PUSH2 0x38cc 00000a9d: JUMP 00000a9e: JUMPDEST 00000a9f: SWAP5 00000aa0: POP 00000aa1: DUP9 00000aa2: PUSH1 0x01 00000aa4: PUSH1 0x01 00000aa6: PUSH1 0xa0 00000aa8: SHL 00000aa9: SUB 00000aaa: AND 00000aab: PUSH4 0x0dfe1681 00000ab0: PUSH1 0x40 00000ab2: MLOAD 00000ab3: DUP2 00000ab4: PUSH4 0xffffffff 00000ab9: AND 00000aba: PUSH1 0xe0 00000abc: SHL 00000abd: DUP2 00000abe: MSTORE 00000abf: PUSH1 0x04 00000ac1: ADD 00000ac2: PUSH1 0x20 00000ac4: PUSH1 0x40 00000ac6: MLOAD 00000ac7: DUP1 00000ac8: DUP4 00000ac9: SUB 00000aca: DUP2 00000acb: DUP7 00000acc: GAS 00000acd: STATICCALL 00000ace: ISZERO 00000acf: DUP1 00000ad0: ISZERO 00000ad1: PUSH2 0x0adc 00000ad4: JUMPI 00000ad5: RETURNDATASIZE 00000ad6: PUSH0 00000ad7: PUSH0 00000ad8: RETURNDATACOPY 00000ad9: RETURNDATASIZE 00000ada: PUSH0 00000adb: REVERT 00000adc: JUMPDEST 00000add: POP 00000ade: POP 00000adf: POP 00000ae0: POP 00000ae1: PUSH1 0x40 00000ae3: MLOAD 00000ae4: RETURNDATASIZE 00000ae5: PUSH1 0x1f 00000ae7: NOT 00000ae8: PUSH1 0x1f 00000aea: DUP3 00000aeb: ADD 00000aec: AND 00000aed: DUP3 00000aee: ADD 00000aef: DUP1 00000af0: PUSH1 0x40 00000af2: MSTORE 00000af3: POP 00000af4: DUP2 00000af5: ADD 00000af6: SWAP1 00000af7: PUSH2 0x0b00 00000afa: SWAP2 00000afb: SWAP1 00000afc: PUSH2 0x3da1 00000aff: JUMP 00000b00: JUMPDEST 00000b01: SWAP1 00000b02: POP 00000b03: JUMPDEST 00000b04: PUSH1 0x40 00000b06: MLOAD 00000b07: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000b1c: SWAP1 00000b1d: DUP8 00000b1e: SWAP1 00000b1f: PUSH0 00000b20: DUP2 00000b21: DUP2 00000b22: DUP2 00000b23: DUP6 00000b24: DUP8 00000b25: GAS 00000b26: CALL 00000b27: SWAP3 00000b28: POP 00000b29: POP 00000b2a: POP 00000b2b: RETURNDATASIZE 00000b2c: DUP1 00000b2d: PUSH0 00000b2e: DUP2 00000b2f: EQ 00000b30: PUSH2 0x0b54 00000b33: JUMPI 00000b34: PUSH1 0x40 00000b36: MLOAD 00000b37: SWAP2 00000b38: POP 00000b39: PUSH1 0x1f 00000b3b: NOT 00000b3c: PUSH1 0x3f 00000b3e: RETURNDATASIZE 00000b3f: ADD 00000b40: AND 00000b41: DUP3 00000b42: ADD 00000b43: PUSH1 0x40 00000b45: MSTORE 00000b46: RETURNDATASIZE 00000b47: DUP3 00000b48: MSTORE 00000b49: RETURNDATASIZE 00000b4a: PUSH0 00000b4b: PUSH1 0x20 00000b4d: DUP5 00000b4e: ADD 00000b4f: RETURNDATACOPY 00000b50: PUSH2 0x0b59 00000b53: JUMP 00000b54: JUMPDEST 00000b55: PUSH1 0x60 00000b57: SWAP2 00000b58: POP 00000b59: JUMPDEST 00000b5a: POP 00000b5b: POP 00000b5c: PUSH1 0x40 00000b5e: MLOAD 00000b5f: PUSH4 0x23b872dd 00000b64: PUSH1 0xe0 00000b66: SHL 00000b67: DUP2 00000b68: MSTORE 00000b69: ADDRESS 00000b6a: PUSH1 0x04 00000b6c: DUP3 00000b6d: ADD 00000b6e: MSTORE 00000b6f: PUSH1 0x01 00000b71: PUSH1 0x01 00000b73: PUSH1 0xa0 00000b75: SHL 00000b76: SUB 00000b77: DUP12 00000b78: AND 00000b79: PUSH1 0x24 00000b7b: DUP3 00000b7c: ADD 00000b7d: MSTORE 00000b7e: PUSH1 0x44 00000b80: DUP2 00000b81: ADD 00000b82: DUP9 00000b83: SWAP1 00000b84: MSTORE 00000b85: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000b9a: SWAP2 00000b9b: POP 00000b9c: PUSH4 0x23b872dd 00000ba1: SWAP1 00000ba2: PUSH1 0x64 00000ba4: ADD 00000ba5: PUSH1 0x20 00000ba7: PUSH1 0x40 00000ba9: MLOAD 00000baa: DUP1 00000bab: DUP4 00000bac: SUB 00000bad: DUP2 00000bae: PUSH0 00000baf: DUP8 00000bb0: GAS 00000bb1: CALL 00000bb2: ISZERO 00000bb3: DUP1 00000bb4: ISZERO 00000bb5: PUSH2 0x0bc0 00000bb8: JUMPI 00000bb9: RETURNDATASIZE 00000bba: PUSH0 00000bbb: PUSH0 00000bbc: RETURNDATACOPY 00000bbd: RETURNDATASIZE 00000bbe: PUSH0 00000bbf: REVERT 00000bc0: JUMPDEST 00000bc1: POP 00000bc2: POP 00000bc3: POP 00000bc4: POP 00000bc5: PUSH1 0x40 00000bc7: MLOAD 00000bc8: RETURNDATASIZE 00000bc9: PUSH1 0x1f 00000bcb: NOT 00000bcc: PUSH1 0x1f 00000bce: DUP3 00000bcf: ADD 00000bd0: AND 00000bd1: DUP3 00000bd2: ADD 00000bd3: DUP1 00000bd4: PUSH1 0x40 00000bd6: MSTORE 00000bd7: POP 00000bd8: DUP2 00000bd9: ADD 00000bda: SWAP1 00000bdb: PUSH2 0x0be4 00000bde: SWAP2 00000bdf: SWAP1 00000be0: PUSH2 0x3dbc 00000be3: JUMP 00000be4: JUMPDEST 00000be5: POP 00000be6: PUSH1 0x40 00000be8: MLOAD 00000be9: PUSH4 0x70a08231 00000bee: PUSH1 0xe0 00000bf0: SHL 00000bf1: DUP2 00000bf2: MSTORE 00000bf3: PUSH1 0x01 00000bf5: PUSH1 0x01 00000bf7: PUSH1 0xa0 00000bf9: SHL 00000bfa: SUB 00000bfb: DUP9 00000bfc: DUP2 00000bfd: AND 00000bfe: PUSH1 0x04 00000c00: DUP4 00000c01: ADD 00000c02: MSTORE 00000c03: PUSH0 00000c04: SWAP2 00000c05: SWAP1 00000c06: DUP4 00000c07: AND 00000c08: SWAP1 00000c09: PUSH4 0x70a08231 00000c0e: SWAP1 00000c0f: PUSH1 0x24 00000c11: ADD 00000c12: PUSH1 0x20 00000c14: PUSH1 0x40 00000c16: MLOAD 00000c17: DUP1 00000c18: DUP4 00000c19: SUB 00000c1a: DUP2 00000c1b: DUP7 00000c1c: GAS 00000c1d: STATICCALL 00000c1e: ISZERO 00000c1f: DUP1 00000c20: ISZERO 00000c21: PUSH2 0x0c2c 00000c24: JUMPI 00000c25: RETURNDATASIZE 00000c26: PUSH0 00000c27: PUSH0 00000c28: RETURNDATACOPY 00000c29: RETURNDATASIZE 00000c2a: PUSH0 00000c2b: REVERT 00000c2c: JUMPDEST 00000c2d: POP 00000c2e: POP 00000c2f: POP 00000c30: POP 00000c31: PUSH1 0x40 00000c33: MLOAD 00000c34: RETURNDATASIZE 00000c35: PUSH1 0x1f 00000c37: NOT 00000c38: PUSH1 0x1f 00000c3a: DUP3 00000c3b: ADD 00000c3c: AND 00000c3d: DUP3 00000c3e: ADD 00000c3f: DUP1 00000c40: PUSH1 0x40 00000c42: MSTORE 00000c43: POP 00000c44: DUP2 00000c45: ADD 00000c46: SWAP1 00000c47: PUSH2 0x0c50 00000c4a: SWAP2 00000c4b: SWAP1 00000c4c: PUSH2 0x3ddb 00000c4f: JUMP 00000c50: JUMPDEST 00000c51: SWAP1 00000c52: POP 00000c53: PUSH0 00000c54: PUSH1 0x01 00000c56: PUSH1 0xfe 00000c58: SHL 00000c59: DUP10 00000c5a: AND 00000c5b: ISZERO 00000c5c: PUSH2 0x0cc8 00000c5f: JUMPI 00000c60: PUSH1 0x40 00000c62: MLOAD 00000c63: PUSH4 0x70a08231 00000c68: PUSH1 0xe0 00000c6a: SHL 00000c6b: DUP2 00000c6c: MSTORE 00000c6d: ADDRESS 00000c6e: PUSH1 0x04 00000c70: DUP3 00000c71: ADD 00000c72: MSTORE 00000c73: PUSH1 0x01 00000c75: PUSH1 0x01 00000c77: PUSH1 0xa0 00000c79: SHL 00000c7a: SUB 00000c7b: DUP5 00000c7c: AND 00000c7d: SWAP1 00000c7e: PUSH4 0x70a08231 00000c83: SWAP1 00000c84: PUSH1 0x24 00000c86: ADD 00000c87: PUSH1 0x20 00000c89: PUSH1 0x40 00000c8b: MLOAD 00000c8c: DUP1 00000c8d: DUP4 00000c8e: SUB 00000c8f: DUP2 00000c90: DUP7 00000c91: GAS 00000c92: STATICCALL 00000c93: ISZERO 00000c94: DUP1 00000c95: ISZERO 00000c96: PUSH2 0x0ca1 00000c99: JUMPI 00000c9a: RETURNDATASIZE 00000c9b: PUSH0 00000c9c: PUSH0 00000c9d: RETURNDATACOPY 00000c9e: RETURNDATASIZE 00000c9f: PUSH0 00000ca0: REVERT 00000ca1: JUMPDEST 00000ca2: POP 00000ca3: POP 00000ca4: POP 00000ca5: POP 00000ca6: PUSH1 0x40 00000ca8: MLOAD 00000ca9: RETURNDATASIZE 00000caa: PUSH1 0x1f 00000cac: NOT 00000cad: PUSH1 0x1f 00000caf: DUP3 00000cb0: ADD 00000cb1: AND 00000cb2: DUP3 00000cb3: ADD 00000cb4: DUP1 00000cb5: PUSH1 0x40 00000cb7: MSTORE 00000cb8: POP 00000cb9: DUP2 00000cba: ADD 00000cbb: SWAP1 00000cbc: PUSH2 0x0cc5 00000cbf: SWAP2 00000cc0: SWAP1 00000cc1: PUSH2 0x3ddb 00000cc4: JUMP 00000cc5: JUMPDEST 00000cc6: SWAP1 00000cc7: POP 00000cc8: JUMPDEST 00000cc9: DUP11 00000cca: PUSH1 0x01 00000ccc: PUSH1 0x01 00000cce: PUSH1 0xa0 00000cd0: SHL 00000cd1: SUB 00000cd2: AND 00000cd3: PUSH4 0x022c0d9f 00000cd8: DUP9 00000cd9: DUP9 00000cda: PUSH0 00000cdb: PUSH1 0x01 00000cdd: PUSH1 0xfe 00000cdf: SHL 00000ce0: DUP15 00000ce1: AND 00000ce2: GT 00000ce3: PUSH2 0x0cec 00000ce6: JUMPI 00000ce7: DUP13 00000ce8: PUSH2 0x0cee 00000ceb: JUMP 00000cec: JUMPDEST 00000ced: ADDRESS 00000cee: JUMPDEST 00000cef: PUSH1 0x40 00000cf1: MLOAD 00000cf2: DUP5 00000cf3: PUSH4 0xffffffff 00000cf8: AND 00000cf9: PUSH1 0xe0 00000cfb: SHL 00000cfc: DUP2 00000cfd: MSTORE 00000cfe: PUSH1 0x04 00000d00: ADD 00000d01: PUSH2 0x0d0c 00000d04: SWAP4 00000d05: SWAP3 00000d06: SWAP2 00000d07: SWAP1 00000d08: PUSH2 0x3df2 00000d0b: JUMP 00000d0c: JUMPDEST 00000d0d: PUSH0 00000d0e: PUSH1 0x40 00000d10: MLOAD 00000d11: DUP1 00000d12: DUP4 00000d13: SUB 00000d14: DUP2 00000d15: PUSH0 00000d16: DUP8 00000d17: DUP1 00000d18: EXTCODESIZE 00000d19: ISZERO 00000d1a: DUP1 00000d1b: ISZERO 00000d1c: PUSH2 0x0d23 00000d1f: JUMPI 00000d20: PUSH0 00000d21: PUSH0 00000d22: REVERT 00000d23: JUMPDEST 00000d24: POP 00000d25: GAS 00000d26: CALL 00000d27: ISZERO 00000d28: DUP1 00000d29: ISZERO 00000d2a: PUSH2 0x0d35 00000d2d: JUMPI 00000d2e: RETURNDATASIZE 00000d2f: PUSH0 00000d30: PUSH0 00000d31: RETURNDATACOPY 00000d32: RETURNDATASIZE 00000d33: PUSH0 00000d34: REVERT 00000d35: JUMPDEST 00000d36: POP 00000d37: POP 00000d38: POP 00000d39: POP 00000d3a: PUSH1 0x01 00000d3c: PUSH1 0xfe 00000d3e: SHL 00000d3f: DUP10 00000d40: AND 00000d41: ISZERO 00000d42: PUSH2 0x0df0 00000d45: JUMPI 00000d46: PUSH1 0x40 00000d48: MLOAD 00000d49: PUSH4 0x70a08231 00000d4e: PUSH1 0xe0 00000d50: SHL 00000d51: DUP2 00000d52: MSTORE 00000d53: ADDRESS 00000d54: PUSH1 0x04 00000d56: DUP3 00000d57: ADD 00000d58: MSTORE 00000d59: PUSH0 00000d5a: SWAP1 00000d5b: PUSH1 0x01 00000d5d: PUSH1 0x01 00000d5f: PUSH1 0xa0 00000d61: SHL 00000d62: SUB 00000d63: DUP6 00000d64: AND 00000d65: SWAP1 00000d66: PUSH4 0x70a08231 00000d6b: SWAP1 00000d6c: PUSH1 0x24 00000d6e: ADD 00000d6f: PUSH1 0x20 00000d71: PUSH1 0x40 00000d73: MLOAD 00000d74: DUP1 00000d75: DUP4 00000d76: SUB 00000d77: DUP2 00000d78: DUP7 00000d79: GAS 00000d7a: STATICCALL 00000d7b: ISZERO 00000d7c: DUP1 00000d7d: ISZERO 00000d7e: PUSH2 0x0d89 00000d81: JUMPI 00000d82: RETURNDATASIZE 00000d83: PUSH0 00000d84: PUSH0 00000d85: RETURNDATACOPY 00000d86: RETURNDATASIZE 00000d87: PUSH0 00000d88: REVERT 00000d89: JUMPDEST 00000d8a: POP 00000d8b: POP 00000d8c: POP 00000d8d: POP 00000d8e: PUSH1 0x40 00000d90: MLOAD 00000d91: RETURNDATASIZE 00000d92: PUSH1 0x1f 00000d94: NOT 00000d95: PUSH1 0x1f 00000d97: DUP3 00000d98: ADD 00000d99: AND 00000d9a: DUP3 00000d9b: ADD 00000d9c: DUP1 00000d9d: PUSH1 0x40 00000d9f: MSTORE 00000da0: POP 00000da1: DUP2 00000da2: ADD 00000da3: SWAP1 00000da4: PUSH2 0x0dad 00000da7: SWAP2 00000da8: SWAP1 00000da9: PUSH2 0x3ddb 00000dac: JUMP 00000dad: JUMPDEST 00000dae: SWAP1 00000daf: POP 00000db0: DUP2 00000db1: PUSH0 00000db2: SUB 00000db3: PUSH2 0x0ddf 00000db6: JUMPI 00000db7: PUSH2 0x0dc6 00000dba: DUP5 00000dbb: DUP12 00000dbc: PUSH2 0x0138 00000dbf: PUSH1 0x01 00000dc1: DUP6 00000dc2: PUSH2 0x3e33 00000dc5: JUMP 00000dc6: JUMPDEST 00000dc7: DUP11 00000dc8: ISZERO 00000dc9: PUSH2 0x0dda 00000dcc: JUMPI 00000dcd: PUSH2 0x0dd7 00000dd0: PUSH1 0x01 00000dd2: DUP13 00000dd3: PUSH2 0x3e33 00000dd6: JUMP 00000dd7: JUMPDEST 00000dd8: SWAP11 00000dd9: POP 00000dda: JUMPDEST 00000ddb: PUSH2 0x0dee 00000dde: JUMP 00000ddf: JUMPDEST 00000de0: PUSH2 0x0dee 00000de3: DUP5 00000de4: DUP12 00000de5: PUSH2 0x0138 00000de8: DUP6 00000de9: DUP6 00000dea: PUSH2 0x3e33 00000ded: JUMP 00000dee: JUMPDEST 00000def: POP 00000df0: JUMPDEST 00000df1: PUSH1 0x40 00000df3: MLOAD 00000df4: PUSH4 0x70a08231 00000df9: PUSH1 0xe0 00000dfb: SHL 00000dfc: DUP2 00000dfd: MSTORE 00000dfe: PUSH1 0x01 00000e00: PUSH1 0x01 00000e02: PUSH1 0xa0 00000e04: SHL 00000e05: SUB 00000e06: DUP11 00000e07: DUP2 00000e08: AND 00000e09: PUSH1 0x04 00000e0b: DUP4 00000e0c: ADD 00000e0d: MSTORE 00000e0e: DUP12 00000e0f: SWAP2 00000e10: DUP5 00000e11: SWAP2 00000e12: DUP7 00000e13: AND 00000e14: SWAP1 00000e15: PUSH4 0x70a08231 00000e1a: SWAP1 00000e1b: PUSH1 0x24 00000e1d: ADD 00000e1e: PUSH1 0x20 00000e20: PUSH1 0x40 00000e22: MLOAD 00000e23: DUP1 00000e24: DUP4 00000e25: SUB 00000e26: DUP2 00000e27: DUP7 00000e28: GAS 00000e29: STATICCALL 00000e2a: ISZERO 00000e2b: DUP1 00000e2c: ISZERO 00000e2d: PUSH2 0x0e38 00000e30: JUMPI 00000e31: RETURNDATASIZE 00000e32: PUSH0 00000e33: PUSH0 00000e34: RETURNDATACOPY 00000e35: RETURNDATASIZE 00000e36: PUSH0 00000e37: REVERT 00000e38: JUMPDEST 00000e39: POP 00000e3a: POP 00000e3b: POP 00000e3c: POP 00000e3d: PUSH1 0x40 00000e3f: MLOAD 00000e40: RETURNDATASIZE 00000e41: PUSH1 0x1f 00000e43: NOT 00000e44: PUSH1 0x1f 00000e46: DUP3 00000e47: ADD 00000e48: AND 00000e49: DUP3 00000e4a: ADD 00000e4b: DUP1 00000e4c: PUSH1 0x40 00000e4e: MSTORE 00000e4f: POP 00000e50: DUP2 00000e51: ADD 00000e52: SWAP1 00000e53: PUSH2 0x0e5c 00000e56: SWAP2 00000e57: SWAP1 00000e58: PUSH2 0x3ddb 00000e5b: JUMP 00000e5c: JUMPDEST 00000e5d: PUSH2 0x0e66 00000e60: SWAP2 00000e61: SWAP1 00000e62: PUSH2 0x3e33 00000e65: JUMP 00000e66: JUMPDEST 00000e67: LT 00000e68: ISZERO 00000e69: PUSH2 0x0e84 00000e6c: JUMPI 00000e6d: PUSH1 0x40 00000e6f: MLOAD 00000e70: PUSH3 0x461bcd 00000e74: PUSH1 0xe5 00000e76: SHL 00000e77: DUP2 00000e78: MSTORE 00000e79: PUSH1 0x04 00000e7b: ADD 00000e7c: PUSH2 0x035a 00000e7f: SWAP1 00000e80: PUSH2 0x3e4c 00000e83: JUMP 00000e84: JUMPDEST 00000e85: COINBASE 00000e86: PUSH1 0x01 00000e88: PUSH1 0x01 00000e8a: PUSH1 0xa0 00000e8c: SHL 00000e8d: SUB 00000e8e: AND 00000e8f: DUP14 00000e90: PUSH1 0x40 00000e92: MLOAD 00000e93: JUMPDEST 00000e94: PUSH0 00000e95: PUSH1 0x40 00000e97: MLOAD 00000e98: DUP1 00000e99: DUP4 00000e9a: SUB 00000e9b: DUP2 00000e9c: DUP6 00000e9d: DUP8 00000e9e: GAS 00000e9f: CALL 00000ea0: SWAP3 00000ea1: POP 00000ea2: POP 00000ea3: POP 00000ea4: RETURNDATASIZE 00000ea5: DUP1 00000ea6: PUSH0 00000ea7: DUP2 00000ea8: EQ 00000ea9: PUSH2 0x0ecd 00000eac: JUMPI 00000ead: PUSH1 0x40 00000eaf: MLOAD 00000eb0: SWAP2 00000eb1: POP 00000eb2: PUSH1 0x1f 00000eb4: NOT 00000eb5: PUSH1 0x3f 00000eb7: RETURNDATASIZE 00000eb8: ADD 00000eb9: AND 00000eba: DUP3 00000ebb: ADD 00000ebc: PUSH1 0x40 00000ebe: MSTORE 00000ebf: RETURNDATASIZE 00000ec0: DUP3 00000ec1: MSTORE 00000ec2: RETURNDATASIZE 00000ec3: PUSH0 00000ec4: PUSH1 0x20 00000ec6: DUP5 00000ec7: ADD 00000ec8: RETURNDATACOPY 00000ec9: PUSH2 0x0ed2 00000ecc: JUMP 00000ecd: JUMPDEST 00000ece: PUSH1 0x60 00000ed0: SWAP2 00000ed1: POP 00000ed2: JUMPDEST 00000ed3: POP 00000ed4: POP 00000ed5: POP 00000ed6: POP 00000ed7: POP 00000ed8: POP 00000ed9: POP 00000eda: POP 00000edb: POP 00000edc: POP 00000edd: POP 00000ede: POP 00000edf: POP 00000ee0: POP 00000ee1: POP 00000ee2: POP 00000ee3: JUMP 00000ee4: JUMPDEST 00000ee5: PUSH0 00000ee6: MLOAD 00000ee7: PUSH1 0x20 00000ee9: PUSH2 0x3f6c 00000eec: PUSH0 00000eed: CODECOPY 00000eee: PUSH0 00000eef: MLOAD 00000ef0: SWAP1 00000ef1: PUSH0 00000ef2: MSTORE 00000ef3: CALLER 00000ef4: EQ 00000ef5: DUP1 00000ef6: PUSH2 0x0f0d 00000ef9: JUMPI 00000efa: POP 00000efb: CALLER 00000efc: PUSH0 00000efd: SWAP1 00000efe: DUP2 00000eff: MSTORE 00000f00: PUSH1 0x20 00000f02: DUP2 00000f03: SWAP1 00000f04: MSTORE 00000f05: PUSH1 0x40 00000f07: SWAP1 00000f08: KECCAK256 00000f09: SLOAD 00000f0a: PUSH1 0xff 00000f0c: AND 00000f0d: JUMPDEST 00000f0e: PUSH2 0x0f29 00000f11: JUMPI 00000f12: PUSH1 0x40 00000f14: MLOAD 00000f15: PUSH3 0x461bcd 00000f19: PUSH1 0xe5 00000f1b: SHL 00000f1c: DUP2 00000f1d: MSTORE 00000f1e: PUSH1 0x04 00000f20: ADD 00000f21: PUSH2 0x035a 00000f24: SWAP1 00000f25: PUSH2 0x3ce1 00000f28: JUMP 00000f29: JUMPDEST 00000f2a: PUSH1 0x01 00000f2c: PUSH1 0x34 00000f2e: PUSH1 0x83 00000f30: NOT 00000f31: CALLDATASIZE 00000f32: ADD 00000f33: MOD 00000f34: ISZERO 00000f35: PUSH2 0x0f73 00000f38: JUMPI 00000f39: PUSH1 0x40 00000f3b: MLOAD 00000f3c: PUSH3 0x461bcd 00000f40: PUSH1 0xe5 00000f42: SHL 00000f43: DUP2 00000f44: MSTORE 00000f45: PUSH1 0x20 00000f47: PUSH1 0x04 00000f49: DUP3 00000f4a: ADD 00000f4b: MSTORE 00000f4c: PUSH1 0x13 00000f4e: PUSH1 0x24 00000f50: DUP3 00000f51: ADD 00000f52: MSTORE 00000f53: PUSH19 0x092dcecc2d8d2c840c8c2e8c240d8cadccee8d 00000f67: PUSH1 0x6b 00000f69: SHL 00000f6a: PUSH1 0x44 00000f6c: DUP3 00000f6d: ADD 00000f6e: MSTORE 00000f6f: PUSH1 0x64 00000f71: DUP2 00000f72: REVERT 00000f73: JUMPDEST 00000f74: PUSH1 0x84 00000f76: JUMPDEST 00000f77: DUP2 00000f78: CALLDATASIZE 00000f79: DUP3 00000f7a: LT 00000f7b: AND 00000f7c: ISZERO 00000f7d: PUSH2 0x0fba 00000f80: JUMPI 00000f81: PUSH0 00000f82: MLOAD 00000f83: PUSH1 0x20 00000f85: PUSH2 0x3f4c 00000f88: PUSH0 00000f89: CODECOPY 00000f8a: PUSH0 00000f8b: MLOAD 00000f8c: SWAP1 00000f8d: PUSH0 00000f8e: MSTORE 00000f8f: DUP2 00000f90: PUSH1 0x14 00000f92: ADD 00000f93: CALLDATALOAD 00000f94: XOR 00000f95: PUSH0 00000f96: MLOAD 00000f97: PUSH1 0x20 00000f99: PUSH2 0x3f2c 00000f9c: PUSH0 00000f9d: CODECOPY 00000f9e: PUSH0 00000f9f: MLOAD 00000fa0: SWAP1 00000fa1: PUSH0 00000fa2: MSTORE 00000fa3: DUP3 00000fa4: CALLDATALOAD 00000fa5: PUSH1 0x60 00000fa7: SHR 00000fa8: XOR 00000fa9: BALANCE 00000faa: EQ 00000fab: PUSH2 0x0fb2 00000fae: JUMPI 00000faf: PUSH0 00000fb0: SWAP2 00000fb1: POP 00000fb2: JUMPDEST 00000fb3: PUSH1 0x34 00000fb5: ADD 00000fb6: PUSH2 0x0f76 00000fb9: JUMP 00000fba: JUMPDEST 00000fbb: POP 00000fbc: DUP1 00000fbd: ISZERO 00000fbe: PUSH2 0x0fd5 00000fc1: JUMPI 00000fc2: PUSH0 00000fc3: PUSH0 00000fc4: PUSH0 00000fc5: PUSH0 00000fc6: CALLVALUE 00000fc7: CALLER 00000fc8: PUSH0 00000fc9: CALL 00000fca: PUSH2 0x013d 00000fcd: JUMPI 00000fce: RETURNDATASIZE 00000fcf: PUSH0 00000fd0: PUSH0 00000fd1: RETURNDATACOPY 00000fd2: RETURNDATASIZE 00000fd3: PUSH0 00000fd4: REVERT 00000fd5: JUMPDEST 00000fd6: PUSH2 0x0fe1 00000fd9: DUP6 00000fda: DUP6 00000fdb: DUP6 00000fdc: DUP6 00000fdd: PUSH2 0x15a2 00000fe0: JUMP 00000fe1: JUMPDEST 00000fe2: POP 00000fe3: POP 00000fe4: POP 00000fe5: POP 00000fe6: POP 00000fe7: JUMP 00000fe8: JUMPDEST 00000fe9: PUSH0 00000fea: MLOAD 00000feb: PUSH1 0x20 00000fed: PUSH2 0x3f6c 00000ff0: PUSH0 00000ff1: CODECOPY 00000ff2: PUSH0 00000ff3: MLOAD 00000ff4: SWAP1 00000ff5: PUSH0 00000ff6: MSTORE 00000ff7: CALLER 00000ff8: EQ 00000ff9: DUP1 00000ffa: PUSH2 0x1011 00000ffd: JUMPI 00000ffe: POP 00000fff: CALLER 00001000: PUSH0 00001001: SWAP1 00001002: DUP2 00001003: MSTORE 00001004: PUSH1 0x20 00001006: DUP2 00001007: SWAP1 00001008: MSTORE 00001009: PUSH1 0x40 0000100b: SWAP1 0000100c: KECCAK256 0000100d: SLOAD 0000100e: PUSH1 0xff 00001010: AND 00001011: JUMPDEST 00001012: PUSH2 0x102d 00001015: JUMPI 00001016: PUSH1 0x40 00001018: MLOAD 00001019: PUSH3 0x461bcd 0000101d: PUSH1 0xe5 0000101f: SHL 00001020: DUP2 00001021: MSTORE 00001022: PUSH1 0x04 00001024: ADD 00001025: PUSH2 0x035a 00001028: SWAP1 00001029: PUSH2 0x3ce1 0000102c: JUMP 0000102d: JUMPDEST 0000102e: DUP5 0000102f: NUMBER 00001030: GT 00001031: ISZERO 00001032: PUSH2 0x104d 00001035: JUMPI 00001036: PUSH1 0x40 00001038: MLOAD 00001039: PUSH3 0x461bcd 0000103d: PUSH1 0xe5 0000103f: SHL 00001040: DUP2 00001041: MSTORE 00001042: PUSH1 0x04 00001044: ADD 00001045: PUSH2 0x035a 00001048: SWAP1 00001049: PUSH2 0x3d10 0000104c: JUMP 0000104d: JUMPDEST 0000104e: PUSH0 0000104f: PUSH0 00001050: PUSH0 00001051: PUSH1 0x01 00001053: PUSH1 0xff 00001055: SHL 00001056: DUP5 00001057: AND 00001058: PUSH0 00001059: SUB 0000105a: PUSH2 0x1250 0000105d: JUMPI 0000105e: DUP6 0000105f: PUSH1 0x01 00001061: PUSH1 0x01 00001063: PUSH1 0xa0 00001065: SHL 00001066: SUB 00001067: AND 00001068: PUSH4 0xd21220a7 0000106d: PUSH1 0x40 0000106f: MLOAD 00001070: DUP2 00001071: PUSH4 0xffffffff 00001076: AND 00001077: PUSH1 0xe0 00001079: SHL 0000107a: DUP2 0000107b: MSTORE 0000107c: PUSH1 0x04 0000107e: ADD 0000107f: PUSH1 0x20 00001081: PUSH1 0x40 00001083: MLOAD 00001084: DUP1 00001085: DUP4 00001086: SUB 00001087: DUP2 00001088: DUP7 00001089: GAS 0000108a: STATICCALL 0000108b: ISZERO 0000108c: DUP1 0000108d: ISZERO 0000108e: PUSH2 0x1099 00001091: JUMPI 00001092: RETURNDATASIZE 00001093: PUSH0 00001094: PUSH0 00001095: RETURNDATACOPY 00001096: RETURNDATASIZE 00001097: PUSH0 00001098: REVERT 00001099: JUMPDEST 0000109a: POP 0000109b: POP 0000109c: POP 0000109d: POP 0000109e: PUSH1 0x40 000010a0: MLOAD 000010a1: RETURNDATASIZE 000010a2: PUSH1 0x1f 000010a4: NOT 000010a5: PUSH1 0x1f 000010a7: DUP3 000010a8: ADD 000010a9: AND 000010aa: DUP3 000010ab: ADD 000010ac: DUP1 000010ad: PUSH1 0x40 000010af: MSTORE 000010b0: POP 000010b1: DUP2 000010b2: ADD 000010b3: SWAP1 000010b4: PUSH2 0x10bd 000010b7: SWAP2 000010b8: SWAP1 000010b9: PUSH2 0x3da1 000010bc: JUMP 000010bd: JUMPDEST 000010be: PUSH1 0x40 000010c0: MLOAD 000010c1: PUSH4 0x70a08231 000010c6: PUSH1 0xe0 000010c8: SHL 000010c9: DUP2 000010ca: MSTORE 000010cb: PUSH1 0x01 000010cd: PUSH1 0x01 000010cf: PUSH1 0xa0 000010d1: SHL 000010d2: SUB 000010d3: DUP7 000010d4: DUP2 000010d5: AND 000010d6: PUSH1 0x04 000010d8: DUP4 000010d9: ADD 000010da: MSTORE 000010db: SWAP2 000010dc: SWAP5 000010dd: POP 000010de: SWAP1 000010df: DUP5 000010e0: AND 000010e1: SWAP1 000010e2: PUSH4 0x70a08231 000010e7: SWAP1 000010e8: PUSH1 0x24 000010ea: ADD 000010eb: PUSH1 0x20 000010ed: PUSH1 0x40 000010ef: MLOAD 000010f0: DUP1 000010f1: DUP4 000010f2: SUB 000010f3: DUP2 000010f4: DUP7 000010f5: GAS 000010f6: STATICCALL 000010f7: ISZERO 000010f8: DUP1 000010f9: ISZERO 000010fa: PUSH2 0x1105 000010fd: JUMPI 000010fe: RETURNDATASIZE 000010ff: PUSH0 00001100: PUSH0 00001101: RETURNDATACOPY 00001102: RETURNDATASIZE 00001103: PUSH0 00001104: REVERT 00001105: JUMPDEST 00001106: POP 00001107: POP 00001108: POP 00001109: POP 0000110a: PUSH1 0x40 0000110c: MLOAD 0000110d: RETURNDATASIZE 0000110e: PUSH1 0x1f 00001110: NOT 00001111: PUSH1 0x1f 00001113: DUP3 00001114: ADD 00001115: AND 00001116: DUP3 00001117: ADD 00001118: DUP1 00001119: PUSH1 0x40 0000111b: MSTORE 0000111c: POP 0000111d: DUP2 0000111e: ADD 0000111f: SWAP1 00001120: PUSH2 0x1129 00001123: SWAP2 00001124: SWAP1 00001125: PUSH2 0x3ddb 00001128: JUMP 00001129: JUMPDEST 0000112a: SWAP2 0000112b: POP 0000112c: PUSH1 0x01 0000112e: PUSH1 0xfe 00001130: SHL 00001131: DUP5 00001132: AND 00001133: ISZERO 00001134: PUSH2 0x11a0 00001137: JUMPI 00001138: PUSH1 0x40 0000113a: MLOAD 0000113b: PUSH4 0x70a08231 00001140: PUSH1 0xe0 00001142: SHL 00001143: DUP2 00001144: MSTORE 00001145: ADDRESS 00001146: PUSH1 0x04 00001148: DUP3 00001149: ADD 0000114a: MSTORE 0000114b: PUSH1 0x01 0000114d: PUSH1 0x01 0000114f: PUSH1 0xa0 00001151: SHL 00001152: SUB 00001153: DUP5 00001154: AND 00001155: SWAP1 00001156: PUSH4 0x70a08231 0000115b: SWAP1 0000115c: PUSH1 0x24 0000115e: ADD 0000115f: PUSH1 0x20 00001161: PUSH1 0x40 00001163: MLOAD 00001164: DUP1 00001165: DUP4 00001166: SUB 00001167: DUP2 00001168: DUP7 00001169: GAS 0000116a: STATICCALL 0000116b: ISZERO 0000116c: DUP1 0000116d: ISZERO 0000116e: PUSH2 0x1179 00001171: JUMPI 00001172: RETURNDATASIZE 00001173: PUSH0 00001174: PUSH0 00001175: RETURNDATACOPY 00001176: RETURNDATASIZE 00001177: PUSH0 00001178: REVERT 00001179: JUMPDEST 0000117a: POP 0000117b: POP 0000117c: POP 0000117d: POP 0000117e: PUSH1 0x40 00001180: MLOAD 00001181: RETURNDATASIZE 00001182: PUSH1 0x1f 00001184: NOT 00001185: PUSH1 0x1f 00001187: DUP3 00001188: ADD 00001189: AND 0000118a: DUP3 0000118b: ADD 0000118c: DUP1 0000118d: PUSH1 0x40 0000118f: MSTORE 00001190: POP 00001191: DUP2 00001192: ADD 00001193: SWAP1 00001194: PUSH2 0x119d 00001197: SWAP2 00001198: SWAP1 00001199: PUSH2 0x3ddb 0000119c: JUMP 0000119d: JUMPDEST 0000119e: SWAP1 0000119f: POP 000011a0: JUMPDEST 000011a1: DUP6 000011a2: PUSH1 0x01 000011a4: PUSH1 0x01 000011a6: PUSH1 0xa0 000011a8: SHL 000011a9: SUB 000011aa: AND 000011ab: PUSH4 0x128acb08 000011b0: PUSH0 000011b1: PUSH1 0x01 000011b3: PUSH1 0xfe 000011b5: SHL 000011b6: DUP8 000011b7: AND 000011b8: GT 000011b9: PUSH2 0x11c2 000011bc: JUMPI 000011bd: DUP6 000011be: PUSH2 0x11c4 000011c1: JUMP 000011c2: JUMPDEST 000011c3: ADDRESS 000011c4: JUMPDEST 000011c5: PUSH1 0x40 000011c7: DUP1 000011c8: MLOAD 000011c9: ADDRESS 000011ca: PUSH1 0x20 000011cc: DUP3 000011cd: ADD 000011ce: MSTORE 000011cf: PUSH1 0x01 000011d1: SWAP2 000011d2: DUP13 000011d3: SWAP2 000011d4: PUSH5 0x01000276a4 000011da: SWAP2 000011db: ADD 000011dc: PUSH1 0x40 000011de: MLOAD 000011df: PUSH1 0x20 000011e1: DUP2 000011e2: DUP4 000011e3: SUB 000011e4: SUB 000011e5: DUP2 000011e6: MSTORE 000011e7: SWAP1 000011e8: PUSH1 0x40 000011ea: MSTORE 000011eb: PUSH1 0x40 000011ed: MLOAD 000011ee: DUP7 000011ef: PUSH4 0xffffffff 000011f4: AND 000011f5: PUSH1 0xe0 000011f7: SHL 000011f8: DUP2 000011f9: MSTORE 000011fa: PUSH1 0x04 000011fc: ADD 000011fd: PUSH2 0x120a 00001200: SWAP6 00001201: SWAP5 00001202: SWAP4 00001203: SWAP3 00001204: SWAP2 00001205: SWAP1 00001206: PUSH2 0x3e77 00001209: JUMP 0000120a: JUMPDEST 0000120b: PUSH1 0x40 0000120d: DUP1 0000120e: MLOAD 0000120f: DUP1 00001210: DUP4 00001211: SUB 00001212: DUP2 00001213: PUSH0 00001214: DUP8 00001215: GAS 00001216: CALL 00001217: ISZERO 00001218: DUP1 00001219: ISZERO 0000121a: PUSH2 0x1225 0000121d: JUMPI 0000121e: RETURNDATASIZE 0000121f: PUSH0 00001220: PUSH0 00001221: RETURNDATACOPY 00001222: RETURNDATASIZE 00001223: PUSH0 00001224: REVERT 00001225: JUMPDEST 00001226: POP 00001227: POP 00001228: POP 00001229: POP 0000122a: PUSH1 0x40 0000122c: MLOAD 0000122d: RETURNDATASIZE 0000122e: PUSH1 0x1f 00001230: NOT 00001231: PUSH1 0x1f 00001233: DUP3 00001234: ADD 00001235: AND 00001236: DUP3 00001237: ADD 00001238: DUP1 00001239: PUSH1 0x40 0000123b: MSTORE 0000123c: POP 0000123d: DUP2 0000123e: ADD 0000123f: SWAP1 00001240: PUSH2 0x1249 00001243: SWAP2 00001244: SWAP1 00001245: PUSH2 0x3eb1 00001248: JUMP 00001249: JUMPDEST 0000124a: POP 0000124b: POP 0000124c: PUSH2 0x144d 0000124f: JUMP 00001250: JUMPDEST 00001251: DUP6 00001252: PUSH1 0x01 00001254: PUSH1 0x01 00001256: PUSH1 0xa0 00001258: SHL 00001259: SUB 0000125a: AND 0000125b: PUSH4 0x0dfe1681 00001260: PUSH1 0x40 00001262: MLOAD 00001263: DUP2 00001264: PUSH4 0xffffffff 00001269: AND 0000126a: PUSH1 0xe0 0000126c: SHL 0000126d: DUP2 0000126e: MSTORE 0000126f: PUSH1 0x04 00001271: ADD 00001272: PUSH1 0x20 00001274: PUSH1 0x40 00001276: MLOAD 00001277: DUP1 00001278: DUP4 00001279: SUB 0000127a: DUP2 0000127b: DUP7 0000127c: GAS 0000127d: STATICCALL 0000127e: ISZERO 0000127f: DUP1 00001280: ISZERO 00001281: PUSH2 0x128c 00001284: JUMPI 00001285: RETURNDATASIZE 00001286: PUSH0 00001287: PUSH0 00001288: RETURNDATACOPY 00001289: RETURNDATASIZE 0000128a: PUSH0 0000128b: REVERT 0000128c: JUMPDEST 0000128d: POP 0000128e: POP 0000128f: POP 00001290: POP 00001291: PUSH1 0x40 00001293: MLOAD 00001294: RETURNDATASIZE 00001295: PUSH1 0x1f 00001297: NOT 00001298: PUSH1 0x1f 0000129a: DUP3 0000129b: ADD 0000129c: AND 0000129d: DUP3 0000129e: ADD 0000129f: DUP1 000012a0: PUSH1 0x40 000012a2: MSTORE 000012a3: POP 000012a4: DUP2 000012a5: ADD 000012a6: SWAP1 000012a7: PUSH2 0x12b0 000012aa: SWAP2 000012ab: SWAP1 000012ac: PUSH2 0x3da1 000012af: JUMP 000012b0: JUMPDEST 000012b1: PUSH1 0x40 000012b3: MLOAD 000012b4: PUSH4 0x70a08231 000012b9: PUSH1 0xe0 000012bb: SHL 000012bc: DUP2 000012bd: MSTORE 000012be: PUSH1 0x01 000012c0: PUSH1 0x01 000012c2: PUSH1 0xa0 000012c4: SHL 000012c5: SUB 000012c6: DUP7 000012c7: DUP2 000012c8: AND 000012c9: PUSH1 0x04 000012cb: DUP4 000012cc: ADD 000012cd: MSTORE 000012ce: SWAP2 000012cf: SWAP5 000012d0: POP 000012d1: SWAP1 000012d2: DUP5 000012d3: AND 000012d4: SWAP1 000012d5: PUSH4 0x70a08231 000012da: SWAP1 000012db: PUSH1 0x24 000012dd: ADD 000012de: PUSH1 0x20 000012e0: PUSH1 0x40 000012e2: MLOAD 000012e3: DUP1 000012e4: DUP4 000012e5: SUB 000012e6: DUP2 000012e7: DUP7 000012e8: GAS 000012e9: STATICCALL 000012ea: ISZERO 000012eb: DUP1 000012ec: ISZERO 000012ed: PUSH2 0x12f8 000012f0: JUMPI 000012f1: RETURNDATASIZE 000012f2: PUSH0 000012f3: PUSH0 000012f4: RETURNDATACOPY 000012f5: RETURNDATASIZE 000012f6: PUSH0 000012f7: REVERT 000012f8: JUMPDEST 000012f9: POP 000012fa: POP 000012fb: POP 000012fc: POP 000012fd: PUSH1 0x40 000012ff: MLOAD 00001300: RETURNDATASIZE 00001301: PUSH1 0x1f 00001303: NOT 00001304: PUSH1 0x1f 00001306: DUP3 00001307: ADD 00001308: AND 00001309: DUP3 0000130a: ADD 0000130b: DUP1 0000130c: PUSH1 0x40 0000130e: MSTORE 0000130f: POP 00001310: DUP2 00001311: ADD 00001312: SWAP1 00001313: PUSH2 0x131c 00001316: SWAP2 00001317: SWAP1 00001318: PUSH2 0x3ddb 0000131b: JUMP 0000131c: JUMPDEST 0000131d: SWAP2 0000131e: POP 0000131f: PUSH1 0x01 00001321: PUSH1 0xfe 00001323: SHL 00001324: DUP5 00001325: AND 00001326: ISZERO 00001327: PUSH2 0x1393 0000132a: JUMPI 0000132b: PUSH1 0x40 0000132d: MLOAD 0000132e: PUSH4 0x70a08231 00001333: PUSH1 0xe0 00001335: SHL 00001336: DUP2 00001337: MSTORE 00001338: ADDRESS 00001339: PUSH1 0x04 0000133b: DUP3 0000133c: ADD 0000133d: MSTORE 0000133e: PUSH1 0x01 00001340: PUSH1 0x01 00001342: PUSH1 0xa0 00001344: SHL 00001345: SUB 00001346: DUP5 00001347: AND 00001348: SWAP1 00001349: PUSH4 0x70a08231 0000134e: SWAP1 0000134f: PUSH1 0x24 00001351: ADD 00001352: PUSH1 0x20 00001354: PUSH1 0x40 00001356: MLOAD 00001357: DUP1 00001358: DUP4 00001359: SUB 0000135a: DUP2 0000135b: DUP7 0000135c: GAS 0000135d: STATICCALL 0000135e: ISZERO 0000135f: DUP1 00001360: ISZERO 00001361: PUSH2 0x136c 00001364: JUMPI 00001365: RETURNDATASIZE 00001366: PUSH0 00001367: PUSH0 00001368: RETURNDATACOPY 00001369: RETURNDATASIZE 0000136a: PUSH0 0000136b: REVERT 0000136c: JUMPDEST 0000136d: POP 0000136e: POP 0000136f: POP 00001370: POP 00001371: PUSH1 0x40 00001373: MLOAD 00001374: RETURNDATASIZE 00001375: PUSH1 0x1f 00001377: NOT 00001378: PUSH1 0x1f 0000137a: DUP3 0000137b: ADD 0000137c: AND 0000137d: DUP3 0000137e: ADD 0000137f: DUP1 00001380: PUSH1 0x40 00001382: MSTORE 00001383: POP 00001384: DUP2 00001385: ADD 00001386: SWAP1 00001387: PUSH2 0x1390 0000138a: SWAP2 0000138b: SWAP1 0000138c: PUSH2 0x3ddb 0000138f: JUMP 00001390: JUMPDEST 00001391: SWAP1 00001392: POP 00001393: JUMPDEST 00001394: DUP6 00001395: PUSH1 0x01 00001397: PUSH1 0x01 00001399: PUSH1 0xa0 0000139b: SHL 0000139c: SUB 0000139d: AND 0000139e: PUSH4 0x128acb08 000013a3: PUSH0 000013a4: PUSH1 0x01 000013a6: PUSH1 0xfe 000013a8: SHL 000013a9: DUP8 000013aa: AND 000013ab: GT 000013ac: PUSH2 0x13b5 000013af: JUMPI 000013b0: DUP6 000013b1: PUSH2 0x13b7 000013b4: JUMP 000013b5: JUMPDEST 000013b6: ADDRESS 000013b7: JUMPDEST 000013b8: PUSH1 0x40 000013ba: DUP1 000013bb: MLOAD 000013bc: ADDRESS 000013bd: PUSH1 0x20 000013bf: DUP3 000013c0: ADD 000013c1: MSTORE 000013c2: PUSH0 000013c3: SWAP2 000013c4: DUP13 000013c5: SWAP2 000013c6: PUSH20 0xfffd8963efd1fc6a506488495d951d5263988d25 000013db: SWAP2 000013dc: ADD 000013dd: PUSH1 0x40 000013df: MLOAD 000013e0: PUSH1 0x20 000013e2: DUP2 000013e3: DUP4 000013e4: SUB 000013e5: SUB 000013e6: DUP2 000013e7: MSTORE 000013e8: SWAP1 000013e9: PUSH1 0x40 000013eb: MSTORE 000013ec: PUSH1 0x40 000013ee: MLOAD 000013ef: DUP7 000013f0: PUSH4 0xffffffff 000013f5: AND 000013f6: PUSH1 0xe0 000013f8: SHL 000013f9: DUP2 000013fa: MSTORE 000013fb: PUSH1 0x04 000013fd: ADD 000013fe: PUSH2 0x140b 00001401: SWAP6 00001402: SWAP5 00001403: SWAP4 00001404: SWAP3 00001405: SWAP2 00001406: SWAP1 00001407: PUSH2 0x3e77 0000140a: JUMP 0000140b: JUMPDEST 0000140c: PUSH1 0x40 0000140e: DUP1 0000140f: MLOAD 00001410: DUP1 00001411: DUP4 00001412: SUB 00001413: DUP2 00001414: PUSH0 00001415: DUP8 00001416: GAS 00001417: CALL 00001418: ISZERO 00001419: DUP1 0000141a: ISZERO 0000141b: PUSH2 0x1426 0000141e: JUMPI 0000141f: RETURNDATASIZE 00001420: PUSH0 00001421: PUSH0 00001422: RETURNDATACOPY 00001423: RETURNDATASIZE 00001424: PUSH0 00001425: REVERT 00001426: JUMPDEST 00001427: POP 00001428: POP 00001429: POP 0000142a: POP 0000142b: PUSH1 0x40 0000142d: MLOAD 0000142e: RETURNDATASIZE 0000142f: PUSH1 0x1f 00001431: NOT 00001432: PUSH1 0x1f 00001434: DUP3 00001435: ADD 00001436: AND 00001437: DUP3 00001438: ADD 00001439: DUP1 0000143a: PUSH1 0x40 0000143c: MSTORE 0000143d: POP 0000143e: DUP2 0000143f: ADD 00001440: SWAP1 00001441: PUSH2 0x144a 00001444: SWAP2 00001445: SWAP1 00001446: PUSH2 0x3eb1 00001449: JUMP 0000144a: JUMPDEST 0000144b: POP 0000144c: POP 0000144d: JUMPDEST 0000144e: PUSH1 0x01 00001450: PUSH1 0xfe 00001452: SHL 00001453: DUP5 00001454: AND 00001455: ISZERO 00001456: PUSH2 0x1504 00001459: JUMPI 0000145a: PUSH1 0x40 0000145c: MLOAD 0000145d: PUSH4 0x70a08231 00001462: PUSH1 0xe0 00001464: SHL 00001465: DUP2 00001466: MSTORE 00001467: ADDRESS 00001468: PUSH1 0x04 0000146a: DUP3 0000146b: ADD 0000146c: MSTORE 0000146d: PUSH0 0000146e: SWAP1 0000146f: PUSH1 0x01 00001471: PUSH1 0x01 00001473: PUSH1 0xa0 00001475: SHL 00001476: SUB 00001477: DUP6 00001478: AND 00001479: SWAP1 0000147a: PUSH4 0x70a08231 0000147f: SWAP1 00001480: PUSH1 0x24 00001482: ADD 00001483: PUSH1 0x20 00001485: PUSH1 0x40 00001487: MLOAD 00001488: DUP1 00001489: DUP4 0000148a: SUB 0000148b: DUP2 0000148c: DUP7 0000148d: GAS 0000148e: STATICCALL 0000148f: ISZERO 00001490: DUP1 00001491: ISZERO 00001492: PUSH2 0x149d 00001495: JUMPI 00001496: RETURNDATASIZE 00001497: PUSH0 00001498: PUSH0 00001499: RETURNDATACOPY 0000149a: RETURNDATASIZE 0000149b: PUSH0 0000149c: REVERT 0000149d: JUMPDEST 0000149e: POP 0000149f: POP 000014a0: POP 000014a1: POP 000014a2: PUSH1 0x40 000014a4: MLOAD 000014a5: RETURNDATASIZE 000014a6: PUSH1 0x1f 000014a8: NOT 000014a9: PUSH1 0x1f 000014ab: DUP3 000014ac: ADD 000014ad: AND 000014ae: DUP3 000014af: ADD 000014b0: DUP1 000014b1: PUSH1 0x40 000014b3: MSTORE 000014b4: POP 000014b5: DUP2 000014b6: ADD 000014b7: SWAP1 000014b8: PUSH2 0x14c1 000014bb: SWAP2 000014bc: SWAP1 000014bd: PUSH2 0x3ddb 000014c0: JUMP 000014c1: JUMPDEST 000014c2: SWAP1 000014c3: POP 000014c4: DUP2 000014c5: PUSH0 000014c6: SUB 000014c7: PUSH2 0x14f3 000014ca: JUMPI 000014cb: PUSH2 0x14da 000014ce: DUP5 000014cf: DUP7 000014d0: PUSH2 0x0138 000014d3: PUSH1 0x01 000014d5: DUP6 000014d6: PUSH2 0x3e33 000014d9: JUMP 000014da: JUMPDEST 000014db: DUP6 000014dc: ISZERO 000014dd: PUSH2 0x14ee 000014e0: JUMPI 000014e1: PUSH2 0x14eb 000014e4: PUSH1 0x01 000014e6: DUP8 000014e7: PUSH2 0x3e33 000014ea: JUMP 000014eb: JUMPDEST 000014ec: SWAP6 000014ed: POP 000014ee: JUMPDEST 000014ef: PUSH2 0x1502 000014f2: JUMP 000014f3: JUMPDEST 000014f4: PUSH2 0x1502 000014f7: DUP5 000014f8: DUP7 000014f9: PUSH2 0x0138 000014fc: DUP6 000014fd: DUP6 000014fe: PUSH2 0x3e33 00001501: JUMP 00001502: JUMPDEST 00001503: POP 00001504: JUMPDEST 00001505: PUSH1 0x40 00001507: MLOAD 00001508: PUSH4 0x70a08231 0000150d: PUSH1 0xe0 0000150f: SHL 00001510: DUP2 00001511: MSTORE 00001512: PUSH1 0x01 00001514: PUSH1 0x01 00001516: PUSH1 0xa0 00001518: SHL 00001519: SUB 0000151a: DUP6 0000151b: DUP2 0000151c: AND 0000151d: PUSH1 0x04 0000151f: DUP4 00001520: ADD 00001521: MSTORE 00001522: DUP7 00001523: SWAP2 00001524: DUP5 00001525: SWAP2 00001526: DUP7 00001527: AND 00001528: SWAP1 00001529: PUSH4 0x70a08231 0000152e: SWAP1 0000152f: PUSH1 0x24 00001531: ADD 00001532: PUSH1 0x20 00001534: PUSH1 0x40 00001536: MLOAD 00001537: DUP1 00001538: DUP4 00001539: SUB 0000153a: DUP2 0000153b: DUP7 0000153c: GAS 0000153d: STATICCALL 0000153e: ISZERO 0000153f: DUP1 00001540: ISZERO 00001541: PUSH2 0x154c 00001544: JUMPI 00001545: RETURNDATASIZE 00001546: PUSH0 00001547: PUSH0 00001548: RETURNDATACOPY 00001549: RETURNDATASIZE 0000154a: PUSH0 0000154b: REVERT 0000154c: JUMPDEST 0000154d: POP 0000154e: POP 0000154f: POP 00001550: POP 00001551: PUSH1 0x40 00001553: MLOAD 00001554: RETURNDATASIZE 00001555: PUSH1 0x1f 00001557: NOT 00001558: PUSH1 0x1f 0000155a: DUP3 0000155b: ADD 0000155c: AND 0000155d: DUP3 0000155e: ADD 0000155f: DUP1 00001560: PUSH1 0x40 00001562: MSTORE 00001563: POP 00001564: DUP2 00001565: ADD 00001566: SWAP1 00001567: PUSH2 0x1570 0000156a: SWAP2 0000156b: SWAP1 0000156c: PUSH2 0x3ddb 0000156f: JUMP 00001570: JUMPDEST 00001571: PUSH2 0x157a 00001574: SWAP2 00001575: SWAP1 00001576: PUSH2 0x3e33 00001579: JUMP 0000157a: JUMPDEST 0000157b: LT 0000157c: ISZERO 0000157d: PUSH2 0x1598 00001580: JUMPI 00001581: PUSH1 0x40 00001583: MLOAD 00001584: PUSH3 0x461bcd 00001588: PUSH1 0xe5 0000158a: SHL 0000158b: DUP2 0000158c: MSTORE 0000158d: PUSH1 0x04 0000158f: ADD 00001590: PUSH2 0x035a 00001593: SWAP1 00001594: PUSH2 0x3e4c 00001597: JUMP 00001598: JUMPDEST 00001599: POP 0000159a: POP 0000159b: POP 0000159c: POP 0000159d: POP 0000159e: POP 0000159f: POP 000015a0: POP 000015a1: JUMP 000015a2: JUMPDEST 000015a3: PUSH0 000015a4: MLOAD 000015a5: PUSH1 0x20 000015a7: PUSH2 0x3f6c 000015aa: PUSH0 000015ab: CODECOPY 000015ac: PUSH0 000015ad: MLOAD 000015ae: SWAP1 000015af: PUSH0 000015b0: MSTORE 000015b1: CALLER 000015b2: EQ 000015b3: DUP1 000015b4: PUSH2 0x15cb 000015b7: JUMPI 000015b8: POP 000015b9: CALLER 000015ba: PUSH0 000015bb: SWAP1 000015bc: DUP2 000015bd: MSTORE 000015be: PUSH1 0x20 000015c0: DUP2 000015c1: SWAP1 000015c2: MSTORE 000015c3: PUSH1 0x40 000015c5: SWAP1 000015c6: KECCAK256 000015c7: SLOAD 000015c8: PUSH1 0xff 000015ca: AND 000015cb: JUMPDEST 000015cc: PUSH2 0x15e7 000015cf: JUMPI 000015d0: PUSH1 0x40 000015d2: MLOAD 000015d3: PUSH3 0x461bcd 000015d7: PUSH1 0xe5 000015d9: SHL 000015da: DUP2 000015db: MSTORE 000015dc: PUSH1 0x04 000015de: ADD 000015df: PUSH2 0x035a 000015e2: SWAP1 000015e3: PUSH2 0x3ce1 000015e6: JUMP 000015e7: JUMPDEST 000015e8: DUP4 000015e9: NUMBER 000015ea: GT 000015eb: ISZERO 000015ec: PUSH2 0x1607 000015ef: JUMPI 000015f0: PUSH1 0x40 000015f2: MLOAD 000015f3: PUSH3 0x461bcd 000015f7: PUSH1 0xe5 000015f9: SHL 000015fa: DUP2 000015fb: MSTORE 000015fc: PUSH1 0x04 000015fe: ADD 000015ff: PUSH2 0x035a 00001602: SWAP1 00001603: PUSH2 0x3d10 00001606: JUMP 00001607: JUMPDEST 00001608: PUSH1 0x40 0000160a: MLOAD 0000160b: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001620: SWAP1 00001621: CALLVALUE 00001622: SWAP1 00001623: PUSH0 00001624: DUP2 00001625: DUP2 00001626: DUP2 00001627: DUP6 00001628: DUP8 00001629: GAS 0000162a: CALL 0000162b: SWAP3 0000162c: POP 0000162d: POP 0000162e: POP 0000162f: RETURNDATASIZE 00001630: DUP1 00001631: PUSH0 00001632: DUP2 00001633: EQ 00001634: PUSH2 0x1658 00001637: JUMPI 00001638: PUSH1 0x40 0000163a: MLOAD 0000163b: SWAP2 0000163c: POP 0000163d: PUSH1 0x1f 0000163f: NOT 00001640: PUSH1 0x3f 00001642: RETURNDATASIZE 00001643: ADD 00001644: AND 00001645: DUP3 00001646: ADD 00001647: PUSH1 0x40 00001649: MSTORE 0000164a: RETURNDATASIZE 0000164b: DUP3 0000164c: MSTORE 0000164d: RETURNDATASIZE 0000164e: PUSH0 0000164f: PUSH1 0x20 00001651: DUP5 00001652: ADD 00001653: RETURNDATACOPY 00001654: PUSH2 0x165d 00001657: JUMP 00001658: JUMPDEST 00001659: PUSH1 0x60 0000165b: SWAP2 0000165c: POP 0000165d: JUMPDEST 0000165e: POP 0000165f: POP 00001660: POP 00001661: PUSH0 00001662: PUSH0 00001663: PUSH0 00001664: PUSH1 0x01 00001666: PUSH1 0xff 00001668: SHL 00001669: DUP5 0000166a: AND 0000166b: PUSH0 0000166c: SUB 0000166d: PUSH2 0x1869 00001670: JUMPI 00001671: DUP6 00001672: PUSH1 0x01 00001674: PUSH1 0x01 00001676: PUSH1 0xa0 00001678: SHL 00001679: SUB 0000167a: AND 0000167b: PUSH4 0xd21220a7 00001680: PUSH1 0x40 00001682: MLOAD 00001683: DUP2 00001684: PUSH4 0xffffffff 00001689: AND 0000168a: PUSH1 0xe0 0000168c: SHL 0000168d: DUP2 0000168e: MSTORE 0000168f: PUSH1 0x04 00001691: ADD 00001692: PUSH1 0x20 00001694: PUSH1 0x40 00001696: MLOAD 00001697: DUP1 00001698: DUP4 00001699: SUB 0000169a: DUP2 0000169b: DUP7 0000169c: GAS 0000169d: STATICCALL 0000169e: ISZERO 0000169f: DUP1 000016a0: ISZERO 000016a1: PUSH2 0x16ac 000016a4: JUMPI 000016a5: RETURNDATASIZE 000016a6: PUSH0 000016a7: PUSH0 000016a8: RETURNDATACOPY 000016a9: RETURNDATASIZE 000016aa: PUSH0 000016ab: REVERT 000016ac: JUMPDEST 000016ad: POP 000016ae: POP 000016af: POP 000016b0: POP 000016b1: PUSH1 0x40 000016b3: MLOAD 000016b4: RETURNDATASIZE 000016b5: PUSH1 0x1f 000016b7: NOT 000016b8: PUSH1 0x1f 000016ba: DUP3 000016bb: ADD 000016bc: AND 000016bd: DUP3 000016be: ADD 000016bf: DUP1 000016c0: PUSH1 0x40 000016c2: MSTORE 000016c3: POP 000016c4: DUP2 000016c5: ADD 000016c6: SWAP1 000016c7: PUSH2 0x16d0 000016ca: SWAP2 000016cb: SWAP1 000016cc: PUSH2 0x3da1 000016cf: JUMP 000016d0: JUMPDEST 000016d1: PUSH1 0x40 000016d3: MLOAD 000016d4: PUSH4 0x70a08231 000016d9: PUSH1 0xe0 000016db: SHL 000016dc: DUP2 000016dd: MSTORE 000016de: PUSH1 0x01 000016e0: PUSH1 0x01 000016e2: PUSH1 0xa0 000016e4: SHL 000016e5: SUB 000016e6: DUP7 000016e7: DUP2 000016e8: AND 000016e9: PUSH1 0x04 000016eb: DUP4 000016ec: ADD 000016ed: MSTORE 000016ee: SWAP2 000016ef: SWAP5 000016f0: POP 000016f1: SWAP1 000016f2: DUP5 000016f3: AND 000016f4: SWAP1 000016f5: PUSH4 0x70a08231 000016fa: SWAP1 000016fb: PUSH1 0x24 000016fd: ADD 000016fe: PUSH1 0x20 00001700: PUSH1 0x40 00001702: MLOAD 00001703: DUP1 00001704: DUP4 00001705: SUB 00001706: DUP2 00001707: DUP7 00001708: GAS 00001709: STATICCALL 0000170a: ISZERO 0000170b: DUP1 0000170c: ISZERO 0000170d: PUSH2 0x1718 00001710: JUMPI 00001711: RETURNDATASIZE 00001712: PUSH0 00001713: PUSH0 00001714: RETURNDATACOPY 00001715: RETURNDATASIZE 00001716: PUSH0 00001717: REVERT 00001718: JUMPDEST 00001719: POP 0000171a: POP 0000171b: POP 0000171c: POP 0000171d: PUSH1 0x40 0000171f: MLOAD 00001720: RETURNDATASIZE 00001721: PUSH1 0x1f 00001723: NOT 00001724: PUSH1 0x1f 00001726: DUP3 00001727: ADD 00001728: AND 00001729: DUP3 0000172a: ADD 0000172b: DUP1 0000172c: PUSH1 0x40 0000172e: MSTORE 0000172f: POP 00001730: DUP2 00001731: ADD 00001732: SWAP1 00001733: PUSH2 0x173c 00001736: SWAP2 00001737: SWAP1 00001738: PUSH2 0x3ddb 0000173b: JUMP 0000173c: JUMPDEST 0000173d: SWAP2 0000173e: POP 0000173f: PUSH1 0x01 00001741: PUSH1 0xfe 00001743: SHL 00001744: DUP5 00001745: AND 00001746: ISZERO 00001747: PUSH2 0x17b3 0000174a: JUMPI 0000174b: PUSH1 0x40 0000174d: MLOAD 0000174e: PUSH4 0x70a08231 00001753: PUSH1 0xe0 00001755: SHL 00001756: DUP2 00001757: MSTORE 00001758: ADDRESS 00001759: PUSH1 0x04 0000175b: DUP3 0000175c: ADD 0000175d: MSTORE 0000175e: PUSH1 0x01 00001760: PUSH1 0x01 00001762: PUSH1 0xa0 00001764: SHL 00001765: SUB 00001766: DUP5 00001767: AND 00001768: SWAP1 00001769: PUSH4 0x70a08231 0000176e: SWAP1 0000176f: PUSH1 0x24 00001771: ADD 00001772: PUSH1 0x20 00001774: PUSH1 0x40 00001776: MLOAD 00001777: DUP1 00001778: DUP4 00001779: SUB 0000177a: DUP2 0000177b: DUP7 0000177c: GAS 0000177d: STATICCALL 0000177e: ISZERO 0000177f: DUP1 00001780: ISZERO 00001781: PUSH2 0x178c 00001784: JUMPI 00001785: RETURNDATASIZE 00001786: PUSH0 00001787: PUSH0 00001788: RETURNDATACOPY 00001789: RETURNDATASIZE 0000178a: PUSH0 0000178b: REVERT 0000178c: JUMPDEST 0000178d: POP 0000178e: POP 0000178f: POP 00001790: POP 00001791: PUSH1 0x40 00001793: MLOAD 00001794: RETURNDATASIZE 00001795: PUSH1 0x1f 00001797: NOT 00001798: PUSH1 0x1f 0000179a: DUP3 0000179b: ADD 0000179c: AND 0000179d: DUP3 0000179e: ADD 0000179f: DUP1 000017a0: PUSH1 0x40 000017a2: MSTORE 000017a3: POP 000017a4: DUP2 000017a5: ADD 000017a6: SWAP1 000017a7: PUSH2 0x17b0 000017aa: SWAP2 000017ab: SWAP1 000017ac: PUSH2 0x3ddb 000017af: JUMP 000017b0: JUMPDEST 000017b1: SWAP1 000017b2: POP 000017b3: JUMPDEST 000017b4: DUP6 000017b5: PUSH1 0x01 000017b7: PUSH1 0x01 000017b9: PUSH1 0xa0 000017bb: SHL 000017bc: SUB 000017bd: AND 000017be: PUSH4 0x128acb08 000017c3: PUSH0 000017c4: PUSH1 0x01 000017c6: PUSH1 0xfe 000017c8: SHL 000017c9: DUP8 000017ca: AND 000017cb: GT 000017cc: PUSH2 0x17d5 000017cf: JUMPI 000017d0: DUP6 000017d1: PUSH2 0x17d7 000017d4: JUMP 000017d5: JUMPDEST 000017d6: ADDRESS 000017d7: JUMPDEST 000017d8: PUSH1 0x01 000017da: PUSH2 0x17e2 000017dd: CALLVALUE 000017de: PUSH2 0x39d7 000017e1: JUMP 000017e2: JUMPDEST 000017e3: PUSH1 0x40 000017e5: DUP1 000017e6: MLOAD 000017e7: ADDRESS 000017e8: PUSH1 0x20 000017ea: DUP3 000017eb: ADD 000017ec: MSTORE 000017ed: PUSH5 0x01000276a4 000017f3: SWAP2 000017f4: ADD 000017f5: PUSH1 0x40 000017f7: MLOAD 000017f8: PUSH1 0x20 000017fa: DUP2 000017fb: DUP4 000017fc: SUB 000017fd: SUB 000017fe: DUP2 000017ff: MSTORE 00001800: SWAP1 00001801: PUSH1 0x40 00001803: MSTORE 00001804: PUSH1 0x40 00001806: MLOAD 00001807: DUP7 00001808: PUSH4 0xffffffff 0000180d: AND 0000180e: PUSH1 0xe0 00001810: SHL 00001811: DUP2 00001812: MSTORE 00001813: PUSH1 0x04 00001815: ADD 00001816: PUSH2 0x1823 00001819: SWAP6 0000181a: SWAP5 0000181b: SWAP4 0000181c: SWAP3 0000181d: SWAP2 0000181e: SWAP1 0000181f: PUSH2 0x3e77 00001822: JUMP 00001823: JUMPDEST 00001824: PUSH1 0x40 00001826: DUP1 00001827: MLOAD 00001828: DUP1 00001829: DUP4 0000182a: SUB 0000182b: DUP2 0000182c: PUSH0 0000182d: DUP8 0000182e: GAS 0000182f: CALL 00001830: ISZERO 00001831: DUP1 00001832: ISZERO 00001833: PUSH2 0x183e 00001836: JUMPI 00001837: RETURNDATASIZE 00001838: PUSH0 00001839: PUSH0 0000183a: RETURNDATACOPY 0000183b: RETURNDATASIZE 0000183c: PUSH0 0000183d: REVERT 0000183e: JUMPDEST 0000183f: POP 00001840: POP 00001841: POP 00001842: POP 00001843: PUSH1 0x40 00001845: MLOAD 00001846: RETURNDATASIZE 00001847: PUSH1 0x1f 00001849: NOT 0000184a: PUSH1 0x1f 0000184c: DUP3 0000184d: ADD 0000184e: AND 0000184f: DUP3 00001850: ADD 00001851: DUP1 00001852: PUSH1 0x40 00001854: MSTORE 00001855: POP 00001856: DUP2 00001857: ADD 00001858: SWAP1 00001859: PUSH2 0x1862 0000185c: SWAP2 0000185d: SWAP1 0000185e: PUSH2 0x3eb1 00001861: JUMP 00001862: JUMPDEST 00001863: POP 00001864: POP 00001865: PUSH2 0x1a6c 00001868: JUMP 00001869: JUMPDEST 0000186a: DUP6 0000186b: PUSH1 0x01 0000186d: PUSH1 0x01 0000186f: PUSH1 0xa0 00001871: SHL 00001872: SUB 00001873: AND 00001874: PUSH4 0x0dfe1681 00001879: PUSH1 0x40 0000187b: MLOAD 0000187c: DUP2 0000187d: PUSH4 0xffffffff 00001882: AND 00001883: PUSH1 0xe0 00001885: SHL 00001886: DUP2 00001887: MSTORE 00001888: PUSH1 0x04 0000188a: ADD 0000188b: PUSH1 0x20 0000188d: PUSH1 0x40 0000188f: MLOAD 00001890: DUP1 00001891: DUP4 00001892: SUB 00001893: DUP2 00001894: DUP7 00001895: GAS 00001896: STATICCALL 00001897: ISZERO 00001898: DUP1 00001899: ISZERO 0000189a: PUSH2 0x18a5 0000189d: JUMPI 0000189e: RETURNDATASIZE 0000189f: PUSH0 000018a0: PUSH0 000018a1: RETURNDATACOPY 000018a2: RETURNDATASIZE 000018a3: PUSH0 000018a4: REVERT 000018a5: JUMPDEST 000018a6: POP 000018a7: POP 000018a8: POP 000018a9: POP 000018aa: PUSH1 0x40 000018ac: MLOAD 000018ad: RETURNDATASIZE 000018ae: PUSH1 0x1f 000018b0: NOT 000018b1: PUSH1 0x1f 000018b3: DUP3 000018b4: ADD 000018b5: AND 000018b6: DUP3 000018b7: ADD 000018b8: DUP1 000018b9: PUSH1 0x40 000018bb: MSTORE 000018bc: POP 000018bd: DUP2 000018be: ADD 000018bf: SWAP1 000018c0: PUSH2 0x18c9 000018c3: SWAP2 000018c4: SWAP1 000018c5: PUSH2 0x3da1 000018c8: JUMP 000018c9: JUMPDEST 000018ca: PUSH1 0x40 000018cc: MLOAD 000018cd: PUSH4 0x70a08231 000018d2: PUSH1 0xe0 000018d4: SHL 000018d5: DUP2 000018d6: MSTORE 000018d7: PUSH1 0x01 000018d9: PUSH1 0x01 000018db: PUSH1 0xa0 000018dd: SHL 000018de: SUB 000018df: DUP7 000018e0: DUP2 000018e1: AND 000018e2: PUSH1 0x04 000018e4: DUP4 000018e5: ADD 000018e6: MSTORE 000018e7: SWAP2 000018e8: SWAP5 000018e9: POP 000018ea: SWAP1 000018eb: DUP5 000018ec: AND 000018ed: SWAP1 000018ee: PUSH4 0x70a08231 000018f3: SWAP1 000018f4: PUSH1 0x24 000018f6: ADD 000018f7: PUSH1 0x20 000018f9: PUSH1 0x40 000018fb: MLOAD 000018fc: DUP1 000018fd: DUP4 000018fe: SUB 000018ff: DUP2 00001900: DUP7 00001901: GAS 00001902: STATICCALL 00001903: ISZERO 00001904: DUP1 00001905: ISZERO 00001906: PUSH2 0x1911 00001909: JUMPI 0000190a: RETURNDATASIZE 0000190b: PUSH0 0000190c: PUSH0 0000190d: RETURNDATACOPY 0000190e: RETURNDATASIZE 0000190f: PUSH0 00001910: REVERT 00001911: JUMPDEST 00001912: POP 00001913: POP 00001914: POP 00001915: POP 00001916: PUSH1 0x40 00001918: MLOAD 00001919: RETURNDATASIZE 0000191a: PUSH1 0x1f 0000191c: NOT 0000191d: PUSH1 0x1f 0000191f: DUP3 00001920: ADD 00001921: AND 00001922: DUP3 00001923: ADD 00001924: DUP1 00001925: PUSH1 0x40 00001927: MSTORE 00001928: POP 00001929: DUP2 0000192a: ADD 0000192b: SWAP1 0000192c: PUSH2 0x1935 0000192f: SWAP2 00001930: SWAP1 00001931: PUSH2 0x3ddb 00001934: JUMP 00001935: JUMPDEST 00001936: SWAP2 00001937: POP 00001938: PUSH1 0x01 0000193a: PUSH1 0xfe 0000193c: SHL 0000193d: DUP5 0000193e: AND 0000193f: ISZERO 00001940: PUSH2 0x19ac 00001943: JUMPI 00001944: PUSH1 0x40 00001946: MLOAD 00001947: PUSH4 0x70a08231 0000194c: PUSH1 0xe0 0000194e: SHL 0000194f: DUP2 00001950: MSTORE 00001951: ADDRESS 00001952: PUSH1 0x04 00001954: DUP3 00001955: ADD 00001956: MSTORE 00001957: PUSH1 0x01 00001959: PUSH1 0x01 0000195b: PUSH1 0xa0 0000195d: SHL 0000195e: SUB 0000195f: DUP5 00001960: AND 00001961: SWAP1 00001962: PUSH4 0x70a08231 00001967: SWAP1 00001968: PUSH1 0x24 0000196a: ADD 0000196b: PUSH1 0x20 0000196d: PUSH1 0x40 0000196f: MLOAD 00001970: DUP1 00001971: DUP4 00001972: SUB 00001973: DUP2 00001974: DUP7 00001975: GAS 00001976: STATICCALL 00001977: ISZERO 00001978: DUP1 00001979: ISZERO 0000197a: PUSH2 0x1985 0000197d: JUMPI 0000197e: RETURNDATASIZE 0000197f: PUSH0 00001980: PUSH0 00001981: RETURNDATACOPY 00001982: RETURNDATASIZE 00001983: PUSH0 00001984: REVERT 00001985: JUMPDEST 00001986: POP 00001987: POP 00001988: POP 00001989: POP 0000198a: PUSH1 0x40 0000198c: MLOAD 0000198d: RETURNDATASIZE 0000198e: PUSH1 0x1f 00001990: NOT 00001991: PUSH1 0x1f 00001993: DUP3 00001994: ADD 00001995: AND 00001996: DUP3 00001997: ADD 00001998: DUP1 00001999: PUSH1 0x40 0000199b: MSTORE 0000199c: POP 0000199d: DUP2 0000199e: ADD 0000199f: SWAP1 000019a0: PUSH2 0x19a9 000019a3: SWAP2 000019a4: SWAP1 000019a5: PUSH2 0x3ddb 000019a8: JUMP 000019a9: JUMPDEST 000019aa: SWAP1 000019ab: POP 000019ac: JUMPDEST 000019ad: DUP6 000019ae: PUSH1 0x01 000019b0: PUSH1 0x01 000019b2: PUSH1 0xa0 000019b4: SHL 000019b5: SUB 000019b6: AND 000019b7: PUSH4 0x128acb08 000019bc: PUSH0 000019bd: PUSH1 0x01 000019bf: PUSH1 0xfe 000019c1: SHL 000019c2: DUP8 000019c3: AND 000019c4: GT 000019c5: PUSH2 0x19ce 000019c8: JUMPI 000019c9: DUP6 000019ca: PUSH2 0x19d0 000019cd: JUMP 000019ce: JUMPDEST 000019cf: ADDRESS 000019d0: JUMPDEST 000019d1: PUSH0 000019d2: PUSH2 0x19da 000019d5: CALLVALUE 000019d6: PUSH2 0x39d7 000019d9: JUMP 000019da: JUMPDEST 000019db: PUSH1 0x40 000019dd: DUP1 000019de: MLOAD 000019df: ADDRESS 000019e0: PUSH1 0x20 000019e2: DUP3 000019e3: ADD 000019e4: MSTORE 000019e5: PUSH20 0xfffd8963efd1fc6a506488495d951d5263988d25 000019fa: SWAP2 000019fb: ADD 000019fc: PUSH1 0x40 000019fe: MLOAD 000019ff: PUSH1 0x20 00001a01: DUP2 00001a02: DUP4 00001a03: SUB 00001a04: SUB 00001a05: DUP2 00001a06: MSTORE 00001a07: SWAP1 00001a08: PUSH1 0x40 00001a0a: MSTORE 00001a0b: PUSH1 0x40 00001a0d: MLOAD 00001a0e: DUP7 00001a0f: PUSH4 0xffffffff 00001a14: AND 00001a15: PUSH1 0xe0 00001a17: SHL 00001a18: DUP2 00001a19: MSTORE 00001a1a: PUSH1 0x04 00001a1c: ADD 00001a1d: PUSH2 0x1a2a 00001a20: SWAP6 00001a21: SWAP5 00001a22: SWAP4 00001a23: SWAP3 00001a24: SWAP2 00001a25: SWAP1 00001a26: PUSH2 0x3e77 00001a29: JUMP 00001a2a: JUMPDEST 00001a2b: PUSH1 0x40 00001a2d: DUP1 00001a2e: MLOAD 00001a2f: DUP1 00001a30: DUP4 00001a31: SUB 00001a32: DUP2 00001a33: PUSH0 00001a34: DUP8 00001a35: GAS 00001a36: CALL 00001a37: ISZERO 00001a38: DUP1 00001a39: ISZERO 00001a3a: PUSH2 0x1a45 00001a3d: JUMPI 00001a3e: RETURNDATASIZE 00001a3f: PUSH0 00001a40: PUSH0 00001a41: RETURNDATACOPY 00001a42: RETURNDATASIZE 00001a43: PUSH0 00001a44: REVERT 00001a45: JUMPDEST 00001a46: POP 00001a47: POP 00001a48: POP 00001a49: POP 00001a4a: PUSH1 0x40 00001a4c: MLOAD 00001a4d: RETURNDATASIZE 00001a4e: PUSH1 0x1f 00001a50: NOT 00001a51: PUSH1 0x1f 00001a53: DUP3 00001a54: ADD 00001a55: AND 00001a56: DUP3 00001a57: ADD 00001a58: DUP1 00001a59: PUSH1 0x40 00001a5b: MSTORE 00001a5c: POP 00001a5d: DUP2 00001a5e: ADD 00001a5f: SWAP1 00001a60: PUSH2 0x1a69 00001a63: SWAP2 00001a64: SWAP1 00001a65: PUSH2 0x3eb1 00001a68: JUMP 00001a69: JUMPDEST 00001a6a: POP 00001a6b: POP 00001a6c: JUMPDEST 00001a6d: PUSH1 0x01 00001a6f: PUSH1 0xfe 00001a71: SHL 00001a72: DUP5 00001a73: AND 00001a74: ISZERO 00001a75: PUSH2 0x1b23 00001a78: JUMPI 00001a79: PUSH1 0x40 00001a7b: MLOAD 00001a7c: PUSH4 0x70a08231 00001a81: PUSH1 0xe0 00001a83: SHL 00001a84: DUP2 00001a85: MSTORE 00001a86: ADDRESS 00001a87: PUSH1 0x04 00001a89: DUP3 00001a8a: ADD 00001a8b: MSTORE 00001a8c: PUSH0 00001a8d: SWAP1 00001a8e: PUSH1 0x01 00001a90: PUSH1 0x01 00001a92: PUSH1 0xa0 00001a94: SHL 00001a95: SUB 00001a96: DUP6 00001a97: AND 00001a98: SWAP1 00001a99: PUSH4 0x70a08231 00001a9e: SWAP1 00001a9f: PUSH1 0x24 00001aa1: ADD 00001aa2: PUSH1 0x20 00001aa4: PUSH1 0x40 00001aa6: MLOAD 00001aa7: DUP1 00001aa8: DUP4 00001aa9: SUB 00001aaa: DUP2 00001aab: DUP7 00001aac: GAS 00001aad: STATICCALL 00001aae: ISZERO 00001aaf: DUP1 00001ab0: ISZERO 00001ab1: PUSH2 0x1abc 00001ab4: JUMPI 00001ab5: RETURNDATASIZE 00001ab6: PUSH0 00001ab7: PUSH0 00001ab8: RETURNDATACOPY 00001ab9: RETURNDATASIZE 00001aba: PUSH0 00001abb: REVERT 00001abc: JUMPDEST 00001abd: POP 00001abe: POP 00001abf: POP 00001ac0: POP 00001ac1: PUSH1 0x40 00001ac3: MLOAD 00001ac4: RETURNDATASIZE 00001ac5: PUSH1 0x1f 00001ac7: NOT 00001ac8: PUSH1 0x1f 00001aca: DUP3 00001acb: ADD 00001acc: AND 00001acd: DUP3 00001ace: ADD 00001acf: DUP1 00001ad0: PUSH1 0x40 00001ad2: MSTORE 00001ad3: POP 00001ad4: DUP2 00001ad5: ADD 00001ad6: SWAP1 00001ad7: PUSH2 0x1ae0 00001ada: SWAP2 00001adb: SWAP1 00001adc: PUSH2 0x3ddb 00001adf: JUMP 00001ae0: JUMPDEST 00001ae1: SWAP1 00001ae2: POP 00001ae3: DUP2 00001ae4: PUSH0 00001ae5: SUB 00001ae6: PUSH2 0x1b12 00001ae9: JUMPI 00001aea: PUSH2 0x1af9 00001aed: DUP5 00001aee: DUP7 00001aef: PUSH2 0x0138 00001af2: PUSH1 0x01 00001af4: DUP6 00001af5: PUSH2 0x3e33 00001af8: JUMP 00001af9: JUMPDEST 00001afa: DUP6 00001afb: ISZERO 00001afc: PUSH2 0x1b0d 00001aff: JUMPI 00001b00: PUSH2 0x1b0a 00001b03: PUSH1 0x01 00001b05: DUP8 00001b06: PUSH2 0x3e33 00001b09: JUMP 00001b0a: JUMPDEST 00001b0b: SWAP6 00001b0c: POP 00001b0d: JUMPDEST 00001b0e: PUSH2 0x1b21 00001b11: JUMP 00001b12: JUMPDEST 00001b13: PUSH2 0x1b21 00001b16: DUP5 00001b17: DUP7 00001b18: PUSH2 0x0138 00001b1b: DUP6 00001b1c: DUP6 00001b1d: PUSH2 0x3e33 00001b20: JUMP 00001b21: JUMPDEST 00001b22: POP 00001b23: JUMPDEST 00001b24: PUSH1 0x40 00001b26: MLOAD 00001b27: PUSH4 0x70a08231 00001b2c: PUSH1 0xe0 00001b2e: SHL 00001b2f: DUP2 00001b30: MSTORE 00001b31: PUSH1 0x01 00001b33: PUSH1 0x01 00001b35: PUSH1 0xa0 00001b37: SHL 00001b38: SUB 00001b39: DUP6 00001b3a: DUP2 00001b3b: AND 00001b3c: PUSH1 0x04 00001b3e: DUP4 00001b3f: ADD 00001b40: MSTORE 00001b41: DUP7 00001b42: SWAP2 00001b43: DUP5 00001b44: SWAP2 00001b45: DUP7 00001b46: AND 00001b47: SWAP1 00001b48: PUSH4 0x70a08231 00001b4d: SWAP1 00001b4e: PUSH1 0x24 00001b50: ADD 00001b51: PUSH1 0x20 00001b53: PUSH1 0x40 00001b55: MLOAD 00001b56: DUP1 00001b57: DUP4 00001b58: SUB 00001b59: DUP2 00001b5a: DUP7 00001b5b: GAS 00001b5c: STATICCALL 00001b5d: ISZERO 00001b5e: DUP1 00001b5f: ISZERO 00001b60: PUSH2 0x1b6b 00001b63: JUMPI 00001b64: RETURNDATASIZE 00001b65: PUSH0 00001b66: PUSH0 00001b67: RETURNDATACOPY 00001b68: RETURNDATASIZE 00001b69: PUSH0 00001b6a: REVERT 00001b6b: JUMPDEST 00001b6c: POP 00001b6d: POP 00001b6e: POP 00001b6f: POP 00001b70: PUSH1 0x40 00001b72: MLOAD 00001b73: RETURNDATASIZE 00001b74: PUSH1 0x1f 00001b76: NOT 00001b77: PUSH1 0x1f 00001b79: DUP3 00001b7a: ADD 00001b7b: AND 00001b7c: DUP3 00001b7d: ADD 00001b7e: DUP1 00001b7f: PUSH1 0x40 00001b81: MSTORE 00001b82: POP 00001b83: DUP2 00001b84: ADD 00001b85: SWAP1 00001b86: PUSH2 0x1b8f 00001b89: SWAP2 00001b8a: SWAP1 00001b8b: PUSH2 0x3ddb 00001b8e: JUMP 00001b8f: JUMPDEST 00001b90: PUSH2 0x1b99 00001b93: SWAP2 00001b94: SWAP1 00001b95: PUSH2 0x3e33 00001b98: JUMP 00001b99: JUMPDEST 00001b9a: LT 00001b9b: ISZERO 00001b9c: PUSH2 0x1bb7 00001b9f: JUMPI 00001ba0: PUSH1 0x40 00001ba2: MLOAD 00001ba3: PUSH3 0x461bcd 00001ba7: PUSH1 0xe5 00001ba9: SHL 00001baa: DUP2 00001bab: MSTORE 00001bac: PUSH1 0x04 00001bae: ADD 00001baf: PUSH2 0x035a 00001bb2: SWAP1 00001bb3: PUSH2 0x3e4c 00001bb6: JUMP 00001bb7: JUMPDEST 00001bb8: POP 00001bb9: POP 00001bba: POP 00001bbb: POP 00001bbc: POP 00001bbd: POP 00001bbe: POP 00001bbf: JUMP 00001bc0: JUMPDEST 00001bc1: PUSH0 00001bc2: MLOAD 00001bc3: PUSH1 0x20 00001bc5: PUSH2 0x3f6c 00001bc8: PUSH0 00001bc9: CODECOPY 00001bca: PUSH0 00001bcb: MLOAD 00001bcc: SWAP1 00001bcd: PUSH0 00001bce: MSTORE 00001bcf: CALLER 00001bd0: EQ 00001bd1: DUP1 00001bd2: PUSH2 0x1be9 00001bd5: JUMPI 00001bd6: POP 00001bd7: CALLER 00001bd8: PUSH0 00001bd9: SWAP1 00001bda: DUP2 00001bdb: MSTORE 00001bdc: PUSH1 0x20 00001bde: DUP2 00001bdf: SWAP1 00001be0: MSTORE 00001be1: PUSH1 0x40 00001be3: SWAP1 00001be4: KECCAK256 00001be5: SLOAD 00001be6: PUSH1 0xff 00001be8: AND 00001be9: JUMPDEST 00001bea: PUSH2 0x1c05 00001bed: JUMPI 00001bee: PUSH1 0x40 00001bf0: MLOAD 00001bf1: PUSH3 0x461bcd 00001bf5: PUSH1 0xe5 00001bf7: SHL 00001bf8: DUP2 00001bf9: MSTORE 00001bfa: PUSH1 0x04 00001bfc: ADD 00001bfd: PUSH2 0x035a 00001c00: SWAP1 00001c01: PUSH2 0x3ce1 00001c04: JUMP 00001c05: JUMPDEST 00001c06: PUSH0 00001c07: DUP3 00001c08: PUSH1 0x01 00001c0a: PUSH1 0x01 00001c0c: PUSH1 0xa0 00001c0e: SHL 00001c0f: SUB 00001c10: AND 00001c11: DUP3 00001c12: PUSH1 0x40 00001c14: MLOAD 00001c15: PUSH0 00001c16: PUSH1 0x40 00001c18: MLOAD 00001c19: DUP1 00001c1a: DUP4 00001c1b: SUB 00001c1c: DUP2 00001c1d: DUP6 00001c1e: DUP8 00001c1f: GAS 00001c20: CALL 00001c21: SWAP3 00001c22: POP 00001c23: POP 00001c24: POP 00001c25: RETURNDATASIZE 00001c26: DUP1 00001c27: PUSH0 00001c28: DUP2 00001c29: EQ 00001c2a: PUSH2 0x1c4e 00001c2d: JUMPI 00001c2e: PUSH1 0x40 00001c30: MLOAD 00001c31: SWAP2 00001c32: POP 00001c33: PUSH1 0x1f 00001c35: NOT 00001c36: PUSH1 0x3f 00001c38: RETURNDATASIZE 00001c39: ADD 00001c3a: AND 00001c3b: DUP3 00001c3c: ADD 00001c3d: PUSH1 0x40 00001c3f: MSTORE 00001c40: RETURNDATASIZE 00001c41: DUP3 00001c42: MSTORE 00001c43: RETURNDATASIZE 00001c44: PUSH0 00001c45: PUSH1 0x20 00001c47: DUP5 00001c48: ADD 00001c49: RETURNDATACOPY 00001c4a: PUSH2 0x1c53 00001c4d: JUMP 00001c4e: JUMPDEST 00001c4f: PUSH1 0x60 00001c51: SWAP2 00001c52: POP 00001c53: JUMPDEST 00001c54: POP 00001c55: POP 00001c56: SWAP1 00001c57: POP 00001c58: DUP1 00001c59: PUSH2 0x1ca4 00001c5c: JUMPI 00001c5d: PUSH1 0x40 00001c5f: MLOAD 00001c60: PUSH3 0x461bcd 00001c64: PUSH1 0xe5 00001c66: SHL 00001c67: DUP2 00001c68: MSTORE 00001c69: PUSH1 0x20 00001c6b: PUSH1 0x04 00001c6d: DUP3 00001c6e: ADD 00001c6f: MSTORE 00001c70: PUSH1 0x18 00001c72: PUSH1 0x24 00001c74: DUP3 00001c75: ADD 00001c76: MSTORE 00001c77: PUSH32 0x4661696c656420746f2077697468647261772045746865720000000000000000 00001c98: PUSH1 0x44 00001c9a: DUP3 00001c9b: ADD 00001c9c: MSTORE 00001c9d: PUSH1 0x64 00001c9f: ADD 00001ca0: PUSH2 0x035a 00001ca3: JUMP 00001ca4: JUMPDEST 00001ca5: POP 00001ca6: POP 00001ca7: POP 00001ca8: JUMP 00001ca9: JUMPDEST 00001caa: PUSH0 00001cab: MLOAD 00001cac: PUSH1 0x20 00001cae: PUSH2 0x3f6c 00001cb1: PUSH0 00001cb2: CODECOPY 00001cb3: PUSH0 00001cb4: MLOAD 00001cb5: SWAP1 00001cb6: PUSH0 00001cb7: MSTORE 00001cb8: CALLER 00001cb9: EQ 00001cba: DUP1 00001cbb: PUSH2 0x1cd2 00001cbe: JUMPI 00001cbf: POP 00001cc0: CALLER 00001cc1: PUSH0 00001cc2: SWAP1 00001cc3: DUP2 00001cc4: MSTORE 00001cc5: PUSH1 0x20 00001cc7: DUP2 00001cc8: SWAP1 00001cc9: MSTORE 00001cca: PUSH1 0x40 00001ccc: SWAP1 00001ccd: KECCAK256 00001cce: SLOAD 00001ccf: PUSH1 0xff 00001cd1: AND 00001cd2: JUMPDEST 00001cd3: PUSH2 0x1cee 00001cd6: JUMPI 00001cd7: PUSH1 0x40 00001cd9: MLOAD 00001cda: PUSH3 0x461bcd 00001cde: PUSH1 0xe5 00001ce0: SHL 00001ce1: DUP2 00001ce2: MSTORE 00001ce3: PUSH1 0x04 00001ce5: ADD 00001ce6: PUSH2 0x035a 00001ce9: SWAP1 00001cea: PUSH2 0x3ce1 00001ced: JUMP 00001cee: JUMPDEST 00001cef: DUP4 00001cf0: NUMBER 00001cf1: GT 00001cf2: ISZERO 00001cf3: PUSH2 0x1d0e 00001cf6: JUMPI 00001cf7: PUSH1 0x40 00001cf9: MLOAD 00001cfa: PUSH3 0x461bcd 00001cfe: PUSH1 0xe5 00001d00: SHL 00001d01: DUP2 00001d02: MSTORE 00001d03: PUSH1 0x04 00001d05: ADD 00001d06: PUSH2 0x035a 00001d09: SWAP1 00001d0a: PUSH2 0x3d10 00001d0d: JUMP 00001d0e: JUMPDEST 00001d0f: PUSH0 00001d10: PUSH2 0x1d19 00001d13: DUP7 00001d14: CALLVALUE 00001d15: PUSH2 0x3e33 00001d18: JUMP 00001d19: JUMPDEST 00001d1a: PUSH1 0x40 00001d1c: MLOAD 00001d1d: SWAP1 00001d1e: SWAP2 00001d1f: POP 00001d20: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001d35: SWAP1 00001d36: DUP3 00001d37: SWAP1 00001d38: PUSH0 00001d39: DUP2 00001d3a: DUP2 00001d3b: DUP2 00001d3c: DUP6 00001d3d: DUP8 00001d3e: GAS 00001d3f: CALL 00001d40: SWAP3 00001d41: POP 00001d42: POP 00001d43: POP 00001d44: RETURNDATASIZE 00001d45: DUP1 00001d46: PUSH0 00001d47: DUP2 00001d48: EQ 00001d49: PUSH2 0x1d6d 00001d4c: JUMPI 00001d4d: PUSH1 0x40 00001d4f: MLOAD 00001d50: SWAP2 00001d51: POP 00001d52: PUSH1 0x1f 00001d54: NOT 00001d55: PUSH1 0x3f 00001d57: RETURNDATASIZE 00001d58: ADD 00001d59: AND 00001d5a: DUP3 00001d5b: ADD 00001d5c: PUSH1 0x40 00001d5e: MSTORE 00001d5f: RETURNDATASIZE 00001d60: DUP3 00001d61: MSTORE 00001d62: RETURNDATASIZE 00001d63: PUSH0 00001d64: PUSH1 0x20 00001d66: DUP5 00001d67: ADD 00001d68: RETURNDATACOPY 00001d69: PUSH2 0x1d72 00001d6c: JUMP 00001d6d: JUMPDEST 00001d6e: PUSH1 0x60 00001d70: SWAP2 00001d71: POP 00001d72: JUMPDEST 00001d73: POP 00001d74: POP 00001d75: POP 00001d76: PUSH0 00001d77: PUSH0 00001d78: PUSH0 00001d79: PUSH1 0x01 00001d7b: PUSH1 0xff 00001d7d: SHL 00001d7e: DUP6 00001d7f: AND 00001d80: PUSH0 00001d81: SUB 00001d82: PUSH2 0x1f7e 00001d85: JUMPI 00001d86: DUP7 00001d87: PUSH1 0x01 00001d89: PUSH1 0x01 00001d8b: PUSH1 0xa0 00001d8d: SHL 00001d8e: SUB 00001d8f: AND 00001d90: PUSH4 0xd21220a7 00001d95: PUSH1 0x40 00001d97: MLOAD 00001d98: DUP2 00001d99: PUSH4 0xffffffff 00001d9e: AND 00001d9f: PUSH1 0xe0 00001da1: SHL 00001da2: DUP2 00001da3: MSTORE 00001da4: PUSH1 0x04 00001da6: ADD 00001da7: PUSH1 0x20 00001da9: PUSH1 0x40 00001dab: MLOAD 00001dac: DUP1 00001dad: DUP4 00001dae: SUB 00001daf: DUP2 00001db0: DUP7 00001db1: GAS 00001db2: STATICCALL 00001db3: ISZERO 00001db4: DUP1 00001db5: ISZERO 00001db6: PUSH2 0x1dc1 00001db9: JUMPI 00001dba: RETURNDATASIZE 00001dbb: PUSH0 00001dbc: PUSH0 00001dbd: RETURNDATACOPY 00001dbe: RETURNDATASIZE 00001dbf: PUSH0 00001dc0: REVERT 00001dc1: JUMPDEST 00001dc2: POP 00001dc3: POP 00001dc4: POP 00001dc5: POP 00001dc6: PUSH1 0x40 00001dc8: MLOAD 00001dc9: RETURNDATASIZE 00001dca: PUSH1 0x1f 00001dcc: NOT 00001dcd: PUSH1 0x1f 00001dcf: DUP3 00001dd0: ADD 00001dd1: AND 00001dd2: DUP3 00001dd3: ADD 00001dd4: DUP1 00001dd5: PUSH1 0x40 00001dd7: MSTORE 00001dd8: POP 00001dd9: DUP2 00001dda: ADD 00001ddb: SWAP1 00001ddc: PUSH2 0x1de5 00001ddf: SWAP2 00001de0: SWAP1 00001de1: PUSH2 0x3da1 00001de4: JUMP 00001de5: JUMPDEST 00001de6: PUSH1 0x40 00001de8: MLOAD 00001de9: PUSH4 0x70a08231 00001dee: PUSH1 0xe0 00001df0: SHL 00001df1: DUP2 00001df2: MSTORE 00001df3: PUSH1 0x01 00001df5: PUSH1 0x01 00001df7: PUSH1 0xa0 00001df9: SHL 00001dfa: SUB 00001dfb: DUP8 00001dfc: DUP2 00001dfd: AND 00001dfe: PUSH1 0x04 00001e00: DUP4 00001e01: ADD 00001e02: MSTORE 00001e03: SWAP2 00001e04: SWAP5 00001e05: POP 00001e06: SWAP1 00001e07: DUP5 00001e08: AND 00001e09: SWAP1 00001e0a: PUSH4 0x70a08231 00001e0f: SWAP1 00001e10: PUSH1 0x24 00001e12: ADD 00001e13: PUSH1 0x20 00001e15: PUSH1 0x40 00001e17: MLOAD 00001e18: DUP1 00001e19: DUP4 00001e1a: SUB 00001e1b: DUP2 00001e1c: DUP7 00001e1d: GAS 00001e1e: STATICCALL 00001e1f: ISZERO 00001e20: DUP1 00001e21: ISZERO 00001e22: PUSH2 0x1e2d 00001e25: JUMPI 00001e26: RETURNDATASIZE 00001e27: PUSH0 00001e28: PUSH0 00001e29: RETURNDATACOPY 00001e2a: RETURNDATASIZE 00001e2b: PUSH0 00001e2c: REVERT 00001e2d: JUMPDEST 00001e2e: POP 00001e2f: POP 00001e30: POP 00001e31: POP 00001e32: PUSH1 0x40 00001e34: MLOAD 00001e35: RETURNDATASIZE 00001e36: PUSH1 0x1f 00001e38: NOT 00001e39: PUSH1 0x1f 00001e3b: DUP3 00001e3c: ADD 00001e3d: AND 00001e3e: DUP3 00001e3f: ADD 00001e40: DUP1 00001e41: PUSH1 0x40 00001e43: MSTORE 00001e44: POP 00001e45: DUP2 00001e46: ADD 00001e47: SWAP1 00001e48: PUSH2 0x1e51 00001e4b: SWAP2 00001e4c: SWAP1 00001e4d: PUSH2 0x3ddb 00001e50: JUMP 00001e51: JUMPDEST 00001e52: SWAP2 00001e53: POP 00001e54: PUSH1 0x01 00001e56: PUSH1 0xfe 00001e58: SHL 00001e59: DUP6 00001e5a: AND 00001e5b: ISZERO 00001e5c: PUSH2 0x1ec8 00001e5f: JUMPI 00001e60: PUSH1 0x40 00001e62: MLOAD 00001e63: PUSH4 0x70a08231 00001e68: PUSH1 0xe0 00001e6a: SHL 00001e6b: DUP2 00001e6c: MSTORE 00001e6d: ADDRESS 00001e6e: PUSH1 0x04 00001e70: DUP3 00001e71: ADD 00001e72: MSTORE 00001e73: PUSH1 0x01 00001e75: PUSH1 0x01 00001e77: PUSH1 0xa0 00001e79: SHL 00001e7a: SUB 00001e7b: DUP5 00001e7c: AND 00001e7d: SWAP1 00001e7e: PUSH4 0x70a08231 00001e83: SWAP1 00001e84: PUSH1 0x24 00001e86: ADD 00001e87: PUSH1 0x20 00001e89: PUSH1 0x40 00001e8b: MLOAD 00001e8c: DUP1 00001e8d: DUP4 00001e8e: SUB 00001e8f: DUP2 00001e90: DUP7 00001e91: GAS 00001e92: STATICCALL 00001e93: ISZERO 00001e94: DUP1 00001e95: ISZERO 00001e96: PUSH2 0x1ea1 00001e99: JUMPI 00001e9a: RETURNDATASIZE 00001e9b: PUSH0 00001e9c: PUSH0 00001e9d: RETURNDATACOPY 00001e9e: RETURNDATASIZE 00001e9f: PUSH0 00001ea0: REVERT 00001ea1: JUMPDEST 00001ea2: POP 00001ea3: POP 00001ea4: POP 00001ea5: POP 00001ea6: PUSH1 0x40 00001ea8: MLOAD 00001ea9: RETURNDATASIZE 00001eaa: PUSH1 0x1f 00001eac: NOT 00001ead: PUSH1 0x1f 00001eaf: DUP3 00001eb0: ADD 00001eb1: AND 00001eb2: DUP3 00001eb3: ADD 00001eb4: DUP1 00001eb5: PUSH1 0x40 00001eb7: MSTORE 00001eb8: POP 00001eb9: DUP2 00001eba: ADD 00001ebb: SWAP1 00001ebc: PUSH2 0x1ec5 00001ebf: SWAP2 00001ec0: SWAP1 00001ec1: PUSH2 0x3ddb 00001ec4: JUMP 00001ec5: JUMPDEST 00001ec6: SWAP1 00001ec7: POP 00001ec8: JUMPDEST 00001ec9: DUP7 00001eca: PUSH1 0x01 00001ecc: PUSH1 0x01 00001ece: PUSH1 0xa0 00001ed0: SHL 00001ed1: SUB 00001ed2: AND 00001ed3: PUSH4 0x128acb08 00001ed8: PUSH0 00001ed9: PUSH1 0x01 00001edb: PUSH1 0xfe 00001edd: SHL 00001ede: DUP9 00001edf: AND 00001ee0: GT 00001ee1: PUSH2 0x1eea 00001ee4: JUMPI 00001ee5: DUP7 00001ee6: PUSH2 0x1eec 00001ee9: JUMP 00001eea: JUMPDEST 00001eeb: ADDRESS 00001eec: JUMPDEST 00001eed: PUSH1 0x01 00001eef: PUSH2 0x1ef7 00001ef2: DUP9 00001ef3: PUSH2 0x39d7 00001ef6: JUMP 00001ef7: JUMPDEST 00001ef8: PUSH1 0x40 00001efa: DUP1 00001efb: MLOAD 00001efc: ADDRESS 00001efd: PUSH1 0x20 00001eff: DUP3 00001f00: ADD 00001f01: MSTORE 00001f02: PUSH5 0x01000276a4 00001f08: SWAP2 00001f09: ADD 00001f0a: PUSH1 0x40 00001f0c: MLOAD 00001f0d: PUSH1 0x20 00001f0f: DUP2 00001f10: DUP4 00001f11: SUB 00001f12: SUB 00001f13: DUP2 00001f14: MSTORE 00001f15: SWAP1 00001f16: PUSH1 0x40 00001f18: MSTORE 00001f19: PUSH1 0x40 00001f1b: MLOAD 00001f1c: DUP7 00001f1d: PUSH4 0xffffffff 00001f22: AND 00001f23: PUSH1 0xe0 00001f25: SHL 00001f26: DUP2 00001f27: MSTORE 00001f28: PUSH1 0x04 00001f2a: ADD 00001f2b: PUSH2 0x1f38 00001f2e: SWAP6 00001f2f: SWAP5 00001f30: SWAP4 00001f31: SWAP3 00001f32: SWAP2 00001f33: SWAP1 00001f34: PUSH2 0x3e77 00001f37: JUMP 00001f38: JUMPDEST 00001f39: PUSH1 0x40 00001f3b: DUP1 00001f3c: MLOAD 00001f3d: DUP1 00001f3e: DUP4 00001f3f: SUB 00001f40: DUP2 00001f41: PUSH0 00001f42: DUP8 00001f43: GAS 00001f44: CALL 00001f45: ISZERO 00001f46: DUP1 00001f47: ISZERO 00001f48: PUSH2 0x1f53 00001f4b: JUMPI 00001f4c: RETURNDATASIZE 00001f4d: PUSH0 00001f4e: PUSH0 00001f4f: RETURNDATACOPY 00001f50: RETURNDATASIZE 00001f51: PUSH0 00001f52: REVERT 00001f53: JUMPDEST 00001f54: POP 00001f55: POP 00001f56: POP 00001f57: POP 00001f58: PUSH1 0x40 00001f5a: MLOAD 00001f5b: RETURNDATASIZE 00001f5c: PUSH1 0x1f 00001f5e: NOT 00001f5f: PUSH1 0x1f 00001f61: DUP3 00001f62: ADD 00001f63: AND 00001f64: DUP3 00001f65: ADD 00001f66: DUP1 00001f67: PUSH1 0x40 00001f69: MSTORE 00001f6a: POP 00001f6b: DUP2 00001f6c: ADD 00001f6d: SWAP1 00001f6e: PUSH2 0x1f77 00001f71: SWAP2 00001f72: SWAP1 00001f73: PUSH2 0x3eb1 00001f76: JUMP 00001f77: JUMPDEST 00001f78: POP 00001f79: POP 00001f7a: PUSH2 0x2181 00001f7d: JUMP 00001f7e: JUMPDEST 00001f7f: DUP7 00001f80: PUSH1 0x01 00001f82: PUSH1 0x01 00001f84: PUSH1 0xa0 00001f86: SHL 00001f87: SUB 00001f88: AND 00001f89: PUSH4 0x0dfe1681 00001f8e: PUSH1 0x40 00001f90: MLOAD 00001f91: DUP2 00001f92: PUSH4 0xffffffff 00001f97: AND 00001f98: PUSH1 0xe0 00001f9a: SHL 00001f9b: DUP2 00001f9c: MSTORE 00001f9d: PUSH1 0x04 00001f9f: ADD 00001fa0: PUSH1 0x20 00001fa2: PUSH1 0x40 00001fa4: MLOAD 00001fa5: DUP1 00001fa6: DUP4 00001fa7: SUB 00001fa8: DUP2 00001fa9: DUP7 00001faa: GAS 00001fab: STATICCALL 00001fac: ISZERO 00001fad: DUP1 00001fae: ISZERO 00001faf: PUSH2 0x1fba 00001fb2: JUMPI 00001fb3: RETURNDATASIZE 00001fb4: PUSH0 00001fb5: PUSH0 00001fb6: RETURNDATACOPY 00001fb7: RETURNDATASIZE 00001fb8: PUSH0 00001fb9: REVERT 00001fba: JUMPDEST 00001fbb: POP 00001fbc: POP 00001fbd: POP 00001fbe: POP 00001fbf: PUSH1 0x40 00001fc1: MLOAD 00001fc2: RETURNDATASIZE 00001fc3: PUSH1 0x1f 00001fc5: NOT 00001fc6: PUSH1 0x1f 00001fc8: DUP3 00001fc9: ADD 00001fca: AND 00001fcb: DUP3 00001fcc: ADD 00001fcd: DUP1 00001fce: PUSH1 0x40 00001fd0: MSTORE 00001fd1: POP 00001fd2: DUP2 00001fd3: ADD 00001fd4: SWAP1 00001fd5: PUSH2 0x1fde 00001fd8: SWAP2 00001fd9: SWAP1 00001fda: PUSH2 0x3da1 00001fdd: JUMP 00001fde: JUMPDEST 00001fdf: PUSH1 0x40 00001fe1: MLOAD 00001fe2: PUSH4 0x70a08231 00001fe7: PUSH1 0xe0 00001fe9: SHL 00001fea: DUP2 00001feb: MSTORE 00001fec: PUSH1 0x01 00001fee: PUSH1 0x01 00001ff0: PUSH1 0xa0 00001ff2: SHL 00001ff3: SUB 00001ff4: DUP8 00001ff5: DUP2 00001ff6: AND 00001ff7: PUSH1 0x04 00001ff9: DUP4 00001ffa: ADD 00001ffb: MSTORE 00001ffc: SWAP2 00001ffd: SWAP5 00001ffe: POP 00001fff: SWAP1 00002000: DUP5 00002001: AND 00002002: SWAP1 00002003: PUSH4 0x70a08231 00002008: SWAP1 00002009: PUSH1 0x24 0000200b: ADD 0000200c: PUSH1 0x20 0000200e: PUSH1 0x40 00002010: MLOAD 00002011: DUP1 00002012: DUP4 00002013: SUB 00002014: DUP2 00002015: DUP7 00002016: GAS 00002017: STATICCALL 00002018: ISZERO 00002019: DUP1 0000201a: ISZERO 0000201b: PUSH2 0x2026 0000201e: JUMPI 0000201f: RETURNDATASIZE 00002020: PUSH0 00002021: PUSH0 00002022: RETURNDATACOPY 00002023: RETURNDATASIZE 00002024: PUSH0 00002025: REVERT 00002026: JUMPDEST 00002027: POP 00002028: POP 00002029: POP 0000202a: POP 0000202b: PUSH1 0x40 0000202d: MLOAD 0000202e: RETURNDATASIZE 0000202f: PUSH1 0x1f 00002031: NOT 00002032: PUSH1 0x1f 00002034: DUP3 00002035: ADD 00002036: AND 00002037: DUP3 00002038: ADD 00002039: DUP1 0000203a: PUSH1 0x40 0000203c: MSTORE 0000203d: POP 0000203e: DUP2 0000203f: ADD 00002040: SWAP1 00002041: PUSH2 0x204a 00002044: SWAP2 00002045: SWAP1 00002046: PUSH2 0x3ddb 00002049: JUMP 0000204a: JUMPDEST 0000204b: SWAP2 0000204c: POP 0000204d: PUSH1 0x01 0000204f: PUSH1 0xfe 00002051: SHL 00002052: DUP6 00002053: AND 00002054: ISZERO 00002055: PUSH2 0x20c1 00002058: JUMPI 00002059: PUSH1 0x40 0000205b: MLOAD 0000205c: PUSH4 0x70a08231 00002061: PUSH1 0xe0 00002063: SHL 00002064: DUP2 00002065: MSTORE 00002066: ADDRESS 00002067: PUSH1 0x04 00002069: DUP3 0000206a: ADD 0000206b: MSTORE 0000206c: PUSH1 0x01 0000206e: PUSH1 0x01 00002070: PUSH1 0xa0 00002072: SHL 00002073: SUB 00002074: DUP5 00002075: AND 00002076: SWAP1 00002077: PUSH4 0x70a08231 0000207c: SWAP1 0000207d: PUSH1 0x24 0000207f: ADD 00002080: PUSH1 0x20 00002082: PUSH1 0x40 00002084: MLOAD 00002085: DUP1 00002086: DUP4 00002087: SUB 00002088: DUP2 00002089: DUP7 0000208a: GAS 0000208b: STATICCALL 0000208c: ISZERO 0000208d: DUP1 0000208e: ISZERO 0000208f: PUSH2 0x209a 00002092: JUMPI 00002093: RETURNDATASIZE 00002094: PUSH0 00002095: PUSH0 00002096: RETURNDATACOPY 00002097: RETURNDATASIZE 00002098: PUSH0 00002099: REVERT 0000209a: JUMPDEST 0000209b: POP 0000209c: POP 0000209d: POP 0000209e: POP 0000209f: PUSH1 0x40 000020a1: MLOAD 000020a2: RETURNDATASIZE 000020a3: PUSH1 0x1f 000020a5: NOT 000020a6: PUSH1 0x1f 000020a8: DUP3 000020a9: ADD 000020aa: AND 000020ab: DUP3 000020ac: ADD 000020ad: DUP1 000020ae: PUSH1 0x40 000020b0: MSTORE 000020b1: POP 000020b2: DUP2 000020b3: ADD 000020b4: SWAP1 000020b5: PUSH2 0x20be 000020b8: SWAP2 000020b9: SWAP1 000020ba: PUSH2 0x3ddb 000020bd: JUMP 000020be: JUMPDEST 000020bf: SWAP1 000020c0: POP 000020c1: JUMPDEST 000020c2: DUP7 000020c3: PUSH1 0x01 000020c5: PUSH1 0x01 000020c7: PUSH1 0xa0 000020c9: SHL 000020ca: SUB 000020cb: AND 000020cc: PUSH4 0x128acb08 000020d1: PUSH0 000020d2: PUSH1 0x01 000020d4: PUSH1 0xfe 000020d6: SHL 000020d7: DUP9 000020d8: AND 000020d9: GT 000020da: PUSH2 0x20e3 000020dd: JUMPI 000020de: DUP7 000020df: PUSH2 0x20e5 000020e2: JUMP 000020e3: JUMPDEST 000020e4: ADDRESS 000020e5: JUMPDEST 000020e6: PUSH0 000020e7: PUSH2 0x20ef 000020ea: DUP9 000020eb: PUSH2 0x39d7 000020ee: JUMP 000020ef: JUMPDEST 000020f0: PUSH1 0x40 000020f2: DUP1 000020f3: MLOAD 000020f4: ADDRESS 000020f5: PUSH1 0x20 000020f7: DUP3 000020f8: ADD 000020f9: MSTORE 000020fa: PUSH20 0xfffd8963efd1fc6a506488495d951d5263988d25 0000210f: SWAP2 00002110: ADD 00002111: PUSH1 0x40 00002113: MLOAD 00002114: PUSH1 0x20 00002116: DUP2 00002117: DUP4 00002118: SUB 00002119: SUB 0000211a: DUP2 0000211b: MSTORE 0000211c: SWAP1 0000211d: PUSH1 0x40 0000211f: MSTORE 00002120: PUSH1 0x40 00002122: MLOAD 00002123: DUP7 00002124: PUSH4 0xffffffff 00002129: AND 0000212a: PUSH1 0xe0 0000212c: SHL 0000212d: DUP2 0000212e: MSTORE 0000212f: PUSH1 0x04 00002131: ADD 00002132: PUSH2 0x213f 00002135: SWAP6 00002136: SWAP5 00002137: SWAP4 00002138: SWAP3 00002139: SWAP2 0000213a: SWAP1 0000213b: PUSH2 0x3e77 0000213e: JUMP 0000213f: JUMPDEST 00002140: PUSH1 0x40 00002142: DUP1 00002143: MLOAD 00002144: DUP1 00002145: DUP4 00002146: SUB 00002147: DUP2 00002148: PUSH0 00002149: DUP8 0000214a: GAS 0000214b: CALL 0000214c: ISZERO 0000214d: DUP1 0000214e: ISZERO 0000214f: PUSH2 0x215a 00002152: JUMPI 00002153: RETURNDATASIZE 00002154: PUSH0 00002155: PUSH0 00002156: RETURNDATACOPY 00002157: RETURNDATASIZE 00002158: PUSH0 00002159: REVERT 0000215a: JUMPDEST 0000215b: POP 0000215c: POP 0000215d: POP 0000215e: POP 0000215f: PUSH1 0x40 00002161: MLOAD 00002162: RETURNDATASIZE 00002163: PUSH1 0x1f 00002165: NOT 00002166: PUSH1 0x1f 00002168: DUP3 00002169: ADD 0000216a: AND 0000216b: DUP3 0000216c: ADD 0000216d: DUP1 0000216e: PUSH1 0x40 00002170: MSTORE 00002171: POP 00002172: DUP2 00002173: ADD 00002174: SWAP1 00002175: PUSH2 0x217e 00002178: SWAP2 00002179: SWAP1 0000217a: PUSH2 0x3eb1 0000217d: JUMP 0000217e: JUMPDEST 0000217f: POP 00002180: POP 00002181: JUMPDEST 00002182: PUSH1 0x01 00002184: PUSH1 0xfe 00002186: SHL 00002187: DUP6 00002188: AND 00002189: ISZERO 0000218a: PUSH2 0x2238 0000218d: JUMPI 0000218e: PUSH1 0x40 00002190: MLOAD 00002191: PUSH4 0x70a08231 00002196: PUSH1 0xe0 00002198: SHL 00002199: DUP2 0000219a: MSTORE 0000219b: ADDRESS 0000219c: PUSH1 0x04 0000219e: DUP3 0000219f: ADD 000021a0: MSTORE 000021a1: PUSH0 000021a2: SWAP1 000021a3: PUSH1 0x01 000021a5: PUSH1 0x01 000021a7: PUSH1 0xa0 000021a9: SHL 000021aa: SUB 000021ab: DUP6 000021ac: AND 000021ad: SWAP1 000021ae: PUSH4 0x70a08231 000021b3: SWAP1 000021b4: PUSH1 0x24 000021b6: ADD 000021b7: PUSH1 0x20 000021b9: PUSH1 0x40 000021bb: MLOAD 000021bc: DUP1 000021bd: DUP4 000021be: SUB 000021bf: DUP2 000021c0: DUP7 000021c1: GAS 000021c2: STATICCALL 000021c3: ISZERO 000021c4: DUP1 000021c5: ISZERO 000021c6: PUSH2 0x21d1 000021c9: JUMPI 000021ca: RETURNDATASIZE 000021cb: PUSH0 000021cc: PUSH0 000021cd: RETURNDATACOPY 000021ce: RETURNDATASIZE 000021cf: PUSH0 000021d0: REVERT 000021d1: JUMPDEST 000021d2: POP 000021d3: POP 000021d4: POP 000021d5: POP 000021d6: PUSH1 0x40 000021d8: MLOAD 000021d9: RETURNDATASIZE 000021da: PUSH1 0x1f 000021dc: NOT 000021dd: PUSH1 0x1f 000021df: DUP3 000021e0: ADD 000021e1: AND 000021e2: DUP3 000021e3: ADD 000021e4: DUP1 000021e5: PUSH1 0x40 000021e7: MSTORE 000021e8: POP 000021e9: DUP2 000021ea: ADD 000021eb: SWAP1 000021ec: PUSH2 0x21f5 000021ef: SWAP2 000021f0: SWAP1 000021f1: PUSH2 0x3ddb 000021f4: JUMP 000021f5: JUMPDEST 000021f6: SWAP1 000021f7: POP 000021f8: DUP2 000021f9: PUSH0 000021fa: SUB 000021fb: PUSH2 0x2227 000021fe: JUMPI 000021ff: PUSH2 0x220e 00002202: DUP5 00002203: DUP8 00002204: PUSH2 0x0138 00002207: PUSH1 0x01 00002209: DUP6 0000220a: PUSH2 0x3e33 0000220d: JUMP 0000220e: JUMPDEST 0000220f: DUP7 00002210: ISZERO 00002211: PUSH2 0x2222 00002214: JUMPI 00002215: PUSH2 0x221f 00002218: PUSH1 0x01 0000221a: DUP9 0000221b: PUSH2 0x3e33 0000221e: JUMP 0000221f: JUMPDEST 00002220: SWAP7 00002221: POP 00002222: JUMPDEST 00002223: PUSH2 0x2236 00002226: JUMP 00002227: JUMPDEST 00002228: PUSH2 0x2236 0000222b: DUP5 0000222c: DUP8 0000222d: PUSH2 0x0138 00002230: DUP6 00002231: DUP6 00002232: PUSH2 0x3e33 00002235: JUMP 00002236: JUMPDEST 00002237: POP 00002238: JUMPDEST 00002239: PUSH1 0x40 0000223b: MLOAD 0000223c: PUSH4 0x70a08231 00002241: PUSH1 0xe0 00002243: SHL 00002244: DUP2 00002245: MSTORE 00002246: PUSH1 0x01 00002248: PUSH1 0x01 0000224a: PUSH1 0xa0 0000224c: SHL 0000224d: SUB 0000224e: DUP7 0000224f: DUP2 00002250: AND 00002251: PUSH1 0x04 00002253: DUP4 00002254: ADD 00002255: MSTORE 00002256: DUP8 00002257: SWAP2 00002258: DUP5 00002259: SWAP2 0000225a: DUP7 0000225b: AND 0000225c: SWAP1 0000225d: PUSH4 0x70a08231 00002262: SWAP1 00002263: PUSH1 0x24 00002265: ADD 00002266: PUSH1 0x20 00002268: PUSH1 0x40 0000226a: MLOAD 0000226b: DUP1 0000226c: DUP4 0000226d: SUB 0000226e: DUP2 0000226f: DUP7 00002270: GAS 00002271: STATICCALL 00002272: ISZERO 00002273: DUP1 00002274: ISZERO 00002275: PUSH2 0x2280 00002278: JUMPI 00002279: RETURNDATASIZE 0000227a: PUSH0 0000227b: PUSH0 0000227c: RETURNDATACOPY 0000227d: RETURNDATASIZE 0000227e: PUSH0 0000227f: REVERT 00002280: JUMPDEST 00002281: POP 00002282: POP 00002283: POP 00002284: POP 00002285: PUSH1 0x40 00002287: MLOAD 00002288: RETURNDATASIZE 00002289: PUSH1 0x1f 0000228b: NOT 0000228c: PUSH1 0x1f 0000228e: DUP3 0000228f: ADD 00002290: AND 00002291: DUP3 00002292: ADD 00002293: DUP1 00002294: PUSH1 0x40 00002296: MSTORE 00002297: POP 00002298: DUP2 00002299: ADD 0000229a: SWAP1 0000229b: PUSH2 0x22a4 0000229e: SWAP2 0000229f: SWAP1 000022a0: PUSH2 0x3ddb 000022a3: JUMP 000022a4: JUMPDEST 000022a5: PUSH2 0x22ae 000022a8: SWAP2 000022a9: SWAP1 000022aa: PUSH2 0x3e33 000022ad: JUMP 000022ae: JUMPDEST 000022af: LT 000022b0: ISZERO 000022b1: PUSH2 0x22cc 000022b4: JUMPI 000022b5: PUSH1 0x40 000022b7: MLOAD 000022b8: PUSH3 0x461bcd 000022bc: PUSH1 0xe5 000022be: SHL 000022bf: DUP2 000022c0: MSTORE 000022c1: PUSH1 0x04 000022c3: ADD 000022c4: PUSH2 0x035a 000022c7: SWAP1 000022c8: PUSH2 0x3e4c 000022cb: JUMP 000022cc: JUMPDEST 000022cd: PUSH1 0x40 000022cf: MLOAD 000022d0: COINBASE 000022d1: SWAP1 000022d2: DUP11 000022d3: SWAP1 000022d4: PUSH0 000022d5: DUP2 000022d6: DUP2 000022d7: DUP2 000022d8: DUP6 000022d9: DUP8 000022da: GAS 000022db: CALL 000022dc: SWAP3 000022dd: POP 000022de: POP 000022df: POP 000022e0: RETURNDATASIZE 000022e1: DUP1 000022e2: PUSH0 000022e3: DUP2 000022e4: EQ 000022e5: PUSH2 0x2309 000022e8: JUMPI 000022e9: PUSH1 0x40 000022eb: MLOAD 000022ec: SWAP2 000022ed: POP 000022ee: PUSH1 0x1f 000022f0: NOT 000022f1: PUSH1 0x3f 000022f3: RETURNDATASIZE 000022f4: ADD 000022f5: AND 000022f6: DUP3 000022f7: ADD 000022f8: PUSH1 0x40 000022fa: MSTORE 000022fb: RETURNDATASIZE 000022fc: DUP3 000022fd: MSTORE 000022fe: RETURNDATASIZE 000022ff: PUSH0 00002300: PUSH1 0x20 00002302: DUP5 00002303: ADD 00002304: RETURNDATACOPY 00002305: PUSH2 0x230e 00002308: JUMP 00002309: JUMPDEST 0000230a: PUSH1 0x60 0000230c: SWAP2 0000230d: POP 0000230e: JUMPDEST 0000230f: POP 00002310: POP 00002311: POP 00002312: POP 00002313: POP 00002314: POP 00002315: POP 00002316: POP 00002317: POP 00002318: POP 00002319: POP 0000231a: POP 0000231b: JUMP 0000231c: JUMPDEST 0000231d: PUSH0 0000231e: MLOAD 0000231f: PUSH1 0x20 00002321: PUSH2 0x3f6c 00002324: PUSH0 00002325: CODECOPY 00002326: PUSH0 00002327: MLOAD 00002328: SWAP1 00002329: PUSH0 0000232a: MSTORE 0000232b: CALLER 0000232c: EQ 0000232d: DUP1 0000232e: PUSH2 0x2345 00002331: JUMPI 00002332: POP 00002333: CALLER 00002334: PUSH0 00002335: SWAP1 00002336: DUP2 00002337: MSTORE 00002338: PUSH1 0x20 0000233a: DUP2 0000233b: SWAP1 0000233c: MSTORE 0000233d: PUSH1 0x40 0000233f: SWAP1 00002340: KECCAK256 00002341: SLOAD 00002342: PUSH1 0xff 00002344: AND 00002345: JUMPDEST 00002346: PUSH2 0x2361 00002349: JUMPI 0000234a: PUSH1 0x40 0000234c: MLOAD 0000234d: PUSH3 0x461bcd 00002351: PUSH1 0xe5 00002353: SHL 00002354: DUP2 00002355: MSTORE 00002356: PUSH1 0x04 00002358: ADD 00002359: PUSH2 0x035a 0000235c: SWAP1 0000235d: PUSH2 0x3ce1 00002360: JUMP 00002361: JUMPDEST 00002362: PUSH1 0x01 00002364: PUSH1 0x01 00002366: PUSH1 0xa0 00002368: SHL 00002369: SUB 0000236a: AND 0000236b: PUSH0 0000236c: SWAP1 0000236d: DUP2 0000236e: MSTORE 0000236f: PUSH1 0x20 00002371: DUP2 00002372: SWAP1 00002373: MSTORE 00002374: PUSH1 0x40 00002376: SWAP1 00002377: KECCAK256 00002378: DUP1 00002379: SLOAD 0000237a: PUSH1 0xff 0000237c: NOT 0000237d: AND 0000237e: PUSH1 0x01 00002380: OR 00002381: SWAP1 00002382: SSTORE 00002383: JUMP 00002384: JUMPDEST 00002385: PUSH0 00002386: MLOAD 00002387: PUSH1 0x20 00002389: PUSH2 0x3f6c 0000238c: PUSH0 0000238d: CODECOPY 0000238e: PUSH0 0000238f: MLOAD 00002390: SWAP1 00002391: PUSH0 00002392: MSTORE 00002393: CALLER 00002394: EQ 00002395: DUP1 00002396: PUSH2 0x23ad 00002399: JUMPI 0000239a: POP 0000239b: CALLER 0000239c: PUSH0 0000239d: SWAP1 0000239e: DUP2 0000239f: MSTORE 000023a0: PUSH1 0x20 000023a2: DUP2 000023a3: SWAP1 000023a4: MSTORE 000023a5: PUSH1 0x40 000023a7: SWAP1 000023a8: KECCAK256 000023a9: SLOAD 000023aa: PUSH1 0xff 000023ac: AND 000023ad: JUMPDEST 000023ae: PUSH2 0x23c9 000023b1: JUMPI 000023b2: PUSH1 0x40 000023b4: MLOAD 000023b5: PUSH3 0x461bcd 000023b9: PUSH1 0xe5 000023bb: SHL 000023bc: DUP2 000023bd: MSTORE 000023be: PUSH1 0x04 000023c0: ADD 000023c1: PUSH2 0x035a 000023c4: SWAP1 000023c5: PUSH2 0x3ce1 000023c8: JUMP 000023c9: JUMPDEST 000023ca: DUP5 000023cb: NUMBER 000023cc: GT 000023cd: ISZERO 000023ce: PUSH2 0x23e9 000023d1: JUMPI 000023d2: PUSH1 0x40 000023d4: MLOAD 000023d5: PUSH3 0x461bcd 000023d9: PUSH1 0xe5 000023db: SHL 000023dc: DUP2 000023dd: MSTORE 000023de: PUSH1 0x04 000023e0: ADD 000023e1: PUSH2 0x035a 000023e4: SWAP1 000023e5: PUSH2 0x3d10 000023e8: JUMP 000023e9: JUMPDEST 000023ea: PUSH0 000023eb: PUSH0 000023ec: PUSH0 000023ed: PUSH1 0x01 000023ef: PUSH1 0xff 000023f1: SHL 000023f2: DUP5 000023f3: AND 000023f4: PUSH0 000023f5: SUB 000023f6: PUSH2 0x25ec 000023f9: JUMPI 000023fa: DUP6 000023fb: PUSH1 0x01 000023fd: PUSH1 0x01 000023ff: PUSH1 0xa0 00002401: SHL 00002402: SUB 00002403: AND 00002404: PUSH4 0xd21220a7 00002409: PUSH1 0x40 0000240b: MLOAD 0000240c: DUP2 0000240d: PUSH4 0xffffffff 00002412: AND 00002413: PUSH1 0xe0 00002415: SHL 00002416: DUP2 00002417: MSTORE 00002418: PUSH1 0x04 0000241a: ADD 0000241b: PUSH1 0x20 0000241d: PUSH1 0x40 0000241f: MLOAD 00002420: DUP1 00002421: DUP4 00002422: SUB 00002423: DUP2 00002424: DUP7 00002425: GAS 00002426: STATICCALL 00002427: ISZERO 00002428: DUP1 00002429: ISZERO 0000242a: PUSH2 0x2435 0000242d: JUMPI 0000242e: RETURNDATASIZE 0000242f: PUSH0 00002430: PUSH0 00002431: RETURNDATACOPY 00002432: RETURNDATASIZE 00002433: PUSH0 00002434: REVERT 00002435: JUMPDEST 00002436: POP 00002437: POP 00002438: POP 00002439: POP 0000243a: PUSH1 0x40 0000243c: MLOAD 0000243d: RETURNDATASIZE 0000243e: PUSH1 0x1f 00002440: NOT 00002441: PUSH1 0x1f 00002443: DUP3 00002444: ADD 00002445: AND 00002446: DUP3 00002447: ADD 00002448: DUP1 00002449: PUSH1 0x40 0000244b: MSTORE 0000244c: POP 0000244d: DUP2 0000244e: ADD 0000244f: SWAP1 00002450: PUSH2 0x2459 00002453: SWAP2 00002454: SWAP1 00002455: PUSH2 0x3da1 00002458: JUMP 00002459: JUMPDEST 0000245a: PUSH1 0x40 0000245c: MLOAD 0000245d: PUSH4 0x70a08231 00002462: PUSH1 0xe0 00002464: SHL 00002465: DUP2 00002466: MSTORE 00002467: PUSH1 0x01 00002469: PUSH1 0x01 0000246b: PUSH1 0xa0 0000246d: SHL 0000246e: SUB 0000246f: DUP7 00002470: DUP2 00002471: AND 00002472: PUSH1 0x04 00002474: DUP4 00002475: ADD 00002476: MSTORE 00002477: SWAP2 00002478: SWAP5 00002479: POP 0000247a: SWAP1 0000247b: DUP5 0000247c: AND 0000247d: SWAP1 0000247e: PUSH4 0x70a08231 00002483: SWAP1 00002484: PUSH1 0x24 00002486: ADD 00002487: PUSH1 0x20 00002489: PUSH1 0x40 0000248b: MLOAD 0000248c: DUP1 0000248d: DUP4 0000248e: SUB 0000248f: DUP2 00002490: DUP7 00002491: GAS 00002492: STATICCALL 00002493: ISZERO 00002494: DUP1 00002495: ISZERO 00002496: PUSH2 0x24a1 00002499: JUMPI 0000249a: RETURNDATASIZE 0000249b: PUSH0 0000249c: PUSH0 0000249d: RETURNDATACOPY 0000249e: RETURNDATASIZE 0000249f: PUSH0 000024a0: REVERT 000024a1: JUMPDEST 000024a2: POP 000024a3: POP 000024a4: POP 000024a5: POP 000024a6: PUSH1 0x40 000024a8: MLOAD 000024a9: RETURNDATASIZE 000024aa: PUSH1 0x1f 000024ac: NOT 000024ad: PUSH1 0x1f 000024af: DUP3 000024b0: ADD 000024b1: AND 000024b2: DUP3 000024b3: ADD 000024b4: DUP1 000024b5: PUSH1 0x40 000024b7: MSTORE 000024b8: POP 000024b9: DUP2 000024ba: ADD 000024bb: SWAP1 000024bc: PUSH2 0x24c5 000024bf: SWAP2 000024c0: SWAP1 000024c1: PUSH2 0x3ddb 000024c4: JUMP 000024c5: JUMPDEST 000024c6: SWAP2 000024c7: POP 000024c8: PUSH1 0x01 000024ca: PUSH1 0xfe 000024cc: SHL 000024cd: DUP5 000024ce: AND 000024cf: ISZERO 000024d0: PUSH2 0x253c 000024d3: JUMPI 000024d4: PUSH1 0x40 000024d6: MLOAD 000024d7: PUSH4 0x70a08231 000024dc: PUSH1 0xe0 000024de: SHL 000024df: DUP2 000024e0: MSTORE 000024e1: ADDRESS 000024e2: PUSH1 0x04 000024e4: DUP3 000024e5: ADD 000024e6: MSTORE 000024e7: PUSH1 0x01 000024e9: PUSH1 0x01 000024eb: PUSH1 0xa0 000024ed: SHL 000024ee: SUB 000024ef: DUP5 000024f0: AND 000024f1: SWAP1 000024f2: PUSH4 0x70a08231 000024f7: SWAP1 000024f8: PUSH1 0x24 000024fa: ADD 000024fb: PUSH1 0x20 000024fd: PUSH1 0x40 000024ff: MLOAD 00002500: DUP1 00002501: DUP4 00002502: SUB 00002503: DUP2 00002504: DUP7 00002505: GAS 00002506: STATICCALL 00002507: ISZERO 00002508: DUP1 00002509: ISZERO 0000250a: PUSH2 0x2515 0000250d: JUMPI 0000250e: RETURNDATASIZE 0000250f: PUSH0 00002510: PUSH0 00002511: RETURNDATACOPY 00002512: RETURNDATASIZE 00002513: PUSH0 00002514: REVERT 00002515: JUMPDEST 00002516: POP 00002517: POP 00002518: POP 00002519: POP 0000251a: PUSH1 0x40 0000251c: MLOAD 0000251d: RETURNDATASIZE 0000251e: PUSH1 0x1f 00002520: NOT 00002521: PUSH1 0x1f 00002523: DUP3 00002524: ADD 00002525: AND 00002526: DUP3 00002527: ADD 00002528: DUP1 00002529: PUSH1 0x40 0000252b: MSTORE 0000252c: POP 0000252d: DUP2 0000252e: ADD 0000252f: SWAP1 00002530: PUSH2 0x2539 00002533: SWAP2 00002534: SWAP1 00002535: PUSH2 0x3ddb 00002538: JUMP 00002539: JUMPDEST 0000253a: SWAP1 0000253b: POP 0000253c: JUMPDEST 0000253d: DUP6 0000253e: PUSH1 0x01 00002540: PUSH1 0x01 00002542: PUSH1 0xa0 00002544: SHL 00002545: SUB 00002546: AND 00002547: PUSH4 0x128acb08 0000254c: PUSH0 0000254d: PUSH1 0x01 0000254f: PUSH1 0xfe 00002551: SHL 00002552: DUP8 00002553: AND 00002554: GT 00002555: PUSH2 0x255e 00002558: JUMPI 00002559: DUP6 0000255a: PUSH2 0x2560 0000255d: JUMP 0000255e: JUMPDEST 0000255f: ADDRESS 00002560: JUMPDEST 00002561: PUSH1 0x40 00002563: DUP1 00002564: MLOAD 00002565: ADDRESS 00002566: PUSH1 0x20 00002568: DUP3 00002569: ADD 0000256a: MSTORE 0000256b: PUSH1 0x01 0000256d: SWAP2 0000256e: DUP13 0000256f: SWAP2 00002570: PUSH5 0x01000276a4 00002576: SWAP2 00002577: ADD 00002578: PUSH1 0x40 0000257a: MLOAD 0000257b: PUSH1 0x20 0000257d: DUP2 0000257e: DUP4 0000257f: SUB 00002580: SUB 00002581: DUP2 00002582: MSTORE 00002583: SWAP1 00002584: PUSH1 0x40 00002586: MSTORE 00002587: PUSH1 0x40 00002589: MLOAD 0000258a: DUP7 0000258b: PUSH4 0xffffffff 00002590: AND 00002591: PUSH1 0xe0 00002593: SHL 00002594: DUP2 00002595: MSTORE 00002596: PUSH1 0x04 00002598: ADD 00002599: PUSH2 0x25a6 0000259c: SWAP6 0000259d: SWAP5 0000259e: SWAP4 0000259f: SWAP3 000025a0: SWAP2 000025a1: SWAP1 000025a2: PUSH2 0x3e77 000025a5: JUMP 000025a6: JUMPDEST 000025a7: PUSH1 0x40 000025a9: DUP1 000025aa: MLOAD 000025ab: DUP1 000025ac: DUP4 000025ad: SUB 000025ae: DUP2 000025af: PUSH0 000025b0: DUP8 000025b1: GAS 000025b2: CALL 000025b3: ISZERO 000025b4: DUP1 000025b5: ISZERO 000025b6: PUSH2 0x25c1 000025b9: JUMPI 000025ba: RETURNDATASIZE 000025bb: PUSH0 000025bc: PUSH0 000025bd: RETURNDATACOPY 000025be: RETURNDATASIZE 000025bf: PUSH0 000025c0: REVERT 000025c1: JUMPDEST 000025c2: POP 000025c3: POP 000025c4: POP 000025c5: POP 000025c6: PUSH1 0x40 000025c8: MLOAD 000025c9: RETURNDATASIZE 000025ca: PUSH1 0x1f 000025cc: NOT 000025cd: PUSH1 0x1f 000025cf: DUP3 000025d0: ADD 000025d1: AND 000025d2: DUP3 000025d3: ADD 000025d4: DUP1 000025d5: PUSH1 0x40 000025d7: MSTORE 000025d8: POP 000025d9: DUP2 000025da: ADD 000025db: SWAP1 000025dc: PUSH2 0x25e5 000025df: SWAP2 000025e0: SWAP1 000025e1: PUSH2 0x3eb1 000025e4: JUMP 000025e5: JUMPDEST 000025e6: POP 000025e7: POP 000025e8: PUSH2 0x27e9 000025eb: JUMP 000025ec: JUMPDEST 000025ed: DUP6 000025ee: PUSH1 0x01 000025f0: PUSH1 0x01 000025f2: PUSH1 0xa0 000025f4: SHL 000025f5: SUB 000025f6: AND 000025f7: PUSH4 0x0dfe1681 000025fc: PUSH1 0x40 000025fe: MLOAD 000025ff: DUP2 00002600: PUSH4 0xffffffff 00002605: AND 00002606: PUSH1 0xe0 00002608: SHL 00002609: DUP2 0000260a: MSTORE 0000260b: PUSH1 0x04 0000260d: ADD 0000260e: PUSH1 0x20 00002610: PUSH1 0x40 00002612: MLOAD 00002613: DUP1 00002614: DUP4 00002615: SUB 00002616: DUP2 00002617: DUP7 00002618: GAS 00002619: STATICCALL 0000261a: ISZERO 0000261b: DUP1 0000261c: ISZERO 0000261d: PUSH2 0x2628 00002620: JUMPI 00002621: RETURNDATASIZE 00002622: PUSH0 00002623: PUSH0 00002624: RETURNDATACOPY 00002625: RETURNDATASIZE 00002626: PUSH0 00002627: REVERT 00002628: JUMPDEST 00002629: POP 0000262a: POP 0000262b: POP 0000262c: POP 0000262d: PUSH1 0x40 0000262f: MLOAD 00002630: RETURNDATASIZE 00002631: PUSH1 0x1f 00002633: NOT 00002634: PUSH1 0x1f 00002636: DUP3 00002637: ADD 00002638: AND 00002639: DUP3 0000263a: ADD 0000263b: DUP1 0000263c: PUSH1 0x40 0000263e: MSTORE 0000263f: POP 00002640: DUP2 00002641: ADD 00002642: SWAP1 00002643: PUSH2 0x264c 00002646: SWAP2 00002647: SWAP1 00002648: PUSH2 0x3da1 0000264b: JUMP 0000264c: JUMPDEST 0000264d: PUSH1 0x40 0000264f: MLOAD 00002650: PUSH4 0x70a08231 00002655: PUSH1 0xe0 00002657: SHL 00002658: DUP2 00002659: MSTORE 0000265a: PUSH1 0x01 0000265c: PUSH1 0x01 0000265e: PUSH1 0xa0 00002660: SHL 00002661: SUB 00002662: DUP7 00002663: DUP2 00002664: AND 00002665: PUSH1 0x04 00002667: DUP4 00002668: ADD 00002669: MSTORE 0000266a: SWAP2 0000266b: SWAP5 0000266c: POP 0000266d: SWAP1 0000266e: DUP5 0000266f: AND 00002670: SWAP1 00002671: PUSH4 0x70a08231 00002676: SWAP1 00002677: PUSH1 0x24 00002679: ADD 0000267a: PUSH1 0x20 0000267c: PUSH1 0x40 0000267e: MLOAD 0000267f: DUP1 00002680: DUP4 00002681: SUB 00002682: DUP2 00002683: DUP7 00002684: GAS 00002685: STATICCALL 00002686: ISZERO 00002687: DUP1 00002688: ISZERO 00002689: PUSH2 0x2694 0000268c: JUMPI 0000268d: RETURNDATASIZE 0000268e: PUSH0 0000268f: PUSH0 00002690: RETURNDATACOPY 00002691: RETURNDATASIZE 00002692: PUSH0 00002693: REVERT 00002694: JUMPDEST 00002695: POP 00002696: POP 00002697: POP 00002698: POP 00002699: PUSH1 0x40 0000269b: MLOAD 0000269c: RETURNDATASIZE 0000269d: PUSH1 0x1f 0000269f: NOT 000026a0: PUSH1 0x1f 000026a2: DUP3 000026a3: ADD 000026a4: AND 000026a5: DUP3 000026a6: ADD 000026a7: DUP1 000026a8: PUSH1 0x40 000026aa: MSTORE 000026ab: POP 000026ac: DUP2 000026ad: ADD 000026ae: SWAP1 000026af: PUSH2 0x26b8 000026b2: SWAP2 000026b3: SWAP1 000026b4: PUSH2 0x3ddb 000026b7: JUMP 000026b8: JUMPDEST 000026b9: SWAP2 000026ba: POP 000026bb: PUSH1 0x01 000026bd: PUSH1 0xfe 000026bf: SHL 000026c0: DUP5 000026c1: AND 000026c2: ISZERO 000026c3: PUSH2 0x272f 000026c6: JUMPI 000026c7: PUSH1 0x40 000026c9: MLOAD 000026ca: PUSH4 0x70a08231 000026cf: PUSH1 0xe0 000026d1: SHL 000026d2: DUP2 000026d3: MSTORE 000026d4: ADDRESS 000026d5: PUSH1 0x04 000026d7: DUP3 000026d8: ADD 000026d9: MSTORE 000026da: PUSH1 0x01 000026dc: PUSH1 0x01 000026de: PUSH1 0xa0 000026e0: SHL 000026e1: SUB 000026e2: DUP5 000026e3: AND 000026e4: SWAP1 000026e5: PUSH4 0x70a08231 000026ea: SWAP1 000026eb: PUSH1 0x24 000026ed: ADD 000026ee: PUSH1 0x20 000026f0: PUSH1 0x40 000026f2: MLOAD 000026f3: DUP1 000026f4: DUP4 000026f5: SUB 000026f6: DUP2 000026f7: DUP7 000026f8: GAS 000026f9: STATICCALL 000026fa: ISZERO 000026fb: DUP1 000026fc: ISZERO 000026fd: PUSH2 0x2708 00002700: JUMPI 00002701: RETURNDATASIZE 00002702: PUSH0 00002703: PUSH0 00002704: RETURNDATACOPY 00002705: RETURNDATASIZE 00002706: PUSH0 00002707: REVERT 00002708: JUMPDEST 00002709: POP 0000270a: POP 0000270b: POP 0000270c: POP 0000270d: PUSH1 0x40 0000270f: MLOAD 00002710: RETURNDATASIZE 00002711: PUSH1 0x1f 00002713: NOT 00002714: PUSH1 0x1f 00002716: DUP3 00002717: ADD 00002718: AND 00002719: DUP3 0000271a: ADD 0000271b: DUP1 0000271c: PUSH1 0x40 0000271e: MSTORE 0000271f: POP 00002720: DUP2 00002721: ADD 00002722: SWAP1 00002723: PUSH2 0x272c 00002726: SWAP2 00002727: SWAP1 00002728: PUSH2 0x3ddb 0000272b: JUMP 0000272c: JUMPDEST 0000272d: SWAP1 0000272e: POP 0000272f: JUMPDEST 00002730: DUP6 00002731: PUSH1 0x01 00002733: PUSH1 0x01 00002735: PUSH1 0xa0 00002737: SHL 00002738: SUB 00002739: AND 0000273a: PUSH4 0x128acb08 0000273f: PUSH0 00002740: PUSH1 0x01 00002742: PUSH1 0xfe 00002744: SHL 00002745: DUP8 00002746: AND 00002747: GT 00002748: PUSH2 0x2751 0000274b: JUMPI 0000274c: DUP6 0000274d: PUSH2 0x2753 00002750: JUMP 00002751: JUMPDEST 00002752: ADDRESS 00002753: JUMPDEST 00002754: PUSH1 0x40 00002756: DUP1 00002757: MLOAD 00002758: ADDRESS 00002759: PUSH1 0x20 0000275b: DUP3 0000275c: ADD 0000275d: MSTORE 0000275e: PUSH0 0000275f: SWAP2 00002760: DUP13 00002761: SWAP2 00002762: PUSH20 0xfffd8963efd1fc6a506488495d951d5263988d25 00002777: SWAP2 00002778: ADD 00002779: PUSH1 0x40 0000277b: MLOAD 0000277c: PUSH1 0x20 0000277e: DUP2 0000277f: DUP4 00002780: SUB 00002781: SUB 00002782: DUP2 00002783: MSTORE 00002784: SWAP1 00002785: PUSH1 0x40 00002787: MSTORE 00002788: PUSH1 0x40 0000278a: MLOAD 0000278b: DUP7 0000278c: PUSH4 0xffffffff 00002791: AND 00002792: PUSH1 0xe0 00002794: SHL 00002795: DUP2 00002796: MSTORE 00002797: PUSH1 0x04 00002799: ADD 0000279a: PUSH2 0x27a7 0000279d: SWAP6 0000279e: SWAP5 0000279f: SWAP4 000027a0: SWAP3 000027a1: SWAP2 000027a2: SWAP1 000027a3: PUSH2 0x3e77 000027a6: JUMP 000027a7: JUMPDEST 000027a8: PUSH1 0x40 000027aa: DUP1 000027ab: MLOAD 000027ac: DUP1 000027ad: DUP4 000027ae: SUB 000027af: DUP2 000027b0: PUSH0 000027b1: DUP8 000027b2: GAS 000027b3: CALL 000027b4: ISZERO 000027b5: DUP1 000027b6: ISZERO 000027b7: PUSH2 0x27c2 000027ba: JUMPI 000027bb: RETURNDATASIZE 000027bc: PUSH0 000027bd: PUSH0 000027be: RETURNDATACOPY 000027bf: RETURNDATASIZE 000027c0: PUSH0 000027c1: REVERT 000027c2: JUMPDEST 000027c3: POP 000027c4: POP 000027c5: POP 000027c6: POP 000027c7: PUSH1 0x40 000027c9: MLOAD 000027ca: RETURNDATASIZE 000027cb: PUSH1 0x1f 000027cd: NOT 000027ce: PUSH1 0x1f 000027d0: DUP3 000027d1: ADD 000027d2: AND 000027d3: DUP3 000027d4: ADD 000027d5: DUP1 000027d6: PUSH1 0x40 000027d8: MSTORE 000027d9: POP 000027da: DUP2 000027db: ADD 000027dc: SWAP1 000027dd: PUSH2 0x27e6 000027e0: SWAP2 000027e1: SWAP1 000027e2: PUSH2 0x3eb1 000027e5: JUMP 000027e6: JUMPDEST 000027e7: POP 000027e8: POP 000027e9: JUMPDEST 000027ea: PUSH1 0x01 000027ec: PUSH1 0xfe 000027ee: SHL 000027ef: DUP5 000027f0: AND 000027f1: ISZERO 000027f2: PUSH2 0x2899 000027f5: JUMPI 000027f6: PUSH1 0x40 000027f8: MLOAD 000027f9: PUSH4 0x70a08231 000027fe: PUSH1 0xe0 00002800: SHL 00002801: DUP2 00002802: MSTORE 00002803: ADDRESS 00002804: PUSH1 0x04 00002806: DUP3 00002807: ADD 00002808: MSTORE 00002809: PUSH0 0000280a: SWAP1 0000280b: PUSH1 0x01 0000280d: PUSH1 0x01 0000280f: PUSH1 0xa0 00002811: SHL 00002812: SUB 00002813: DUP6 00002814: AND 00002815: SWAP1 00002816: PUSH4 0x70a08231 0000281b: SWAP1 0000281c: PUSH1 0x24 0000281e: ADD 0000281f: PUSH1 0x20 00002821: PUSH1 0x40 00002823: MLOAD 00002824: DUP1 00002825: DUP4 00002826: SUB 00002827: DUP2 00002828: DUP7 00002829: GAS 0000282a: STATICCALL 0000282b: ISZERO 0000282c: DUP1 0000282d: ISZERO 0000282e: PUSH2 0x2839 00002831: JUMPI 00002832: RETURNDATASIZE 00002833: PUSH0 00002834: PUSH0 00002835: RETURNDATACOPY 00002836: RETURNDATASIZE 00002837: PUSH0 00002838: REVERT 00002839: JUMPDEST 0000283a: POP 0000283b: POP 0000283c: POP 0000283d: POP 0000283e: PUSH1 0x40 00002840: MLOAD 00002841: RETURNDATASIZE 00002842: PUSH1 0x1f 00002844: NOT 00002845: PUSH1 0x1f 00002847: DUP3 00002848: ADD 00002849: AND 0000284a: DUP3 0000284b: ADD 0000284c: DUP1 0000284d: PUSH1 0x40 0000284f: MSTORE 00002850: POP 00002851: DUP2 00002852: ADD 00002853: SWAP1 00002854: PUSH2 0x285d 00002857: SWAP2 00002858: SWAP1 00002859: PUSH2 0x3ddb 0000285c: JUMP 0000285d: JUMPDEST 0000285e: SWAP1 0000285f: POP 00002860: DUP2 00002861: PUSH0 00002862: SUB 00002863: PUSH2 0x2888 00002866: JUMPI 00002867: PUSH2 0x2876 0000286a: DUP5 0000286b: DUP7 0000286c: PUSH2 0x0138 0000286f: PUSH1 0x01 00002871: DUP6 00002872: PUSH2 0x3e33 00002875: JUMP 00002876: JUMPDEST 00002877: PUSH2 0x2881 0000287a: PUSH1 0x01 0000287c: DUP8 0000287d: PUSH2 0x3e33 00002880: JUMP 00002881: JUMPDEST 00002882: SWAP6 00002883: POP 00002884: PUSH2 0x2897 00002887: JUMP 00002888: JUMPDEST 00002889: PUSH2 0x2897 0000288c: DUP5 0000288d: DUP7 0000288e: PUSH2 0x0138 00002891: DUP6 00002892: DUP6 00002893: PUSH2 0x3e33 00002896: JUMP 00002897: JUMPDEST 00002898: POP 00002899: JUMPDEST 0000289a: PUSH1 0x40 0000289c: MLOAD 0000289d: PUSH4 0x70a08231 000028a2: PUSH1 0xe0 000028a4: SHL 000028a5: DUP2 000028a6: MSTORE 000028a7: PUSH1 0x01 000028a9: PUSH1 0x01 000028ab: PUSH1 0xa0 000028ad: SHL 000028ae: SUB 000028af: DUP6 000028b0: DUP2 000028b1: AND 000028b2: PUSH1 0x04 000028b4: DUP4 000028b5: ADD 000028b6: MSTORE 000028b7: DUP7 000028b8: SWAP2 000028b9: DUP5 000028ba: SWAP2 000028bb: DUP7 000028bc: AND 000028bd: SWAP1 000028be: PUSH4 0x70a08231 000028c3: SWAP1 000028c4: PUSH1 0x24 000028c6: ADD 000028c7: PUSH1 0x20 000028c9: PUSH1 0x40 000028cb: MLOAD 000028cc: DUP1 000028cd: DUP4 000028ce: SUB 000028cf: DUP2 000028d0: DUP7 000028d1: GAS 000028d2: STATICCALL 000028d3: ISZERO 000028d4: DUP1 000028d5: ISZERO 000028d6: PUSH2 0x28e1 000028d9: JUMPI 000028da: RETURNDATASIZE 000028db: PUSH0 000028dc: PUSH0 000028dd: RETURNDATACOPY 000028de: RETURNDATASIZE 000028df: PUSH0 000028e0: REVERT 000028e1: JUMPDEST 000028e2: POP 000028e3: POP 000028e4: POP 000028e5: POP 000028e6: PUSH1 0x40 000028e8: MLOAD 000028e9: RETURNDATASIZE 000028ea: PUSH1 0x1f 000028ec: NOT 000028ed: PUSH1 0x1f 000028ef: DUP3 000028f0: ADD 000028f1: AND 000028f2: DUP3 000028f3: ADD 000028f4: DUP1 000028f5: PUSH1 0x40 000028f7: MSTORE 000028f8: POP 000028f9: DUP2 000028fa: ADD 000028fb: SWAP1 000028fc: PUSH2 0x2905 000028ff: SWAP2 00002900: SWAP1 00002901: PUSH2 0x3ddb 00002904: JUMP 00002905: JUMPDEST 00002906: PUSH2 0x290f 00002909: SWAP2 0000290a: SWAP1 0000290b: PUSH2 0x3e33 0000290e: JUMP 0000290f: JUMPDEST 00002910: LT 00002911: ISZERO 00002912: PUSH2 0x292d 00002915: JUMPI 00002916: PUSH1 0x40 00002918: MLOAD 00002919: PUSH3 0x461bcd 0000291d: PUSH1 0xe5 0000291f: SHL 00002920: DUP2 00002921: MSTORE 00002922: PUSH1 0x04 00002924: ADD 00002925: PUSH2 0x035a 00002928: SWAP1 00002929: PUSH2 0x3e4c 0000292c: JUMP 0000292d: JUMPDEST 0000292e: PUSH1 0x40 00002930: MLOAD 00002931: COINBASE 00002932: SWAP1 00002933: CALLVALUE 00002934: SWAP1 00002935: PUSH0 00002936: DUP2 00002937: DUP2 00002938: DUP2 00002939: DUP6 0000293a: DUP8 0000293b: GAS 0000293c: CALL 0000293d: SWAP3 0000293e: POP 0000293f: POP 00002940: POP 00002941: RETURNDATASIZE 00002942: DUP1 00002943: PUSH0 00002944: DUP2 00002945: EQ 00002946: PUSH2 0x08ff 00002949: JUMPI 0000294a: PUSH1 0x40 0000294c: MLOAD 0000294d: SWAP2 0000294e: POP 0000294f: PUSH1 0x1f 00002951: NOT 00002952: PUSH1 0x3f 00002954: RETURNDATASIZE 00002955: ADD 00002956: AND 00002957: DUP3 00002958: ADD 00002959: PUSH1 0x40 0000295b: MSTORE 0000295c: RETURNDATASIZE 0000295d: DUP3 0000295e: MSTORE 0000295f: RETURNDATASIZE 00002960: PUSH0 00002961: PUSH1 0x20 00002963: DUP5 00002964: ADD 00002965: RETURNDATACOPY 00002966: PUSH2 0x08ff 00002969: JUMP 0000296a: JUMPDEST 0000296b: PUSH0 0000296c: MLOAD 0000296d: PUSH1 0x20 0000296f: PUSH2 0x3f6c 00002972: PUSH0 00002973: CODECOPY 00002974: PUSH0 00002975: MLOAD 00002976: SWAP1 00002977: PUSH0 00002978: MSTORE 00002979: CALLER 0000297a: EQ 0000297b: DUP1 0000297c: PUSH2 0x2993 0000297f: JUMPI 00002980: POP 00002981: CALLER 00002982: PUSH0 00002983: SWAP1 00002984: DUP2 00002985: MSTORE 00002986: PUSH1 0x20 00002988: DUP2 00002989: SWAP1 0000298a: MSTORE 0000298b: PUSH1 0x40 0000298d: SWAP1 0000298e: KECCAK256 0000298f: SLOAD 00002990: PUSH1 0xff 00002992: AND 00002993: JUMPDEST 00002994: PUSH2 0x29af 00002997: JUMPI 00002998: PUSH1 0x40 0000299a: MLOAD 0000299b: PUSH3 0x461bcd 0000299f: PUSH1 0xe5 000029a1: SHL 000029a2: DUP2 000029a3: MSTORE 000029a4: PUSH1 0x04 000029a6: ADD 000029a7: PUSH2 0x035a 000029aa: SWAP1 000029ab: PUSH2 0x3ce1 000029ae: JUMP 000029af: JUMPDEST 000029b0: PUSH1 0x01 000029b2: PUSH1 0x34 000029b4: PUSH1 0xa3 000029b6: NOT 000029b7: CALLDATASIZE 000029b8: ADD 000029b9: MOD 000029ba: ISZERO 000029bb: PUSH2 0x29f9 000029be: JUMPI 000029bf: PUSH1 0x40 000029c1: MLOAD 000029c2: PUSH3 0x461bcd 000029c6: PUSH1 0xe5 000029c8: SHL 000029c9: DUP2 000029ca: MSTORE 000029cb: PUSH1 0x20 000029cd: PUSH1 0x04 000029cf: DUP3 000029d0: ADD 000029d1: MSTORE 000029d2: PUSH1 0x13 000029d4: PUSH1 0x24 000029d6: DUP3 000029d7: ADD 000029d8: MSTORE 000029d9: PUSH19 0x092dcecc2d8d2c840c8c2e8c240d8cadccee8d 000029ed: PUSH1 0x6b 000029ef: SHL 000029f0: PUSH1 0x44 000029f2: DUP3 000029f3: ADD 000029f4: MSTORE 000029f5: PUSH1 0x64 000029f7: DUP2 000029f8: REVERT 000029f9: JUMPDEST 000029fa: PUSH1 0xa4 000029fc: JUMPDEST 000029fd: DUP2 000029fe: CALLDATASIZE 000029ff: DUP3 00002a00: LT 00002a01: AND 00002a02: ISZERO 00002a03: PUSH2 0x2a40 00002a06: JUMPI 00002a07: PUSH0 00002a08: MLOAD 00002a09: PUSH1 0x20 00002a0b: PUSH2 0x3f4c 00002a0e: PUSH0 00002a0f: CODECOPY 00002a10: PUSH0 00002a11: MLOAD 00002a12: SWAP1 00002a13: PUSH0 00002a14: MSTORE 00002a15: DUP2 00002a16: PUSH1 0x14 00002a18: ADD 00002a19: CALLDATALOAD 00002a1a: XOR 00002a1b: PUSH0 00002a1c: MLOAD 00002a1d: PUSH1 0x20 00002a1f: PUSH2 0x3f2c 00002a22: PUSH0 00002a23: CODECOPY 00002a24: PUSH0 00002a25: MLOAD 00002a26: SWAP1 00002a27: PUSH0 00002a28: MSTORE 00002a29: DUP3 00002a2a: CALLDATALOAD 00002a2b: PUSH1 0x60 00002a2d: SHR 00002a2e: XOR 00002a2f: BALANCE 00002a30: EQ 00002a31: PUSH2 0x2a38 00002a34: JUMPI 00002a35: PUSH0 00002a36: SWAP2 00002a37: POP 00002a38: JUMPDEST 00002a39: PUSH1 0x34 00002a3b: ADD 00002a3c: PUSH2 0x29fc 00002a3f: JUMP 00002a40: JUMPDEST 00002a41: POP 00002a42: DUP1 00002a43: ISZERO 00002a44: PUSH2 0x2a49 00002a47: JUMPI 00002a48: STOP 00002a49: JUMPDEST 00002a4a: PUSH2 0x2a56 00002a4d: DUP7 00002a4e: DUP7 00002a4f: DUP7 00002a50: DUP7 00002a51: DUP7 00002a52: PUSH2 0x0fe8 00002a55: JUMP 00002a56: JUMPDEST 00002a57: POP 00002a58: POP 00002a59: POP 00002a5a: POP 00002a5b: POP 00002a5c: POP 00002a5d: JUMP 00002a5e: JUMPDEST 00002a5f: PUSH0 00002a60: MLOAD 00002a61: PUSH1 0x20 00002a63: PUSH2 0x3f6c 00002a66: PUSH0 00002a67: CODECOPY 00002a68: PUSH0 00002a69: MLOAD 00002a6a: SWAP1 00002a6b: PUSH0 00002a6c: MSTORE 00002a6d: CALLER 00002a6e: EQ 00002a6f: DUP1 00002a70: PUSH2 0x2a87 00002a73: JUMPI 00002a74: POP 00002a75: CALLER 00002a76: PUSH0 00002a77: SWAP1 00002a78: DUP2 00002a79: MSTORE 00002a7a: PUSH1 0x20 00002a7c: DUP2 00002a7d: SWAP1 00002a7e: MSTORE 00002a7f: PUSH1 0x40 00002a81: SWAP1 00002a82: KECCAK256 00002a83: SLOAD 00002a84: PUSH1 0xff 00002a86: AND 00002a87: JUMPDEST 00002a88: PUSH2 0x2aa3 00002a8b: JUMPI 00002a8c: PUSH1 0x40 00002a8e: MLOAD 00002a8f: PUSH3 0x461bcd 00002a93: PUSH1 0xe5 00002a95: SHL 00002a96: DUP2 00002a97: MSTORE 00002a98: PUSH1 0x04 00002a9a: ADD 00002a9b: PUSH2 0x035a 00002a9e: SWAP1 00002a9f: PUSH2 0x3ce1 00002aa2: JUMP 00002aa3: JUMPDEST 00002aa4: DUP6 00002aa5: NUMBER 00002aa6: GT 00002aa7: ISZERO 00002aa8: PUSH2 0x2ac3 00002aab: JUMPI 00002aac: PUSH1 0x40 00002aae: MLOAD 00002aaf: PUSH3 0x461bcd 00002ab3: PUSH1 0xe5 00002ab5: SHL 00002ab6: DUP2 00002ab7: MSTORE 00002ab8: PUSH1 0x04 00002aba: ADD 00002abb: PUSH2 0x035a 00002abe: SWAP1 00002abf: PUSH2 0x3d10 00002ac2: JUMP 00002ac3: JUMPDEST 00002ac4: PUSH0 00002ac5: PUSH0 00002ac6: SWAP1 00002ac7: POP 00002ac8: PUSH0 00002ac9: PUSH0 00002aca: SWAP1 00002acb: POP 00002acc: PUSH0 00002acd: PUSH0 00002ace: DUP7 00002acf: PUSH1 0x01 00002ad1: PUSH1 0x01 00002ad3: PUSH1 0xa0 00002ad5: SHL 00002ad6: SUB 00002ad7: AND 00002ad8: PUSH4 0x0902f1ac 00002add: PUSH1 0x40 00002adf: MLOAD 00002ae0: DUP2 00002ae1: PUSH4 0xffffffff 00002ae6: AND 00002ae7: PUSH1 0xe0 00002ae9: SHL 00002aea: DUP2 00002aeb: MSTORE 00002aec: PUSH1 0x04 00002aee: ADD 00002aef: PUSH1 0x60 00002af1: PUSH1 0x40 00002af3: MLOAD 00002af4: DUP1 00002af5: DUP4 00002af6: SUB 00002af7: DUP2 00002af8: DUP7 00002af9: GAS 00002afa: STATICCALL 00002afb: ISZERO 00002afc: DUP1 00002afd: ISZERO 00002afe: PUSH2 0x2b09 00002b01: JUMPI 00002b02: RETURNDATASIZE 00002b03: PUSH0 00002b04: PUSH0 00002b05: RETURNDATACOPY 00002b06: RETURNDATASIZE 00002b07: PUSH0 00002b08: REVERT 00002b09: JUMPDEST 00002b0a: POP 00002b0b: POP 00002b0c: POP 00002b0d: POP 00002b0e: PUSH1 0x40 00002b10: MLOAD 00002b11: RETURNDATASIZE 00002b12: PUSH1 0x1f 00002b14: NOT 00002b15: PUSH1 0x1f 00002b17: DUP3 00002b18: ADD 00002b19: AND 00002b1a: DUP3 00002b1b: ADD 00002b1c: DUP1 00002b1d: PUSH1 0x40 00002b1f: MSTORE 00002b20: POP 00002b21: DUP2 00002b22: ADD 00002b23: SWAP1 00002b24: PUSH2 0x2b2d 00002b27: SWAP2 00002b28: SWAP1 00002b29: PUSH2 0x3d55 00002b2c: JUMP 00002b2d: JUMPDEST 00002b2e: POP 00002b2f: SWAP2 00002b30: POP 00002b31: SWAP2 00002b32: POP 00002b33: PUSH0 00002b34: PUSH1 0x01 00002b36: PUSH1 0xff 00002b38: SHL 00002b39: DUP7 00002b3a: AND 00002b3b: PUSH0 00002b3c: SUB 00002b3d: PUSH2 0x2bc6 00002b40: JUMPI 00002b41: PUSH2 0x2b5d 00002b44: DUP11 00002b45: DUP5 00002b46: PUSH1 0x01 00002b48: PUSH1 0x01 00002b4a: PUSH1 0x70 00002b4c: SHL 00002b4d: SUB 00002b4e: AND 00002b4f: DUP5 00002b50: PUSH1 0x01 00002b52: PUSH1 0x01 00002b54: PUSH1 0x70 00002b56: SHL 00002b57: SUB 00002b58: AND 00002b59: PUSH2 0x38cc 00002b5c: JUMP 00002b5d: JUMPDEST 00002b5e: SWAP4 00002b5f: POP 00002b60: DUP8 00002b61: PUSH1 0x01 00002b63: PUSH1 0x01 00002b65: PUSH1 0xa0 00002b67: SHL 00002b68: SUB 00002b69: AND 00002b6a: PUSH4 0xd21220a7 00002b6f: PUSH1 0x40 00002b71: MLOAD 00002b72: DUP2 00002b73: PUSH4 0xffffffff 00002b78: AND 00002b79: PUSH1 0xe0 00002b7b: SHL 00002b7c: DUP2 00002b7d: MSTORE 00002b7e: PUSH1 0x04 00002b80: ADD 00002b81: PUSH1 0x20 00002b83: PUSH1 0x40 00002b85: MLOAD 00002b86: DUP1 00002b87: DUP4 00002b88: SUB 00002b89: DUP2 00002b8a: DUP7 00002b8b: GAS 00002b8c: STATICCALL 00002b8d: ISZERO 00002b8e: DUP1 00002b8f: ISZERO 00002b90: PUSH2 0x2b9b 00002b93: JUMPI 00002b94: RETURNDATASIZE 00002b95: PUSH0 00002b96: PUSH0 00002b97: RETURNDATACOPY 00002b98: RETURNDATASIZE 00002b99: PUSH0 00002b9a: REVERT 00002b9b: JUMPDEST 00002b9c: POP 00002b9d: POP 00002b9e: POP 00002b9f: POP 00002ba0: PUSH1 0x40 00002ba2: MLOAD 00002ba3: RETURNDATASIZE 00002ba4: PUSH1 0x1f 00002ba6: NOT 00002ba7: PUSH1 0x1f 00002ba9: DUP3 00002baa: ADD 00002bab: AND 00002bac: DUP3 00002bad: ADD 00002bae: DUP1 00002baf: PUSH1 0x40 00002bb1: MSTORE 00002bb2: POP 00002bb3: DUP2 00002bb4: ADD 00002bb5: SWAP1 00002bb6: PUSH2 0x2bbf 00002bb9: SWAP2 00002bba: SWAP1 00002bbb: PUSH2 0x3da1 00002bbe: JUMP 00002bbf: JUMPDEST 00002bc0: SWAP1 00002bc1: POP 00002bc2: PUSH2 0x2c48 00002bc5: JUMP 00002bc6: JUMPDEST 00002bc7: PUSH2 0x2be3 00002bca: DUP11 00002bcb: DUP4 00002bcc: PUSH1 0x01 00002bce: PUSH1 0x01 00002bd0: PUSH1 0x70 00002bd2: SHL 00002bd3: SUB 00002bd4: AND 00002bd5: DUP6 00002bd6: PUSH1 0x01 00002bd8: PUSH1 0x01 00002bda: PUSH1 0x70 00002bdc: SHL 00002bdd: SUB 00002bde: AND 00002bdf: PUSH2 0x38cc 00002be2: JUMP 00002be3: JUMPDEST 00002be4: SWAP5 00002be5: POP 00002be6: DUP8 00002be7: PUSH1 0x01 00002be9: PUSH1 0x01 00002beb: PUSH1 0xa0 00002bed: SHL 00002bee: SUB 00002bef: AND 00002bf0: PUSH4 0x0dfe1681 00002bf5: PUSH1 0x40 00002bf7: MLOAD 00002bf8: DUP2 00002bf9: PUSH4 0xffffffff 00002bfe: AND 00002bff: PUSH1 0xe0 00002c01: SHL 00002c02: DUP2 00002c03: MSTORE 00002c04: PUSH1 0x04 00002c06: ADD 00002c07: PUSH1 0x20 00002c09: PUSH1 0x40 00002c0b: MLOAD 00002c0c: DUP1 00002c0d: DUP4 00002c0e: SUB 00002c0f: DUP2 00002c10: DUP7 00002c11: GAS 00002c12: STATICCALL 00002c13: ISZERO 00002c14: DUP1 00002c15: ISZERO 00002c16: PUSH2 0x2c21 00002c19: JUMPI 00002c1a: RETURNDATASIZE 00002c1b: PUSH0 00002c1c: PUSH0 00002c1d: RETURNDATACOPY 00002c1e: RETURNDATASIZE 00002c1f: PUSH0 00002c20: REVERT 00002c21: JUMPDEST 00002c22: POP 00002c23: POP 00002c24: POP 00002c25: POP 00002c26: PUSH1 0x40 00002c28: MLOAD 00002c29: RETURNDATASIZE 00002c2a: PUSH1 0x1f 00002c2c: NOT 00002c2d: PUSH1 0x1f 00002c2f: DUP3 00002c30: ADD 00002c31: AND 00002c32: DUP3 00002c33: ADD 00002c34: DUP1 00002c35: PUSH1 0x40 00002c37: MSTORE 00002c38: POP 00002c39: DUP2 00002c3a: ADD 00002c3b: SWAP1 00002c3c: PUSH2 0x2c45 00002c3f: SWAP2 00002c40: SWAP1 00002c41: PUSH2 0x3da1 00002c44: JUMP 00002c45: JUMPDEST 00002c46: SWAP1 00002c47: POP 00002c48: JUMPDEST 00002c49: PUSH1 0x40 00002c4b: MLOAD 00002c4c: PUSH4 0xa9059cbb 00002c51: PUSH1 0xe0 00002c53: SHL 00002c54: DUP2 00002c55: MSTORE 00002c56: DUP9 00002c57: PUSH1 0x04 00002c59: DUP3 00002c5a: ADD 00002c5b: MSTORE 00002c5c: DUP11 00002c5d: PUSH1 0x24 00002c5f: DUP3 00002c60: ADD 00002c61: MSTORE 00002c62: PUSH0 00002c63: PUSH0 00002c64: PUSH1 0x44 00002c66: DUP4 00002c67: PUSH0 00002c68: DUP15 00002c69: GAS 00002c6a: CALL 00002c6b: POP 00002c6c: POP 00002c6d: PUSH1 0x40 00002c6f: MLOAD 00002c70: PUSH4 0x70a08231 00002c75: PUSH1 0xe0 00002c77: SHL 00002c78: DUP2 00002c79: MSTORE 00002c7a: PUSH1 0x01 00002c7c: PUSH1 0x01 00002c7e: PUSH1 0xa0 00002c80: SHL 00002c81: SUB 00002c82: DUP8 00002c83: DUP2 00002c84: AND 00002c85: PUSH1 0x04 00002c87: DUP4 00002c88: ADD 00002c89: MSTORE 00002c8a: PUSH0 00002c8b: SWAP2 00002c8c: SWAP1 00002c8d: DUP4 00002c8e: AND 00002c8f: SWAP1 00002c90: PUSH4 0x70a08231 00002c95: SWAP1 00002c96: PUSH1 0x24 00002c98: ADD 00002c99: PUSH1 0x20 00002c9b: PUSH1 0x40 00002c9d: MLOAD 00002c9e: DUP1 00002c9f: DUP4 00002ca0: SUB 00002ca1: DUP2 00002ca2: DUP7 00002ca3: GAS 00002ca4: STATICCALL 00002ca5: ISZERO 00002ca6: DUP1 00002ca7: ISZERO 00002ca8: PUSH2 0x2cb3 00002cab: JUMPI 00002cac: RETURNDATASIZE 00002cad: PUSH0 00002cae: PUSH0 00002caf: RETURNDATACOPY 00002cb0: RETURNDATASIZE 00002cb1: PUSH0 00002cb2: REVERT 00002cb3: JUMPDEST 00002cb4: POP 00002cb5: POP 00002cb6: POP 00002cb7: POP 00002cb8: PUSH1 0x40 00002cba: MLOAD 00002cbb: RETURNDATASIZE 00002cbc: PUSH1 0x1f 00002cbe: NOT 00002cbf: PUSH1 0x1f 00002cc1: DUP3 00002cc2: ADD 00002cc3: AND 00002cc4: DUP3 00002cc5: ADD 00002cc6: DUP1 00002cc7: PUSH1 0x40 00002cc9: MSTORE 00002cca: POP 00002ccb: DUP2 00002ccc: ADD 00002ccd: SWAP1 00002cce: PUSH2 0x2cd7 00002cd1: SWAP2 00002cd2: SWAP1 00002cd3: PUSH2 0x3ddb 00002cd6: JUMP 00002cd7: JUMPDEST 00002cd8: SWAP1 00002cd9: POP 00002cda: PUSH0 00002cdb: PUSH1 0x01 00002cdd: PUSH1 0xfe 00002cdf: SHL 00002ce0: DUP9 00002ce1: AND 00002ce2: ISZERO 00002ce3: PUSH2 0x2d4f 00002ce6: JUMPI 00002ce7: PUSH1 0x40 00002ce9: MLOAD 00002cea: PUSH4 0x70a08231 00002cef: PUSH1 0xe0 00002cf1: SHL 00002cf2: DUP2 00002cf3: MSTORE 00002cf4: ADDRESS 00002cf5: PUSH1 0x04 00002cf7: DUP3 00002cf8: ADD 00002cf9: MSTORE 00002cfa: PUSH1 0x01 00002cfc: PUSH1 0x01 00002cfe: PUSH1 0xa0 00002d00: SHL 00002d01: SUB 00002d02: DUP5 00002d03: AND 00002d04: SWAP1 00002d05: PUSH4 0x70a08231 00002d0a: SWAP1 00002d0b: PUSH1 0x24 00002d0d: ADD 00002d0e: PUSH1 0x20 00002d10: PUSH1 0x40 00002d12: MLOAD 00002d13: DUP1 00002d14: DUP4 00002d15: SUB 00002d16: DUP2 00002d17: DUP7 00002d18: GAS 00002d19: STATICCALL 00002d1a: ISZERO 00002d1b: DUP1 00002d1c: ISZERO 00002d1d: PUSH2 0x2d28 00002d20: JUMPI 00002d21: RETURNDATASIZE 00002d22: PUSH0 00002d23: PUSH0 00002d24: RETURNDATACOPY 00002d25: RETURNDATASIZE 00002d26: PUSH0 00002d27: REVERT 00002d28: JUMPDEST 00002d29: POP 00002d2a: POP 00002d2b: POP 00002d2c: POP 00002d2d: PUSH1 0x40 00002d2f: MLOAD 00002d30: RETURNDATASIZE 00002d31: PUSH1 0x1f 00002d33: NOT 00002d34: PUSH1 0x1f 00002d36: DUP3 00002d37: ADD 00002d38: AND 00002d39: DUP3 00002d3a: ADD 00002d3b: DUP1 00002d3c: PUSH1 0x40 00002d3e: MSTORE 00002d3f: POP 00002d40: DUP2 00002d41: ADD 00002d42: SWAP1 00002d43: PUSH2 0x2d4c 00002d46: SWAP2 00002d47: SWAP1 00002d48: PUSH2 0x3ddb 00002d4b: JUMP 00002d4c: JUMPDEST 00002d4d: SWAP1 00002d4e: POP 00002d4f: JUMPDEST 00002d50: DUP10 00002d51: PUSH1 0x01 00002d53: PUSH1 0x01 00002d55: PUSH1 0xa0 00002d57: SHL 00002d58: SUB 00002d59: AND 00002d5a: PUSH4 0x022c0d9f 00002d5f: DUP9 00002d60: DUP9 00002d61: PUSH0 00002d62: PUSH1 0x01 00002d64: PUSH1 0xfe 00002d66: SHL 00002d67: DUP14 00002d68: AND 00002d69: GT 00002d6a: PUSH2 0x2d73 00002d6d: JUMPI 00002d6e: DUP12 00002d6f: PUSH2 0x2d75 00002d72: JUMP 00002d73: JUMPDEST 00002d74: ADDRESS 00002d75: JUMPDEST 00002d76: PUSH1 0x40 00002d78: MLOAD 00002d79: DUP5 00002d7a: PUSH4 0xffffffff 00002d7f: AND 00002d80: PUSH1 0xe0 00002d82: SHL 00002d83: DUP2 00002d84: MSTORE 00002d85: PUSH1 0x04 00002d87: ADD 00002d88: PUSH2 0x2d93 00002d8b: SWAP4 00002d8c: SWAP3 00002d8d: SWAP2 00002d8e: SWAP1 00002d8f: PUSH2 0x3df2 00002d92: JUMP 00002d93: JUMPDEST 00002d94: PUSH0 00002d95: PUSH1 0x40 00002d97: MLOAD 00002d98: DUP1 00002d99: DUP4 00002d9a: SUB 00002d9b: DUP2 00002d9c: PUSH0 00002d9d: DUP8 00002d9e: DUP1 00002d9f: EXTCODESIZE 00002da0: ISZERO 00002da1: DUP1 00002da2: ISZERO 00002da3: PUSH2 0x2daa 00002da6: JUMPI 00002da7: PUSH0 00002da8: PUSH0 00002da9: REVERT 00002daa: JUMPDEST 00002dab: POP 00002dac: GAS 00002dad: CALL 00002dae: ISZERO 00002daf: DUP1 00002db0: ISZERO 00002db1: PUSH2 0x2dbc 00002db4: JUMPI 00002db5: RETURNDATASIZE 00002db6: PUSH0 00002db7: PUSH0 00002db8: RETURNDATACOPY 00002db9: RETURNDATASIZE 00002dba: PUSH0 00002dbb: REVERT 00002dbc: JUMPDEST 00002dbd: POP 00002dbe: POP 00002dbf: POP 00002dc0: POP 00002dc1: PUSH1 0x01 00002dc3: PUSH1 0xfe 00002dc5: SHL 00002dc6: DUP9 00002dc7: AND 00002dc8: ISZERO 00002dc9: PUSH2 0x2e77 00002dcc: JUMPI 00002dcd: PUSH1 0x40 00002dcf: MLOAD 00002dd0: PUSH4 0x70a08231 00002dd5: PUSH1 0xe0 00002dd7: SHL 00002dd8: DUP2 00002dd9: MSTORE 00002dda: ADDRESS 00002ddb: PUSH1 0x04 00002ddd: DUP3 00002dde: ADD 00002ddf: MSTORE 00002de0: PUSH0 00002de1: SWAP1 00002de2: PUSH1 0x01 00002de4: PUSH1 0x01 00002de6: PUSH1 0xa0 00002de8: SHL 00002de9: SUB 00002dea: DUP6 00002deb: AND 00002dec: SWAP1 00002ded: PUSH4 0x70a08231 00002df2: SWAP1 00002df3: PUSH1 0x24 00002df5: ADD 00002df6: PUSH1 0x20 00002df8: PUSH1 0x40 00002dfa: MLOAD 00002dfb: DUP1 00002dfc: DUP4 00002dfd: SUB 00002dfe: DUP2 00002dff: DUP7 00002e00: GAS 00002e01: STATICCALL 00002e02: ISZERO 00002e03: DUP1 00002e04: ISZERO 00002e05: PUSH2 0x2e10 00002e08: JUMPI 00002e09: RETURNDATASIZE 00002e0a: PUSH0 00002e0b: PUSH0 00002e0c: RETURNDATACOPY 00002e0d: RETURNDATASIZE 00002e0e: PUSH0 00002e0f: REVERT 00002e10: JUMPDEST 00002e11: POP 00002e12: POP 00002e13: POP 00002e14: POP 00002e15: PUSH1 0x40 00002e17: MLOAD 00002e18: RETURNDATASIZE 00002e19: PUSH1 0x1f 00002e1b: NOT 00002e1c: PUSH1 0x1f 00002e1e: DUP3 00002e1f: ADD 00002e20: AND 00002e21: DUP3 00002e22: ADD 00002e23: DUP1 00002e24: PUSH1 0x40 00002e26: MSTORE 00002e27: POP 00002e28: DUP2 00002e29: ADD 00002e2a: SWAP1 00002e2b: PUSH2 0x2e34 00002e2e: SWAP2 00002e2f: SWAP1 00002e30: PUSH2 0x3ddb 00002e33: JUMP 00002e34: JUMPDEST 00002e35: SWAP1 00002e36: POP 00002e37: DUP2 00002e38: PUSH0 00002e39: SUB 00002e3a: PUSH2 0x2e66 00002e3d: JUMPI 00002e3e: PUSH2 0x2e4d 00002e41: DUP5 00002e42: DUP11 00002e43: PUSH2 0x0138 00002e46: PUSH1 0x01 00002e48: DUP6 00002e49: PUSH2 0x3e33 00002e4c: JUMP 00002e4d: JUMPDEST 00002e4e: DUP10 00002e4f: ISZERO 00002e50: PUSH2 0x2e61 00002e53: JUMPI 00002e54: PUSH2 0x2e5e 00002e57: PUSH1 0x01 00002e59: DUP12 00002e5a: PUSH2 0x3e33 00002e5d: JUMP 00002e5e: JUMPDEST 00002e5f: SWAP10 00002e60: POP 00002e61: JUMPDEST 00002e62: PUSH2 0x2e75 00002e65: JUMP 00002e66: JUMPDEST 00002e67: PUSH2 0x2e75 00002e6a: DUP5 00002e6b: DUP11 00002e6c: PUSH2 0x0138 00002e6f: DUP6 00002e70: DUP6 00002e71: PUSH2 0x3e33 00002e74: JUMP 00002e75: JUMPDEST 00002e76: POP 00002e77: JUMPDEST 00002e78: PUSH1 0x40 00002e7a: MLOAD 00002e7b: PUSH4 0x70a08231 00002e80: PUSH1 0xe0 00002e82: SHL 00002e83: DUP2 00002e84: MSTORE 00002e85: PUSH1 0x01 00002e87: PUSH1 0x01 00002e89: PUSH1 0xa0 00002e8b: SHL 00002e8c: SUB 00002e8d: DUP10 00002e8e: DUP2 00002e8f: AND 00002e90: PUSH1 0x04 00002e92: DUP4 00002e93: ADD 00002e94: MSTORE 00002e95: DUP11 00002e96: SWAP2 00002e97: DUP5 00002e98: SWAP2 00002e99: DUP7 00002e9a: AND 00002e9b: SWAP1 00002e9c: PUSH4 0x70a08231 00002ea1: SWAP1 00002ea2: PUSH1 0x24 00002ea4: ADD 00002ea5: PUSH1 0x20 00002ea7: PUSH1 0x40 00002ea9: MLOAD 00002eaa: DUP1 00002eab: DUP4 00002eac: SUB 00002ead: DUP2 00002eae: DUP7 00002eaf: GAS 00002eb0: STATICCALL 00002eb1: ISZERO 00002eb2: DUP1 00002eb3: ISZERO 00002eb4: PUSH2 0x2ebf 00002eb7: JUMPI 00002eb8: RETURNDATASIZE 00002eb9: PUSH0 00002eba: PUSH0 00002ebb: RETURNDATACOPY 00002ebc: RETURNDATASIZE 00002ebd: PUSH0 00002ebe: REVERT 00002ebf: JUMPDEST 00002ec0: POP 00002ec1: POP 00002ec2: POP 00002ec3: POP 00002ec4: PUSH1 0x40 00002ec6: MLOAD 00002ec7: RETURNDATASIZE 00002ec8: PUSH1 0x1f 00002eca: NOT 00002ecb: PUSH1 0x1f 00002ecd: DUP3 00002ece: ADD 00002ecf: AND 00002ed0: DUP3 00002ed1: ADD 00002ed2: DUP1 00002ed3: PUSH1 0x40 00002ed5: MSTORE 00002ed6: POP 00002ed7: DUP2 00002ed8: ADD 00002ed9: SWAP1 00002eda: PUSH2 0x2ee3 00002edd: SWAP2 00002ede: SWAP1 00002edf: PUSH2 0x3ddb 00002ee2: JUMP 00002ee3: JUMPDEST 00002ee4: PUSH2 0x2eed 00002ee7: SWAP2 00002ee8: SWAP1 00002ee9: PUSH2 0x3e33 00002eec: JUMP 00002eed: JUMPDEST 00002eee: LT 00002eef: ISZERO 00002ef0: PUSH2 0x2f0b 00002ef3: JUMPI 00002ef4: PUSH1 0x40 00002ef6: MLOAD 00002ef7: PUSH3 0x461bcd 00002efb: PUSH1 0xe5 00002efd: SHL 00002efe: DUP2 00002eff: MSTORE 00002f00: PUSH1 0x04 00002f02: ADD 00002f03: PUSH2 0x035a 00002f06: SWAP1 00002f07: PUSH2 0x3e4c 00002f0a: JUMP 00002f0b: JUMPDEST 00002f0c: POP 00002f0d: POP 00002f0e: POP 00002f0f: POP 00002f10: POP 00002f11: POP 00002f12: POP 00002f13: POP 00002f14: POP 00002f15: POP 00002f16: POP 00002f17: POP 00002f18: POP 00002f19: JUMP 00002f1a: JUMPDEST 00002f1b: PUSH0 00002f1c: MLOAD 00002f1d: PUSH1 0x20 00002f1f: PUSH2 0x3f6c 00002f22: PUSH0 00002f23: CODECOPY 00002f24: PUSH0 00002f25: MLOAD 00002f26: SWAP1 00002f27: PUSH0 00002f28: MSTORE 00002f29: CALLER 00002f2a: EQ 00002f2b: DUP1 00002f2c: PUSH2 0x2f43 00002f2f: JUMPI 00002f30: POP 00002f31: CALLER 00002f32: PUSH0 00002f33: SWAP1 00002f34: DUP2 00002f35: MSTORE 00002f36: PUSH1 0x20 00002f38: DUP2 00002f39: SWAP1 00002f3a: MSTORE 00002f3b: PUSH1 0x40 00002f3d: SWAP1 00002f3e: KECCAK256 00002f3f: SLOAD 00002f40: PUSH1 0xff 00002f42: AND 00002f43: JUMPDEST 00002f44: PUSH2 0x2f5f 00002f47: JUMPI 00002f48: PUSH1 0x40 00002f4a: MLOAD 00002f4b: PUSH3 0x461bcd 00002f4f: PUSH1 0xe5 00002f51: SHL 00002f52: DUP2 00002f53: MSTORE 00002f54: PUSH1 0x04 00002f56: ADD 00002f57: PUSH2 0x035a 00002f5a: SWAP1 00002f5b: PUSH2 0x3ce1 00002f5e: JUMP 00002f5f: JUMPDEST 00002f60: PUSH1 0x01 00002f62: PUSH1 0x34 00002f64: PUSH1 0x83 00002f66: NOT 00002f67: CALLDATASIZE 00002f68: ADD 00002f69: MOD 00002f6a: ISZERO 00002f6b: PUSH2 0x2fa9 00002f6e: JUMPI 00002f6f: PUSH1 0x40 00002f71: MLOAD 00002f72: PUSH3 0x461bcd 00002f76: PUSH1 0xe5 00002f78: SHL 00002f79: DUP2 00002f7a: MSTORE 00002f7b: PUSH1 0x20 00002f7d: PUSH1 0x04 00002f7f: DUP3 00002f80: ADD 00002f81: MSTORE 00002f82: PUSH1 0x13 00002f84: PUSH1 0x24 00002f86: DUP3 00002f87: ADD 00002f88: MSTORE 00002f89: PUSH19 0x092dcecc2d8d2c840c8c2e8c240d8cadccee8d 00002f9d: PUSH1 0x6b 00002f9f: SHL 00002fa0: PUSH1 0x44 00002fa2: DUP3 00002fa3: ADD 00002fa4: MSTORE 00002fa5: PUSH1 0x64 00002fa7: DUP2 00002fa8: REVERT 00002fa9: JUMPDEST 00002faa: PUSH1 0x84 00002fac: JUMPDEST 00002fad: DUP2 00002fae: CALLDATASIZE 00002faf: DUP3 00002fb0: LT 00002fb1: AND 00002fb2: ISZERO 00002fb3: PUSH2 0x2ff0 00002fb6: JUMPI 00002fb7: PUSH0 00002fb8: MLOAD 00002fb9: PUSH1 0x20 00002fbb: PUSH2 0x3f4c 00002fbe: PUSH0 00002fbf: CODECOPY 00002fc0: PUSH0 00002fc1: MLOAD 00002fc2: SWAP1 00002fc3: PUSH0 00002fc4: MSTORE 00002fc5: DUP2 00002fc6: PUSH1 0x14 00002fc8: ADD 00002fc9: CALLDATALOAD 00002fca: XOR 00002fcb: PUSH0 00002fcc: MLOAD 00002fcd: PUSH1 0x20 00002fcf: PUSH2 0x3f2c 00002fd2: PUSH0 00002fd3: CODECOPY 00002fd4: PUSH0 00002fd5: MLOAD 00002fd6: SWAP1 00002fd7: PUSH0 00002fd8: MSTORE 00002fd9: DUP3 00002fda: CALLDATALOAD 00002fdb: PUSH1 0x60 00002fdd: SHR 00002fde: XOR 00002fdf: BALANCE 00002fe0: EQ 00002fe1: PUSH2 0x2fe8 00002fe4: JUMPI 00002fe5: PUSH0 00002fe6: SWAP2 00002fe7: POP 00002fe8: JUMPDEST 00002fe9: PUSH1 0x34 00002feb: ADD 00002fec: PUSH2 0x2fac 00002fef: JUMP 00002ff0: JUMPDEST 00002ff1: POP 00002ff2: DUP1 00002ff3: ISZERO 00002ff4: PUSH2 0x300b 00002ff7: JUMPI 00002ff8: PUSH0 00002ff9: PUSH0 00002ffa: PUSH0 00002ffb: PUSH0 00002ffc: CALLVALUE 00002ffd: CALLER 00002ffe: PUSH0 00002fff: CALL 00003000: PUSH2 0x013d 00003003: JUMPI 00003004: RETURNDATASIZE 00003005: PUSH0 00003006: PUSH0 00003007: RETURNDATACOPY 00003008: RETURNDATASIZE 00003009: PUSH0 0000300a: REVERT 0000300b: JUMPDEST 0000300c: PUSH2 0x0fe1 0000300f: DUP6 00003010: DUP6 00003011: DUP6 00003012: DUP6 00003013: PUSH2 0x0395 00003016: JUMP 00003017: JUMPDEST 00003018: PUSH1 0x60 0000301a: PUSH0 0000301b: MLOAD 0000301c: PUSH1 0x20 0000301e: PUSH2 0x3f6c 00003021: PUSH0 00003022: CODECOPY 00003023: PUSH0 00003024: MLOAD 00003025: SWAP1 00003026: PUSH0 00003027: MSTORE 00003028: CALLER 00003029: EQ 0000302a: DUP1 0000302b: PUSH2 0x3042 0000302e: JUMPI 0000302f: POP 00003030: CALLER 00003031: PUSH0 00003032: SWAP1 00003033: DUP2 00003034: MSTORE 00003035: PUSH1 0x20 00003037: DUP2 00003038: SWAP1 00003039: MSTORE 0000303a: PUSH1 0x40 0000303c: SWAP1 0000303d: KECCAK256 0000303e: SLOAD 0000303f: PUSH1 0xff 00003041: AND 00003042: JUMPDEST 00003043: PUSH2 0x305e 00003046: JUMPI 00003047: PUSH1 0x40 00003049: MLOAD 0000304a: PUSH3 0x461bcd 0000304e: PUSH1 0xe5 00003050: SHL 00003051: DUP2 00003052: MSTORE 00003053: PUSH1 0x04 00003055: ADD 00003056: PUSH2 0x035a 00003059: SWAP1 0000305a: PUSH2 0x3ce1 0000305d: JUMP 0000305e: JUMPDEST 0000305f: PUSH0 00003060: PUSH0 00003061: DUP6 00003062: PUSH1 0x01 00003064: PUSH1 0x01 00003066: PUSH1 0xa0 00003068: SHL 00003069: SUB 0000306a: AND 0000306b: CALLVALUE 0000306c: DUP7 0000306d: DUP7 0000306e: PUSH1 0x40 00003070: MLOAD 00003071: PUSH2 0x307b 00003074: SWAP3 00003075: SWAP2 00003076: SWAP1 00003077: PUSH2 0x3ed3 0000307a: JUMP 0000307b: JUMPDEST 0000307c: PUSH0 0000307d: PUSH1 0x40 0000307f: MLOAD 00003080: DUP1 00003081: DUP4 00003082: SUB 00003083: DUP2 00003084: DUP6 00003085: DUP8 00003086: GAS 00003087: CALL 00003088: SWAP3 00003089: POP 0000308a: POP 0000308b: POP 0000308c: RETURNDATASIZE 0000308d: DUP1 0000308e: PUSH0 0000308f: DUP2 00003090: EQ 00003091: PUSH2 0x30b5 00003094: JUMPI 00003095: PUSH1 0x40 00003097: MLOAD 00003098: SWAP2 00003099: POP 0000309a: PUSH1 0x1f 0000309c: NOT 0000309d: PUSH1 0x3f 0000309f: RETURNDATASIZE 000030a0: ADD 000030a1: AND 000030a2: DUP3 000030a3: ADD 000030a4: PUSH1 0x40 000030a6: MSTORE 000030a7: RETURNDATASIZE 000030a8: DUP3 000030a9: MSTORE 000030aa: RETURNDATASIZE 000030ab: PUSH0 000030ac: PUSH1 0x20 000030ae: DUP5 000030af: ADD 000030b0: RETURNDATACOPY 000030b1: PUSH2 0x30ba 000030b4: JUMP 000030b5: JUMPDEST 000030b6: PUSH1 0x60 000030b8: SWAP2 000030b9: POP 000030ba: JUMPDEST 000030bb: POP 000030bc: SWAP2 000030bd: POP 000030be: SWAP2 000030bf: POP 000030c0: DUP2 000030c1: PUSH2 0x310c 000030c4: JUMPI 000030c5: PUSH1 0x40 000030c7: MLOAD 000030c8: PUSH3 0x461bcd 000030cc: PUSH1 0xe5 000030ce: SHL 000030cf: DUP2 000030d0: MSTORE 000030d1: PUSH1 0x20 000030d3: PUSH1 0x04 000030d5: DUP3 000030d6: ADD 000030d7: MSTORE 000030d8: PUSH1 0x1c 000030da: PUSH1 0x24 000030dc: DUP3 000030dd: ADD 000030de: MSTORE 000030df: PUSH32 0x7472616e73706172656e7443616c6c3a2063616c6c206661696c656400000000 00003100: PUSH1 0x44 00003102: DUP3 00003103: ADD 00003104: MSTORE 00003105: PUSH1 0x64 00003107: ADD 00003108: PUSH2 0x035a 0000310b: JUMP 0000310c: JUMPDEST 0000310d: SWAP6 0000310e: SWAP5 0000310f: POP 00003110: POP 00003111: POP 00003112: POP 00003113: POP 00003114: JUMP 00003115: JUMPDEST 00003116: PUSH0 00003117: MLOAD 00003118: PUSH1 0x20 0000311a: PUSH2 0x3f6c 0000311d: PUSH0 0000311e: CODECOPY 0000311f: PUSH0 00003120: MLOAD 00003121: SWAP1 00003122: PUSH0 00003123: MSTORE 00003124: CALLER 00003125: EQ 00003126: DUP1 00003127: PUSH2 0x313e 0000312a: JUMPI 0000312b: POP 0000312c: CALLER 0000312d: PUSH0 0000312e: SWAP1 0000312f: DUP2 00003130: MSTORE 00003131: PUSH1 0x20 00003133: DUP2 00003134: SWAP1 00003135: MSTORE 00003136: PUSH1 0x40 00003138: SWAP1 00003139: KECCAK256 0000313a: SLOAD 0000313b: PUSH1 0xff 0000313d: AND 0000313e: JUMPDEST 0000313f: PUSH2 0x315a 00003142: JUMPI 00003143: PUSH1 0x40 00003145: MLOAD 00003146: PUSH3 0x461bcd 0000314a: PUSH1 0xe5 0000314c: SHL 0000314d: DUP2 0000314e: MSTORE 0000314f: PUSH1 0x04 00003151: ADD 00003152: PUSH2 0x035a 00003155: SWAP1 00003156: PUSH2 0x3ce1 00003159: JUMP 0000315a: JUMPDEST 0000315b: PUSH1 0x01 0000315d: PUSH1 0x34 0000315f: PUSH1 0xc3 00003161: NOT 00003162: CALLDATASIZE 00003163: ADD 00003164: MOD 00003165: ISZERO 00003166: PUSH2 0x31a4 00003169: JUMPI 0000316a: PUSH1 0x40 0000316c: MLOAD 0000316d: PUSH3 0x461bcd 00003171: PUSH1 0xe5 00003173: SHL 00003174: DUP2 00003175: MSTORE 00003176: PUSH1 0x20 00003178: PUSH1 0x04 0000317a: DUP3 0000317b: ADD 0000317c: MSTORE 0000317d: PUSH1 0x13 0000317f: PUSH1 0x24 00003181: DUP3 00003182: ADD 00003183: MSTORE 00003184: PUSH19 0x092dcecc2d8d2c840c8c2e8c240d8cadccee8d 00003198: PUSH1 0x6b 0000319a: SHL 0000319b: PUSH1 0x44 0000319d: DUP3 0000319e: ADD 0000319f: MSTORE 000031a0: PUSH1 0x64 000031a2: DUP2 000031a3: REVERT 000031a4: JUMPDEST 000031a5: PUSH1 0xc4 000031a7: JUMPDEST 000031a8: DUP2 000031a9: CALLDATASIZE 000031aa: DUP3 000031ab: LT 000031ac: AND 000031ad: ISZERO 000031ae: PUSH2 0x31eb 000031b1: JUMPI 000031b2: PUSH0 000031b3: MLOAD 000031b4: PUSH1 0x20 000031b6: PUSH2 0x3f4c 000031b9: PUSH0 000031ba: CODECOPY 000031bb: PUSH0 000031bc: MLOAD 000031bd: SWAP1 000031be: PUSH0 000031bf: MSTORE 000031c0: DUP2 000031c1: PUSH1 0x14 000031c3: ADD 000031c4: CALLDATALOAD 000031c5: XOR 000031c6: PUSH0 000031c7: MLOAD 000031c8: PUSH1 0x20 000031ca: PUSH2 0x3f2c 000031cd: PUSH0 000031ce: CODECOPY 000031cf: PUSH0 000031d0: MLOAD 000031d1: SWAP1 000031d2: PUSH0 000031d3: MSTORE 000031d4: DUP3 000031d5: CALLDATALOAD 000031d6: PUSH1 0x60 000031d8: SHR 000031d9: XOR 000031da: BALANCE 000031db: EQ 000031dc: PUSH2 0x31e3 000031df: JUMPI 000031e0: PUSH0 000031e1: SWAP2 000031e2: POP 000031e3: JUMPDEST 000031e4: PUSH1 0x34 000031e6: ADD 000031e7: PUSH2 0x31a7 000031ea: JUMP 000031eb: JUMPDEST 000031ec: POP 000031ed: DUP1 000031ee: ISZERO 000031ef: PUSH2 0x31f4 000031f2: JUMPI 000031f3: STOP 000031f4: JUMPDEST 000031f5: PUSH2 0x1bb7 000031f8: DUP8 000031f9: DUP8 000031fa: DUP8 000031fb: DUP8 000031fc: DUP8 000031fd: DUP8 000031fe: PUSH2 0x2a5e 00003201: JUMP 00003202: JUMPDEST 00003203: PUSH0 00003204: MLOAD 00003205: PUSH1 0x20 00003207: PUSH2 0x3f6c 0000320a: PUSH0 0000320b: CODECOPY 0000320c: PUSH0 0000320d: MLOAD 0000320e: SWAP1 0000320f: PUSH0 00003210: MSTORE 00003211: CALLER 00003212: EQ 00003213: DUP1 00003214: PUSH2 0x322b 00003217: JUMPI 00003218: POP 00003219: CALLER 0000321a: PUSH0 0000321b: SWAP1 0000321c: DUP2 0000321d: MSTORE 0000321e: PUSH1 0x20 00003220: DUP2 00003221: SWAP1 00003222: MSTORE 00003223: PUSH1 0x40 00003225: SWAP1 00003226: KECCAK256 00003227: SLOAD 00003228: PUSH1 0xff 0000322a: AND 0000322b: JUMPDEST 0000322c: PUSH2 0x3247 0000322f: JUMPI 00003230: PUSH1 0x40 00003232: MLOAD 00003233: PUSH3 0x461bcd 00003237: PUSH1 0xe5 00003239: SHL 0000323a: DUP2 0000323b: MSTORE 0000323c: PUSH1 0x04 0000323e: ADD 0000323f: PUSH2 0x035a 00003242: SWAP1 00003243: PUSH2 0x3ce1 00003246: JUMP 00003247: JUMPDEST 00003248: DUP6 00003249: NUMBER 0000324a: GT 0000324b: ISZERO 0000324c: PUSH2 0x3267 0000324f: JUMPI 00003250: PUSH1 0x40 00003252: MLOAD 00003253: PUSH3 0x461bcd 00003257: PUSH1 0xe5 00003259: SHL 0000325a: DUP2 0000325b: MSTORE 0000325c: PUSH1 0x04 0000325e: ADD 0000325f: PUSH2 0x035a 00003262: SWAP1 00003263: PUSH2 0x3d10 00003266: JUMP 00003267: JUMPDEST 00003268: PUSH0 00003269: PUSH0 0000326a: SWAP1 0000326b: POP 0000326c: PUSH0 0000326d: PUSH0 0000326e: SWAP1 0000326f: POP 00003270: PUSH0 00003271: PUSH0 00003272: DUP7 00003273: PUSH1 0x01 00003275: PUSH1 0x01 00003277: PUSH1 0xa0 00003279: SHL 0000327a: SUB 0000327b: AND 0000327c: PUSH4 0x0902f1ac 00003281: PUSH1 0x40 00003283: MLOAD 00003284: DUP2 00003285: PUSH4 0xffffffff 0000328a: AND 0000328b: PUSH1 0xe0 0000328d: SHL 0000328e: DUP2 0000328f: MSTORE 00003290: PUSH1 0x04 00003292: ADD 00003293: PUSH1 0x60 00003295: PUSH1 0x40 00003297: MLOAD 00003298: DUP1 00003299: DUP4 0000329a: SUB 0000329b: DUP2 0000329c: DUP7 0000329d: GAS 0000329e: STATICCALL 0000329f: ISZERO 000032a0: DUP1 000032a1: ISZERO 000032a2: PUSH2 0x32ad 000032a5: JUMPI 000032a6: RETURNDATASIZE 000032a7: PUSH0 000032a8: PUSH0 000032a9: RETURNDATACOPY 000032aa: RETURNDATASIZE 000032ab: PUSH0 000032ac: REVERT 000032ad: JUMPDEST 000032ae: POP 000032af: POP 000032b0: POP 000032b1: POP 000032b2: PUSH1 0x40 000032b4: MLOAD 000032b5: RETURNDATASIZE 000032b6: PUSH1 0x1f 000032b8: NOT 000032b9: PUSH1 0x1f 000032bb: DUP3 000032bc: ADD 000032bd: AND 000032be: DUP3 000032bf: ADD 000032c0: DUP1 000032c1: PUSH1 0x40 000032c3: MSTORE 000032c4: POP 000032c5: DUP2 000032c6: ADD 000032c7: SWAP1 000032c8: PUSH2 0x32d1 000032cb: SWAP2 000032cc: SWAP1 000032cd: PUSH2 0x3d55 000032d0: JUMP 000032d1: JUMPDEST 000032d2: POP 000032d3: SWAP2 000032d4: POP 000032d5: SWAP2 000032d6: POP 000032d7: PUSH0 000032d8: PUSH1 0x01 000032da: PUSH1 0xff 000032dc: SHL 000032dd: DUP7 000032de: AND 000032df: PUSH0 000032e0: SUB 000032e1: PUSH2 0x336a 000032e4: JUMPI 000032e5: PUSH2 0x3301 000032e8: DUP11 000032e9: DUP5 000032ea: PUSH1 0x01 000032ec: PUSH1 0x01 000032ee: PUSH1 0x70 000032f0: SHL 000032f1: SUB 000032f2: AND 000032f3: DUP5 000032f4: PUSH1 0x01 000032f6: PUSH1 0x01 000032f8: PUSH1 0x70 000032fa: SHL 000032fb: SUB 000032fc: AND 000032fd: PUSH2 0x38cc 00003300: JUMP 00003301: JUMPDEST 00003302: SWAP4 00003303: POP 00003304: DUP8 00003305: PUSH1 0x01 00003307: PUSH1 0x01 00003309: PUSH1 0xa0 0000330b: SHL 0000330c: SUB 0000330d: AND 0000330e: PUSH4 0xd21220a7 00003313: PUSH1 0x40 00003315: MLOAD 00003316: DUP2 00003317: PUSH4 0xffffffff 0000331c: AND 0000331d: PUSH1 0xe0 0000331f: SHL 00003320: DUP2 00003321: MSTORE 00003322: PUSH1 0x04 00003324: ADD 00003325: PUSH1 0x20 00003327: PUSH1 0x40 00003329: MLOAD 0000332a: DUP1 0000332b: DUP4 0000332c: SUB 0000332d: DUP2 0000332e: DUP7 0000332f: GAS 00003330: STATICCALL 00003331: ISZERO 00003332: DUP1 00003333: ISZERO 00003334: PUSH2 0x333f 00003337: JUMPI 00003338: RETURNDATASIZE 00003339: PUSH0 0000333a: PUSH0 0000333b: RETURNDATACOPY 0000333c: RETURNDATASIZE 0000333d: PUSH0 0000333e: REVERT 0000333f: JUMPDEST 00003340: POP 00003341: POP 00003342: POP 00003343: POP 00003344: PUSH1 0x40 00003346: MLOAD 00003347: RETURNDATASIZE 00003348: PUSH1 0x1f 0000334a: NOT 0000334b: PUSH1 0x1f 0000334d: DUP3 0000334e: ADD 0000334f: AND 00003350: DUP3 00003351: ADD 00003352: DUP1 00003353: PUSH1 0x40 00003355: MSTORE 00003356: POP 00003357: DUP2 00003358: ADD 00003359: SWAP1 0000335a: PUSH2 0x3363 0000335d: SWAP2 0000335e: SWAP1 0000335f: PUSH2 0x3da1 00003362: JUMP 00003363: JUMPDEST 00003364: SWAP1 00003365: POP 00003366: PUSH2 0x33ec 00003369: JUMP 0000336a: JUMPDEST 0000336b: PUSH2 0x3387 0000336e: DUP11 0000336f: DUP4 00003370: PUSH1 0x01 00003372: PUSH1 0x01 00003374: PUSH1 0x70 00003376: SHL 00003377: SUB 00003378: AND 00003379: DUP6 0000337a: PUSH1 0x01 0000337c: PUSH1 0x01 0000337e: PUSH1 0x70 00003380: SHL 00003381: SUB 00003382: AND 00003383: PUSH2 0x38cc 00003386: JUMP 00003387: JUMPDEST 00003388: SWAP5 00003389: POP 0000338a: DUP8 0000338b: PUSH1 0x01 0000338d: PUSH1 0x01 0000338f: PUSH1 0xa0 00003391: SHL 00003392: SUB 00003393: AND 00003394: PUSH4 0x0dfe1681 00003399: PUSH1 0x40 0000339b: MLOAD 0000339c: DUP2 0000339d: PUSH4 0xffffffff 000033a2: AND 000033a3: PUSH1 0xe0 000033a5: SHL 000033a6: DUP2 000033a7: MSTORE 000033a8: PUSH1 0x04 000033aa: ADD 000033ab: PUSH1 0x20 000033ad: PUSH1 0x40 000033af: MLOAD 000033b0: DUP1 000033b1: DUP4 000033b2: SUB 000033b3: DUP2 000033b4: DUP7 000033b5: GAS 000033b6: STATICCALL 000033b7: ISZERO 000033b8: DUP1 000033b9: ISZERO 000033ba: PUSH2 0x33c5 000033bd: JUMPI 000033be: RETURNDATASIZE 000033bf: PUSH0 000033c0: PUSH0 000033c1: RETURNDATACOPY 000033c2: RETURNDATASIZE 000033c3: PUSH0 000033c4: REVERT 000033c5: JUMPDEST 000033c6: POP 000033c7: POP 000033c8: POP 000033c9: POP 000033ca: PUSH1 0x40 000033cc: MLOAD 000033cd: RETURNDATASIZE 000033ce: PUSH1 0x1f 000033d0: NOT 000033d1: PUSH1 0x1f 000033d3: DUP3 000033d4: ADD 000033d5: AND 000033d6: DUP3 000033d7: ADD 000033d8: DUP1 000033d9: PUSH1 0x40 000033db: MSTORE 000033dc: POP 000033dd: DUP2 000033de: ADD 000033df: SWAP1 000033e0: PUSH2 0x33e9 000033e3: SWAP2 000033e4: SWAP1 000033e5: PUSH2 0x3da1 000033e8: JUMP 000033e9: JUMPDEST 000033ea: SWAP1 000033eb: POP 000033ec: JUMPDEST 000033ed: PUSH1 0x40 000033ef: MLOAD 000033f0: PUSH4 0xa9059cbb 000033f5: PUSH1 0xe0 000033f7: SHL 000033f8: DUP2 000033f9: MSTORE 000033fa: DUP9 000033fb: PUSH1 0x04 000033fd: DUP3 000033fe: ADD 000033ff: MSTORE 00003400: DUP11 00003401: PUSH1 0x24 00003403: DUP3 00003404: ADD 00003405: MSTORE 00003406: PUSH0 00003407: PUSH0 00003408: PUSH1 0x44 0000340a: DUP4 0000340b: PUSH0 0000340c: DUP15 0000340d: GAS 0000340e: CALL 0000340f: POP 00003410: POP 00003411: PUSH1 0x40 00003413: MLOAD 00003414: PUSH4 0x70a08231 00003419: PUSH1 0xe0 0000341b: SHL 0000341c: DUP2 0000341d: MSTORE 0000341e: PUSH1 0x01 00003420: PUSH1 0x01 00003422: PUSH1 0xa0 00003424: SHL 00003425: SUB 00003426: DUP8 00003427: DUP2 00003428: AND 00003429: PUSH1 0x04 0000342b: DUP4 0000342c: ADD 0000342d: MSTORE 0000342e: PUSH0 0000342f: SWAP2 00003430: SWAP1 00003431: DUP4 00003432: AND 00003433: SWAP1 00003434: PUSH4 0x70a08231 00003439: SWAP1 0000343a: PUSH1 0x24 0000343c: ADD 0000343d: PUSH1 0x20 0000343f: PUSH1 0x40 00003441: MLOAD 00003442: DUP1 00003443: DUP4 00003444: SUB 00003445: DUP2 00003446: DUP7 00003447: GAS 00003448: STATICCALL 00003449: ISZERO 0000344a: DUP1 0000344b: ISZERO 0000344c: PUSH2 0x3457 0000344f: JUMPI 00003450: RETURNDATASIZE 00003451: PUSH0 00003452: PUSH0 00003453: RETURNDATACOPY 00003454: RETURNDATASIZE 00003455: PUSH0 00003456: REVERT 00003457: JUMPDEST 00003458: POP 00003459: POP 0000345a: POP 0000345b: POP 0000345c: PUSH1 0x40 0000345e: MLOAD 0000345f: RETURNDATASIZE 00003460: PUSH1 0x1f 00003462: NOT 00003463: PUSH1 0x1f 00003465: DUP3 00003466: ADD 00003467: AND 00003468: DUP3 00003469: ADD 0000346a: DUP1 0000346b: PUSH1 0x40 0000346d: MSTORE 0000346e: POP 0000346f: DUP2 00003470: ADD 00003471: SWAP1 00003472: PUSH2 0x347b 00003475: SWAP2 00003476: SWAP1 00003477: PUSH2 0x3ddb 0000347a: JUMP 0000347b: JUMPDEST 0000347c: SWAP1 0000347d: POP 0000347e: PUSH0 0000347f: PUSH1 0x01 00003481: PUSH1 0xfe 00003483: SHL 00003484: DUP9 00003485: AND 00003486: ISZERO 00003487: PUSH2 0x34f3 0000348a: JUMPI 0000348b: PUSH1 0x40 0000348d: MLOAD 0000348e: PUSH4 0x70a08231 00003493: PUSH1 0xe0 00003495: SHL 00003496: DUP2 00003497: MSTORE 00003498: ADDRESS 00003499: PUSH1 0x04 0000349b: DUP3 0000349c: ADD 0000349d: MSTORE 0000349e: PUSH1 0x01 000034a0: PUSH1 0x01 000034a2: PUSH1 0xa0 000034a4: SHL 000034a5: SUB 000034a6: DUP5 000034a7: AND 000034a8: SWAP1 000034a9: PUSH4 0x70a08231 000034ae: SWAP1 000034af: PUSH1 0x24 000034b1: ADD 000034b2: PUSH1 0x20 000034b4: PUSH1 0x40 000034b6: MLOAD 000034b7: DUP1 000034b8: DUP4 000034b9: SUB 000034ba: DUP2 000034bb: DUP7 000034bc: GAS 000034bd: STATICCALL 000034be: ISZERO 000034bf: DUP1 000034c0: ISZERO 000034c1: PUSH2 0x34cc 000034c4: JUMPI 000034c5: RETURNDATASIZE 000034c6: PUSH0 000034c7: PUSH0 000034c8: RETURNDATACOPY 000034c9: RETURNDATASIZE 000034ca: PUSH0 000034cb: REVERT 000034cc: JUMPDEST 000034cd: POP 000034ce: POP 000034cf: POP 000034d0: POP 000034d1: PUSH1 0x40 000034d3: MLOAD 000034d4: RETURNDATASIZE 000034d5: PUSH1 0x1f 000034d7: NOT 000034d8: PUSH1 0x1f 000034da: DUP3 000034db: ADD 000034dc: AND 000034dd: DUP3 000034de: ADD 000034df: DUP1 000034e0: PUSH1 0x40 000034e2: MSTORE 000034e3: POP 000034e4: DUP2 000034e5: ADD 000034e6: SWAP1 000034e7: PUSH2 0x34f0 000034ea: SWAP2 000034eb: SWAP1 000034ec: PUSH2 0x3ddb 000034ef: JUMP 000034f0: JUMPDEST 000034f1: SWAP1 000034f2: POP 000034f3: JUMPDEST 000034f4: DUP10 000034f5: PUSH1 0x01 000034f7: PUSH1 0x01 000034f9: PUSH1 0xa0 000034fb: SHL 000034fc: SUB 000034fd: AND 000034fe: PUSH4 0x022c0d9f 00003503: DUP9 00003504: DUP9 00003505: PUSH0 00003506: PUSH1 0x01 00003508: PUSH1 0xfe 0000350a: SHL 0000350b: DUP14 0000350c: AND 0000350d: GT 0000350e: PUSH2 0x3517 00003511: JUMPI 00003512: DUP12 00003513: PUSH2 0x3519 00003516: JUMP 00003517: JUMPDEST 00003518: ADDRESS 00003519: JUMPDEST 0000351a: PUSH1 0x40 0000351c: MLOAD 0000351d: DUP5 0000351e: PUSH4 0xffffffff 00003523: AND 00003524: PUSH1 0xe0 00003526: SHL 00003527: DUP2 00003528: MSTORE 00003529: PUSH1 0x04 0000352b: ADD 0000352c: PUSH2 0x3537 0000352f: SWAP4 00003530: SWAP3 00003531: SWAP2 00003532: SWAP1 00003533: PUSH2 0x3df2 00003536: JUMP 00003537: JUMPDEST 00003538: PUSH0 00003539: PUSH1 0x40 0000353b: MLOAD 0000353c: DUP1 0000353d: DUP4 0000353e: SUB 0000353f: DUP2 00003540: PUSH0 00003541: DUP8 00003542: DUP1 00003543: EXTCODESIZE 00003544: ISZERO 00003545: DUP1 00003546: ISZERO 00003547: PUSH2 0x354e 0000354a: JUMPI 0000354b: PUSH0 0000354c: PUSH0 0000354d: REVERT 0000354e: JUMPDEST 0000354f: POP 00003550: GAS 00003551: CALL 00003552: ISZERO 00003553: DUP1 00003554: ISZERO 00003555: PUSH2 0x3560 00003558: JUMPI 00003559: RETURNDATASIZE 0000355a: PUSH0 0000355b: PUSH0 0000355c: RETURNDATACOPY 0000355d: RETURNDATASIZE 0000355e: PUSH0 0000355f: REVERT 00003560: JUMPDEST 00003561: POP 00003562: POP 00003563: POP 00003564: POP 00003565: PUSH1 0x01 00003567: PUSH1 0xfe 00003569: SHL 0000356a: DUP9 0000356b: AND 0000356c: ISZERO 0000356d: PUSH2 0x361b 00003570: JUMPI 00003571: PUSH1 0x40 00003573: MLOAD 00003574: PUSH4 0x70a08231 00003579: PUSH1 0xe0 0000357b: SHL 0000357c: DUP2 0000357d: MSTORE 0000357e: ADDRESS 0000357f: PUSH1 0x04 00003581: DUP3 00003582: ADD 00003583: MSTORE 00003584: PUSH0 00003585: SWAP1 00003586: PUSH1 0x01 00003588: PUSH1 0x01 0000358a: PUSH1 0xa0 0000358c: SHL 0000358d: SUB 0000358e: DUP6 0000358f: AND 00003590: SWAP1 00003591: PUSH4 0x70a08231 00003596: SWAP1 00003597: PUSH1 0x24 00003599: ADD 0000359a: PUSH1 0x20 0000359c: PUSH1 0x40 0000359e: MLOAD 0000359f: DUP1 000035a0: DUP4 000035a1: SUB 000035a2: DUP2 000035a3: DUP7 000035a4: GAS 000035a5: STATICCALL 000035a6: ISZERO 000035a7: DUP1 000035a8: ISZERO 000035a9: PUSH2 0x35b4 000035ac: JUMPI 000035ad: RETURNDATASIZE 000035ae: PUSH0 000035af: PUSH0 000035b0: RETURNDATACOPY 000035b1: RETURNDATASIZE 000035b2: PUSH0 000035b3: REVERT 000035b4: JUMPDEST 000035b5: POP 000035b6: POP 000035b7: POP 000035b8: POP 000035b9: PUSH1 0x40 000035bb: MLOAD 000035bc: RETURNDATASIZE 000035bd: PUSH1 0x1f 000035bf: NOT 000035c0: PUSH1 0x1f 000035c2: DUP3 000035c3: ADD 000035c4: AND 000035c5: DUP3 000035c6: ADD 000035c7: DUP1 000035c8: PUSH1 0x40 000035ca: MSTORE 000035cb: POP 000035cc: DUP2 000035cd: ADD 000035ce: SWAP1 000035cf: PUSH2 0x35d8 000035d2: SWAP2 000035d3: SWAP1 000035d4: PUSH2 0x3ddb 000035d7: JUMP 000035d8: JUMPDEST 000035d9: SWAP1 000035da: POP 000035db: DUP2 000035dc: PUSH0 000035dd: SUB 000035de: PUSH2 0x360a 000035e1: JUMPI 000035e2: PUSH2 0x35f1 000035e5: DUP5 000035e6: DUP11 000035e7: PUSH2 0x0138 000035ea: PUSH1 0x01 000035ec: DUP6 000035ed: PUSH2 0x3e33 000035f0: JUMP 000035f1: JUMPDEST 000035f2: DUP10 000035f3: ISZERO 000035f4: PUSH2 0x3605 000035f7: JUMPI 000035f8: PUSH2 0x3602 000035fb: PUSH1 0x01 000035fd: DUP12 000035fe: PUSH2 0x3e33 00003601: JUMP 00003602: JUMPDEST 00003603: SWAP10 00003604: POP 00003605: JUMPDEST 00003606: PUSH2 0x3619 00003609: JUMP 0000360a: JUMPDEST 0000360b: PUSH2 0x3619 0000360e: DUP5 0000360f: DUP11 00003610: PUSH2 0x0138 00003613: DUP6 00003614: DUP6 00003615: PUSH2 0x3e33 00003618: JUMP 00003619: JUMPDEST 0000361a: POP 0000361b: JUMPDEST 0000361c: PUSH1 0x40 0000361e: MLOAD 0000361f: PUSH4 0x70a08231 00003624: PUSH1 0xe0 00003626: SHL 00003627: DUP2 00003628: MSTORE 00003629: PUSH1 0x01 0000362b: PUSH1 0x01 0000362d: PUSH1 0xa0 0000362f: SHL 00003630: SUB 00003631: DUP10 00003632: DUP2 00003633: AND 00003634: PUSH1 0x04 00003636: DUP4 00003637: ADD 00003638: MSTORE 00003639: DUP11 0000363a: SWAP2 0000363b: DUP5 0000363c: SWAP2 0000363d: DUP7 0000363e: AND 0000363f: SWAP1 00003640: PUSH4 0x70a08231 00003645: SWAP1 00003646: PUSH1 0x24 00003648: ADD 00003649: PUSH1 0x20 0000364b: PUSH1 0x40 0000364d: MLOAD 0000364e: DUP1 0000364f: DUP4 00003650: SUB 00003651: DUP2 00003652: DUP7 00003653: GAS 00003654: STATICCALL 00003655: ISZERO 00003656: DUP1 00003657: ISZERO 00003658: PUSH2 0x3663 0000365b: JUMPI 0000365c: RETURNDATASIZE 0000365d: PUSH0 0000365e: PUSH0 0000365f: RETURNDATACOPY 00003660: RETURNDATASIZE 00003661: PUSH0 00003662: REVERT 00003663: JUMPDEST 00003664: POP 00003665: POP 00003666: POP 00003667: POP 00003668: PUSH1 0x40 0000366a: MLOAD 0000366b: RETURNDATASIZE 0000366c: PUSH1 0x1f 0000366e: NOT 0000366f: PUSH1 0x1f 00003671: DUP3 00003672: ADD 00003673: AND 00003674: DUP3 00003675: ADD 00003676: DUP1 00003677: PUSH1 0x40 00003679: MSTORE 0000367a: POP 0000367b: DUP2 0000367c: ADD 0000367d: SWAP1 0000367e: PUSH2 0x3687 00003681: SWAP2 00003682: SWAP1 00003683: PUSH2 0x3ddb 00003686: JUMP 00003687: JUMPDEST 00003688: PUSH2 0x3691 0000368b: SWAP2 0000368c: SWAP1 0000368d: PUSH2 0x3e33 00003690: JUMP 00003691: JUMPDEST 00003692: LT 00003693: ISZERO 00003694: PUSH2 0x36af 00003697: JUMPI 00003698: PUSH1 0x40 0000369a: MLOAD 0000369b: PUSH3 0x461bcd 0000369f: PUSH1 0xe5 000036a1: SHL 000036a2: DUP2 000036a3: MSTORE 000036a4: PUSH1 0x04 000036a6: ADD 000036a7: PUSH2 0x035a 000036aa: SWAP1 000036ab: PUSH2 0x3e4c 000036ae: JUMP 000036af: JUMPDEST 000036b0: COINBASE 000036b1: PUSH1 0x01 000036b3: PUSH1 0x01 000036b5: PUSH1 0xa0 000036b7: SHL 000036b8: SUB 000036b9: AND 000036ba: CALLVALUE 000036bb: PUSH1 0x40 000036bd: MLOAD 000036be: PUSH2 0x0e93 000036c1: JUMP 000036c2: JUMPDEST 000036c3: PUSH0 000036c4: MLOAD 000036c5: PUSH1 0x20 000036c7: PUSH2 0x3f6c 000036ca: PUSH0 000036cb: CODECOPY 000036cc: PUSH0 000036cd: MLOAD 000036ce: SWAP1 000036cf: PUSH0 000036d0: MSTORE 000036d1: ORIGIN 000036d2: EQ 000036d3: DUP1 000036d4: PUSH2 0x36eb 000036d7: JUMPI 000036d8: POP 000036d9: ORIGIN 000036da: PUSH0 000036db: SWAP1 000036dc: DUP2 000036dd: MSTORE 000036de: PUSH1 0x20 000036e0: DUP2 000036e1: SWAP1 000036e2: MSTORE 000036e3: PUSH1 0x40 000036e5: SWAP1 000036e6: KECCAK256 000036e7: SLOAD 000036e8: PUSH1 0xff 000036ea: AND 000036eb: JUMPDEST 000036ec: PUSH2 0x3707 000036ef: JUMPI 000036f0: PUSH1 0x40 000036f2: MLOAD 000036f3: PUSH3 0x461bcd 000036f7: PUSH1 0xe5 000036f9: SHL 000036fa: DUP2 000036fb: MSTORE 000036fc: PUSH1 0x04 000036fe: ADD 000036ff: PUSH2 0x035a 00003702: SWAP1 00003703: PUSH2 0x3ce1 00003706: JUMP 00003707: JUMPDEST 00003708: PUSH2 0x3746 0000370b: JUMP 0000370c: JUMPDEST 0000370d: RETURNDATASIZE 0000370e: PUSH0 0000370f: PUSH0 00003710: RETURNDATACOPY 00003711: RETURNDATASIZE 00003712: PUSH0 00003713: REVERT 00003714: JUMPDEST 00003715: DUP1 00003716: PUSH2 0x3721 00003719: JUMPI 0000371a: PUSH2 0x3721 0000371d: PUSH2 0x370c 00003720: JUMP 00003721: JUMPDEST 00003722: PUSH1 0x01 00003724: PUSH0 00003725: MLOAD 00003726: EQ 00003727: PUSH1 0x1f 00003729: RETURNDATASIZE 0000372a: GT 0000372b: AND 0000372c: RETURNDATASIZE 0000372d: ISZERO 0000372e: OR 0000372f: DUP1 00003730: PUSH2 0x3742 00003733: JUMPI 00003734: PUSH4 0x3c9fd939 00003739: PUSH1 0xe2 0000373b: SHL 0000373c: PUSH0 0000373d: MSTORE 0000373e: PUSH1 0x04 00003740: PUSH0 00003741: REVERT 00003742: JUMPDEST 00003743: POP 00003744: POP 00003745: JUMP 00003746: JUMPDEST 00003747: PUSH1 0x40 00003749: MLOAD 0000374a: PUSH1 0x15 0000374c: DUP2 0000374d: ADD 0000374e: PUSH20 0x0dfe1681d21220a7ddca3f43a9059cbb23b872dd 00003763: PUSH1 0x60 00003765: SHL 00003766: DUP3 00003767: MSTORE 00003768: PUSH1 0x20 0000376a: DUP2 0000376b: PUSH1 0x04 0000376d: DUP5 0000376e: CALLER 0000376f: GAS 00003770: STATICCALL 00003771: PUSH2 0x377c 00003774: JUMPI 00003775: PUSH2 0x377c 00003778: PUSH2 0x370c 0000377b: JUMP 0000377c: JUMPDEST 0000377d: PUSH1 0x20 0000377f: DUP1 00003780: DUP3 00003781: ADD 00003782: PUSH1 0x04 00003784: DUP1 00003785: DUP6 00003786: ADD 00003787: CALLER 00003788: GAS 00003789: STATICCALL 0000378a: PUSH2 0x3795 0000378d: JUMPI 0000378e: PUSH2 0x3795 00003791: PUSH2 0x370c 00003794: JUMP 00003795: JUMPDEST 00003796: PUSH1 0x20 00003798: PUSH1 0x40 0000379a: DUP3 0000379b: ADD 0000379c: PUSH1 0x04 0000379e: PUSH1 0x08 000037a0: DUP6 000037a1: ADD 000037a2: CALLER 000037a3: GAS 000037a4: STATICCALL 000037a5: PUSH2 0x37b0 000037a8: JUMPI 000037a9: PUSH2 0x37b0 000037ac: PUSH2 0x370c 000037af: JUMP 000037b0: JUMPDEST 000037b1: PUSH0 000037b2: PUSH0 000037b3: PUSH0 000037b4: DUP9 000037b5: SGT 000037b6: PUSH1 0x01 000037b8: DUP2 000037b9: EQ 000037ba: PUSH2 0x37cc 000037bd: JUMPI 000037be: PUSH1 0x20 000037c0: DUP5 000037c1: ADD 000037c2: MLOAD 000037c3: SWAP3 000037c4: POP 000037c5: DUP8 000037c6: SWAP2 000037c7: POP 000037c8: PUSH2 0x37d4 000037cb: JUMP 000037cc: JUMPDEST 000037cd: DUP4 000037ce: MLOAD 000037cf: SWAP3 000037d0: POP 000037d1: DUP9 000037d2: SWAP2 000037d3: POP 000037d4: JUMPDEST 000037d5: POP 000037d6: PUSH32 0xff1f98431c8ad98523631ae4a59f267346ea31f9840000000000000000000000 000037f7: DUP5 000037f8: MSTORE 000037f9: PUSH1 0x60 000037fb: DUP4 000037fc: KECCAK256 000037fd: DUP4 000037fe: MSTORE 000037ff: PUSH32 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54 00003820: PUSH1 0x20 00003822: DUP5 00003823: ADD 00003824: MSTORE 00003825: PUSH1 0x01 00003827: PUSH1 0x01 00003829: PUSH1 0xa0 0000382b: SHL 0000382c: SUB 0000382d: PUSH1 0x55 0000382f: DUP6 00003830: KECCAK256 00003831: AND 00003832: SWAP3 00003833: POP 00003834: CALLER 00003835: DUP4 00003836: XOR 00003837: ISZERO 00003838: PUSH2 0x384a 0000383b: JUMPI 0000383c: PUSH4 0x59601391 00003841: PUSH1 0xe1 00003843: SHL 00003844: PUSH0 00003845: MSTORE 00003846: PUSH1 0x04 00003848: PUSH0 00003849: REVERT 0000384a: JUMPDEST 0000384b: PUSH1 0x84 0000384d: CALLDATALOAD 0000384e: SWAP3 0000384f: POP 00003850: PUSH20 0x0dfe1681d21220a7ddca3f43a9059cbb23b872dd 00003865: PUSH1 0x60 00003867: SHL 00003868: DUP5 00003869: MSTORE 0000386a: ADDRESS 0000386b: DUP4 0000386c: EQ 0000386d: PUSH1 0x01 0000386f: DUP2 00003870: EQ 00003871: PUSH2 0x38a0 00003874: JUMPI 00003875: DUP4 00003876: PUSH1 0x14 00003878: DUP7 00003879: ADD 0000387a: MSTORE 0000387b: CALLER 0000387c: PUSH1 0x34 0000387e: DUP7 0000387f: ADD 00003880: MSTORE 00003881: DUP2 00003882: PUSH1 0x54 00003884: DUP7 00003885: ADD 00003886: MSTORE 00003887: PUSH2 0x389b 0000388a: PUSH1 0x20 0000388c: PUSH0 0000388d: PUSH1 0x64 0000388f: PUSH1 0x10 00003891: DUP10 00003892: ADD 00003893: PUSH0 00003894: DUP9 00003895: GAS 00003896: CALL 00003897: PUSH2 0x3714 0000389a: JUMP 0000389b: JUMPDEST 0000389c: PUSH2 0x38c1 0000389f: JUMP 000038a0: JUMPDEST 000038a1: CALLER 000038a2: PUSH1 0x10 000038a4: DUP7 000038a5: ADD 000038a6: MSTORE 000038a7: DUP2 000038a8: PUSH1 0x30 000038aa: DUP7 000038ab: ADD 000038ac: MSTORE 000038ad: PUSH2 0x38c1 000038b0: PUSH1 0x20 000038b2: PUSH0 000038b3: PUSH1 0x44 000038b5: PUSH1 0x0c 000038b7: DUP10 000038b8: ADD 000038b9: PUSH0 000038ba: DUP9 000038bb: GAS 000038bc: CALL 000038bd: PUSH2 0x3714 000038c0: JUMP 000038c1: JUMPDEST 000038c2: POP 000038c3: POP 000038c4: POP 000038c5: POP 000038c6: POP 000038c7: POP 000038c8: POP 000038c9: POP 000038ca: POP 000038cb: JUMP 000038cc: JUMPDEST 000038cd: PUSH0 000038ce: PUSH0 000038cf: DUP5 000038d0: GT 000038d1: PUSH2 0x3928 000038d4: JUMPI 000038d5: PUSH1 0x40 000038d7: MLOAD 000038d8: PUSH3 0x461bcd 000038dc: PUSH1 0xe5 000038de: SHL 000038df: DUP2 000038e0: MSTORE 000038e1: PUSH1 0x20 000038e3: PUSH1 0x04 000038e5: DUP3 000038e6: ADD 000038e7: MSTORE 000038e8: PUSH1 0x24 000038ea: DUP1 000038eb: DUP3 000038ec: ADD 000038ed: MSTORE 000038ee: PUSH32 0x556e697377617056323a20494e53554646494349454e545f494e5055545f414d 0000390f: PUSH1 0x44 00003911: DUP3 00003912: ADD 00003913: MSTORE 00003914: PUSH4 0x13d55395 00003919: PUSH1 0xe2 0000391b: SHL 0000391c: PUSH1 0x64 0000391e: DUP3 0000391f: ADD 00003920: MSTORE 00003921: PUSH1 0x84 00003923: ADD 00003924: PUSH2 0x035a 00003927: JUMP 00003928: JUMPDEST 00003929: PUSH0 0000392a: DUP4 0000392b: GT 0000392c: DUP1 0000392d: ISZERO 0000392e: PUSH2 0x3936 00003931: JUMPI 00003932: POP 00003933: PUSH0 00003934: DUP3 00003935: GT 00003936: JUMPDEST 00003937: PUSH2 0x398c 0000393a: JUMPI 0000393b: PUSH1 0x40 0000393d: MLOAD 0000393e: PUSH3 0x461bcd 00003942: PUSH1 0xe5 00003944: SHL 00003945: DUP2 00003946: MSTORE 00003947: PUSH1 0x20 00003949: PUSH1 0x04 0000394b: DUP3 0000394c: ADD 0000394d: MSTORE 0000394e: PUSH1 0x21 00003950: PUSH1 0x24 00003952: DUP3 00003953: ADD 00003954: MSTORE 00003955: PUSH32 0x556e697377617056323a20494e53554646494349454e545f4c49515549444954 00003976: PUSH1 0x44 00003978: DUP3 00003979: ADD 0000397a: MSTORE 0000397b: PUSH1 0x59 0000397d: PUSH1 0xf8 0000397f: SHL 00003980: PUSH1 0x64 00003982: DUP3 00003983: ADD 00003984: MSTORE 00003985: PUSH1 0x84 00003987: ADD 00003988: PUSH2 0x035a 0000398b: JUMP 0000398c: JUMPDEST 0000398d: PUSH0 0000398e: PUSH2 0x3999 00003991: DUP6 00003992: PUSH2 0x03e5 00003995: PUSH2 0x3ee2 00003998: JUMP 00003999: JUMPDEST 0000399a: SWAP1 0000399b: POP 0000399c: PUSH0 0000399d: PUSH2 0x39a6 000039a0: DUP5 000039a1: DUP4 000039a2: PUSH2 0x3ee2 000039a5: JUMP 000039a6: JUMPDEST 000039a7: SWAP1 000039a8: POP 000039a9: PUSH0 000039aa: DUP3 000039ab: PUSH2 0x39b6 000039ae: DUP8 000039af: PUSH2 0x03e8 000039b2: PUSH2 0x3ee2 000039b5: JUMP 000039b6: JUMPDEST 000039b7: PUSH2 0x39c0 000039ba: SWAP2 000039bb: SWAP1 000039bc: PUSH2 0x3ef9 000039bf: JUMP 000039c0: JUMPDEST 000039c1: SWAP1 000039c2: POP 000039c3: PUSH2 0x39cc 000039c6: DUP2 000039c7: DUP4 000039c8: PUSH2 0x3f0c 000039cb: JUMP 000039cc: JUMPDEST 000039cd: SWAP8 000039ce: SWAP7 000039cf: POP 000039d0: POP 000039d1: POP 000039d2: POP 000039d3: POP 000039d4: POP 000039d5: POP 000039d6: JUMP 000039d7: JUMPDEST 000039d8: PUSH0 000039d9: PUSH1 0x01 000039db: PUSH1 0x01 000039dd: PUSH1 0xff 000039df: SHL 000039e0: SUB 000039e1: DUP3 000039e2: GT 000039e3: ISZERO 000039e4: PUSH2 0x3a40 000039e7: JUMPI 000039e8: PUSH1 0x40 000039ea: MLOAD 000039eb: PUSH3 0x461bcd 000039ef: PUSH1 0xe5 000039f1: SHL 000039f2: DUP2 000039f3: MSTORE 000039f4: PUSH1 0x20 000039f6: PUSH1 0x04 000039f8: DUP3 000039f9: ADD 000039fa: MSTORE 000039fb: PUSH1 0x28 000039fd: PUSH1 0x24 000039ff: DUP3 00003a00: ADD 00003a01: MSTORE 00003a02: PUSH32 0x53616665436173743a2076616c756520646f65736e27742066697420696e2061 00003a23: PUSH1 0x44 00003a25: DUP3 00003a26: ADD 00003a27: MSTORE 00003a28: PUSH8 0x371034b73a191a9b 00003a31: PUSH1 0xc1 00003a33: SHL 00003a34: PUSH1 0x64 00003a36: DUP3 00003a37: ADD 00003a38: MSTORE 00003a39: PUSH1 0x84 00003a3b: ADD 00003a3c: PUSH2 0x035a 00003a3f: JUMP 00003a40: JUMPDEST 00003a41: POP 00003a42: SWAP1 00003a43: JUMP 00003a44: JUMPDEST 00003a45: PUSH1 0x01 00003a47: PUSH1 0x01 00003a49: PUSH1 0xa0 00003a4b: SHL 00003a4c: SUB 00003a4d: DUP2 00003a4e: AND 00003a4f: DUP2 00003a50: EQ 00003a51: PUSH2 0x3a58 00003a54: JUMPI 00003a55: PUSH0 00003a56: PUSH0 00003a57: REVERT 00003a58: JUMPDEST 00003a59: POP 00003a5a: JUMP 00003a5b: JUMPDEST 00003a5c: PUSH0 00003a5d: PUSH0 00003a5e: PUSH0 00003a5f: PUSH1 0x60 00003a61: DUP5 00003a62: DUP7 00003a63: SUB 00003a64: SLT 00003a65: ISZERO 00003a66: PUSH2 0x3a6d 00003a69: JUMPI 00003a6a: PUSH0 00003a6b: PUSH0 00003a6c: REVERT 00003a6d: JUMPDEST 00003a6e: DUP4 00003a6f: CALLDATALOAD 00003a70: PUSH2 0x3a78 00003a73: DUP2 00003a74: PUSH2 0x3a44 00003a77: JUMP 00003a78: JUMPDEST 00003a79: SWAP3 00003a7a: POP 00003a7b: PUSH1 0x20 00003a7d: DUP5 00003a7e: ADD 00003a7f: CALLDATALOAD 00003a80: PUSH2 0x3a88 00003a83: DUP2 00003a84: PUSH2 0x3a44 00003a87: JUMP 00003a88: JUMPDEST 00003a89: SWAP3 00003a8a: SWAP6 00003a8b: SWAP3 00003a8c: SWAP5 00003a8d: POP 00003a8e: POP 00003a8f: POP 00003a90: PUSH1 0x40 00003a92: SWAP2 00003a93: SWAP1 00003a94: SWAP2 00003a95: ADD 00003a96: CALLDATALOAD 00003a97: SWAP1 00003a98: JUMP 00003a99: JUMPDEST 00003a9a: PUSH0 00003a9b: PUSH0 00003a9c: PUSH0 00003a9d: PUSH0 00003a9e: PUSH1 0x80 00003aa0: DUP6 00003aa1: DUP8 00003aa2: SUB 00003aa3: SLT 00003aa4: ISZERO 00003aa5: PUSH2 0x3aac 00003aa8: JUMPI 00003aa9: PUSH0 00003aaa: PUSH0 00003aab: REVERT 00003aac: JUMPDEST 00003aad: DUP5 00003aae: CALLDATALOAD 00003aaf: SWAP4 00003ab0: POP 00003ab1: PUSH1 0x20 00003ab3: DUP6 00003ab4: ADD 00003ab5: CALLDATALOAD 00003ab6: PUSH2 0x3abe 00003ab9: DUP2 00003aba: PUSH2 0x3a44 00003abd: JUMP 00003abe: JUMPDEST 00003abf: SWAP4 00003ac0: SWAP7 00003ac1: SWAP4 00003ac2: SWAP6 00003ac3: POP 00003ac4: POP 00003ac5: POP 00003ac6: POP 00003ac7: PUSH1 0x40 00003ac9: DUP3 00003aca: ADD 00003acb: CALLDATALOAD 00003acc: SWAP2 00003acd: PUSH1 0x60 00003acf: ADD 00003ad0: CALLDATALOAD 00003ad1: SWAP1 00003ad2: JUMP 00003ad3: JUMPDEST 00003ad4: PUSH0 00003ad5: PUSH0 00003ad6: PUSH0 00003ad7: PUSH0 00003ad8: PUSH0 00003ad9: PUSH1 0xa0 00003adb: DUP7 00003adc: DUP9 00003add: SUB 00003ade: SLT 00003adf: ISZERO 00003ae0: PUSH2 0x3ae7 00003ae3: JUMPI 00003ae4: PUSH0 00003ae5: PUSH0 00003ae6: REVERT 00003ae7: JUMPDEST 00003ae8: DUP6 00003ae9: CALLDATALOAD 00003aea: SWAP5 00003aeb: POP 00003aec: PUSH1 0x20 00003aee: DUP7 00003aef: ADD 00003af0: CALLDATALOAD 00003af1: SWAP4 00003af2: POP 00003af3: PUSH1 0x40 00003af5: DUP7 00003af6: ADD 00003af7: CALLDATALOAD 00003af8: PUSH2 0x3b00 00003afb: DUP2 00003afc: PUSH2 0x3a44 00003aff: JUMP 00003b00: JUMPDEST 00003b01: SWAP5 00003b02: SWAP8 00003b03: SWAP4 00003b04: SWAP7 00003b05: POP 00003b06: SWAP4 00003b07: SWAP5 00003b08: PUSH1 0x60 00003b0a: DUP2 00003b0b: ADD 00003b0c: CALLDATALOAD 00003b0d: SWAP5 00003b0e: POP 00003b0f: PUSH1 0x80 00003b11: ADD 00003b12: CALLDATALOAD 00003b13: SWAP3 00003b14: SWAP2 00003b15: POP 00003b16: POP 00003b17: JUMP 00003b18: JUMPDEST 00003b19: PUSH0 00003b1a: PUSH0 00003b1b: PUSH1 0x40 00003b1d: DUP4 00003b1e: DUP6 00003b1f: SUB 00003b20: SLT 00003b21: ISZERO 00003b22: PUSH2 0x3b29 00003b25: JUMPI 00003b26: PUSH0 00003b27: PUSH0 00003b28: REVERT 00003b29: JUMPDEST 00003b2a: DUP3 00003b2b: CALLDATALOAD 00003b2c: PUSH2 0x3b34 00003b2f: DUP2 00003b30: PUSH2 0x3a44 00003b33: JUMP 00003b34: JUMPDEST 00003b35: SWAP5 00003b36: PUSH1 0x20 00003b38: SWAP4 00003b39: SWAP1 00003b3a: SWAP4 00003b3b: ADD 00003b3c: CALLDATALOAD 00003b3d: SWAP4 00003b3e: POP 00003b3f: POP 00003b40: POP 00003b41: JUMP 00003b42: JUMPDEST 00003b43: PUSH0 00003b44: PUSH1 0x20 00003b46: DUP3 00003b47: DUP5 00003b48: SUB 00003b49: SLT 00003b4a: ISZERO 00003b4b: PUSH2 0x3b52 00003b4e: JUMPI 00003b4f: PUSH0 00003b50: PUSH0 00003b51: REVERT 00003b52: JUMPDEST 00003b53: DUP2 00003b54: CALLDATALOAD 00003b55: PUSH2 0x3b5d 00003b58: DUP2 00003b59: PUSH2 0x3a44 00003b5c: JUMP 00003b5d: JUMPDEST 00003b5e: SWAP4 00003b5f: SWAP3 00003b60: POP 00003b61: POP 00003b62: POP 00003b63: JUMP 00003b64: JUMPDEST 00003b65: PUSH0 00003b66: PUSH0 00003b67: PUSH0 00003b68: PUSH0 00003b69: PUSH0 00003b6a: PUSH0 00003b6b: PUSH1 0xc0 00003b6d: DUP8 00003b6e: DUP10 00003b6f: SUB 00003b70: SLT 00003b71: ISZERO 00003b72: PUSH2 0x3b79 00003b75: JUMPI 00003b76: PUSH0 00003b77: PUSH0 00003b78: REVERT 00003b79: JUMPDEST 00003b7a: DUP7 00003b7b: CALLDATALOAD 00003b7c: SWAP6 00003b7d: POP 00003b7e: PUSH1 0x20 00003b80: DUP8 00003b81: ADD 00003b82: CALLDATALOAD 00003b83: SWAP5 00003b84: POP 00003b85: PUSH1 0x40 00003b87: DUP8 00003b88: ADD 00003b89: CALLDATALOAD 00003b8a: PUSH2 0x3b92 00003b8d: DUP2 00003b8e: PUSH2 0x3a44 00003b91: JUMP 00003b92: JUMPDEST 00003b93: SWAP4 00003b94: POP 00003b95: PUSH1 0x60 00003b97: DUP8 00003b98: ADD 00003b99: CALLDATALOAD 00003b9a: PUSH2 0x3ba2 00003b9d: DUP2 00003b9e: PUSH2 0x3a44 00003ba1: JUMP 00003ba2: JUMPDEST 00003ba3: SWAP6 00003ba4: SWAP9 00003ba5: SWAP5 00003ba6: SWAP8 00003ba7: POP 00003ba8: SWAP3 00003ba9: SWAP6 00003baa: PUSH1 0x80 00003bac: DUP2 00003bad: ADD 00003bae: CALLDATALOAD 00003baf: SWAP5 00003bb0: PUSH1 0xa0 00003bb2: SWAP1 00003bb3: SWAP2 00003bb4: ADD 00003bb5: CALLDATALOAD 00003bb6: SWAP4 00003bb7: POP 00003bb8: SWAP2 00003bb9: POP 00003bba: POP 00003bbb: JUMP 00003bbc: JUMPDEST 00003bbd: PUSH0 00003bbe: PUSH0 00003bbf: DUP4 00003bc0: PUSH1 0x1f 00003bc2: DUP5 00003bc3: ADD 00003bc4: SLT 00003bc5: PUSH2 0x3bcc 00003bc8: JUMPI 00003bc9: PUSH0 00003bca: PUSH0 00003bcb: REVERT 00003bcc: JUMPDEST 00003bcd: POP 00003bce: DUP2 00003bcf: CALLDATALOAD 00003bd0: PUSH8 0xffffffffffffffff 00003bd9: DUP2 00003bda: GT 00003bdb: ISZERO 00003bdc: PUSH2 0x3be3 00003bdf: JUMPI 00003be0: PUSH0 00003be1: PUSH0 00003be2: REVERT 00003be3: JUMPDEST 00003be4: PUSH1 0x20 00003be6: DUP4 00003be7: ADD 00003be8: SWAP2 00003be9: POP 00003bea: DUP4 00003beb: PUSH1 0x20 00003bed: DUP3 00003bee: DUP6 00003bef: ADD 00003bf0: ADD 00003bf1: GT 00003bf2: ISZERO 00003bf3: PUSH2 0x3bfa 00003bf6: JUMPI 00003bf7: PUSH0 00003bf8: PUSH0 00003bf9: REVERT 00003bfa: JUMPDEST 00003bfb: SWAP3 00003bfc: POP 00003bfd: SWAP3 00003bfe: SWAP1 00003bff: POP 00003c00: JUMP 00003c01: JUMPDEST 00003c02: PUSH0 00003c03: PUSH0 00003c04: PUSH0 00003c05: PUSH1 0x40 00003c07: DUP5 00003c08: DUP7 00003c09: SUB 00003c0a: SLT 00003c0b: ISZERO 00003c0c: PUSH2 0x3c13 00003c0f: JUMPI 00003c10: PUSH0 00003c11: PUSH0 00003c12: REVERT 00003c13: JUMPDEST 00003c14: DUP4 00003c15: CALLDATALOAD 00003c16: PUSH2 0x3c1e 00003c19: DUP2 00003c1a: PUSH2 0x3a44 00003c1d: JUMP 00003c1e: JUMPDEST 00003c1f: SWAP3 00003c20: POP 00003c21: PUSH1 0x20 00003c23: DUP5 00003c24: ADD 00003c25: CALLDATALOAD 00003c26: PUSH8 0xffffffffffffffff 00003c2f: DUP2 00003c30: GT 00003c31: ISZERO 00003c32: PUSH2 0x3c39 00003c35: JUMPI 00003c36: PUSH0 00003c37: PUSH0 00003c38: REVERT 00003c39: JUMPDEST 00003c3a: PUSH2 0x3c45 00003c3d: DUP7 00003c3e: DUP3 00003c3f: DUP8 00003c40: ADD 00003c41: PUSH2 0x3bbc 00003c44: JUMP 00003c45: JUMPDEST 00003c46: SWAP5 00003c47: SWAP8 00003c48: SWAP1 00003c49: SWAP7 00003c4a: POP 00003c4b: SWAP4 00003c4c: SWAP5 00003c4d: POP 00003c4e: POP 00003c4f: POP 00003c50: POP 00003c51: JUMP 00003c52: JUMPDEST 00003c53: PUSH0 00003c54: DUP2 00003c55: MLOAD 00003c56: DUP1 00003c57: DUP5 00003c58: MSTORE 00003c59: DUP1 00003c5a: PUSH1 0x20 00003c5c: DUP5 00003c5d: ADD 00003c5e: PUSH1 0x20 00003c60: DUP7 00003c61: ADD 00003c62: MCOPY 00003c63: PUSH0 00003c64: PUSH1 0x20 00003c66: DUP3 00003c67: DUP7 00003c68: ADD 00003c69: ADD 00003c6a: MSTORE 00003c6b: PUSH1 0x20 00003c6d: PUSH1 0x1f 00003c6f: NOT 00003c70: PUSH1 0x1f 00003c72: DUP4 00003c73: ADD 00003c74: AND 00003c75: DUP6 00003c76: ADD 00003c77: ADD 00003c78: SWAP2 00003c79: POP 00003c7a: POP 00003c7b: SWAP3 00003c7c: SWAP2 00003c7d: POP 00003c7e: POP 00003c7f: JUMP 00003c80: JUMPDEST 00003c81: PUSH1 0x20 00003c83: DUP2 00003c84: MSTORE 00003c85: PUSH0 00003c86: PUSH2 0x3b5d 00003c89: PUSH1 0x20 00003c8b: DUP4 00003c8c: ADD 00003c8d: DUP5 00003c8e: PUSH2 0x3c52 00003c91: JUMP 00003c92: JUMPDEST 00003c93: PUSH0 00003c94: PUSH0 00003c95: PUSH0 00003c96: PUSH0 00003c97: PUSH1 0x60 00003c99: DUP6 00003c9a: DUP8 00003c9b: SUB 00003c9c: SLT 00003c9d: ISZERO 00003c9e: PUSH2 0x3ca5 00003ca1: JUMPI 00003ca2: PUSH0 00003ca3: PUSH0 00003ca4: REVERT 00003ca5: JUMPDEST 00003ca6: DUP5 00003ca7: CALLDATALOAD 00003ca8: SWAP4 00003ca9: POP 00003caa: PUSH1 0x20 00003cac: DUP6 00003cad: ADD 00003cae: CALLDATALOAD 00003caf: SWAP3 00003cb0: POP 00003cb1: PUSH1 0x40 00003cb3: DUP6 00003cb4: ADD 00003cb5: CALLDATALOAD 00003cb6: PUSH8 0xffffffffffffffff 00003cbf: DUP2 00003cc0: GT 00003cc1: ISZERO 00003cc2: PUSH2 0x3cc9 00003cc5: JUMPI 00003cc6: PUSH0 00003cc7: PUSH0 00003cc8: REVERT 00003cc9: JUMPDEST 00003cca: PUSH2 0x3cd5 00003ccd: DUP8 00003cce: DUP3 00003ccf: DUP9 00003cd0: ADD 00003cd1: PUSH2 0x3bbc 00003cd4: JUMP 00003cd5: JUMPDEST 00003cd6: SWAP6 00003cd7: SWAP9 00003cd8: SWAP5 00003cd9: SWAP8 00003cda: POP 00003cdb: SWAP6 00003cdc: POP 00003cdd: POP 00003cde: POP 00003cdf: POP 00003ce0: JUMP 00003ce1: JUMPDEST 00003ce2: PUSH1 0x20 00003ce4: DUP1 00003ce5: DUP3 00003ce6: MSTORE 00003ce7: PUSH1 0x15 00003ce9: SWAP1 00003cea: DUP3 00003ceb: ADD 00003cec: MSTORE 00003ced: PUSH21 0x10d85b1b195c881a5cc81b9bdd08185b1b1bddd959 00003d03: PUSH1 0x5a 00003d05: SHL 00003d06: PUSH1 0x40 00003d08: DUP3 00003d09: ADD 00003d0a: MSTORE 00003d0b: PUSH1 0x60 00003d0d: ADD 00003d0e: SWAP1 00003d0f: JUMP 00003d10: JUMPDEST 00003d11: PUSH1 0x20 00003d13: DUP1 00003d14: DUP3 00003d15: MSTORE 00003d16: PUSH1 0x10 00003d18: SWAP1 00003d19: DUP3 00003d1a: ADD 00003d1b: MSTORE 00003d1c: PUSH16 0x189b1bd8dac8195e1c1a5c9e481a1a5d 00003d2d: PUSH1 0x82 00003d2f: SHL 00003d30: PUSH1 0x40 00003d32: DUP3 00003d33: ADD 00003d34: MSTORE 00003d35: PUSH1 0x60 00003d37: ADD 00003d38: SWAP1 00003d39: JUMP 00003d3a: JUMPDEST 00003d3b: DUP1 00003d3c: MLOAD 00003d3d: PUSH1 0x01 00003d3f: PUSH1 0x01 00003d41: PUSH1 0x70 00003d43: SHL 00003d44: SUB 00003d45: DUP2 00003d46: AND 00003d47: DUP2 00003d48: EQ 00003d49: PUSH2 0x3d50 00003d4c: JUMPI 00003d4d: PUSH0 00003d4e: PUSH0 00003d4f: REVERT 00003d50: JUMPDEST 00003d51: SWAP2 00003d52: SWAP1 00003d53: POP 00003d54: JUMP 00003d55: JUMPDEST 00003d56: PUSH0 00003d57: PUSH0 00003d58: PUSH0 00003d59: PUSH1 0x60 00003d5b: DUP5 00003d5c: DUP7 00003d5d: SUB 00003d5e: SLT 00003d5f: ISZERO 00003d60: PUSH2 0x3d67 00003d63: JUMPI 00003d64: PUSH0 00003d65: PUSH0 00003d66: REVERT 00003d67: JUMPDEST 00003d68: PUSH2 0x3d70 00003d6b: DUP5 00003d6c: PUSH2 0x3d3a 00003d6f: JUMP 00003d70: JUMPDEST 00003d71: SWAP3 00003d72: POP 00003d73: PUSH2 0x3d7e 00003d76: PUSH1 0x20 00003d78: DUP6 00003d79: ADD 00003d7a: PUSH2 0x3d3a 00003d7d: JUMP 00003d7e: JUMPDEST 00003d7f: SWAP2 00003d80: POP 00003d81: PUSH1 0x40 00003d83: DUP5 00003d84: ADD 00003d85: MLOAD 00003d86: PUSH4 0xffffffff 00003d8b: DUP2 00003d8c: AND 00003d8d: DUP2 00003d8e: EQ 00003d8f: PUSH2 0x3d96 00003d92: JUMPI 00003d93: PUSH0 00003d94: PUSH0 00003d95: REVERT 00003d96: JUMPDEST 00003d97: DUP1 00003d98: SWAP2 00003d99: POP 00003d9a: POP 00003d9b: SWAP3 00003d9c: POP 00003d9d: SWAP3 00003d9e: POP 00003d9f: SWAP3 00003da0: JUMP 00003da1: JUMPDEST 00003da2: PUSH0 00003da3: PUSH1 0x20 00003da5: DUP3 00003da6: DUP5 00003da7: SUB 00003da8: SLT 00003da9: ISZERO 00003daa: PUSH2 0x3db1 00003dad: JUMPI 00003dae: PUSH0 00003daf: PUSH0 00003db0: REVERT 00003db1: JUMPDEST 00003db2: DUP2 00003db3: MLOAD 00003db4: PUSH2 0x3b5d 00003db7: DUP2 00003db8: PUSH2 0x3a44 00003dbb: JUMP 00003dbc: JUMPDEST 00003dbd: PUSH0 00003dbe: PUSH1 0x20 00003dc0: DUP3 00003dc1: DUP5 00003dc2: SUB 00003dc3: SLT 00003dc4: ISZERO 00003dc5: PUSH2 0x3dcc 00003dc8: JUMPI 00003dc9: PUSH0 00003dca: PUSH0 00003dcb: REVERT 00003dcc: JUMPDEST 00003dcd: DUP2 00003dce: MLOAD 00003dcf: DUP1 00003dd0: ISZERO 00003dd1: ISZERO 00003dd2: DUP2 00003dd3: EQ 00003dd4: PUSH2 0x3b5d 00003dd7: JUMPI 00003dd8: PUSH0 00003dd9: PUSH0 00003dda: REVERT 00003ddb: JUMPDEST 00003ddc: PUSH0 00003ddd: PUSH1 0x20 00003ddf: DUP3 00003de0: DUP5 00003de1: SUB 00003de2: SLT 00003de3: ISZERO 00003de4: PUSH2 0x3deb 00003de7: JUMPI 00003de8: PUSH0 00003de9: PUSH0 00003dea: REVERT 00003deb: JUMPDEST 00003dec: POP 00003ded: MLOAD 00003dee: SWAP2 00003def: SWAP1 00003df0: POP 00003df1: JUMP 00003df2: JUMPDEST 00003df3: SWAP3 00003df4: DUP4 00003df5: MSTORE 00003df6: PUSH1 0x20 00003df8: DUP4 00003df9: ADD 00003dfa: SWAP2 00003dfb: SWAP1 00003dfc: SWAP2 00003dfd: MSTORE 00003dfe: PUSH1 0x01 00003e00: PUSH1 0x01 00003e02: PUSH1 0xa0 00003e04: SHL 00003e05: SUB 00003e06: AND 00003e07: PUSH1 0x40 00003e09: DUP3 00003e0a: ADD 00003e0b: MSTORE 00003e0c: PUSH1 0x80 00003e0e: PUSH1 0x60 00003e10: DUP3 00003e11: ADD 00003e12: DUP2 00003e13: SWAP1 00003e14: MSTORE 00003e15: PUSH0 00003e16: SWAP1 00003e17: DUP3 00003e18: ADD 00003e19: MSTORE 00003e1a: PUSH1 0xa0 00003e1c: ADD 00003e1d: SWAP1 00003e1e: JUMP 00003e1f: JUMPDEST 00003e20: PUSH4 0x4e487b71 00003e25: PUSH1 0xe0 00003e27: SHL 00003e28: PUSH0 00003e29: MSTORE 00003e2a: PUSH1 0x11 00003e2c: PUSH1 0x04 00003e2e: MSTORE 00003e2f: PUSH1 0x24 00003e31: PUSH0 00003e32: REVERT 00003e33: JUMPDEST 00003e34: DUP2 00003e35: DUP2 00003e36: SUB 00003e37: DUP2 00003e38: DUP2 00003e39: GT 00003e3a: ISZERO 00003e3b: PUSH2 0x3e46 00003e3e: JUMPI 00003e3f: PUSH2 0x3e46 00003e42: PUSH2 0x3e1f 00003e45: JUMP 00003e46: JUMPDEST 00003e47: SWAP3 00003e48: SWAP2 00003e49: POP 00003e4a: POP 00003e4b: JUMP 00003e4c: JUMPDEST 00003e4d: PUSH1 0x20 00003e4f: DUP1 00003e50: DUP3 00003e51: MSTORE 00003e52: PUSH1 0x11 00003e54: SWAP1 00003e55: DUP3 00003e56: ADD 00003e57: MSTORE 00003e58: PUSH17 0x14db1a5c1c1859d948195e18d959591959 00003e6a: PUSH1 0x7a 00003e6c: SHL 00003e6d: PUSH1 0x40 00003e6f: DUP3 00003e70: ADD 00003e71: MSTORE 00003e72: PUSH1 0x60 00003e74: ADD 00003e75: SWAP1 00003e76: JUMP 00003e77: JUMPDEST 00003e78: PUSH1 0x01 00003e7a: PUSH1 0x01 00003e7c: PUSH1 0xa0 00003e7e: SHL 00003e7f: SUB 00003e80: DUP7 00003e81: DUP2 00003e82: AND 00003e83: DUP3 00003e84: MSTORE 00003e85: DUP6 00003e86: ISZERO 00003e87: ISZERO 00003e88: PUSH1 0x20 00003e8a: DUP4 00003e8b: ADD 00003e8c: MSTORE 00003e8d: PUSH1 0x40 00003e8f: DUP3 00003e90: ADD 00003e91: DUP6 00003e92: SWAP1 00003e93: MSTORE 00003e94: DUP4 00003e95: AND 00003e96: PUSH1 0x60 00003e98: DUP3 00003e99: ADD 00003e9a: MSTORE 00003e9b: PUSH1 0xa0 00003e9d: PUSH1 0x80 00003e9f: DUP3 00003ea0: ADD 00003ea1: DUP2 00003ea2: SWAP1 00003ea3: MSTORE 00003ea4: PUSH0 00003ea5: SWAP1 00003ea6: PUSH2 0x39cc 00003ea9: SWAP1 00003eaa: DUP4 00003eab: ADD 00003eac: DUP5 00003ead: PUSH2 0x3c52 00003eb0: JUMP 00003eb1: JUMPDEST 00003eb2: PUSH0 00003eb3: PUSH0 00003eb4: PUSH1 0x40 00003eb6: DUP4 00003eb7: DUP6 00003eb8: SUB 00003eb9: SLT 00003eba: ISZERO 00003ebb: PUSH2 0x3ec2 00003ebe: JUMPI 00003ebf: PUSH0 00003ec0: PUSH0 00003ec1: REVERT 00003ec2: JUMPDEST 00003ec3: POP 00003ec4: POP 00003ec5: DUP1 00003ec6: MLOAD 00003ec7: PUSH1 0x20 00003ec9: SWAP1 00003eca: SWAP2 00003ecb: ADD 00003ecc: MLOAD 00003ecd: SWAP1 00003ece: SWAP3 00003ecf: SWAP1 00003ed0: SWAP2 00003ed1: POP 00003ed2: JUMP 00003ed3: JUMPDEST 00003ed4: DUP2 00003ed5: DUP4 00003ed6: DUP3 00003ed7: CALLDATACOPY 00003ed8: PUSH0 00003ed9: SWAP2 00003eda: ADD 00003edb: SWAP1 00003edc: DUP2 00003edd: MSTORE 00003ede: SWAP2 00003edf: SWAP1 00003ee0: POP 00003ee1: JUMP 00003ee2: JUMPDEST 00003ee3: DUP1 00003ee4: DUP3 00003ee5: MUL 00003ee6: DUP2 00003ee7: ISZERO 00003ee8: DUP3 00003ee9: DUP3 00003eea: DIV 00003eeb: DUP5 00003eec: EQ 00003eed: OR 00003eee: PUSH2 0x3e46 00003ef1: JUMPI 00003ef2: PUSH2 0x3e46 00003ef5: PUSH2 0x3e1f 00003ef8: JUMP 00003ef9: JUMPDEST 00003efa: DUP1 00003efb: DUP3 00003efc: ADD 00003efd: DUP1 00003efe: DUP3 00003eff: GT 00003f00: ISZERO 00003f01: PUSH2 0x3e46 00003f04: JUMPI 00003f05: PUSH2 0x3e46 00003f08: PUSH2 0x3e1f 00003f0b: JUMP 00003f0c: JUMPDEST 00003f0d: PUSH0 00003f0e: DUP3 00003f0f: PUSH2 0x3f26 00003f12: JUMPI 00003f13: PUSH4 0x4e487b71 00003f18: PUSH1 0xe0 00003f1a: SHL 00003f1b: PUSH0 00003f1c: MSTORE 00003f1d: PUSH1 0x12 00003f1f: PUSH1 0x04 00003f21: MSTORE 00003f22: PUSH1 0x24 00003f24: PUSH0 00003f25: REVERT 00003f26: JUMPDEST 00003f27: POP 00003f28: DIV 00003f29: SWAP1 00003f2a: JUMP 00003f2b: INVALID 00003f2c: OR 00003f2d: UNKNOWN(0x25) 00003f2e: UNKNOWN(0xC6) 00003f2f: SWAP5 00003f30: PUSH19 0xb0d35be4e865c78e45538ce31f51e1c4f30990 00003f44: DUP16 00003f45: SWAP7 00003f46: SWAP13 00003f47: UNKNOWN(0xCB) 00003f48: DUP10 00003f49: MSIZE 00003f4a: RETURNDATACOPY 00003f4b: ISZERO 00003f4c: PUSH29 0x96ed2c20512d7b7221b71f3608be92d18a5dadfc18b3b0dce63e83e07e 00003f6a: PUSH20 0xb800000000000000000000000054620b9a8a2c43 00003f7f: UNKNOWN(0xAA) 00003f80: DUP15 00003f81: UNKNOWN(0xD0) 00003f82: UNKNOWN(0x28) 00003f83: GASLIMIT 00003f84: EXP 00003f85: PUSH29 0xe656a9c69feba2646970667358221220413fe934988e8c081892a8f94b 00003fa3: UNKNOWN(0xDB) 00003fa4: UNKNOWN(0x4B) 00003fa5: PUSH29
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xc34684eb",
"selector": "0xc34684eb",
"calldata_variants": [
"0xc34684eb",
"0xc34684eb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7c41ef9",
"selector": "0xd7c41ef9",
"calldata_variants": [
"0xd7c41ef9",
"0xd7c41ef90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea60efed",
"selector": "0xea60efed",
"calldata_variants": [
"0xea60efed",
"0xea60efed0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf0a2003e",
"selector": "0xf0a2003e",
"calldata_variants": [
"0xf0a2003e",
"0xf0a2003e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa461e33",
"selector": "0xfa461e33",
"calldata_variants": [
"0xfa461e33",
"0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x613a7b48",
"selector": "0x613a7b48",
"calldata_variants": [
"0x613a7b48",
"0x613a7b480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7b334154",
"selector": "0x7b334154",
"calldata_variants": [
"0x7b334154",
"0x7b3341540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7f64784f",
"selector": "0x7f64784f",
"calldata_variants": [
"0x7f64784f",
"0x7f64784f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 805,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 933,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 2332,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 3828,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 4088,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 5554,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 7120,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 7353,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 9004,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 9108,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 10618,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 10862,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12074,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12329,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12581,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12818,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 14034,
"type": "tx_origin_used"
},
{
"pc": 14033,
"type": "tx_origin_used"
},
{
"pc": 14041,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x2a5a8f57d6e002570fa770d84e6a1e1b8508a9a4a73a51d38c57e066f9478b3c
call_targets:
0x22cb7c436decc35542c8599c7f0b6a0b7c609371
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x2a5a8f57d6e002570fa770d84e6a1e1b8508a9a4a73a51d38c57e066f9478b3c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x22cb7c436decc35542c8599c7f0b6a0b7c609371"
],
"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": "0xc34684eb",
"selector": "0xc34684eb",
"calldata_variants": [
"0xc34684eb",
"0xc34684eb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7c41ef9",
"selector": "0xd7c41ef9",
"calldata_variants": [
"0xd7c41ef9",
"0xd7c41ef90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea60efed",
"selector": "0xea60efed",
"calldata_variants": [
"0xea60efed",
"0xea60efed0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf0a2003e",
"selector": "0xf0a2003e",
"calldata_variants": [
"0xf0a2003e",
"0xf0a2003e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa461e33",
"selector": "0xfa461e33",
"calldata_variants": [
"0xfa461e33",
"0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x613a7b48",
"selector": "0x613a7b48",
"calldata_variants": [
"0x613a7b48",
"0x613a7b480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7b334154",
"selector": "0x7b334154",
"calldata_variants": [
"0x7b334154",
"0x7b3341540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7f64784f",
"selector": "0x7f64784f",
"calldata_variants": [
"0x7f64784f",
"0x7f64784f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 910,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1442,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1580,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 30,
"guards_detected": [
{
"pc": 805,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 933,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 2332,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 3828,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 4088,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 5554,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 7120,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 7353,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 9004,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 9108,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 10618,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 10862,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12074,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12329,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12581,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12818,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 14034,
"type": "tx_origin_used"
},
{
"pc": 14033,
"type": "tx_origin_used"
},
{
"pc": 14041,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 28
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x2a5a8f57d6e002570fa770d84e6a1e1b8508a9a4a73a51d38c57e066f9478b3c
call_targets:
0x22cb7c436decc35542c8599c7f0b6a0b7c609371
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x2a5a8f57d6e002570fa770d84e6a1e1b8508a9a4a73a51d38c57e066f9478b3c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x22cb7c436decc35542c8599c7f0b6a0b7c609371"
],
"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": "0xc34684eb",
"selector": "0xc34684eb",
"calldata_variants": [
"0xc34684eb",
"0xc34684eb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7c41ef9",
"selector": "0xd7c41ef9",
"calldata_variants": [
"0xd7c41ef9",
"0xd7c41ef90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea60efed",
"selector": "0xea60efed",
"calldata_variants": [
"0xea60efed",
"0xea60efed0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf0a2003e",
"selector": "0xf0a2003e",
"calldata_variants": [
"0xf0a2003e",
"0xf0a2003e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa461e33",
"selector": "0xfa461e33",
"calldata_variants": [
"0xfa461e33",
"0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x613a7b48",
"selector": "0x613a7b48",
"calldata_variants": [
"0x613a7b48",
"0x613a7b480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7b334154",
"selector": "0x7b334154",
"calldata_variants": [
"0x7b334154",
"0x7b3341540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7f64784f",
"selector": "0x7f64784f",
"calldata_variants": [
"0x7f64784f",
"0x7f64784f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 910,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1442,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1580,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 28,
"guards_detected": [
{
"pc": 805,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 933,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 2332,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 3828,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 4088,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 5554,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 7120,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 7353,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 9004,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 9108,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 10618,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 10862,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12074,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12329,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12581,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 12818,
"type": "msg_sender_eq_const",
"value": 0
},
{
"pc": 14034,
"type": "tx_origin_used"
},
{
"pc": 14033,
"type": "tx_origin_used"
},
{
"pc": 14041,
"type": "tx_origin_used"
}
]
}
|
| low | other | codex | Unchecked ERC20 transfer return value (silent failures possible) | 65 | no | — |
viewevidence_json{
"evidence": "Line 5 contains a low\u2011level CALL to selector `a9059cbb` followed immediately by POPs with no `ISZERO`/returndata checks, e.g., `...63a9059cbb...5af1 50505050...` (CALL result is discarded).",
"locations": [
"BYTECODE_BUNDLE.txt:5"
],
"recommendation": "Use a safe ERC20 wrapper that requires `success` and verifies return data (`returndata.length == 0 || abi.decode(returndata, bool)`), and revert on failure for all token transfers.",
"exploit_scenario": "A malicious or non\u2011standard ERC20 can return false or revert on `transfer` while the low\u2011level CALL result is ignored. The function can continue as if the transfer succeeded, leading to incorrect assumptions about token movement or silent failures in downstream logic."
}
|
| 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": 8
}
|
| 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": 93
}
|