93a5cf8f-1b3b-47b9-81e1-4dc7f5e4b259
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 |
|---|---|---|---|---|
| 30694 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 75160 | artifact.fetch | complete | 1 / 3 | 2 weeks ago |
| 75161 | tool.cast_disasm | complete | 1 / 3 | 2 weeks ago |
| 75162 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 75163 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 75164 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 75165 | validation.fork | complete | 1 / 3 | 2 weeks ago |
No slither job recorded yet.
[codex:503009] OpenAI Codex v0.77.0 (research preview)
[codex:503009] --------
[codex:503009] workdir: /tmp/codex-multi-jpdt63vo
[codex:503009] model: gpt-5.2-codex
[codex:503009] provider: openai
[codex:503009] approval: never
[codex:503009] sandbox: read-only
[codex:503009] reasoning effort: xhigh
[codex:503009] reasoning summaries: auto
[codex:503009] session id: 019b6f8d-1ecb-7131-bfd2-aaded5f0ddf0
[codex:503009] --------
[codex:503009] user
[codex:503009] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:503009] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:503009]
[codex:503009] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:503009]
[codex:503009] Output MUST be valid JSON matching the provided schema.
[codex:503009] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:503009] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:503009]
[codex:503009] Output constraints (IMPORTANT):
[codex:503009] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:503009] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:503009] mcp startup: no servers
[codex:503009]
[codex:503009] thinking
[codex:503009] **Reading BYTECODE_BUNDLE.txt**
[codex:503009] exec
[codex:503009] /bin/bash -lc ls in /tmp/codex-multi-jpdt63vo succeeded in 5ms:
[codex:503009] BYTECODE_BUNDLE.txt
[codex:503009] codex-output-schema.json
[codex:503009] exec
[codex:503009] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-jpdt63vo succeeded in 7ms:
[codex:503009] Runtime bytecode bundle for best-effort auditing.
[codex:503009] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:503009]
[codex:503009] FILE: runtime_bytecode.hex
[codex:503009] 0x6080604052600436106101ea5763ffffffff60e060020a60003504166301e4f53a81146101ef57806301fcc1d314610215578063032f693f146102395780630950d5151461026c5780630b26cf661461028457806310775238146102a5578063125e4cfb146102dd578063151a62081461030757806316ef191314610338578063194153d31461035957806326aa101f1461037a5780632803212f1461039b578063351a8264146103bf578063392e53cd146103f75780633a50bc871461040c5780633e6968b61461043057806340f8dd8614610445578063437764df1461046657806359339982146104ad57806369ffa08a146104c55780636e5d6bea146104ec5780637610722f1461050d5780637837cf911461052e5780638190d90614610552578063871c0760146105735780638da5cb5b146105885780639a4a43951461059d5780639cb7595a146105b5578063a3f38605146105f6578063a4b1c24314610617578063a4c0ed3614610638578063ab3a25d9146106a1578063ad58bdd1146106c5578063be3b625b146106ef578063cd59658314610704578063d0342acd14610719578063db6fff8c14610740578063ec47de2a14610764578063f2c54fe814610788578063f2fde38b146107ac578063f3b83791146107cd578063f3f51415146107e5575b600080fd5b3480156101fb57600080fd5b50610213600160a060020a0360043516602435610806565b005b34801561022157600080fd5b50610213600160a060020a0360043516602435610815565b34801561024557600080fd5b5061025a600160a060020a0360043516610932565b60408051918252519081900360200190f35b34801561027857600080fd5b506102136004356109f5565b34801561029057600080fd5b50610213600160a060020a0360043516610da2565b3480156102b157600080fd5b506102c9600160a060020a0360043516602435610dca565b604080519115158252519081900360200190f35b3480156102e957600080fd5b50610213600160a060020a0360043581169060243516604435610e41565b34801561031357600080fd5b5061031c610ead565b60408051600160a060020a039092168252519081900360200190f35b34801561034457600080fd5b5061025a600160a060020a0360043516610f04565b34801561036557600080fd5b5061025a600160a060020a0360043516610f85565b34801561038657600080fd5b506102c9600160a060020a0360043516611018565b3480156103a757600080fd5b50610213600160a060020a036004351660243561102b565b3480156103cb57600080fd5b506102c9600160a060020a0360043581169060243581169060449060a49060e43590610104351661117a565b34801561040357600080fd5b506102c9611377565b34801561041857600080fd5b506102c9600160a060020a03600435166024356113c8565b34801561043c57600080fd5b5061025a61141e565b34801561045157600080fd5b5061025a600160a060020a0360043516611427565b34801561047257600080fd5b5061047b6114a8565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199092168252519081900360200190f35b3480156104b957600080fd5b506102c96004356114cc565b3480156104d157600080fd5b50610213600160a060020a0360043581169060243516611595565b3480156104f857600080fd5b50610213600160a060020a036004351661165a565b34801561051957600080fd5b5061025a600160a060020a036004351661167f565b34801561053a57600080fd5b50610213600160a060020a03600435166024356116d8565b34801561055e57600080fd5b5061025a600160a060020a0360043516611827565b34801561057f57600080fd5b5061031c6118ba565b34801561059457600080fd5b5061031c611911565b3480156105a957600080fd5b50610213600435611968565b3480156105c157600080fd5b506105ca611ca4565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561060257600080fd5b50610213600160a060020a0360043516611cad565b34801561062357600080fd5b5061025a600160a060020a0360043516611cd2565b34801561064457600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526102c9948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750611d539650505050505050565b3480156106ad57600080fd5b5061025a600160a060020a0360043516602435611d7d565b3480156106d157600080fd5b50610213600160a060020a0360043581169060243516604435611e5d565b3480156106fb57600080fd5b5061025a611e68565b34801561071057600080fd5b5061031c611eb6565b34801561072557600080fd5b50610213600160a060020a0360043581169060243516611f0d565b34801561074c57600080fd5b50610213600160a060020a0360043516602435612245565b34801561077057600080fd5b50610213600160a060020a0360043516602435612326565b34801561079457600080fd5b5061025a600160a060020a036004351660243561240b565b3480156107b857600080fd5b50610213600160a060020a03600435166124a6565b3480156107d957600080fd5b506102136004356124e0565b3480156107f157600080fd5b5061025a600160a060020a0360043516612505565b610811823383612586565b5050565b61081d611911565b600160a060020a0316331461083157600080fd5b61083a82611018565b151561084557600080fd5b8015806108645750600081118015610864575061086182611427565b81105b151561086f57600080fd5b80600080846040516020018080600080516020614a4c83398151915281525060110182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b602083106108f05780518252601f1990920191602091820191016108d1565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555050505050565b60008060008360405160200180806000805160206149ec83398151915281525060080182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b602083106109b45780518252601f199092019160209182019101610995565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b6000610a0082612609565b610a09826126f1565b9050610a1481611827565b82141561081157600080826040516020018080600080516020614a2c833981519152815250600a0182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b60208310610a9b5780518252601f199092019160209182019101610a7c565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812081905583516000805160206149ec83398151915281870152600160a060020a038716606060020a0260288201528451808203601c018152603c909101948590528051919586959194509092508291908401908083835b60208310610b4a5780518252601f199092019160209182019101610b2b565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652858101969096525092830160009081208190558351600080516020614a0c83398151915281870152600160a060020a038716606060020a0260288201528451808203601c018152603c909101948590528051919586959194509092508291908401908083835b60208310610bf95780518252601f199092019160209182019101610bda565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812081905583516000805160206149cc83398151915281870152600160a060020a038716606060020a026033820152845180820360270181526047909101948590528051919586959194509092508291908401908083835b60208310610ca85780518252601f199092019160209182019101610c89565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652858101969096525092830160009081208190558351600080516020614a4c83398151915281870152600160a060020a038716606060020a026031820152845180820360250181526045909101948590528051919586959194509092508291908401908083835b60208310610d575780518252601f199092019160209182019101610d38565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000908120819055610811935084925090506127c0565b610daa611911565b600160a060020a03163314610dbe57600080fd5b610dc781612848565b50565b600080610dee83610de286610ddd61141e565b611d7d565b9063ffffffff6128d316565b90506000610dfc6000612505565b118015610e11575080610e0e85612505565b10155b8015610e255750610e2184610932565b8311155b8015610e395750610e3584611cd2565b8310155b949350505050565b610e49611eb6565b600160a060020a03163314610e5d57600080fd5b610e656118ba565b600160a060020a0316610e766128e0565b600160a060020a031614610e8957600080fd5b610e9283611018565b1515610e9d57600080fd5b610ea8838383612958565b505050565b7f9ba5a09a13321d5fc0d3150bbf4489a02b9b881bf70e2fc6639c91e8c5ce714c60005260026020527f87f07cf898f772bd3ff661aa30d2354333eefbd852e374d9021ef7a3463e81fd54600160a060020a031690565b6000806000836040516020018080600080516020614a4c83398151915281525060110182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b60008060008360405160200180807f6d65646961746f7242616c616e63650000000000000000000000000000000000815250600f0182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b60008061102483611cd2565b1192915050565b611033611911565b600160a060020a0316331461104757600080fd5b61105082611018565b151561105b57600080fd5b61106482610932565b81118061106f575080155b151561107a57600080fd5b80600080846040516020018080600080516020614a2c833981519152815250600a0182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b602083106110fb5780518252601f1990920191602091820191016110dc565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600020949094555080518481529051600160a060020a03861693507fca0b3dabefdbd8c72c0a9cf4a6e9d107da897abf036ef3f3f3b010cdd2594159929181900390910190a25050565b6040805160048152602481018252602081018051600160e060020a03167f6fde8202000000000000000000000000000000000000000000000000000000001781529151815160009330939291829190808383895b838110156111e65781810151838201526020016111ce565b50505050905090810190601f1680156112135780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af191505015806112a5575030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561126d57600080fd5b505af1158015611281573d6000803e3d6000fd5b505050506040513d602081101561129757600080fd5b5051600160a060020a031633145b806112af57503330145b15156112ba57600080fd5b6112c2611377565b156112cc57600080fd5b600160a060020a03821615156112e157600080fd5b6112ea87612848565b6112f386612994565b611321600086600380602002604051908101604052809291908260036020028082843750612a0b9350505050565b60408051808201825261134a91600091908790600290839083908082843750612cab9350505050565b61135383612e5a565b61135c82612ebb565b611364612f7d565b61136c611377565b979650505050505050565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc5460ff1690565b6000806113e083610de2866113db61141e565b61240b565b905060006113ee6000611427565b11801561140357508061140085611427565b10155b8015610e39575061141384610f04565b909211159392505050565b62015180420490565b60008060008360405160200180806000805160206149cc83398151915281525060130182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b7fb1516c260000000000000000000000000000000000000000000000000000000090565b6000600460008360405160200180807f6d65737361676546697865640000000000000000000000000000000000000000815250600c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106115515780518252601f199092019160209182019101611532565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b30600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b505050506040513d60208110156115fd57600080fd5b5051600160a060020a0316331461161357600080fd5b80600160a060020a038116151561162957600080fd5b600160a060020a0383161580611645575061164383611018565b155b151561165057600080fd5b610ea88383612fd4565b611662611911565b600160a060020a0316331461167657600080fd5b610dc781612994565b600080600080600061169086610932565b935061169b86612505565b92506116a986610ddd61141e565b91508183116116b95760006116bd565b8183035b90508084106116cc57806116ce565b835b9695505050505050565b6116e0611911565b600160a060020a031633146116f457600080fd5b6116fd82611018565b151561170857600080fd5b61171182610f04565b81118061171c575080155b151561172757600080fd5b806000808460405160200180806000805160206149cc83398151915281525060130182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b602083106117a85780518252601f199092019160209182019101611789565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600020949094555080518481529051600160a060020a03861693507f4c177b42dbe934b3abbc0208c11a42e46589983431616f1710ab19969c5ed62e929181900390910190a25050565b60008060008360405160200180807f746f6b656e526567697374726174696f6e4d6573736167654964000000000000815250601a0182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b7f98aa806e31e94a687a31c65769cb99670064dd7f5a87526da075c5fb4eab988060005260026020527f0c1206883be66049a02d4937078367c00b3d71dd1a9465df969363c6ddeac96d54600160a060020a031690565b7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e54600160a060020a031690565b60006060611974611eb6565b600160a060020a031663cb08a10c846040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156119c457600080fd5b505af11580156119d8573d6000803e3d6000fd5b505050506040513d60208110156119ee57600080fd5b5051156119fa57600080fd5b30611a03611eb6565b600160a060020a0316633f9a8e7e856040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b158015611a5357600080fd5b505af1158015611a67573d6000803e3d6000fd5b505050506040513d6020811015611a7d57600080fd5b5051600160a060020a031614611a9257600080fd5b611a9a6118ba565b600160a060020a0316611aab611eb6565b600160a060020a0316634a610b04856040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b158015611afb57600080fd5b505af1158015611b0f573d6000803e3d6000fd5b505050506040513d6020811015611b2557600080fd5b5051600160a060020a031614611b3a57600080fd5b5050604080516024808201849052825180830390910181526044909101909152602081018051600160e060020a03167f0950d5150000000000000000000000000000000000000000000000000000000090811790915290611b99611eb6565b600160a060020a031663dc8601b3611baf6118ba565b83611bb8611e68565b6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611c25578181015183820152602001611c0d565b50505050905090810190601f168015611c525780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015611c7357600080fd5b505af1158015611c87573d6000803e3d6000fd5b505050506040513d6020811015611c9d57600080fd5b5050505050565b60018080909192565b611cb5611911565b600160a060020a03163314611cc957600080fd5b610dc781612ffc565b6000806000836040516020018080600080516020614a0c83398151915281525060080182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b600080611d5e613087565b1515611d72575033611d72818686866130d8565b506001949350505050565b6000806000848460405160200180807f746f74616c5370656e745065724461790000000000000000000000000000000081525060100183600160a060020a0316600160a060020a0316606060020a028152601401828152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310611e195780518252601f199092019160209182019101611dfa565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205493505050505b92915050565b610ea8838383612586565b7f2dfd6c9f781bb6bbb5369c114e949b69ebb440ef3d4dd6b2836225eb1dc3a2be60009081526020527f2de0d2cdc19d356cb53b5984f91bfd3b31fe0c678a0d190a6db39274bb34753f5490565b7f811bbb11e8899da471f0e69a3ed55090fc90215227fc5fb1cb0d6e962ea7b74f60005260026020527fb4ed64697d3ef8518241966f7c6f28b0d72f20f51198717d198d2d55076c593d54600160a060020a031690565b6000806000806060600030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611f5557600080fd5b505af1158015611f69573d6000803e3d6000fd5b505050506040513d6020811015611f7f57600080fd5b5051600160a060020a03163314611f9557600080fd5b611f9e88611018565b1515611fa957600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038a16916370a082319160248083019260209291908290030181600087803b15801561200a57600080fd5b505af115801561201e573d6000803e3d6000fd5b505050506040513d602081101561203457600080fd5b5051955061204188610f85565b945084861161204f57600080fd5b848603935061205d8861167f565b92506000831161206c57600080fd5b82841115612078578293505b61208a8861208461141e565b86613704565b6120a38861209e878763ffffffff6128d316565b6137ef565b60408051600160a060020a03808b166024830152891660448201526064808201879052825180830390910181526084909101909152602081018051600160e060020a03167f125e4cfb000000000000000000000000000000000000000000000000000000001790529150612115611eb6565b600160a060020a031663dc8601b361212b6118ba565b84612134611e68565b6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121a1578181015183820152602001612189565b50505050905090810190601f1680156121ce5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156121ef57600080fd5b505af1158015612203573d6000803e3d6000fd5b505050506040513d602081101561221957600080fd5b505190506122278189613881565b612231818561396f565b61223b81886139f1565b5050505050505050565b61224d611911565b600160a060020a0316331461226157600080fd5b61226a82611018565b151561227557600080fd5b80158061229b575061228682611cd2565b8111801561229b575061229882612505565b81105b15156122a657600080fd5b806000808460405160200180806000805160206149ec83398151915281525060080182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106108f05780518252601f1990920191602091820191016108d1565b61232e611911565b600160a060020a0316331461234257600080fd5b61234b82611018565b151561235657600080fd5b60008111801561236d575061236a82612505565b81105b8015612380575061237d82610932565b81105b151561238b57600080fd5b80600080846040516020018080600080516020614a0c83398151915281525060080182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106108f05780518252601f1990920191602091820191016108d1565b6000806000848460405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130183600160a060020a0316600160a060020a0316606060020a0281526014018281526020019250505060405160208183030381529060405260405180828051906020019080838360208310611e195780518252601f199092019160209182019101611dfa565b6124ae611911565b600160a060020a031633146124c257600080fd5b600160a060020a03811615156124d757600080fd5b610dc781612ebb565b6124e8611911565b600160a060020a031633146124fc57600080fd5b610dc781612e5a565b6000806000836040516020018080600080516020614a2c833981519152815250600a0182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b61258e613087565b1561259857600080fd5b6125a26001613a74565b6125bc600160a060020a038416338363ffffffff613acf16565b6125c66000613a74565b610ea8833383856040516020018082600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526130d8565b6000806000612616611eb6565b600160a060020a0316331461262a57600080fd5b6126326118ba565b600160a060020a03166126436128e0565b600160a060020a03161461265657600080fd5b61265f846114cc565b1561266957600080fd5b612672846126f1565b925061267d84613b72565b915061268884613bf6565b905061269384613c79565b61269e838383613d4b565b60408051600160a060020a03808616825284166020820152808201839052905185917f07b5483b8e4bd8ea240a474d5117738350e7d431e3668c48a97910b0b397796a919081900360600190a250505050565b6000600260008360405160200180807f6d657373616765546f6b656e0000000000000000000000000000000000000000815250600c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106127765780518252601f199092019160209182019101612757565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054600160a060020a031695945050505050565b604080517f746f6b656e526567697374726174696f6e4d6573736167654964000000000000602080830191909152606060020a600160a060020a03861602603a8301528251602e818403018152604e9092019283905281518493600093849390928291840190808383602083106108f05780518252601f1990920191602091820191016108d1565b61285181613f79565b151561285c57600080fd5b7f811bbb11e8899da471f0e69a3ed55090fc90215227fc5fb1cb0d6e962ea7b74f60005260026020527fb4ed64697d3ef8518241966f7c6f28b0d72f20f51198717d198d2d55076c593d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b81810182811015611e5757fe5b60006128ea611eb6565b600160a060020a031663d67bdd256040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561292757600080fd5b505af115801561293b573d6000803e3d6000fd5b505050506040513d602081101561295157600080fd5b5051905090565b61296283826113c8565b15612989576129798361297361141e565b83613f81565b612984838383614028565b610ea8565b610ea88383836101ea565b7f98aa806e31e94a687a31c65769cb99670064dd7f5a87526da075c5fb4eab988060005260026020527f0c1206883be66049a02d4937078367c00b3d71dd1a9465df969363c6ddeac96d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60408101516000108015612a26575060408101516020820151115b8015612a36575060208101518151115b1515612a4157600080fd5b805160408051600080516020614a2c833981519152602082810191909152606060020a600160a060020a03871602602a8301528251601e818403018152603e909201928390528151600093849392909182918401908083835b60208310612ab95780518252601f199092019160209182019101612a9a565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652858101969096525092830160009081209590955550508382015181516000805160206149ec83398151915281850152600160a060020a038716606060020a0260288201528251808203601c018152603c9091019283905280519194938493919282918401908083835b60208310612b6b5780518252601f199092019160209182019101612b4c565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285810196909652509283016000908120959095555050838101518151600080516020614a0c83398151915281850152600160a060020a038716606060020a0260288201528251808203601c018152603c9091019283905280519194938493919282918401908083835b60208310612c1d5780518252601f199092019160209182019101612bfe565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600090812094909455505050600160a060020a038316907fca0b3dabefdbd8c72c0a9cf4a6e9d107da897abf036ef3f3f3b010cdd25941599083905b60200201516040518082815260200191505060405180910390a25050565b8051602082015110612cbc57600080fd5b8051604080516000805160206149cc833981519152602082810191909152606060020a600160a060020a038716026033830152825160278184030181526047909201928390528151600093849392909182918401908083835b60208310612d345780518252601f199092019160209182019101612d15565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285810196909652509283016000908120959095555050838201518151600080516020614a4c83398151915281850152600160a060020a038716606060020a0260318201528251808203602501815260459091019283905280519194938493919282918401908083835b60208310612de65780518252601f199092019160209182019101612dc7565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600090812094909455505050600160a060020a038316907f4c177b42dbe934b3abbc0208c11a42e46589983431616f1710ab19969c5ed62e908390612c8d565b612e626142a0565b811115612e6e57600080fd5b7f2dfd6c9f781bb6bbb5369c114e949b69ebb440ef3d4dd6b2836225eb1dc3a2be60009081526020527f2de0d2cdc19d356cb53b5984f91bfd3b31fe0c678a0d190a6db39274bb34753f55565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0612ee4611911565b60408051600160a060020a03928316815291841660208301528051918290030190a17f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc805460ff19166001179055565b600160a060020a0382161515612ff257612fed816142e7565b610811565b61081182826142f3565b61300581613f79565b151561301057600080fd5b7f9ba5a09a13321d5fc0d3150bbf4489a02b9b881bf70e2fc6639c91e8c5ce714c60005260026020527f87f07cf898f772bd3ff661aa30d2354333eefbd852e374d9021ef7a3463e81fd805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b7f6168652c307c1e813ca11cfb3a601f1cf3b22452021a5052d8b05f1f1f8a3e9260005260046020527fcb8d022f2163402334a4962e3279c5def3417d3d8dab9e27ba26e81e3f8337845460ff1690565b6000606080600080606060006130ec613087565b156130f6576136f7565b6130ff8b611018565b9650861515613152576131118b614391565b955061311c8b6144a2565b94506131278b614524565b935060008651118061313a575060008551115b151561314557600080fd5b6131528b8560ff166145a2565b61315c8b8a610dca565b151561316757600080fd5b6131798b61317361141e565b8b613704565b613181610ead565b9250600160a060020a03831615613368578a600160a060020a031663095ea7b3848b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156131f557600080fd5b505af1158015613209573d6000803e3d6000fd5b505050506040513d602081101561321f57600080fd5b5050600160a060020a03831663f5a428b58b61323b818c61472e565b6040805160e060020a63ffffffff8616028152600160a060020a0393841660048201529183166024830152918f166044820152606481018d9052600060848201819052915160a48083019360209383900390910190829087803b1580156132a157600080fd5b505af11580156132b5573d6000803e3d6000fd5b505050506040513d60208110156132cb57600080fd5b5051156132d7576136f7565b8a600160a060020a031663095ea7b38460006040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561333b57600080fd5b505af115801561334f573d6000803e3d6000fd5b505050506040513d602081101561336557600080fd5b50505b861561340f577f125e4cfb000000000000000000000000000000000000000000000000000000008b61339a8c8b61472e565b60408051600160a060020a03938416602482015291909216604482015260648082018d9052825180830390910181526084909101909152602081018051600160e060020a03167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915291506135a7565b7f2ae87cdd000000000000000000000000000000000000000000000000000000008b87878761343e8f8e61472e565b8e6040516024018087600160a060020a0316600160a060020a0316815260200180602001806020018660ff1660ff16815260200185600160a060020a0316600160a060020a03168152602001848152602001838103835288818151815260200191508051906020019080838360005b838110156134c55781810151838201526020016134ad565b50505050905090810190601f1680156134f25780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b8381101561352557818101518382015260200161350d565b50505050905090810190601f1680156135525780820380516001836020036101000a031916815260200191505b5060408051601f19818403018152919052602081018051600160e060020a03167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909c169b909b17909a525097995050505050505050505b6135b88b61209e8b610de28f610f85565b6135c0611eb6565b600160a060020a031663dc8601b36135d66118ba565b846135df611e68565b6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561364c578181015183820152602001613634565b50505050905090810190601f1680156136795780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561369a57600080fd5b505af11580156136ae573d6000803e3d6000fd5b505050506040513d60208110156136c457600080fd5b505190506136d2818c613881565b6136dc818a61396f565b6136e6818b6139f1565b8615156136f7576136f78b826127c0565b5050505050505050505050565b61371281610de28585611d7d565b600080858560405160200180807f746f74616c5370656e745065724461790000000000000000000000000000000081525060100183600160a060020a0316600160a060020a0316606060020a028152601401828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106137ac5780518252601f19909201916020918201910161378d565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002093909355505050505050565b806000808460405160200180807f6d65646961746f7242616c616e63650000000000000000000000000000000000815250600f0182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106108f05780518252601f1990920191602091820191016108d1565b80600260008460405160200180807f6d657373616765546f6b656e0000000000000000000000000000000000000000815250600c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106139055780518252601f1990920191602091820191016138e6565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909516949094179093555050505050565b806000808460405160200180807f6d65737361676556616c75650000000000000000000000000000000000000000815250600c018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106108f05780518252601f1990920191602091820191016108d1565b80600260008460405160200180807f6d657373616765526563697069656e74000000000000000000000000000000008152506010018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106139055780518252601f1990920191602091820191016138e6565b7f6168652c307c1e813ca11cfb3a601f1cf3b22452021a5052d8b05f1f1f8a3e9260005260046020527fcb8d022f2163402334a4962e3279c5def3417d3d8dab9e27ba26e81e3f833784805460ff1916911515919091179055565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152306024830152604482018490529151918516916323b872dd9160648082019260009290919082900301818387803b158015613b4057600080fd5b505af1158015613b54573d6000803e3d6000fd5b505050503d15610ea85760206000803e6000511515610ea857600080fd5b6000600260008360405160200180807f6d657373616765526563697069656e74000000000000000000000000000000008152506010018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106127765780518252601f199092019160209182019101612757565b60008060008360405160200180807f6d65737361676556616c75650000000000000000000000000000000000000000815250600c018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b6001600460008360405160200180807f6d65737361676546697865640000000000000000000000000000000000000000815250600c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310613cfe5780518252601f199092019160209182019101613cdf565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff19169415159490941790935550505050565b6000613d6a8461209e84613d5e88610f85565b9063ffffffff61478816565b613d72610ead565b9050600160a060020a03811615613f595783600160a060020a031663095ea7b382846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015613de657600080fd5b505af1158015613dfa573d6000803e3d6000fd5b505050506040513d6020811015613e1057600080fd5b5050600160a060020a03811663f5a428b56000858786613e2e61479a565b6040805160e060020a63ffffffff8916028152600160a060020a039687166004820152948616602486015292909416604484015260648301526084820192909252905160a48083019260209291908290030181600087803b158015613e9257600080fd5b505af1158015613ea6573d6000803e3d6000fd5b505050506040513d6020811015613ebc57600080fd5b505115613ec857613f73565b83600160a060020a031663095ea7b38260006040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015613f2c57600080fd5b505af1158015613f40573d6000803e3d6000fd5b505050506040513d6020811015613f5657600080fd5b50505b613f73600160a060020a038516848463ffffffff6147e116565b50505050565b6000903b1190565b613f8f81610de2858561240b565b600080858560405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130183600160a060020a0316600160a060020a0316606060020a02815260140182815260200192505050604051602081830303815290604052604051808280519060200190808383602083106137ac5780518252601f19909201916020918201910161378d565b60008061403361479a565b91506140468561209e85613d5e89610f85565b61404e610ead565b9050600160a060020a038116156142395784600160a060020a031663095ea7b382856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156140c257600080fd5b505af11580156140d6573d6000803e3d6000fd5b505050506040513d60208110156140ec57600080fd5b5050604080517ff5a428b5000000000000000000000000000000000000000000000000000000008152600060048201819052600160a060020a0387811660248401528881166044840152606483018790526084830186905292519284169263f5a428b59260a4808201936020939283900390910190829087803b15801561417257600080fd5b505af1158015614186573d6000803e3d6000fd5b505050506040513d602081101561419c57600080fd5b5051156141a857611c9d565b84600160a060020a031663095ea7b38260006040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561420c57600080fd5b505af1158015614220573d6000803e3d6000fd5b505050506040513d602081101561423657600080fd5b50505b614253600160a060020a038616858563ffffffff6147e116565b6040805184815290518391600160a060020a0380881692908916917f9afd47907e25028cdaca89d193518c302bbb128617d5a992c5abd45815526593919081900360200190a45050505050565b60006142aa611eb6565b600160a060020a031663e5789d036040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561292757600080fd5b30316108118282614844565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b15801561435857600080fd5b505af115801561436c573d6000803e3d6000fd5b505050506040513d602081101561438257600080fd5b50519050613f738484836148a5565b6040517f06fdde03000000000000000000000000000000000000000000000000000000008152606090600082602083600481885afa15156143fa577fa3f4df7e000000000000000000000000000000000000000000000000000000008352602083600485885afa505b3d830160405260203d1160018114614414573d9250614422565b6020806040513e6040515192505b50816040519080825280601f01601f191660200182016040528015614451578160200160208202803883390190505b50905060203d111561446a57816040602083013e610e39565b60003d1115610e39576000835193508360208301525b60008411156144985760089390931b92600101614480565b8152949350505050565b6040517f95d89b41000000000000000000000000000000000000000000000000000000008152606090600082602083600481885afa15156143fa577ff76f8d78000000000000000000000000000000000000000000000000000000008352602083600485885afa503d830160405260203d1160018114614414573d9250614422565b600080604051602081016040527f313ce567000000000000000000000000000000000000000000000000000000008152602081600483875afa151561459a577f2e0f2625000000000000000000000000000000000000000000000000000000008152602081600483875afa151561459a57600081525b519392505050565b60008060008060008060128710156146975786601203600a0a95506145d7866145cb6000611cd2565b9063ffffffff61494716565b94506145e7866145cb6000610932565b93506145f7866145cb6000612505565b9250614607866145cb6000610f04565b9150614617866145cb6000611427565b905084151561464f576001945084841161464f57606493506064915083831115806146425750818111155b1561464f57506127109150815b6146748860606040519081016040528086815260200187815260200188815250612a0b565b61469288604080519081016040528084815260200185815250612cab565b61223b565b60128703600a0a95506146f7886060604051908101604052806146ca8a6146be6000612505565b9063ffffffff61495c16565b81526020016146dd8a6146be6000610932565b81526020016146f08a6146be6000611cd2565b9052612a0b565b61223b8860408051908101604052806147148a6146be6000611427565b81526020016147278a6146be6000610f04565b9052612cab565b8051829060001015611e5757815160141461474857600080fd5b61475182614985565b9050600160a060020a038116151561476857600080fd5b61477061498c565b600160a060020a0382811691161415611e5757600080fd5b60008282111561479457fe5b50900390565b60006147a4611eb6565b600160a060020a031663669f618b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561292757600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015613b4057600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050151561081157808261487961499b565b600160a060020a039091168152604051908190036020019082f080158015611c9d573d6000803e3d6000fd5b60408051600160a060020a0384166024820152604480820184905282518083039091018152606490910190915260208181018051600160e060020a03167fa9059cbb000000000000000000000000000000000000000000000000000000001781528251606093600093909290918491828a5af160005193508392508080156101ea57505060008351111561493f5781151561493f57600080fd5b505050505050565b6000818381151561495457fe5b049392505050565b600082151561496d57506000611e57565b5081810281838281151561497d57fe5b0414611e5757fe5b6014015190565b60006149966118ba565b905090565b6040516021806149ab833901905600608060405260405160208060218339810160405251600160a060020a038116ff00657865637574696f6e4461696c794c696d6974000000000000000000000000006d617850657254780000000000000000000000000000000000000000000000006d696e50657254780000000000000000000000000000000000000000000000006461696c794c696d697400000000000000000000000000000000000000000000657865637574696f6e4d61785065725478000000000000000000000000000000a165627a7a72305820c596ac6ce45f36653c4f56a2b52cef12ea4d78b3846091875a08d453b777da2f0029
[codex:503009]
[codex:503009] thinking
[codex:503009] **Analyzing bytecode for vulnerabilities**
[codex:503009]
[codex:503009] I'm examining the bytecode for concrete security issues, focusing on patterns like calls to external contracts, selfdestruct usage, presence of owner-based access control, and upgradeability indicators. I'm carefully checking for risks such as unprotected selfdestruct, reentrancy possibilities, and verifying if owner restrictions exist around critical functions.
[codex:503009] exec
[codex:503009] /bin/bash -lc 'rg -n "ff00" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-jpdt63vo succeeded in 9ms:
[codex:503009] 5:0x6080604052600436106101ea5763ffffffff60e060020a60003504166301e4f53a81146101ef57806301fcc1d314610215578063032f693f146102395780630950d5151461026c5780630b26cf661461028457806310775238146102a5578063125e4cfb146102dd578063151a62081461030757806316ef191314610338578063194153d31461035957806326aa101f1461037a5780632803212f1461039b578063351a8264146103bf578063392e53cd146103f75780633a50bc871461040c5780633e6968b61461043057806340f8dd8614610445578063437764df1461046657806359339982146104ad57806369ffa08a146104c55780636e5d6bea146104ec5780637610722f1461050d5780637837cf911461052e5780638190d90614610552578063871c0760146105735780638da5cb5b146105885780639a4a43951461059d5780639cb7595a146105b5578063a3f38605146105f6578063a4b1c24314610617578063a4c0ed3614610638578063ab3a25d9146106a1578063ad58bdd1146106c5578063be3b625b146106ef578063cd59658314610704578063d0342acd14610719578063db6fff8c14610740578063ec47de2a14610764578063f2c54fe814610788578063f2fde38b146107ac578063f3b83791146107cd578063f3f51415146107e5575b600080fd5b3480156101fb57600080fd5b50610213600160a060020a0360043516602435610806565b005b34801561022157600080fd5b50610213600160a060020a0360043516602435610815565b34801561024557600080fd5b5061025a600160a060020a0360043516610932565b60408051918252519081900360200190f35b34801561027857600080fd5b506102136004356109f5565b34801561029057600080fd5b50610213600160a060020a0360043516610da2565b3480156102b157600080fd5b506102c9600160a060020a0360043516602435610dca565b604080519115158252519081900360200190f35b3480156102e957600080fd5b50610213600160a060020a0360043581169060243516604435610e41565b34801561031357600080fd5b5061031c610ead565b60408051600160a060020a039092168252519081900360200190f35b34801561034457600080fd5b5061025a600160a060020a0360043516610f04565b34801561036557600080fd5b5061025a600160a060020a0360043516610f85565b34801561038657600080fd5b506102c9600160a060020a0360043516611018565b3480156103a757600080fd5b50610213600160a060020a036004351660243561102b565b3480156103cb57600080fd5b506102c9600160a060020a0360043581169060243581169060449060a49060e43590610104351661117a565b34801561040357600080fd5b506102c9611377565b34801561041857600080fd5b506102c9600160a060020a03600435166024356113c8565b34801561043c57600080fd5b5061025a61141e565b34801561045157600080fd5b5061025a600160a060020a0360043516611427565b34801561047257600080fd5b5061047b6114a8565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199092168252519081900360200190f35b3480156104b957600080fd5b506102c96004356114cc565b3480156104d157600080fd5b50610213600160a060020a0360043581169060243516611595565b3480156104f857600080fd5b50610213600160a060020a036004351661165a565b34801561051957600080fd5b5061025a600160a060020a036004351661167f565b34801561053a57600080fd5b50610213600160a060020a03600435166024356116d8565b34801561055e57600080fd5b5061025a600160a060020a0360043516611827565b34801561057f57600080fd5b5061031c6118ba565b34801561059457600080fd5b5061031c611911565b3480156105a957600080fd5b50610213600435611968565b3480156105c157600080fd5b506105ca611ca4565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561060257600080fd5b50610213600160a060020a0360043516611cad565b34801561062357600080fd5b5061025a600160a060020a0360043516611cd2565b34801561064457600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526102c9948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750611d539650505050505050565b3480156106ad57600080fd5b5061025a600160a060020a0360043516602435611d7d565b3480156106d157600080fd5b50610213600160a060020a0360043581169060243516604435611e5d565b3480156106fb57600080fd5b5061025a611e68565b34801561071057600080fd5b5061031c611eb6565b34801561072557600080fd5b50610213600160a060020a0360043581169060243516611f0d565b34801561074c57600080fd5b50610213600160a060020a0360043516602435612245565b34801561077057600080fd5b50610213600160a060020a0360043516602435612326565b34801561079457600080fd5b5061025a600160a060020a036004351660243561240b565b3480156107b857600080fd5b50610213600160a060020a03600435166124a6565b3480156107d957600080fd5b506102136004356124e0565b3480156107f157600080fd5b5061025a600160a060020a0360043516612505565b610811823383612586565b5050565b61081d611911565b600160a060020a0316331461083157600080fd5b61083a82611018565b151561084557600080fd5b8015806108645750600081118015610864575061086182611427565b81105b151561086f57600080fd5b80600080846040516020018080600080516020614a4c83398151915281525060110182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b602083106108f05780518252601f1990920191602091820191016108d1565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555050505050565b60008060008360405160200180806000805160206149ec83398151915281525060080182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b602083106109b45780518252601f199092019160209182019101610995565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b6000610a0082612609565b610a09826126f1565b9050610a1481611827565b82141561081157600080826040516020018080600080516020614a2c833981519152815250600a0182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b60208310610a9b5780518252601f199092019160209182019101610a7c565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812081905583516000805160206149ec83398151915281870152600160a060020a038716606060020a0260288201528451808203601c018152603c909101948590528051919586959194509092508291908401908083835b60208310610b4a5780518252601f199092019160209182019101610b2b565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652858101969096525092830160009081208190558351600080516020614a0c83398151915281870152600160a060020a038716606060020a0260288201528451808203601c018152603c909101948590528051919586959194509092508291908401908083835b60208310610bf95780518252601f199092019160209182019101610bda565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812081905583516000805160206149cc83398151915281870152600160a060020a038716606060020a026033820152845180820360270181526047909101948590528051919586959194509092508291908401908083835b60208310610ca85780518252601f199092019160209182019101610c89565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652858101969096525092830160009081208190558351600080516020614a4c83398151915281870152600160a060020a038716606060020a026031820152845180820360250181526045909101948590528051919586959194509092508291908401908083835b60208310610d575780518252601f199092019160209182019101610d38565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000908120819055610811935084925090506127c0565b610daa611911565b600160a060020a03163314610dbe57600080fd5b610dc781612848565b50565b600080610dee83610de286610ddd61141e565b611d7d565b9063ffffffff6128d316565b90506000610dfc6000612505565b118015610e11575080610e0e85612505565b10155b8015610e255750610e2184610932565b8311155b8015610e395750610e3584611cd2565b8310155b949350505050565b610e49611eb6565b600160a060020a03163314610e5d57600080fd5b610e656118ba565b600160a060020a0316610e766128e0565b600160a060020a031614610e8957600080fd5b610e9283611018565b1515610e9d57600080fd5b610ea8838383612958565b505050565b7f9ba5a09a13321d5fc0d3150bbf4489a02b9b881bf70e2fc6639c91e8c5ce714c60005260026020527f87f07cf898f772bd3ff661aa30d2354333eefbd852e374d9021ef7a3463e81fd54600160a060020a031690565b6000806000836040516020018080600080516020614a4c83398151915281525060110182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b60008060008360405160200180807f6d65646961746f7242616c616e63650000000000000000000000000000000000815250600f0182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b60008061102483611cd2565b1192915050565b611033611911565b600160a060020a0316331461104757600080fd5b61105082611018565b151561105b57600080fd5b61106482610932565b81118061106f575080155b151561107a57600080fd5b80600080846040516020018080600080516020614a2c833981519152815250600a0182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b602083106110fb5780518252601f1990920191602091820191016110dc565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600020949094555080518481529051600160a060020a03861693507fca0b3dabefdbd8c72c0a9cf4a6e9d107da897abf036ef3f3f3b010cdd2594159929181900390910190a25050565b6040805160048152602481018252602081018051600160e060020a03167f6fde8202000000000000000000000000000000000000000000000000000000001781529151815160009330939291829190808383895b838110156111e65781810151838201526020016111ce565b50505050905090810190601f1680156112135780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af191505015806112a5575030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561126d57600080fd5b505af1158015611281573d6000803e3d6000fd5b505050506040513d602081101561129757600080fd5b5051600160a060020a031633145b806112af57503330145b15156112ba57600080fd5b6112c2611377565b156112cc57600080fd5b600160a060020a03821615156112e157600080fd5b6112ea87612848565b6112f386612994565b611321600086600380602002604051908101604052809291908260036020028082843750612a0b9350505050565b60408051808201825261134a91600091908790600290839083908082843750612cab9350505050565b61135383612e5a565b61135c82612ebb565b611364612f7d565b61136c611377565b979650505050505050565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc5460ff1690565b6000806113e083610de2866113db61141e565b61240b565b905060006113ee6000611427565b11801561140357508061140085611427565b10155b8015610e39575061141384610f04565b909211159392505050565b62015180420490565b60008060008360405160200180806000805160206149cc83398151915281525060130182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b7fb1516c260000000000000000000000000000000000000000000000000000000090565b6000600460008360405160200180807f6d65737361676546697865640000000000000000000000000000000000000000815250600c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106115515780518252601f199092019160209182019101611532565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b30600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b505050506040513d60208110156115fd57600080fd5b5051600160a060020a0316331461161357600080fd5b80600160a060020a038116151561162957600080fd5b600160a060020a0383161580611645575061164383611018565b155b151561165057600080fd5b610ea88383612fd4565b611662611911565b600160a060020a0316331461167657600080fd5b610dc781612994565b600080600080600061169086610932565b935061169b86612505565b92506116a986610ddd61141e565b91508183116116b95760006116bd565b8183035b90508084106116cc57806116ce565b835b9695505050505050565b6116e0611911565b600160a060020a031633146116f457600080fd5b6116fd82611018565b151561170857600080fd5b61171182610f04565b81118061171c575080155b151561172757600080fd5b806000808460405160200180806000805160206149cc83398151915281525060130182600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526040518082805190602001908083835b602083106117a85780518252601f199092019160209182019101611789565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600020949094555080518481529051600160a060020a03861693507f4c177b42dbe934b3abbc0208c11a42e46589983431616f1710ab19969c5ed62e929181900390910190a25050565b60008060008360405160200180807f746f6b656e526567697374726174696f6e4d6573736167654964000000000000815250601a0182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b7f98aa806e31e94a687a31c65769cb99670064dd7f5a87526da075c5fb4eab988060005260026020527f0c1206883be66049a02d4937078367c00b3d71dd1a9465df969363c6ddeac96d54600160a060020a031690565b7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e54600160a060020a031690565b60006060611974611eb6565b600160a060020a031663cb08a10c846040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156119c457600080fd5b505af11580156119d8573d6000803e3d6000fd5b505050506040513d60208110156119ee57600080fd5b5051156119fa57600080fd5b30611a03611eb6565b600160a060020a0316633f9a8e7e856040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b158015611a5357600080fd5b505af1158015611a67573d6000803e3d6000fd5b505050506040513d6020811015611a7d57600080fd5b5051600160a060020a031614611a9257600080fd5b611a9a6118ba565b600160a060020a0316611aab611eb6565b600160a060020a0316634a610b04856040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b158015611afb57600080fd5b505af1158015611b0f573d6000803e3d6000fd5b505050506040513d6020811015611b2557600080fd5b5051600160a060020a031614611b3a57600080fd5b5050604080516024808201849052825180830390910181526044909101909152602081018051600160e060020a03167f0950d5150000000000000000000000000000000000000000000000000000000090811790915290611b99611eb6565b600160a060020a031663dc8601b3611baf6118ba565b83611bb8611e68565b6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611c25578181015183820152602001611c0d565b50505050905090810190601f168015611c525780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015611c7357600080fd5b505af1158015611c87573d6000803e3d6000fd5b505050506040513d6020811015611c9d57600080fd5b5050505050565b60018080909192565b611cb5611911565b600160a060020a03163314611cc957600080fd5b610dc781612ffc565b6000806000836040516020018080600080516020614a0c83398151915281525060080182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b600080611d5e613087565b1515611d72575033611d72818686866130d8565b506001949350505050565b6000806000848460405160200180807f746f74616c5370656e745065724461790000000000000000000000000000000081525060100183600160a060020a0316600160a060020a0316606060020a028152601401828152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310611e195780518252601f199092019160209182019101611dfa565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205493505050505b92915050565b610ea8838383612586565b7f2dfd6c9f781bb6bbb5369c114e949b69ebb440ef3d4dd6b2836225eb1dc3a2be60009081526020527f2de0d2cdc19d356cb53b5984f91bfd3b31fe0c678a0d190a6db39274bb34753f5490565b7f811bbb11e8899da471f0e69a3ed55090fc90215227fc5fb1cb0d6e962ea7b74f60005260026020527fb4ed64697d3ef8518241966f7c6f28b0d72f20f51198717d198d2d55076c593d54600160a060020a031690565b6000806000806060600030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611f5557600080fd5b505af1158015611f69573d6000803e3d6000fd5b505050506040513d6020811015611f7f57600080fd5b5051600160a060020a03163314611f9557600080fd5b611f9e88611018565b1515611fa957600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038a16916370a082319160248083019260209291908290030181600087803b15801561200a57600080fd5b505af115801561201e573d6000803e3d6000fd5b505050506040513d602081101561203457600080fd5b5051955061204188610f85565b945084861161204f57600080fd5b848603935061205d8861167f565b92506000831161206c57600080fd5b82841115612078578293505b61208a8861208461141e565b86613704565b6120a38861209e878763ffffffff6128d316565b6137ef565b60408051600160a060020a03808b166024830152891660448201526064808201879052825180830390910181526084909101909152602081018051600160e060020a03167f125e4cfb000000000000000000000000000000000000000000000000000000001790529150612115611eb6565b600160a060020a031663dc8601b361212b6118ba565b84612134611e68565b6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121a1578181015183820152602001612189565b50505050905090810190601f1680156121ce5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156121ef57600080fd5b505af1158015612203573d6000803e3d6000fd5b505050506040513d602081101561221957600080fd5b505190506122278189613881565b612231818561396f565b61223b81886139f1565b5050505050505050565b61224d611911565b600160a060020a0316331461226157600080fd5b61226a82611018565b151561227557600080fd5b80158061229b575061228682611cd2565b8111801561229b575061229882612505565b81105b15156122a657600080fd5b806000808460405160200180806000805160206149ec83398151915281525060080182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106108f05780518252601f1990920191602091820191016108d1565b61232e611911565b600160a060020a0316331461234257600080fd5b61234b82611018565b151561235657600080fd5b60008111801561236d575061236a82612505565b81105b8015612380575061237d82610932565b81105b151561238b57600080fd5b80600080846040516020018080600080516020614a0c83398151915281525060080182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106108f05780518252601f1990920191602091820191016108d1565b6000806000848460405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130183600160a060020a0316600160a060020a0316606060020a0281526014018281526020019250505060405160208183030381529060405260405180828051906020019080838360208310611e195780518252601f199092019160209182019101611dfa565b6124ae611911565b600160a060020a031633146124c257600080fd5b600160a060020a03811615156124d757600080fd5b610dc781612ebb565b6124e8611911565b600160a060020a031633146124fc57600080fd5b610dc781612e5a565b6000806000836040516020018080600080516020614a2c833981519152815250600a0182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b61258e613087565b1561259857600080fd5b6125a26001613a74565b6125bc600160a060020a038416338363ffffffff613acf16565b6125c66000613a74565b610ea8833383856040516020018082600160a060020a0316600160a060020a0316606060020a0281526014019150506040516020818303038152906040526130d8565b6000806000612616611eb6565b600160a060020a0316331461262a57600080fd5b6126326118ba565b600160a060020a03166126436128e0565b600160a060020a03161461265657600080fd5b61265f846114cc565b1561266957600080fd5b612672846126f1565b925061267d84613b72565b915061268884613bf6565b905061269384613c79565b61269e838383613d4b565b60408051600160a060020a03808616825284166020820152808201839052905185917f07b5483b8e4bd8ea240a474d5117738350e7d431e3668c48a97910b0b397796a919081900360600190a250505050565b6000600260008360405160200180807f6d657373616765546f6b656e0000000000000000000000000000000000000000815250600c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106127765780518252601f199092019160209182019101612757565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054600160a060020a031695945050505050565b604080517f746f6b656e526567697374726174696f6e4d6573736167654964000000000000602080830191909152606060020a600160a060020a03861602603a8301528251602e818403018152604e9092019283905281518493600093849390928291840190808383602083106108f05780518252601f1990920191602091820191016108d1565b61285181613f79565b151561285c57600080fd5b7f811bbb11e8899da471f0e69a3ed55090fc90215227fc5fb1cb0d6e962ea7b74f60005260026020527fb4ed64697d3ef8518241966f7c6f28b0d72f20f51198717d198d2d55076c593d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b81810182811015611e5757fe5b60006128ea611eb6565b600160a060020a031663d67bdd256040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561292757600080fd5b505af115801561293b573d6000803e3d6000fd5b505050506040513d602081101561295157600080fd5b5051905090565b61296283826113c8565b15612989576129798361297361141e565b83613f81565b612984838383614028565b610ea8565b610ea88383836101ea565b7f98aa806e31e94a687a31c65769cb99670064dd7f5a87526da075c5fb4eab988060005260026020527f0c1206883be66049a02d4937078367c00b3d71dd1a9465df969363c6ddeac96d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60408101516000108015612a26575060408101516020820151115b8015612a36575060208101518151115b1515612a4157600080fd5b805160408051600080516020614a2c833981519152602082810191909152606060020a600160a060020a03871602602a8301528251601e818403018152603e909201928390528151600093849392909182918401908083835b60208310612ab95780518252601f199092019160209182019101612a9a565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652858101969096525092830160009081209590955550508382015181516000805160206149ec83398151915281850152600160a060020a038716606060020a0260288201528251808203601c018152603c9091019283905280519194938493919282918401908083835b60208310612b6b5780518252601f199092019160209182019101612b4c565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285810196909652509283016000908120959095555050838101518151600080516020614a0c83398151915281850152600160a060020a038716606060020a0260288201528251808203601c018152603c9091019283905280519194938493919282918401908083835b60208310612c1d5780518252601f199092019160209182019101612bfe565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600090812094909455505050600160a060020a038316907fca0b3dabefdbd8c72c0a9cf4a6e9d107da897abf036ef3f3f3b010cdd25941599083905b60200201516040518082815260200191505060405180910390a25050565b8051602082015110612cbc57600080fd5b8051604080516000805160206149cc833981519152602082810191909152606060020a600160a060020a038716026033830152825160278184030181526047909201928390528151600093849392909182918401908083835b60208310612d345780518252601f199092019160209182019101612d15565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285810196909652509283016000908120959095555050838201518151600080516020614a4c83398151915281850152600160a060020a038716606060020a0260318201528251808203602501815260459091019283905280519194938493919282918401908083835b60208310612de65780518252601f199092019160209182019101612dc7565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600090812094909455505050600160a060020a038316907f4c177b42dbe934b3abbc0208c11a42e46589983431616f1710ab19969c5ed62e908390612c8d565b612e626142a0565b811115612e6e57600080fd5b7f2dfd6c9f781bb6bbb5369c114e949b69ebb440ef3d4dd6b2836225eb1dc3a2be60009081526020527f2de0d2cdc19d356cb53b5984f91bfd3b31fe0c678a0d190a6db39274bb34753f55565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0612ee4611911565b60408051600160a060020a03928316815291841660208301528051918290030190a17f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc805460ff19166001179055565b600160a060020a0382161515612ff257612fed816142e7565b610811565b61081182826142f3565b61300581613f79565b151561301057600080fd5b7f9ba5a09a13321d5fc0d3150bbf4489a02b9b881bf70e2fc6639c91e8c5ce714c60005260026020527f87f07cf898f772bd3ff661aa30d2354333eefbd852e374d9021ef7a3463e81fd805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b7f6168652c307c1e813ca11cfb3a601f1cf3b22452021a5052d8b05f1f1f8a3e9260005260046020527fcb8d022f2163402334a4962e3279c5def3417d3d8dab9e27ba26e81e3f8337845460ff1690565b6000606080600080606060006130ec613087565b156130f6576136f7565b6130ff8b611018565b9650861515613152576131118b614391565b955061311c8b6144a2565b94506131278b614524565b935060008651118061313a575060008551115b151561314557600080fd5b6131528b8560ff166145a2565b61315c8b8a610dca565b151561316757600080fd5b6131798b61317361141e565b8b613704565b613181610ead565b9250600160a060020a03831615613368578a600160a060020a031663095ea7b3848b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156131f557600080fd5b505af1158015613209573d6000803e3d6000fd5b505050506040513d602081101561321f57600080fd5b5050600160a060020a03831663f5a428b58b61323b818c61472e565b6040805160e060020a63ffffffff8616028152600160a060020a0393841660048201529183166024830152918f166044820152606481018d9052600060848201819052915160a48083019360209383900390910190829087803b1580156132a157600080fd5b505af11580156132b5573d6000803e3d6000fd5b505050506040513d60208110156132cb57600080fd5b5051156132d7576136f7565b8a600160a060020a031663095ea7b38460006040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561333b57600080fd5b505af115801561334f573d6000803e3d6000fd5b505050506040513d602081101561336557600080fd5b50505b861561340f577f125e4cfb000000000000000000000000000000000000000000000000000000008b61339a8c8b61472e565b60408051600160a060020a03938416602482015291909216604482015260648082018d9052825180830390910181526084909101909152602081018051600160e060020a03167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199093169290921790915291506135a7565b7f2ae87cdd000000000000000000000000000000000000000000000000000000008b87878761343e8f8e61472e565b8e6040516024018087600160a060020a0316600160a060020a0316815260200180602001806020018660ff1660ff16815260200185600160a060020a0316600160a060020a03168152602001848152602001838103835288818151815260200191508051906020019080838360005b838110156134c55781810151838201526020016134ad565b50505050905090810190601f1680156134f25780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b8381101561352557818101518382015260200161350d565b50505050905090810190601f1680156135525780820380516001836020036101000a031916815260200191505b5060408051601f19818403018152919052602081018051600160e060020a03167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909c169b909b17909a525097995050505050505050505b6135b88b61209e8b610de28f610f85565b6135c0611eb6565b600160a060020a031663dc8601b36135d66118ba565b846135df611e68565b6040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561364c578181015183820152602001613634565b50505050905090810190601f1680156136795780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561369a57600080fd5b505af11580156136ae573d6000803e3d6000fd5b505050506040513d60208110156136c457600080fd5b505190506136d2818c613881565b6136dc818a61396f565b6136e6818b6139f1565b8615156136f7576136f78b826127c0565b5050505050505050505050565b61371281610de28585611d7d565b600080858560405160200180807f746f74616c5370656e745065724461790000000000000000000000000000000081525060100183600160a060020a0316600160a060020a0316606060020a028152601401828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106137ac5780518252601f19909201916020918201910161378d565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002093909355505050505050565b806000808460405160200180807f6d65646961746f7242616c616e63650000000000000000000000000000000000815250600f0182600160a060020a0316600160a060020a0316606060020a028152601401915050604051602081830303815290604052604051808280519060200190808383602083106108f05780518252601f1990920191602091820191016108d1565b80600260008460405160200180807f6d657373616765546f6b656e0000000000000000000000000000000000000000815250600c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106139055780518252601f1990920191602091820191016138e6565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909516949094179093555050505050565b806000808460405160200180807f6d65737361676556616c75650000000000000000000000000000000000000000815250600c018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106108f05780518252601f1990920191602091820191016108d1565b80600260008460405160200180807f6d657373616765526563697069656e74000000000000000000000000000000008152506010018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106139055780518252601f1990920191602091820191016138e6565b7f6168652c307c1e813ca11cfb3a601f1cf3b22452021a5052d8b05f1f1f8a3e9260005260046020527fcb8d022f2163402334a4962e3279c5def3417d3d8dab9e27ba26e81e3f833784805460ff1916911515919091179055565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152306024830152604482018490529151918516916323b872dd9160648082019260009290919082900301818387803b158015613b4057600080fd5b505af1158015613b54573d6000803e3d6000fd5b505050503d15610ea85760206000803e6000511515610ea857600080fd5b6000600260008360405160200180807f6d657373616765526563697069656e74000000000000000000000000000000008152506010018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106127765780518252601f199092019160209182019101612757565b60008060008360405160200180807f6d65737361676556616c75650000000000000000000000000000000000000000815250600c018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106109b45780518252601f199092019160209182019101610995565b6001600460008360405160200180807f6d65737361676546697865640000000000000000000000000000000000000000815250600c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310613cfe5780518252601f199092019160209182019101613cdf565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff19169415159490941790935550505050565b6000613d6a8461209e84613d5e88610f85565b9063ffffffff61478816565b613d72610ead565b9050600160a060020a03811615613f595783600160a060020a031663095ea7b382846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015613de657600080fd5b505af1158015613dfa573d6000803e3d6000fd5b505050506040513d6020811015613e1057600080fd5b5050600160a060020a03811663f5a428b56000858786613e2e61479a565b6040805160e060020a63ffffffff8916028152600160a060020a039687166004820152948616602486015292909416604484015260648301526084820192909252905160a48083019260209291908290030181600087803b158015613e9257600080fd5b505af1158015613ea6573d6000803e3d6000fd5b505050506040513d6020811015613ebc57600080fd5b505115613ec857613f73565b83600160a060020a031663095ea7b38260006040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015613f2c57600080fd5b505af1158015613f40573d6000803e3d6000fd5b505050506040513d6020811015613f5657600080fd5b50505b613f73600160a060020a038516848463ffffffff6147e116565b50505050565b6000903b1190565b613f8f81610de2858561240b565b600080858560405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130183600160a060020a0316600160a060020a0316606060020a02815260140182815260200192505050604051602081830303815290604052604051808280519060200190808383602083106137ac5780518252601f19909201916020918201910161378d565b60008061403361479a565b91506140468561209e85613d5e89610f85565b61404e610ead565b9050600160a060020a038116156142395784600160a060020a031663095ea7b382856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156140c257600080fd5b505af11580156140d6573d6000803e3d6000fd5b505050506040513d60208110156140ec57600080fd5b5050604080517ff5a428b5000000000000000000000000000000000000000000000000000000008152600060048201819052600160a060020a0387811660248401528881166044840152606483018790526084830186905292519284169263f5a428b59260a4808201936020939283900390910190829087803b15801561417257600080fd5b505af1158015614186573d6000803e3d6000fd5b505050506040513d602081101561419c57600080fd5b5051156141a857611c9d565b84600160a060020a031663095ea7b38260006040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561420c57600080fd5b505af1158015614220573d6000803e3d6000fd5b505050506040513d602081101561423657600080fd5b50505b614253600160a060020a038616858563ffffffff6147e116565b6040805184815290518391600160a060020a0380881692908916917f9afd47907e25028cdaca89d193518c302bbb128617d5a992c5abd45815526593919081900360200190a45050505050565b60006142aa611eb6565b600160a060020a031663e5789d036040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561292757600080fd5b30316108118282614844565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b15801561435857600080fd5b505af115801561436c573d6000803e3d6000fd5b505050506040513d602081101561438257600080fd5b50519050613f738484836148a5565b6040517f06fdde03000000000000000000000000000000000000000000000000000000008152606090600082602083600481885afa15156143fa577fa3f4df7e000000000000000000000000000000000000000000000000000000008352602083600485885afa505b3d830160405260203d1160018114614414573d9250614422565b6020806040513e6040515192505b50816040519080825280601f01601f191660200182016040528015614451578160200160208202803883390190505b50905060203d111561446a57816040602083013e610e39565b60003d1115610e39576000835193508360208301525b60008411156144985760089390931b92600101614480565b8152949350505050565b6040517f95d89b41000000000000000000000000000000000000000000000000000000008152606090600082602083600481885afa15156143fa577ff76f8d78000000000000000000000000000000000000000000000000000000008352602083600485885afa503d830160405260203d1160018114614414573d9250614422565b600080604051602081016040527f313ce567000000000000000000000000000000000000000000000000000000008152602081600483875afa151561459a577f2e0f2625000000000000000000000000000000000000000000000000000000008152602081600483875afa151561459a57600081525b519392505050565b60008060008060008060128710156146975786601203600a0a95506145d7866145cb6000611cd2565b9063ffffffff61494716565b94506145e7866145cb6000610932565b93506145f7866145cb6000612505565b9250614607866145cb6000610f04565b9150614617866145cb6000611427565b905084151561464f576001945084841161464f57606493506064915083831115806146425750818111155b1561464f57506127109150815b6146748860606040519081016040528086815260200187815260200188815250612a0b565b61469288604080519081016040528084815260200185815250612cab565b61223b565b60128703600a0a95506146f7886060604051908101604052806146ca8a6146be6000612505565b9063ffffffff61495c16565b81526020016146dd8a6146be6000610932565b81526020016146f08a6146be6000611cd2565b9052612a0b565b61223b8860408051908101604052806147148a6146be6000611427565b81526020016147278a6146be6000610f04565b9052612cab565b8051829060001015611e5757815160141461474857600080fd5b61475182614985565b9050600160a060020a038116151561476857600080fd5b61477061498c565b600160a060020a0382811691161415611e5757600080fd5b60008282111561479457fe5b50900390565b60006147a4611eb6565b600160a060020a031663669f618b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561292757600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015613b4057600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050151561081157808261487961499b565b600160a060020a039091168152604051908190036020019082f080158015611c9d573d6000803e3d6000fd5b60408051600160a060020a0384166024820152604480820184905282518083039091018152606490910190915260208181018051600160e060020a03167fa9059cbb000000000000000000000000000000000000000000000000000000001781528251606093600093909290918491828a5af160005193508392508080156101ea57505060008351111561493f5781151561493f57600080fd5b505050505050565b6000818381151561495457fe5b049392505050565b600082151561496d57506000611e57565b5081810281838281151561497d57fe5b0414611e5757fe5b6014015190565b60006149966118ba565b905090565b6040516021806149ab833901905600608060405260405160208060218339810160405251600160a060020a038116ff00657865637574696f6e4461696c794c696d6974000000000000000000000000006d617850657254780000000000000000000000000000000000000000000000006d696e50657254780000000000000000000000000000000000000000000000006461696c794c696d697400000000000000000000000000000000000000000000657865637574696f6e4d61785065725478000000000000000000000000000000a165627a7a72305820c596ac6ce45f36653c4f56a2b52cef12ea4d78b3846091875a08d453b777da2f0029
[codex:503009]
[codex:503009] thinking
[codex:503009] **Analyzing bytecode for opcodes**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] # extract hex string after 'runtime_bytecode.hex'
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] # convert to bytes
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009] # simple disasm to find opcodes not in push data
[codex:503009] opcodes={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] # iterate and find selfdestruct/delegatecall/opcode
[codex:503009] positions=[]
[codex:503009] i=0
[codex:503009] while i<len(code):
[codex:503009] op=code[i]
[codex:503009] if op==0xff:
[codex:503009] positions.append(i)
[codex:503009] if op>=0x60 and op<=0x7f:
[codex:503009] push_bytes=op-0x5f
[codex:503009] i+=1+push_bytes
[codex:503009] else:
[codex:503009] i+=1
[codex:503009]
[codex:503009] print('selfdestruct positions:', positions)
[codex:503009] # also find delegatecall
[codex:503009] positions=[]
[codex:503009] i=0
[codex:503009] while i<len(code):
[codex:503009] op=code[i]
[codex:503009] if op==0xf4:
[codex:503009] positions.append(i)
[codex:503009] if op>=0x60 and op<=0x7f:
[codex:503009] i+=1+ (op-0x5f)
[codex:503009] else:
[codex:503009] i+=1
[codex:503009] print('delegatecall positions:', positions)
[codex:503009] # find invalid (0xfe)
[codex:503009] positions=[]
[codex:503009] i=0
[codex:503009] while i<len(code):
[codex:503009] op=code[i]
[codex:503009] if op==0xfe:
[codex:503009] positions.append(i)
[codex:503009] if op>=0x60 and op<=0x7f:
[codex:503009] i+=1+ (op-0x5f)
[codex:503009] else:
[codex:503009] i+=1
[codex:503009] print('invalid positions:', positions[:10])
[codex:503009]
[codex:503009] # count origin opcodes
[codex:503009] positions=[]
[codex:503009] i=0
[codex:503009] while i<len(code):
[codex:503009] op=code[i]
[codex:503009] if op==0x32:
[codex:503009] positions.append(i)
[codex:503009] if op>=0x60 and op<=0x7f:
[codex:503009] i+=1+ (op-0x5f)
[codex:503009] else:
[codex:503009] i+=1
[codex:503009] print('origin opcode positions:', positions[:10])
[codex:503009]
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 42ms:
[codex:503009] selfdestruct positions: [18890]
[codex:503009] delegatecall positions: []
[codex:503009] invalid positions: [10463, 18323, 18771, 18812, 18820]
[codex:503009] origin opcode positions: []
[codex:503009]
[codex:503009] thinking
[codex:503009] **Analyzing selfdestruct opcode context**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] # disassemble around offset
[codex:503009] start=18850
[codex:503009] end=18930
[codex:503009]
[codex:503009] # simple disasm
[codex:503009] opnames={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] # disassemble from start to end with offsets
[codex:503009]
[codex:503009] pc=start
[codex:503009] while pc<end:
[codex:503009] op=code[pc]
[codex:503009] name=opnames.get(op, f'0x{op:02x}')
[codex:503009] if 0x60<=op<=0x7f:
[codex:503009] n=op-0x5f
[codex:503009] data=code[pc+1:pc+1+n]
[codex:503009] print(f\"{pc:05d}: {name} 0x{data.hex()}\")
[codex:503009] pc+=1+n
[codex:503009] else:
[codex:503009] print(f\"{pc:05d}: {name}\")
[codex:503009] pc+=1
[codex:503009]
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 27ms:
[codex:503009] 18850: PUSH2 0x49ab
[codex:503009] 18853: DUP4
[codex:503009] 18854: CODECOPY
[codex:503009] 18855: ADD
[codex:503009] 18856: SWAP1
[codex:503009] 18857: JUMP
[codex:503009] 18858: STOP
[codex:503009] 18859: PUSH1 0x80
[codex:503009] 18861: PUSH1 0x40
[codex:503009] 18863: MSTORE
[codex:503009] 18864: PUSH1 0x40
[codex:503009] 18866: MLOAD
[codex:503009] 18867: PUSH1 0x20
[codex:503009] 18869: DUP1
[codex:503009] 18870: PUSH1 0x21
[codex:503009] 18872: DUP4
[codex:503009] 18873: CODECOPY
[codex:503009] 18874: DUP2
[codex:503009] 18875: ADD
[codex:503009] 18876: PUSH1 0x40
[codex:503009]
[codex:503009] thinking
[codex:503009] **Analyzing unreachable selfdestruct and bridge contract risks**
[codex:503009]
[codex:503009] I’m verifying that the detected SELFDESTRUCT opcode is actually inside unreachable data, not executable code, explaining it likely isn’t a security risk. I’m also exploring potential bridging vulnerabilities like owner checks on setters, secure external calls, and initialization guards, while investigating occurrences of ERC20 transfer calls (`a9059cbb`) to assess proper safety checks. Let’s see if any concrete issues turn up or if it’s safe to report no findings.
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] # disassembler to list instructions with offsets
[codex:503009] opnames={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] # parse instructions
[codex:503009] instrs=[]
[codex:503009] pc=0
[codex:503009] while pc < len(code):
[codex:503009] op=code[pc]
[codex:503009] if 0x60 <= op <= 0x7f:
[codex:503009] n=op-0x5f
[codex:503009] data=code[pc+1:pc+1+n]
[codex:503009] instrs.append((pc, opnames[op], data.hex()))
[codex:503009] pc+=1+n
[codex:503009] else:
[codex:503009] instrs.append((pc, opnames.get(op, f'0x{op:02x}'), None))
[codex:503009] pc+=1
[codex:503009]
[codex:503009] # find PUSH4 a9059cbb
[codex:503009] for i,(pc,op,data) in enumerate(instrs):
[codex:503009] if op=='PUSH4' and data=='a9059cbb':
[codex:503009] start=max(0,i-5)
[codex:503009] end=min(len(instrs), i+15)
[codex:503009] print('--- occurrence at', pc)
[codex:503009] for j in range(start,end):
[codex:503009] pc2,op2,data2=instrs[j]
[codex:503009] if data2 is None:
[codex:503009] print(f\"{pc2:05d}: {op2}\")
[codex:503009] else:
[codex:503009] print(f\"{pc2:05d}: {op2} 0x{data2}\")
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 47ms:
[codex:503009] --- occurrence at 18412
[codex:503009] 18405: PUSH1 0xa0
[codex:503009] 18407: PUSH1 0x02
[codex:503009] 18409: EXP
[codex:503009] 18410: SUB
[codex:503009] 18411: AND
[codex:503009] 18412: PUSH4 0xa9059cbb
[codex:503009] 18417: DUP4
[codex:503009] 18418: DUP4
[codex:503009] 18419: PUSH1 0x40
[codex:503009] 18421: MLOAD
[codex:503009] 18422: DUP4
[codex:503009] 18423: PUSH4 0xffffffff
[codex:503009] 18428: AND
[codex:503009] 18429: PUSH1 0xe0
[codex:503009] 18431: PUSH1 0x02
[codex:503009] 18433: EXP
[codex:503009] 18434: MUL
[codex:503009] 18435: DUP2
[codex:503009] 18436: MSTORE
[codex:503009]
[codex:503009] thinking
[codex:503009] **Extending snippet to capture call and return**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] opnames={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] # parse instructions into list
[codex:503009] instrs=[]
[codex:503009] pc=0
[codex:503009] while pc < len(code):
[codex:503009] op=code[pc]
[codex:503009] if 0x60 <= op <= 0x7f:
[codex:503009] n=op-0x5f
[codex:503009] data=code[pc+1:pc+1+n]
[codex:503009] instrs.append((pc, opnames[op], data.hex()))
[codex:503009] pc+=1+n
[codex:503009] else:
[codex:503009] instrs.append((pc, opnames.get(op, f'0x{op:02x}'), None))
[codex:503009] pc+=1
[codex:503009]
[codex:503009] # locate near a9059cbb
[codex:503009] for i,(pc,op,data) in enumerate(instrs):
[codex:503009] if op=='PUSH4' and data=='a9059cbb':
[codex:503009] start=i-10
[codex:503009] end=i+40
[codex:503009] for j in range(start,end):
[codex:503009] if j<0 or j>=len(instrs):
[codex:503009] continue
[codex:503009] pc2,op2,data2=instrs[j]
[codex:503009] if data2 is None:
[codex:503009] print(f\"{pc2:05d}: {op2}\")
[codex:503009] else:
[codex:503009] print(f\"{pc2:05d}: {op2} 0x{data2}\")
[codex:503009] print('---')
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 41ms:
[codex:503009] 18399: DUP1
[codex:503009] 18400: REVERT
[codex:503009] 18401: JUMPDEST
[codex:503009] 18402: DUP3
[codex:503009] 18403: PUSH1 0x01
[codex:503009] 18405: PUSH1 0xa0
[codex:503009] 18407: PUSH1 0x02
[codex:503009] 18409: EXP
[codex:503009] 18410: SUB
[codex:503009] 18411: AND
[codex:503009] 18412: PUSH4 0xa9059cbb
[codex:503009] 18417: DUP4
[codex:503009] 18418: DUP4
[codex:503009] 18419: PUSH1 0x40
[codex:503009] 18421: MLOAD
[codex:503009] 18422: DUP4
[codex:503009] 18423: PUSH4 0xffffffff
[codex:503009] 18428: AND
[codex:503009] 18429: PUSH1 0xe0
[codex:503009] 18431: PUSH1 0x02
[codex:503009]
[codex:503009] thinking
[codex:503009] **Scrolling to find call and return handlers**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] opnames={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] # parse instructions
[codex:503009] instrs=[]
[codex:503009] pc=0
[codex:503009] while pc < len(code):
[codex:503009] op=code[pc]
[codex:503009] if 0x60 <= op <= 0x7f:
[codex:503009] n=op-0x5f
[codex:503009] data=code[pc+1:pc+1+n]
[codex:503009] instrs.append((pc, opnames[op], data.hex()))
[codex:503009] pc+=1+n
[codex:503009] else:
[codex:503009] instrs.append((pc, opnames.get(op, f'0x{op:02x}'), None))
[codex:503009] pc+=1
[codex:503009]
[codex:503009] # find CALL near a9059cbb occurrence
[codex:503009] # find index of PUSH4 a9059cbb then show until a CALL
[codex:503009] for i,(pc,op,data) in enumerate(instrs):
[codex:503009] if op=='PUSH4' and data=='a9059cbb':
[codex:503009] # show until next CALL
[codex:503009] j=i
[codex:503009] while j < len(instrs) and instrs[j][1] "'!= '"'CALL':
[codex:503009] j+=1
[codex:503009] start=i-5
[codex:503009] end=min(j+10, len(instrs))
[codex:503009] for k in range(start,end):
[codex:503009] if k<0: continue
[codex:503009] pc2,op2,data2=instrs[k]
[codex:503009] if data2 is None:
[codex:503009] print(f\"{pc2:05d}: {op2}\")
[codex:503009] else:
[codex:503009] print(f\"{pc2:05d}: {op2} 0x{data2}\")
[codex:503009] print('---')
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 45ms:
[codex:503009] 18405: PUSH1 0xa0
[codex:503009] 18407: PUSH1 0x02
[codex:503009] 18409: EXP
[codex:503009] 18410: SUB
[codex:503009] 18411: AND
[codex:503009] 18412: PUSH4 0xa9059cbb
[codex:503009] 18417: DUP4
[codex:503009] 18418: DUP4
[codex:503009] 18419: PUSH1 0x40
[codex:503009] 18421: MLOAD
[codex:503009] 18422: DUP4
[codex:503009] 18423: PUSH4 0xffffffff
[codex:503009] 18428: AND
[codex:503009] 18429: PUSH1 0xe0
[codex:503009] 18431: PUSH1 0x02
[codex:503009] 18433: EXP
[codex:503009] 18434: MUL
[codex:503009] 18435: DUP2
[codex:503009] 18436: MSTORE
[codex:503009] 18437: PUSH1 0x04
[codex:503009]
[codex:503009] thinking
[codex:503009] **Analyzing contract call patterns and owner controls**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] opnames={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] instrs=[]
[codex:503009] pc=0
[codex:503009] while pc < len(code):
[codex:503009] op=code[pc]
[codex:503009] if 0x60 <= op <= 0x7f:
[codex:503009] n=op-0x5f
[codex:503009] data=code[pc+1:pc+1+n]
[codex:503009] instrs.append((pc, opnames[op], data.hex()))
[codex:503009] pc+=1+n
[codex:503009] else:
[codex:503009] instrs.append((pc, opnames.get(op, f'0x{op:02x}'), None))
[codex:503009] pc+=1
[codex:503009]
[codex:503009] # find PUSH4 23b872dd
[codex:503009] for i,(pc,op,data) in enumerate(instrs):
[codex:503009] if op=='PUSH4' and data=='23b872dd':
[codex:503009] # show until CALL and result checks
[codex:503009] j=i
[codex:503009] while j < len(instrs) and instrs[j][1] "'!= '"'CALL':
[codex:503009] j+=1
[codex:503009] start=i-5
[codex:503009] end=min(j+15, len(instrs))
[codex:503009] for k in range(start,end):
[codex:503009] if k<0: continue
[codex:503009] pc2,op2,data2=instrs[k]
[codex:503009] if data2 is None:
[codex:503009] print(f\"{pc2:05d}: {op2}\")
[codex:503009] else:
[codex:503009] print(f\"{pc2:05d}: {op2} 0x{data2}\")
[codex:503009] print('---')
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 41ms:
[codex:503009] 15125: MLOAD
[codex:503009] 15126: SWAP2
[codex:503009] 15127: DUP6
[codex:503009] 15128: AND
[codex:503009] 15129: SWAP2
[codex:503009] 15130: PUSH4 0x23b872dd
[codex:503009] 15135: SWAP2
[codex:503009] 15136: PUSH1 0x64
[codex:503009] 15138: DUP1
[codex:503009] 15139: DUP3
[codex:503009] 15140: ADD
[codex:503009] 15141: SWAP3
[codex:503009] 15142: PUSH1 0x00
[codex:503009] 15144: SWAP3
[codex:503009] 15145: SWAP1
[codex:503009] 15146: SWAP2
[codex:503009] 15147: SWAP1
[codex:503009] 15148: DUP3
[codex:503009] 15149: SWAP1
[codex:503009] 15150: SUB
[codex:503009]
[codex:503009] thinking
[codex:503009] **Analyzing transferFrom call handling**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] # disassemble from 15160 to 15250
[codex:503009] start=15160
[codex:503009] end=15280
[codex:503009]
[codex:503009] opnames={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] pc=start
[codex:503009] while pc<end:
[codex:503009] op=code[pc]
[codex:503009] name=opnames.get(op, f'0x{op:02x}')
[codex:503009] if 0x60<=op<=0x7f:
[codex:503009] n=op-0x5f
[codex:503009] data=code[pc+1:pc+1+n]
[codex:503009] print(f\"{pc:05d}: {name} 0x{data.hex()}\")
[codex:503009] pc+=1+n
[codex:503009] else:
[codex:503009] print(f\"{pc:05d}: {name}\")
[codex:503009] pc+=1
[codex:503009]
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 29ms:
[codex:503009] 15160: PUSH2 0x3b40
[codex:503009] 15163: JUMPI
[codex:503009] 15164: PUSH1 0x00
[codex:503009] 15166: DUP1
[codex:503009] 15167: REVERT
[codex:503009] 15168: JUMPDEST
[codex:503009] 15169: POP
[codex:503009] 15170: GAS
[codex:503009] 15171: CALL
[codex:503009] 15172: ISZERO
[codex:503009] 15173: DUP1
[codex:503009] 15174: ISZERO
[codex:503009] 15175: PUSH2 0x3b54
[codex:503009] 15178: JUMPI
[codex:503009] 15179: RETURNDATASIZE
[codex:503009] 15180: PUSH1 0x00
[codex:503009] 15182: DUP1
[codex:503009] 15183: RETURNDATACOPY
[codex:503009] 15184: RETURNDATASIZE
[codex:503009] 15185: PUSH1 0x00
[codex:503009]
[codex:503009] thinking
[codex:503009] **Investigating contract call checks**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] positions=[]
[codex:503009] i=0
[codex:503009] while i<len(code):
[codex:503009] op=code[i]
[codex:503009] if op==0xf0:
[codex:503009] positions.append(i)
[codex:503009] if 0x60<=op<=0x7f:
[codex:503009] i+=1+(op-0x5f)
[codex:503009] else:
[codex:503009] i+=1
[codex:503009] print('CREATE positions', positions)
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 36ms:
[codex:503009] CREATE positions [18579]
[codex:503009]
[codex:503009] thinking
[codex:503009] **Analyzing CREATE opcode usage**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] opnames={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] start=18540
[codex:503009] end=18630
[codex:503009] pc=start
[codex:503009] while pc<end:
[codex:503009] op=code[pc]
[codex:503009] name=opnames.get(op, f'0x{op:02x}')
[codex:503009] if 0x60<=op<=0x7f:
[codex:503009] n=op-0x5f
[codex:503009] data=code[pc+1:pc+1+n]
[codex:503009] print(f\"{pc:05d}: {name} 0x{data.hex()}\")
[codex:503009] pc+=1+n
[codex:503009] else:
[codex:503009] print(f\"{pc:05d}: {name}\")
[codex:503009] pc+=1
[codex:503009]
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 29ms:
[codex:503009] 18540: PUSH2 0x0811
[codex:503009] 18543: JUMPI
[codex:503009] 18544: DUP1
[codex:503009] 18545: DUP3
[codex:503009] 18546: PUSH2 0x4879
[codex:503009] 18549: PUSH2 0x499b
[codex:503009] 18552: JUMP
[codex:503009] 18553: JUMPDEST
[codex:503009] 18554: PUSH1 0x01
[codex:503009] 18556: PUSH1 0xa0
[codex:503009] 18558: PUSH1 0x02
[codex:503009] 18560: EXP
[codex:503009] 18561: SUB
[codex:503009] 18562: SWAP1
[codex:503009] 18563: SWAP2
[codex:503009] 18564: AND
[codex:503009] 18565: DUP2
[codex:503009] 18566: MSTORE
[codex:503009] 18567: PUSH1 0x40
[codex:503009] 18569: MLOAD
[codex:503009]
[codex:503009] thinking
[codex:503009] **Tracing access control checks before CREATE**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] opnames={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] start=18480
[codex:503009] end=18560
[codex:503009] pc=start
[codex:503009] while pc<end:
[codex:503009] op=code[pc]
[codex:503009] name=opnames.get(op, f'0x{op:02x}')
[codex:503009] if 0x60<=op<=0x7f:
[codex:503009] n=op-0x5f
[codex:503009] data=code[pc+1:pc+1+n]
[codex:503009] print(f\"{pc:05d}: {name} 0x{data.hex()}\")
[codex:503009] pc+=1+n
[codex:503009] else:
[codex:503009] print(f\"{pc:05d}: {name}\")
[codex:503009] pc+=1
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 27ms:
[codex:503009] 18480: DUP1
[codex:503009] 18481: DUP4
[codex:503009] 18482: SUB
[codex:503009] 18483: DUP2
[codex:503009] 18484: PUSH1 0x00
[codex:503009] 18486: DUP8
[codex:503009] 18487: DUP1
[codex:503009] 18488: EXTCODESIZE
[codex:503009] 18489: ISZERO
[codex:503009] 18490: DUP1
[codex:503009] 18491: ISZERO
[codex:503009] 18492: PUSH2 0x3b40
[codex:503009] 18495: JUMPI
[codex:503009] 18496: PUSH1 0x00
[codex:503009] 18498: DUP1
[codex:503009] 18499: REVERT
[codex:503009] 18500: JUMPDEST
[codex:503009] 18501: PUSH1 0x40
[codex:503009] 18503: MLOAD
[codex:503009] 18504: PUSH1 0x01
[codex:503009]
[codex:503009] thinking
[codex:503009] **Analyzing contract CREATE and potential risks**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import hashlib
[codex:503009] sig='claimTokens(address,address)'
[codex:503009] print(sig, hashlib.sha3_256(sig.encode()).hexdigest()[:8])
[codex:503009] # Another common function: claimTokens(address _token, address _to)
[codex:503009] # But eth uses keccak256 not sha3_256; python lacks? Use eth_hash? We'll implement keccak via sha3_256? In python 3.11, hashlib.sha3_256 is FIPS SHA3, not keccak.
[codex:503009] # Use pysha3 if installed? try.
[codex:503009] try:
[codex:503009] import sha3
[codex:503009] k=sha3.keccak_256(sig.encode()).hexdigest()[:8]
[codex:503009] print('keccak', k)
[codex:503009] except Exception as e:
[codex:503009] print('no keccak lib', e)
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 21ms:
[codex:503009] claimTokens(address,address) 17d9072c
[codex:503009] no keccak lib No module named 'sha3'
[codex:503009]
[codex:503009] thinking
[codex:503009] **Verifying function selector with keccak**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] try:
[codex:503009] from Crypto.Hash import keccak
[codex:503009] k=keccak.new(digest_bits=256)
[codex:503009] k.update(b'claimTokens(address,address)')
[codex:503009] print(k.hexdigest()[:8])
[codex:503009] except Exception as e:
[codex:503009] print('no crypto', e)
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 44ms:
[codex:503009] 69ffa08a
[codex:503009]
[codex:503009] thinking
[codex:503009] **Inspecting claimTokens access control**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] opnames={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] start=0x4c0
[codex:503009] end=0x520
[codex:503009] pc=start
[codex:503009] while pc<end:
[codex:503009] op=code[pc]
[codex:503009] name=opnames.get(op, f'0x{op:02x}')
[codex:503009] if 0x60<=op<=0x7f:
[codex:503009] n=op-0x5f
[codex:503009] data=code[pc+1:pc+1+n]
[codex:503009] print(f\"{pc:05x}: {name} 0x{data.hex()}\")
[codex:503009] pc+=1+n
[codex:503009] else:
[codex:503009] print(f\"{pc:05x}: {name}\")
[codex:503009] pc+=1
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 26ms:
[codex:503009] 004c0: CALLDATALOAD
[codex:503009] 004c1: PUSH2 0x14cc
[codex:503009] 004c4: JUMP
[codex:503009] 004c5: JUMPDEST
[codex:503009] 004c6: CALLVALUE
[codex:503009] 004c7: DUP1
[codex:503009] 004c8: ISZERO
[codex:503009] 004c9: PUSH2 0x04d1
[codex:503009] 004cc: JUMPI
[codex:503009] 004cd: PUSH1 0x00
[codex:503009] 004cf: DUP1
[codex:503009] 004d0: REVERT
[codex:503009] 004d1: JUMPDEST
[codex:503009] 004d2: POP
[codex:503009] 004d3: PUSH2 0x0213
[codex:503009] 004d6: PUSH1 0x01
[codex:503009] 004d8: PUSH1 0xa0
[codex:503009] 004da: PUSH1 0x02
[codex:503009] 004dc: EXP
[codex:503009] 004dd: SUB
[codex:503009]
[codex:503009] thinking
[codex:503009] **Inspecting function logic at jump destination**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] # disassemble around 0x1595
[codex:503009] start=0x1570
[codex:503009] end=0x1610
[codex:503009]
[codex:503009] opnames={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] pc=start
[codex:503009] while pc<end:
[codex:503009] op=code[pc]
[codex:503009] name=opnames.get(op, f'0x{op:02x}')
[codex:503009] if 0x60<=op<=0x7f:
[codex:503009] n=op-0x5f
[codex:503009] data=code[pc+1:pc+1+n]
[codex:503009] print(f\"{pc:05x}: {name} 0x{data.hex()}\")
[codex:503009] pc+=1+n
[codex:503009] else:
[codex:503009] print(f\"{pc:05x}: {name}\")
[codex:503009] pc+=1
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 27ms:
[codex:503009] 01570: SWAP3
[codex:503009] 01571: SWAP1
[codex:503009] 01572: SWAP5
[codex:503009] 01573: ADD
[codex:503009] 01574: DUP3
[codex:503009] 01575: SWAP1
[codex:503009] 01576: SUB
[codex:503009] 01577: SWAP1
[codex:503009] 01578: SWAP2
[codex:503009] 01579: SHA3
[codex:503009] 0157a: DUP7
[codex:503009] 0157b: MSTORE
[codex:503009] 0157c: DUP6
[codex:503009] 0157d: ADD
[codex:503009] 0157e: SWAP6
[codex:503009] 0157f: SWAP1
[codex:503009] 01580: SWAP6
[codex:503009] 01581: MSTORE
[codex:503009] 01582: SWAP3
[codex:503009] 01583: SWAP1
[codex:503009]
[codex:503009] thinking
[codex:503009] **Analyzing external call and ownership check**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] from Crypto.Hash import keccak
[codex:503009] sig='owner()'
[codex:503009] k=keccak.new(digest_bits=256)
[codex:503009] k.update(sig.encode())
[codex:503009] print(k.hexdigest()[:8])
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 44ms:
[codex:503009] 8da5cb5b
[codex:503009]
[codex:503009] thinking
[codex:503009] **Analyzing token claim and access control logic**
[codex:503009] exec
[codex:503009] /bin/bash -lc "python - <<'PY'
[codex:503009] import re
[codex:503009] from pathlib import Path
[codex:503009] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503009] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:503009] code=bytes.fromhex(hexstr)
[codex:503009]
[codex:503009] opnames={
[codex:503009] 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:503009] 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:503009] 0x20:'SHA3',
[codex:503009] 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:503009] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503009] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503009] 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:503009] 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:503009] 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:503009] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503009] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503009] }
[codex:503009]
[codex:503009] start=0x07a0
[codex:503009] end=0x0820
[codex:503009] pc=start
[codex:503009] while pc<end:
[codex:503009] op=code[pc]
[codex:503009] name=opnames.get(op, f'0x{op:02x}')
[codex:503009] if 0x60<=op<=0x7f:
[codex:503009] n=op-0x5f
[codex:503009] data=code[pc+1:pc+1+n]
[codex:503009] print(f\"{pc:05x}: {name} 0x{data.hex()}\")
[codex:503009] pc+=1+n
[codex:503009] else:
[codex:503009] print(f\"{pc:05x}: {name}\")
[codex:503009] pc+=1
[codex:503009] PY" in /tmp/codex-multi-jpdt63vo succeeded in 26ms:
[codex:503009] 007a0: SUB
[codex:503009] 007a1: PUSH1 0x04
[codex:503009] 007a3: CALLDATALOAD
[codex:503009] 007a4: AND
[codex:503009] 007a5: PUSH1 0x24
[codex:503009] 007a7: CALLDATALOAD
[codex:503009] 007a8: PUSH2 0x240b
[codex:503009] 007ab: JUMP
[codex:503009] 007ac: JUMPDEST
[codex:503009] 007ad: CALLVALUE
[codex:503009] 007ae: DUP1
[codex:503009] 007af: ISZERO
[codex:503009] 007b0: PUSH2 0x07b8
[codex:503009] 007b3: JUMPI
[codex:503009] 007b4: PUSH1 0x00
[codex:503009] 007b6: DUP1
[codex:503009] 007b7: REVERT
[codex:503009] 007b8: JUMPDEST
[codex:503009] 007b9: POP
[codex:503009] 007ba: PUSH2 0x0213
[codex:503009]
[codex:503009] thinking
[codex:503009] **Concluding security analysis**
[codex:503009]
[codex:503009] I'm deciding to report no concrete vulnerabilities after carefully checking delegatecalls, tx.origin, selfdestruct, and access control patterns around contract creation; since the bytecode alone doesn't confirm any exploits, I’m preparing a concise JSON summary stating no findings with an appropriate caution about the limitations of bytecode-only review.
[codex:503009] codex
[codex:503009] {"no_findings":true,"summary":"No concrete vulnerabilities identified from bytecode-only review of BYTECODE_BUNDLE.txt; issues could not be asserted without verified source/disasm context.","findings":[]}
[codex:503009] tokens used
[codex:503009] 100,383
[codex:503009] {"no_findings":true,"summary":"No concrete vulnerabilities identified from bytecode-only review of BYTECODE_BUNDLE.txt; issues could not be asserted without verified source/disasm context.","findings":[]}
{
"codex": {
"ran_at": "2025-12-30T14:07:20.046506+00:00",
"returncode": 0
},
"summary": "No concrete vulnerabilities identified from bytecode-only review of BYTECODE_BUNDLE.txt; issues could not be asserted without verified source/disasm context.",
"raw_final": {
"summary": "No concrete vulnerabilities identified from bytecode-only review of BYTECODE_BUNDLE.txt; issues could not be asserted without verified source/disasm context.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x01ea 0000000c: JUMPI 0000000d: PUSH4 0xffffffff 00000012: PUSH1 0xe0 00000014: PUSH1 0x02 00000016: EXP 00000017: PUSH1 0x00 00000019: CALLDATALOAD 0000001a: DIV 0000001b: AND 0000001c: PUSH4 0x01e4f53a 00000021: DUP2 00000022: EQ 00000023: PUSH2 0x01ef 00000026: JUMPI 00000027: DUP1 00000028: PUSH4 0x01fcc1d3 0000002d: EQ 0000002e: PUSH2 0x0215 00000031: JUMPI 00000032: DUP1 00000033: PUSH4 0x032f693f 00000038: EQ 00000039: PUSH2 0x0239 0000003c: JUMPI 0000003d: DUP1 0000003e: PUSH4 0x0950d515 00000043: EQ 00000044: PUSH2 0x026c 00000047: JUMPI 00000048: DUP1 00000049: PUSH4 0x0b26cf66 0000004e: EQ 0000004f: PUSH2 0x0284 00000052: JUMPI 00000053: DUP1 00000054: PUSH4 0x10775238 00000059: EQ 0000005a: PUSH2 0x02a5 0000005d: JUMPI 0000005e: DUP1 0000005f: PUSH4 0x125e4cfb 00000064: EQ 00000065: PUSH2 0x02dd 00000068: JUMPI 00000069: DUP1 0000006a: PUSH4 0x151a6208 0000006f: EQ 00000070: PUSH2 0x0307 00000073: JUMPI 00000074: DUP1 00000075: PUSH4 0x16ef1913 0000007a: EQ 0000007b: PUSH2 0x0338 0000007e: JUMPI 0000007f: DUP1 00000080: PUSH4 0x194153d3 00000085: EQ 00000086: PUSH2 0x0359 00000089: JUMPI 0000008a: DUP1 0000008b: PUSH4 0x26aa101f 00000090: EQ 00000091: PUSH2 0x037a 00000094: JUMPI 00000095: DUP1 00000096: PUSH4 0x2803212f 0000009b: EQ 0000009c: PUSH2 0x039b 0000009f: JUMPI 000000a0: DUP1 000000a1: PUSH4 0x351a8264 000000a6: EQ 000000a7: PUSH2 0x03bf 000000aa: JUMPI 000000ab: DUP1 000000ac: PUSH4 0x392e53cd 000000b1: EQ 000000b2: PUSH2 0x03f7 000000b5: JUMPI 000000b6: DUP1 000000b7: PUSH4 0x3a50bc87 000000bc: EQ 000000bd: PUSH2 0x040c 000000c0: JUMPI 000000c1: DUP1 000000c2: PUSH4 0x3e6968b6 000000c7: EQ 000000c8: PUSH2 0x0430 000000cb: JUMPI 000000cc: DUP1 000000cd: PUSH4 0x40f8dd86 000000d2: EQ 000000d3: PUSH2 0x0445 000000d6: JUMPI 000000d7: DUP1 000000d8: PUSH4 0x437764df 000000dd: EQ 000000de: PUSH2 0x0466 000000e1: JUMPI 000000e2: DUP1 000000e3: PUSH4 0x59339982 000000e8: EQ 000000e9: PUSH2 0x04ad 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0x69ffa08a 000000f3: EQ 000000f4: PUSH2 0x04c5 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0x6e5d6bea 000000fe: EQ 000000ff: PUSH2 0x04ec 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x7610722f 00000109: EQ 0000010a: PUSH2 0x050d 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x7837cf91 00000114: EQ 00000115: PUSH2 0x052e 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x8190d906 0000011f: EQ 00000120: PUSH2 0x0552 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x871c0760 0000012a: EQ 0000012b: PUSH2 0x0573 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x8da5cb5b 00000135: EQ 00000136: PUSH2 0x0588 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0x9a4a4395 00000140: EQ 00000141: PUSH2 0x059d 00000144: JUMPI 00000145: DUP1 00000146: PUSH4 0x9cb7595a 0000014b: EQ 0000014c: PUSH2 0x05b5 0000014f: JUMPI 00000150: DUP1 00000151: PUSH4 0xa3f38605 00000156: EQ 00000157: PUSH2 0x05f6 0000015a: JUMPI 0000015b: DUP1 0000015c: PUSH4 0xa4b1c243 00000161: EQ 00000162: PUSH2 0x0617 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0xa4c0ed36 0000016c: EQ 0000016d: PUSH2 0x0638 00000170: JUMPI 00000171: DUP1 00000172: PUSH4 0xab3a25d9 00000177: EQ 00000178: PUSH2 0x06a1 0000017b: JUMPI 0000017c: DUP1 0000017d: PUSH4 0xad58bdd1 00000182: EQ 00000183: PUSH2 0x06c5 00000186: JUMPI 00000187: DUP1 00000188: PUSH4 0xbe3b625b 0000018d: EQ 0000018e: PUSH2 0x06ef 00000191: JUMPI 00000192: DUP1 00000193: PUSH4 0xcd596583 00000198: EQ 00000199: PUSH2 0x0704 0000019c: JUMPI 0000019d: DUP1 0000019e: PUSH4 0xd0342acd 000001a3: EQ 000001a4: PUSH2 0x0719 000001a7: JUMPI 000001a8: DUP1 000001a9: PUSH4 0xdb6fff8c 000001ae: EQ 000001af: PUSH2 0x0740 000001b2: JUMPI 000001b3: DUP1 000001b4: PUSH4 0xec47de2a 000001b9: EQ 000001ba: PUSH2 0x0764 000001bd: JUMPI 000001be: DUP1 000001bf: PUSH4 0xf2c54fe8 000001c4: EQ 000001c5: PUSH2 0x0788 000001c8: JUMPI 000001c9: DUP1 000001ca: PUSH4 0xf2fde38b 000001cf: EQ 000001d0: PUSH2 0x07ac 000001d3: JUMPI 000001d4: DUP1 000001d5: PUSH4 0xf3b83791 000001da: EQ 000001db: PUSH2 0x07cd 000001de: JUMPI 000001df: DUP1 000001e0: PUSH4 0xf3f51415 000001e5: EQ 000001e6: PUSH2 0x07e5 000001e9: JUMPI 000001ea: JUMPDEST 000001eb: PUSH1 0x00 000001ed: DUP1 000001ee: REVERT 000001ef: JUMPDEST 000001f0: CALLVALUE 000001f1: DUP1 000001f2: ISZERO 000001f3: PUSH2 0x01fb 000001f6: JUMPI 000001f7: PUSH1 0x00 000001f9: DUP1 000001fa: REVERT 000001fb: JUMPDEST 000001fc: POP 000001fd: PUSH2 0x0213 00000200: PUSH1 0x01 00000202: PUSH1 0xa0 00000204: PUSH1 0x02 00000206: EXP 00000207: SUB 00000208: PUSH1 0x04 0000020a: CALLDATALOAD 0000020b: AND 0000020c: PUSH1 0x24 0000020e: CALLDATALOAD 0000020f: PUSH2 0x0806 00000212: JUMP 00000213: JUMPDEST 00000214: STOP 00000215: JUMPDEST 00000216: CALLVALUE 00000217: DUP1 00000218: ISZERO 00000219: PUSH2 0x0221 0000021c: JUMPI 0000021d: PUSH1 0x00 0000021f: DUP1 00000220: REVERT 00000221: JUMPDEST 00000222: POP 00000223: PUSH2 0x0213 00000226: PUSH1 0x01 00000228: PUSH1 0xa0 0000022a: PUSH1 0x02 0000022c: EXP 0000022d: SUB 0000022e: PUSH1 0x04 00000230: CALLDATALOAD 00000231: AND 00000232: PUSH1 0x24 00000234: CALLDATALOAD 00000235: PUSH2 0x0815 00000238: JUMP 00000239: JUMPDEST 0000023a: CALLVALUE 0000023b: DUP1 0000023c: ISZERO 0000023d: PUSH2 0x0245 00000240: JUMPI 00000241: PUSH1 0x00 00000243: DUP1 00000244: REVERT 00000245: JUMPDEST 00000246: POP 00000247: PUSH2 0x025a 0000024a: PUSH1 0x01 0000024c: PUSH1 0xa0 0000024e: PUSH1 0x02 00000250: EXP 00000251: SUB 00000252: PUSH1 0x04 00000254: CALLDATALOAD 00000255: AND 00000256: PUSH2 0x0932 00000259: JUMP 0000025a: JUMPDEST 0000025b: PUSH1 0x40 0000025d: DUP1 0000025e: MLOAD 0000025f: SWAP2 00000260: DUP3 00000261: MSTORE 00000262: MLOAD 00000263: SWAP1 00000264: DUP2 00000265: SWAP1 00000266: SUB 00000267: PUSH1 0x20 00000269: ADD 0000026a: SWAP1 0000026b: RETURN 0000026c: JUMPDEST 0000026d: CALLVALUE 0000026e: DUP1 0000026f: ISZERO 00000270: PUSH2 0x0278 00000273: JUMPI 00000274: PUSH1 0x00 00000276: DUP1 00000277: REVERT 00000278: JUMPDEST 00000279: POP 0000027a: PUSH2 0x0213 0000027d: PUSH1 0x04 0000027f: CALLDATALOAD 00000280: PUSH2 0x09f5 00000283: JUMP 00000284: JUMPDEST 00000285: CALLVALUE 00000286: DUP1 00000287: ISZERO 00000288: PUSH2 0x0290 0000028b: JUMPI 0000028c: PUSH1 0x00 0000028e: DUP1 0000028f: REVERT 00000290: JUMPDEST 00000291: POP 00000292: PUSH2 0x0213 00000295: PUSH1 0x01 00000297: PUSH1 0xa0 00000299: PUSH1 0x02 0000029b: EXP 0000029c: SUB 0000029d: PUSH1 0x04 0000029f: CALLDATALOAD 000002a0: AND 000002a1: PUSH2 0x0da2 000002a4: JUMP 000002a5: JUMPDEST 000002a6: CALLVALUE 000002a7: DUP1 000002a8: ISZERO 000002a9: PUSH2 0x02b1 000002ac: JUMPI 000002ad: PUSH1 0x00 000002af: DUP1 000002b0: REVERT 000002b1: JUMPDEST 000002b2: POP 000002b3: PUSH2 0x02c9 000002b6: PUSH1 0x01 000002b8: PUSH1 0xa0 000002ba: PUSH1 0x02 000002bc: EXP 000002bd: SUB 000002be: PUSH1 0x04 000002c0: CALLDATALOAD 000002c1: AND 000002c2: PUSH1 0x24 000002c4: CALLDATALOAD 000002c5: PUSH2 0x0dca 000002c8: JUMP 000002c9: JUMPDEST 000002ca: PUSH1 0x40 000002cc: DUP1 000002cd: MLOAD 000002ce: SWAP2 000002cf: ISZERO 000002d0: ISZERO 000002d1: DUP3 000002d2: MSTORE 000002d3: MLOAD 000002d4: SWAP1 000002d5: DUP2 000002d6: SWAP1 000002d7: SUB 000002d8: PUSH1 0x20 000002da: ADD 000002db: SWAP1 000002dc: RETURN 000002dd: JUMPDEST 000002de: CALLVALUE 000002df: DUP1 000002e0: ISZERO 000002e1: PUSH2 0x02e9 000002e4: JUMPI 000002e5: PUSH1 0x00 000002e7: DUP1 000002e8: REVERT 000002e9: JUMPDEST 000002ea: POP 000002eb: PUSH2 0x0213 000002ee: PUSH1 0x01 000002f0: PUSH1 0xa0 000002f2: PUSH1 0x02 000002f4: EXP 000002f5: SUB 000002f6: PUSH1 0x04 000002f8: CALLDATALOAD 000002f9: DUP2 000002fa: AND 000002fb: SWAP1 000002fc: PUSH1 0x24 000002fe: CALLDATALOAD 000002ff: AND 00000300: PUSH1 0x44 00000302: CALLDATALOAD 00000303: PUSH2 0x0e41 00000306: JUMP 00000307: JUMPDEST 00000308: CALLVALUE 00000309: DUP1 0000030a: ISZERO 0000030b: PUSH2 0x0313 0000030e: JUMPI 0000030f: PUSH1 0x00 00000311: DUP1 00000312: REVERT 00000313: JUMPDEST 00000314: POP 00000315: PUSH2 0x031c 00000318: PUSH2 0x0ead 0000031b: JUMP 0000031c: JUMPDEST 0000031d: PUSH1 0x40 0000031f: DUP1 00000320: MLOAD 00000321: PUSH1 0x01 00000323: PUSH1 0xa0 00000325: PUSH1 0x02 00000327: EXP 00000328: SUB 00000329: SWAP1 0000032a: SWAP3 0000032b: AND 0000032c: DUP3 0000032d: MSTORE 0000032e: MLOAD 0000032f: SWAP1 00000330: DUP2 00000331: SWAP1 00000332: SUB 00000333: PUSH1 0x20 00000335: ADD 00000336: SWAP1 00000337: RETURN 00000338: JUMPDEST 00000339: CALLVALUE 0000033a: DUP1 0000033b: ISZERO 0000033c: PUSH2 0x0344 0000033f: JUMPI 00000340: PUSH1 0x00 00000342: DUP1 00000343: REVERT 00000344: JUMPDEST 00000345: POP 00000346: PUSH2 0x025a 00000349: PUSH1 0x01 0000034b: PUSH1 0xa0 0000034d: PUSH1 0x02 0000034f: EXP 00000350: SUB 00000351: PUSH1 0x04 00000353: CALLDATALOAD 00000354: AND 00000355: PUSH2 0x0f04 00000358: JUMP 00000359: JUMPDEST 0000035a: CALLVALUE 0000035b: DUP1 0000035c: ISZERO 0000035d: PUSH2 0x0365 00000360: JUMPI 00000361: PUSH1 0x00 00000363: DUP1 00000364: REVERT 00000365: JUMPDEST 00000366: POP 00000367: PUSH2 0x025a 0000036a: PUSH1 0x01 0000036c: PUSH1 0xa0 0000036e: PUSH1 0x02 00000370: EXP 00000371: SUB 00000372: PUSH1 0x04 00000374: CALLDATALOAD 00000375: AND 00000376: PUSH2 0x0f85 00000379: JUMP 0000037a: JUMPDEST 0000037b: CALLVALUE 0000037c: DUP1 0000037d: ISZERO 0000037e: PUSH2 0x0386 00000381: JUMPI 00000382: PUSH1 0x00 00000384: DUP1 00000385: REVERT 00000386: JUMPDEST 00000387: POP 00000388: PUSH2 0x02c9 0000038b: PUSH1 0x01 0000038d: PUSH1 0xa0 0000038f: PUSH1 0x02 00000391: EXP 00000392: SUB 00000393: PUSH1 0x04 00000395: CALLDATALOAD 00000396: AND 00000397: PUSH2 0x1018 0000039a: JUMP 0000039b: JUMPDEST 0000039c: CALLVALUE 0000039d: DUP1 0000039e: ISZERO 0000039f: PUSH2 0x03a7 000003a2: JUMPI 000003a3: PUSH1 0x00 000003a5: DUP1 000003a6: REVERT 000003a7: JUMPDEST 000003a8: POP 000003a9: PUSH2 0x0213 000003ac: PUSH1 0x01 000003ae: PUSH1 0xa0 000003b0: PUSH1 0x02 000003b2: EXP 000003b3: SUB 000003b4: PUSH1 0x04 000003b6: CALLDATALOAD 000003b7: AND 000003b8: PUSH1 0x24 000003ba: CALLDATALOAD 000003bb: PUSH2 0x102b 000003be: JUMP 000003bf: JUMPDEST 000003c0: CALLVALUE 000003c1: DUP1 000003c2: ISZERO 000003c3: PUSH2 0x03cb 000003c6: JUMPI 000003c7: PUSH1 0x00 000003c9: DUP1 000003ca: REVERT 000003cb: JUMPDEST 000003cc: POP 000003cd: PUSH2 0x02c9 000003d0: PUSH1 0x01 000003d2: PUSH1 0xa0 000003d4: PUSH1 0x02 000003d6: EXP 000003d7: SUB 000003d8: PUSH1 0x04 000003da: CALLDATALOAD 000003db: DUP2 000003dc: AND 000003dd: SWAP1 000003de: PUSH1 0x24 000003e0: CALLDATALOAD 000003e1: DUP2 000003e2: AND 000003e3: SWAP1 000003e4: PUSH1 0x44 000003e6: SWAP1 000003e7: PUSH1 0xa4 000003e9: SWAP1 000003ea: PUSH1 0xe4 000003ec: CALLDATALOAD 000003ed: SWAP1 000003ee: PUSH2 0x0104 000003f1: CALLDATALOAD 000003f2: AND 000003f3: PUSH2 0x117a 000003f6: JUMP 000003f7: JUMPDEST 000003f8: CALLVALUE 000003f9: DUP1 000003fa: ISZERO 000003fb: PUSH2 0x0403 000003fe: JUMPI 000003ff: PUSH1 0x00 00000401: DUP1 00000402: REVERT 00000403: JUMPDEST 00000404: POP 00000405: PUSH2 0x02c9 00000408: PUSH2 0x1377 0000040b: JUMP 0000040c: JUMPDEST 0000040d: CALLVALUE 0000040e: DUP1 0000040f: ISZERO 00000410: PUSH2 0x0418 00000413: JUMPI 00000414: PUSH1 0x00 00000416: DUP1 00000417: REVERT 00000418: JUMPDEST 00000419: POP 0000041a: PUSH2 0x02c9 0000041d: PUSH1 0x01 0000041f: PUSH1 0xa0 00000421: PUSH1 0x02 00000423: EXP 00000424: SUB 00000425: PUSH1 0x04 00000427: CALLDATALOAD 00000428: AND 00000429: PUSH1 0x24 0000042b: CALLDATALOAD 0000042c: PUSH2 0x13c8 0000042f: JUMP 00000430: JUMPDEST 00000431: CALLVALUE 00000432: DUP1 00000433: ISZERO 00000434: PUSH2 0x043c 00000437: JUMPI 00000438: PUSH1 0x00 0000043a: DUP1 0000043b: REVERT 0000043c: JUMPDEST 0000043d: POP 0000043e: PUSH2 0x025a 00000441: PUSH2 0x141e 00000444: JUMP 00000445: JUMPDEST 00000446: CALLVALUE 00000447: DUP1 00000448: ISZERO 00000449: PUSH2 0x0451 0000044c: JUMPI 0000044d: PUSH1 0x00 0000044f: DUP1 00000450: REVERT 00000451: JUMPDEST 00000452: POP 00000453: PUSH2 0x025a 00000456: PUSH1 0x01 00000458: PUSH1 0xa0 0000045a: PUSH1 0x02 0000045c: EXP 0000045d: SUB 0000045e: PUSH1 0x04 00000460: CALLDATALOAD 00000461: AND 00000462: PUSH2 0x1427 00000465: JUMP 00000466: JUMPDEST 00000467: CALLVALUE 00000468: DUP1 00000469: ISZERO 0000046a: PUSH2 0x0472 0000046d: JUMPI 0000046e: PUSH1 0x00 00000470: DUP1 00000471: REVERT 00000472: JUMPDEST 00000473: POP 00000474: PUSH2 0x047b 00000477: PUSH2 0x14a8 0000047a: JUMP 0000047b: JUMPDEST 0000047c: PUSH1 0x40 0000047e: DUP1 0000047f: MLOAD 00000480: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000049d: NOT 0000049e: SWAP1 0000049f: SWAP3 000004a0: AND 000004a1: DUP3 000004a2: MSTORE 000004a3: MLOAD 000004a4: SWAP1 000004a5: DUP2 000004a6: SWAP1 000004a7: SUB 000004a8: PUSH1 0x20 000004aa: ADD 000004ab: SWAP1 000004ac: RETURN 000004ad: JUMPDEST 000004ae: CALLVALUE 000004af: DUP1 000004b0: ISZERO 000004b1: PUSH2 0x04b9 000004b4: JUMPI 000004b5: PUSH1 0x00 000004b7: DUP1 000004b8: REVERT 000004b9: JUMPDEST 000004ba: POP 000004bb: PUSH2 0x02c9 000004be: PUSH1 0x04 000004c0: CALLDATALOAD 000004c1: PUSH2 0x14cc 000004c4: JUMP 000004c5: JUMPDEST 000004c6: CALLVALUE 000004c7: DUP1 000004c8: ISZERO 000004c9: PUSH2 0x04d1 000004cc: JUMPI 000004cd: PUSH1 0x00 000004cf: DUP1 000004d0: REVERT 000004d1: JUMPDEST 000004d2: POP 000004d3: PUSH2 0x0213 000004d6: PUSH1 0x01 000004d8: PUSH1 0xa0 000004da: PUSH1 0x02 000004dc: EXP 000004dd: SUB 000004de: PUSH1 0x04 000004e0: CALLDATALOAD 000004e1: DUP2 000004e2: AND 000004e3: SWAP1 000004e4: PUSH1 0x24 000004e6: CALLDATALOAD 000004e7: AND 000004e8: PUSH2 0x1595 000004eb: JUMP 000004ec: JUMPDEST 000004ed: CALLVALUE 000004ee: DUP1 000004ef: ISZERO 000004f0: PUSH2 0x04f8 000004f3: JUMPI 000004f4: PUSH1 0x00 000004f6: DUP1 000004f7: REVERT 000004f8: JUMPDEST 000004f9: POP 000004fa: PUSH2 0x0213 000004fd: PUSH1 0x01 000004ff: PUSH1 0xa0 00000501: PUSH1 0x02 00000503: EXP 00000504: SUB 00000505: PUSH1 0x04 00000507: CALLDATALOAD 00000508: AND 00000509: PUSH2 0x165a 0000050c: JUMP 0000050d: JUMPDEST 0000050e: CALLVALUE 0000050f: DUP1 00000510: ISZERO 00000511: PUSH2 0x0519 00000514: JUMPI 00000515: PUSH1 0x00 00000517: DUP1 00000518: REVERT 00000519: JUMPDEST 0000051a: POP 0000051b: PUSH2 0x025a 0000051e: PUSH1 0x01 00000520: PUSH1 0xa0 00000522: PUSH1 0x02 00000524: EXP 00000525: SUB 00000526: PUSH1 0x04 00000528: CALLDATALOAD 00000529: AND 0000052a: PUSH2 0x167f 0000052d: JUMP 0000052e: JUMPDEST 0000052f: CALLVALUE 00000530: DUP1 00000531: ISZERO 00000532: PUSH2 0x053a 00000535: JUMPI 00000536: PUSH1 0x00 00000538: DUP1 00000539: REVERT 0000053a: JUMPDEST 0000053b: POP 0000053c: PUSH2 0x0213 0000053f: PUSH1 0x01 00000541: PUSH1 0xa0 00000543: PUSH1 0x02 00000545: EXP 00000546: SUB 00000547: PUSH1 0x04 00000549: CALLDATALOAD 0000054a: AND 0000054b: PUSH1 0x24 0000054d: CALLDATALOAD 0000054e: PUSH2 0x16d8 00000551: JUMP 00000552: JUMPDEST 00000553: CALLVALUE 00000554: DUP1 00000555: ISZERO 00000556: PUSH2 0x055e 00000559: JUMPI 0000055a: PUSH1 0x00 0000055c: DUP1 0000055d: REVERT 0000055e: JUMPDEST 0000055f: POP 00000560: PUSH2 0x025a 00000563: PUSH1 0x01 00000565: PUSH1 0xa0 00000567: PUSH1 0x02 00000569: EXP 0000056a: SUB 0000056b: PUSH1 0x04 0000056d: CALLDATALOAD 0000056e: AND 0000056f: PUSH2 0x1827 00000572: JUMP 00000573: JUMPDEST 00000574: CALLVALUE 00000575: DUP1 00000576: ISZERO 00000577: PUSH2 0x057f 0000057a: JUMPI 0000057b: PUSH1 0x00 0000057d: DUP1 0000057e: REVERT 0000057f: JUMPDEST 00000580: POP 00000581: PUSH2 0x031c 00000584: PUSH2 0x18ba 00000587: JUMP 00000588: JUMPDEST 00000589: CALLVALUE 0000058a: DUP1 0000058b: ISZERO 0000058c: PUSH2 0x0594 0000058f: JUMPI 00000590: PUSH1 0x00 00000592: DUP1 00000593: REVERT 00000594: JUMPDEST 00000595: POP 00000596: PUSH2 0x031c 00000599: PUSH2 0x1911 0000059c: JUMP 0000059d: JUMPDEST 0000059e: CALLVALUE 0000059f: DUP1 000005a0: ISZERO 000005a1: PUSH2 0x05a9 000005a4: JUMPI 000005a5: PUSH1 0x00 000005a7: DUP1 000005a8: REVERT 000005a9: JUMPDEST 000005aa: POP 000005ab: PUSH2 0x0213 000005ae: PUSH1 0x04 000005b0: CALLDATALOAD 000005b1: PUSH2 0x1968 000005b4: JUMP 000005b5: JUMPDEST 000005b6: CALLVALUE 000005b7: DUP1 000005b8: ISZERO 000005b9: PUSH2 0x05c1 000005bc: JUMPI 000005bd: PUSH1 0x00 000005bf: DUP1 000005c0: REVERT 000005c1: JUMPDEST 000005c2: POP 000005c3: PUSH2 0x05ca 000005c6: PUSH2 0x1ca4 000005c9: JUMP 000005ca: JUMPDEST 000005cb: PUSH1 0x40 000005cd: DUP1 000005ce: MLOAD 000005cf: PUSH8 0xffffffffffffffff 000005d8: SWAP5 000005d9: DUP6 000005da: AND 000005db: DUP2 000005dc: MSTORE 000005dd: SWAP3 000005de: DUP5 000005df: AND 000005e0: PUSH1 0x20 000005e2: DUP5 000005e3: ADD 000005e4: MSTORE 000005e5: SWAP3 000005e6: AND 000005e7: DUP2 000005e8: DUP4 000005e9: ADD 000005ea: MSTORE 000005eb: SWAP1 000005ec: MLOAD 000005ed: SWAP1 000005ee: DUP2 000005ef: SWAP1 000005f0: SUB 000005f1: PUSH1 0x60 000005f3: ADD 000005f4: SWAP1 000005f5: RETURN 000005f6: JUMPDEST 000005f7: CALLVALUE 000005f8: DUP1 000005f9: ISZERO 000005fa: PUSH2 0x0602 000005fd: JUMPI 000005fe: PUSH1 0x00 00000600: DUP1 00000601: REVERT 00000602: JUMPDEST 00000603: POP 00000604: PUSH2 0x0213 00000607: PUSH1 0x01 00000609: PUSH1 0xa0 0000060b: PUSH1 0x02 0000060d: EXP 0000060e: SUB 0000060f: PUSH1 0x04 00000611: CALLDATALOAD 00000612: AND 00000613: PUSH2 0x1cad 00000616: JUMP 00000617: JUMPDEST 00000618: CALLVALUE 00000619: DUP1 0000061a: ISZERO 0000061b: PUSH2 0x0623 0000061e: JUMPI 0000061f: PUSH1 0x00 00000621: DUP1 00000622: REVERT 00000623: JUMPDEST 00000624: POP 00000625: PUSH2 0x025a 00000628: PUSH1 0x01 0000062a: PUSH1 0xa0 0000062c: PUSH1 0x02 0000062e: EXP 0000062f: SUB 00000630: PUSH1 0x04 00000632: CALLDATALOAD 00000633: AND 00000634: PUSH2 0x1cd2 00000637: JUMP 00000638: JUMPDEST 00000639: CALLVALUE 0000063a: DUP1 0000063b: ISZERO 0000063c: PUSH2 0x0644 0000063f: JUMPI 00000640: PUSH1 0x00 00000642: DUP1 00000643: REVERT 00000644: JUMPDEST 00000645: POP 00000646: PUSH1 0x40 00000648: DUP1 00000649: MLOAD 0000064a: PUSH1 0x20 0000064c: PUSH1 0x04 0000064e: PUSH1 0x44 00000650: CALLDATALOAD 00000651: DUP2 00000652: DUP2 00000653: ADD 00000654: CALLDATALOAD 00000655: PUSH1 0x1f 00000657: DUP2 00000658: ADD 00000659: DUP5 0000065a: SWAP1 0000065b: DIV 0000065c: DUP5 0000065d: MUL 0000065e: DUP6 0000065f: ADD 00000660: DUP5 00000661: ADD 00000662: SWAP1 00000663: SWAP6 00000664: MSTORE 00000665: DUP5 00000666: DUP5 00000667: MSTORE 00000668: PUSH2 0x02c9 0000066b: SWAP5 0000066c: DUP3 0000066d: CALLDATALOAD 0000066e: PUSH1 0x01 00000670: PUSH1 0xa0 00000672: PUSH1 0x02 00000674: EXP 00000675: SUB 00000676: AND 00000677: SWAP5 00000678: PUSH1 0x24 0000067a: DUP1 0000067b: CALLDATALOAD 0000067c: SWAP6 0000067d: CALLDATASIZE 0000067e: SWAP6 0000067f: SWAP5 00000680: PUSH1 0x64 00000682: SWAP5 00000683: SWAP3 00000684: ADD 00000685: SWAP2 00000686: SWAP1 00000687: DUP2 00000688: SWAP1 00000689: DUP5 0000068a: ADD 0000068b: DUP4 0000068c: DUP3 0000068d: DUP1 0000068e: DUP3 0000068f: DUP5 00000690: CALLDATACOPY 00000691: POP 00000692: SWAP5 00000693: SWAP8 00000694: POP 00000695: PUSH2 0x1d53 00000698: SWAP7 00000699: POP 0000069a: POP 0000069b: POP 0000069c: POP 0000069d: POP 0000069e: POP 0000069f: POP 000006a0: JUMP 000006a1: JUMPDEST 000006a2: CALLVALUE 000006a3: DUP1 000006a4: ISZERO 000006a5: PUSH2 0x06ad 000006a8: JUMPI 000006a9: PUSH1 0x00 000006ab: DUP1 000006ac: REVERT 000006ad: JUMPDEST 000006ae: POP 000006af: PUSH2 0x025a 000006b2: PUSH1 0x01 000006b4: PUSH1 0xa0 000006b6: PUSH1 0x02 000006b8: EXP 000006b9: SUB 000006ba: PUSH1 0x04 000006bc: CALLDATALOAD 000006bd: AND 000006be: PUSH1 0x24 000006c0: CALLDATALOAD 000006c1: PUSH2 0x1d7d 000006c4: JUMP 000006c5: JUMPDEST 000006c6: CALLVALUE 000006c7: DUP1 000006c8: ISZERO 000006c9: PUSH2 0x06d1 000006cc: JUMPI 000006cd: PUSH1 0x00 000006cf: DUP1 000006d0: REVERT 000006d1: JUMPDEST 000006d2: POP 000006d3: PUSH2 0x0213 000006d6: PUSH1 0x01 000006d8: PUSH1 0xa0 000006da: PUSH1 0x02 000006dc: EXP 000006dd: SUB 000006de: PUSH1 0x04 000006e0: CALLDATALOAD 000006e1: DUP2 000006e2: AND 000006e3: SWAP1 000006e4: PUSH1 0x24 000006e6: CALLDATALOAD 000006e7: AND 000006e8: PUSH1 0x44 000006ea: CALLDATALOAD 000006eb: PUSH2 0x1e5d 000006ee: JUMP 000006ef: JUMPDEST 000006f0: CALLVALUE 000006f1: DUP1 000006f2: ISZERO 000006f3: PUSH2 0x06fb 000006f6: JUMPI 000006f7: PUSH1 0x00 000006f9: DUP1 000006fa: REVERT 000006fb: JUMPDEST 000006fc: POP 000006fd: PUSH2 0x025a 00000700: PUSH2 0x1e68 00000703: JUMP 00000704: JUMPDEST 00000705: CALLVALUE 00000706: DUP1 00000707: ISZERO 00000708: PUSH2 0x0710 0000070b: JUMPI 0000070c: PUSH1 0x00 0000070e: DUP1 0000070f: REVERT 00000710: JUMPDEST 00000711: POP 00000712: PUSH2 0x031c 00000715: PUSH2 0x1eb6 00000718: JUMP 00000719: JUMPDEST 0000071a: CALLVALUE 0000071b: DUP1 0000071c: ISZERO 0000071d: PUSH2 0x0725 00000720: JUMPI 00000721: PUSH1 0x00 00000723: DUP1 00000724: REVERT 00000725: JUMPDEST 00000726: POP 00000727: PUSH2 0x0213 0000072a: PUSH1 0x01 0000072c: PUSH1 0xa0 0000072e: PUSH1 0x02 00000730: EXP 00000731: SUB 00000732: PUSH1 0x04 00000734: CALLDATALOAD 00000735: DUP2 00000736: AND 00000737: SWAP1 00000738: PUSH1 0x24 0000073a: CALLDATALOAD 0000073b: AND 0000073c: PUSH2 0x1f0d 0000073f: JUMP 00000740: JUMPDEST 00000741: CALLVALUE 00000742: DUP1 00000743: ISZERO 00000744: PUSH2 0x074c 00000747: JUMPI 00000748: PUSH1 0x00 0000074a: DUP1 0000074b: REVERT 0000074c: JUMPDEST 0000074d: POP 0000074e: PUSH2 0x0213 00000751: PUSH1 0x01 00000753: PUSH1 0xa0 00000755: PUSH1 0x02 00000757: EXP 00000758: SUB 00000759: PUSH1 0x04 0000075b: CALLDATALOAD 0000075c: AND 0000075d: PUSH1 0x24 0000075f: CALLDATALOAD 00000760: PUSH2 0x2245 00000763: JUMP 00000764: JUMPDEST 00000765: CALLVALUE 00000766: DUP1 00000767: ISZERO 00000768: PUSH2 0x0770 0000076b: JUMPI 0000076c: PUSH1 0x00 0000076e: DUP1 0000076f: REVERT 00000770: JUMPDEST 00000771: POP 00000772: PUSH2 0x0213 00000775: PUSH1 0x01 00000777: PUSH1 0xa0 00000779: PUSH1 0x02 0000077b: EXP 0000077c: SUB 0000077d: PUSH1 0x04 0000077f: CALLDATALOAD 00000780: AND 00000781: PUSH1 0x24 00000783: CALLDATALOAD 00000784: PUSH2 0x2326 00000787: JUMP 00000788: JUMPDEST 00000789: CALLVALUE 0000078a: DUP1 0000078b: ISZERO 0000078c: PUSH2 0x0794 0000078f: JUMPI 00000790: PUSH1 0x00 00000792: DUP1 00000793: REVERT 00000794: JUMPDEST 00000795: POP 00000796: PUSH2 0x025a 00000799: PUSH1 0x01 0000079b: PUSH1 0xa0 0000079d: PUSH1 0x02 0000079f: EXP 000007a0: SUB 000007a1: PUSH1 0x04 000007a3: CALLDATALOAD 000007a4: AND 000007a5: PUSH1 0x24 000007a7: CALLDATALOAD 000007a8: PUSH2 0x240b 000007ab: JUMP 000007ac: JUMPDEST 000007ad: CALLVALUE 000007ae: DUP1 000007af: ISZERO 000007b0: PUSH2 0x07b8 000007b3: JUMPI 000007b4: PUSH1 0x00 000007b6: DUP1 000007b7: REVERT 000007b8: JUMPDEST 000007b9: POP 000007ba: PUSH2 0x0213 000007bd: PUSH1 0x01 000007bf: PUSH1 0xa0 000007c1: PUSH1 0x02 000007c3: EXP 000007c4: SUB 000007c5: PUSH1 0x04 000007c7: CALLDATALOAD 000007c8: AND 000007c9: PUSH2 0x24a6 000007cc: JUMP 000007cd: JUMPDEST 000007ce: CALLVALUE 000007cf: DUP1 000007d0: ISZERO 000007d1: PUSH2 0x07d9 000007d4: JUMPI 000007d5: PUSH1 0x00 000007d7: DUP1 000007d8: REVERT 000007d9: JUMPDEST 000007da: POP 000007db: PUSH2 0x0213 000007de: PUSH1 0x04 000007e0: CALLDATALOAD 000007e1: PUSH2 0x24e0 000007e4: JUMP 000007e5: JUMPDEST 000007e6: CALLVALUE 000007e7: DUP1 000007e8: ISZERO 000007e9: PUSH2 0x07f1 000007ec: JUMPI 000007ed: PUSH1 0x00 000007ef: DUP1 000007f0: REVERT 000007f1: JUMPDEST 000007f2: POP 000007f3: PUSH2 0x025a 000007f6: PUSH1 0x01 000007f8: PUSH1 0xa0 000007fa: PUSH1 0x02 000007fc: EXP 000007fd: SUB 000007fe: PUSH1 0x04 00000800: CALLDATALOAD 00000801: AND 00000802: PUSH2 0x2505 00000805: JUMP 00000806: JUMPDEST 00000807: PUSH2 0x0811 0000080a: DUP3 0000080b: CALLER 0000080c: DUP4 0000080d: PUSH2 0x2586 00000810: JUMP 00000811: JUMPDEST 00000812: POP 00000813: POP 00000814: JUMP 00000815: JUMPDEST 00000816: PUSH2 0x081d 00000819: PUSH2 0x1911 0000081c: JUMP 0000081d: JUMPDEST 0000081e: PUSH1 0x01 00000820: PUSH1 0xa0 00000822: PUSH1 0x02 00000824: EXP 00000825: SUB 00000826: AND 00000827: CALLER 00000828: EQ 00000829: PUSH2 0x0831 0000082c: JUMPI 0000082d: PUSH1 0x00 0000082f: DUP1 00000830: REVERT 00000831: JUMPDEST 00000832: PUSH2 0x083a 00000835: DUP3 00000836: PUSH2 0x1018 00000839: JUMP 0000083a: JUMPDEST 0000083b: ISZERO 0000083c: ISZERO 0000083d: PUSH2 0x0845 00000840: JUMPI 00000841: PUSH1 0x00 00000843: DUP1 00000844: REVERT 00000845: JUMPDEST 00000846: DUP1 00000847: ISZERO 00000848: DUP1 00000849: PUSH2 0x0864 0000084c: JUMPI 0000084d: POP 0000084e: PUSH1 0x00 00000850: DUP2 00000851: GT 00000852: DUP1 00000853: ISZERO 00000854: PUSH2 0x0864 00000857: JUMPI 00000858: POP 00000859: PUSH2 0x0861 0000085c: DUP3 0000085d: PUSH2 0x1427 00000860: JUMP 00000861: JUMPDEST 00000862: DUP2 00000863: LT 00000864: JUMPDEST 00000865: ISZERO 00000866: ISZERO 00000867: PUSH2 0x086f 0000086a: JUMPI 0000086b: PUSH1 0x00 0000086d: DUP1 0000086e: REVERT 0000086f: JUMPDEST 00000870: DUP1 00000871: PUSH1 0x00 00000873: DUP1 00000874: DUP5 00000875: PUSH1 0x40 00000877: MLOAD 00000878: PUSH1 0x20 0000087a: ADD 0000087b: DUP1 0000087c: DUP1 0000087d: PUSH1 0x00 0000087f: DUP1 00000880: MLOAD 00000881: PUSH1 0x20 00000883: PUSH2 0x4a4c 00000886: DUP4 00000887: CODECOPY 00000888: DUP2 00000889: MLOAD 0000088a: SWAP2 0000088b: MSTORE 0000088c: DUP2 0000088d: MSTORE 0000088e: POP 0000088f: PUSH1 0x11 00000891: ADD 00000892: DUP3 00000893: PUSH1 0x01 00000895: PUSH1 0xa0 00000897: PUSH1 0x02 00000899: EXP 0000089a: SUB 0000089b: AND 0000089c: PUSH1 0x01 0000089e: PUSH1 0xa0 000008a0: PUSH1 0x02 000008a2: EXP 000008a3: SUB 000008a4: AND 000008a5: PUSH1 0x60 000008a7: PUSH1 0x02 000008a9: EXP 000008aa: MUL 000008ab: DUP2 000008ac: MSTORE 000008ad: PUSH1 0x14 000008af: ADD 000008b0: SWAP2 000008b1: POP 000008b2: POP 000008b3: PUSH1 0x40 000008b5: MLOAD 000008b6: PUSH1 0x20 000008b8: DUP2 000008b9: DUP4 000008ba: SUB 000008bb: SUB 000008bc: DUP2 000008bd: MSTORE 000008be: SWAP1 000008bf: PUSH1 0x40 000008c1: MSTORE 000008c2: PUSH1 0x40 000008c4: MLOAD 000008c5: DUP1 000008c6: DUP3 000008c7: DUP1 000008c8: MLOAD 000008c9: SWAP1 000008ca: PUSH1 0x20 000008cc: ADD 000008cd: SWAP1 000008ce: DUP1 000008cf: DUP4 000008d0: DUP4 000008d1: JUMPDEST 000008d2: PUSH1 0x20 000008d4: DUP4 000008d5: LT 000008d6: PUSH2 0x08f0 000008d9: JUMPI 000008da: DUP1 000008db: MLOAD 000008dc: DUP3 000008dd: MSTORE 000008de: PUSH1 0x1f 000008e0: NOT 000008e1: SWAP1 000008e2: SWAP3 000008e3: ADD 000008e4: SWAP2 000008e5: PUSH1 0x20 000008e7: SWAP2 000008e8: DUP3 000008e9: ADD 000008ea: SWAP2 000008eb: ADD 000008ec: PUSH2 0x08d1 000008ef: JUMP 000008f0: JUMPDEST 000008f1: MLOAD 000008f2: DUP2 000008f3: MLOAD 000008f4: PUSH1 0x20 000008f6: SWAP4 000008f7: DUP5 000008f8: SUB 000008f9: PUSH2 0x0100 000008fc: EXP 000008fd: PUSH1 0x00 000008ff: NOT 00000900: ADD 00000901: DUP1 00000902: NOT 00000903: SWAP1 00000904: SWAP3 00000905: AND 00000906: SWAP2 00000907: AND 00000908: OR 00000909: SWAP1 0000090a: MSTORE 0000090b: PUSH1 0x40 0000090d: DUP1 0000090e: MLOAD 0000090f: SWAP3 00000910: SWAP1 00000911: SWAP5 00000912: ADD 00000913: DUP3 00000914: SWAP1 00000915: SUB 00000916: SWAP1 00000917: SWAP2 00000918: KECCAK256 00000919: DUP7 0000091a: MSTORE 0000091b: DUP6 0000091c: ADD 0000091d: SWAP6 0000091e: SWAP1 0000091f: SWAP6 00000920: MSTORE 00000921: SWAP3 00000922: SWAP1 00000923: SWAP3 00000924: ADD 00000925: PUSH1 0x00 00000927: KECCAK256 00000928: SWAP4 00000929: SWAP1 0000092a: SWAP4 0000092b: SSTORE 0000092c: POP 0000092d: POP 0000092e: POP 0000092f: POP 00000930: POP 00000931: JUMP 00000932: JUMPDEST 00000933: PUSH1 0x00 00000935: DUP1 00000936: PUSH1 0x00 00000938: DUP4 00000939: PUSH1 0x40 0000093b: MLOAD 0000093c: PUSH1 0x20 0000093e: ADD 0000093f: DUP1 00000940: DUP1 00000941: PUSH1 0x00 00000943: DUP1 00000944: MLOAD 00000945: PUSH1 0x20 00000947: PUSH2 0x49ec 0000094a: DUP4 0000094b: CODECOPY 0000094c: DUP2 0000094d: MLOAD 0000094e: SWAP2 0000094f: MSTORE 00000950: DUP2 00000951: MSTORE 00000952: POP 00000953: PUSH1 0x08 00000955: ADD 00000956: DUP3 00000957: PUSH1 0x01 00000959: PUSH1 0xa0 0000095b: PUSH1 0x02 0000095d: EXP 0000095e: SUB 0000095f: AND 00000960: PUSH1 0x01 00000962: PUSH1 0xa0 00000964: PUSH1 0x02 00000966: EXP 00000967: SUB 00000968: AND 00000969: PUSH1 0x60 0000096b: PUSH1 0x02 0000096d: EXP 0000096e: MUL 0000096f: DUP2 00000970: MSTORE 00000971: PUSH1 0x14 00000973: ADD 00000974: SWAP2 00000975: POP 00000976: POP 00000977: PUSH1 0x40 00000979: MLOAD 0000097a: PUSH1 0x20 0000097c: DUP2 0000097d: DUP4 0000097e: SUB 0000097f: SUB 00000980: DUP2 00000981: MSTORE 00000982: SWAP1 00000983: PUSH1 0x40 00000985: MSTORE 00000986: PUSH1 0x40 00000988: MLOAD 00000989: DUP1 0000098a: DUP3 0000098b: DUP1 0000098c: MLOAD 0000098d: SWAP1 0000098e: PUSH1 0x20 00000990: ADD 00000991: SWAP1 00000992: DUP1 00000993: DUP4 00000994: DUP4 00000995: JUMPDEST 00000996: PUSH1 0x20 00000998: DUP4 00000999: LT 0000099a: PUSH2 0x09b4 0000099d: JUMPI 0000099e: DUP1 0000099f: MLOAD 000009a0: DUP3 000009a1: MSTORE 000009a2: PUSH1 0x1f 000009a4: NOT 000009a5: SWAP1 000009a6: SWAP3 000009a7: ADD 000009a8: SWAP2 000009a9: PUSH1 0x20 000009ab: SWAP2 000009ac: DUP3 000009ad: ADD 000009ae: SWAP2 000009af: ADD 000009b0: PUSH2 0x0995 000009b3: JUMP 000009b4: JUMPDEST 000009b5: MLOAD 000009b6: DUP2 000009b7: MLOAD 000009b8: PUSH1 0x20 000009ba: SWAP4 000009bb: DUP5 000009bc: SUB 000009bd: PUSH2 0x0100 000009c0: EXP 000009c1: PUSH1 0x00 000009c3: NOT 000009c4: ADD 000009c5: DUP1 000009c6: NOT 000009c7: SWAP1 000009c8: SWAP3 000009c9: AND 000009ca: SWAP2 000009cb: AND 000009cc: OR 000009cd: SWAP1 000009ce: MSTORE 000009cf: PUSH1 0x40 000009d1: DUP1 000009d2: MLOAD 000009d3: SWAP3 000009d4: SWAP1 000009d5: SWAP5 000009d6: ADD 000009d7: DUP3 000009d8: SWAP1 000009d9: SUB 000009da: SWAP1 000009db: SWAP2 000009dc: KECCAK256 000009dd: DUP7 000009de: MSTORE 000009df: DUP6 000009e0: ADD 000009e1: SWAP6 000009e2: SWAP1 000009e3: SWAP6 000009e4: MSTORE 000009e5: SWAP3 000009e6: SWAP1 000009e7: SWAP3 000009e8: ADD 000009e9: PUSH1 0x00 000009eb: KECCAK256 000009ec: SLOAD 000009ed: SWAP6 000009ee: SWAP5 000009ef: POP 000009f0: POP 000009f1: POP 000009f2: POP 000009f3: POP 000009f4: JUMP 000009f5: JUMPDEST 000009f6: PUSH1 0x00 000009f8: PUSH2 0x0a00 000009fb: DUP3 000009fc: PUSH2 0x2609 000009ff: JUMP 00000a00: JUMPDEST 00000a01: PUSH2 0x0a09 00000a04: DUP3 00000a05: PUSH2 0x26f1 00000a08: JUMP 00000a09: JUMPDEST 00000a0a: SWAP1 00000a0b: POP 00000a0c: PUSH2 0x0a14 00000a0f: DUP2 00000a10: PUSH2 0x1827 00000a13: JUMP 00000a14: JUMPDEST 00000a15: DUP3 00000a16: EQ 00000a17: ISZERO 00000a18: PUSH2 0x0811 00000a1b: JUMPI 00000a1c: PUSH1 0x00 00000a1e: DUP1 00000a1f: DUP3 00000a20: PUSH1 0x40 00000a22: MLOAD 00000a23: PUSH1 0x20 00000a25: ADD 00000a26: DUP1 00000a27: DUP1 00000a28: PUSH1 0x00 00000a2a: DUP1 00000a2b: MLOAD 00000a2c: PUSH1 0x20 00000a2e: PUSH2 0x4a2c 00000a31: DUP4 00000a32: CODECOPY 00000a33: DUP2 00000a34: MLOAD 00000a35: SWAP2 00000a36: MSTORE 00000a37: DUP2 00000a38: MSTORE 00000a39: POP 00000a3a: PUSH1 0x0a 00000a3c: ADD 00000a3d: DUP3 00000a3e: PUSH1 0x01 00000a40: PUSH1 0xa0 00000a42: PUSH1 0x02 00000a44: EXP 00000a45: SUB 00000a46: AND 00000a47: PUSH1 0x01 00000a49: PUSH1 0xa0 00000a4b: PUSH1 0x02 00000a4d: EXP 00000a4e: SUB 00000a4f: AND 00000a50: PUSH1 0x60 00000a52: PUSH1 0x02 00000a54: EXP 00000a55: MUL 00000a56: DUP2 00000a57: MSTORE 00000a58: PUSH1 0x14 00000a5a: ADD 00000a5b: SWAP2 00000a5c: POP 00000a5d: POP 00000a5e: PUSH1 0x40 00000a60: MLOAD 00000a61: PUSH1 0x20 00000a63: DUP2 00000a64: DUP4 00000a65: SUB 00000a66: SUB 00000a67: DUP2 00000a68: MSTORE 00000a69: SWAP1 00000a6a: PUSH1 0x40 00000a6c: MSTORE 00000a6d: PUSH1 0x40 00000a6f: MLOAD 00000a70: DUP1 00000a71: DUP3 00000a72: DUP1 00000a73: MLOAD 00000a74: SWAP1 00000a75: PUSH1 0x20 00000a77: ADD 00000a78: SWAP1 00000a79: DUP1 00000a7a: DUP4 00000a7b: DUP4 00000a7c: JUMPDEST 00000a7d: PUSH1 0x20 00000a7f: DUP4 00000a80: LT 00000a81: PUSH2 0x0a9b 00000a84: JUMPI 00000a85: DUP1 00000a86: MLOAD 00000a87: DUP3 00000a88: MSTORE 00000a89: PUSH1 0x1f 00000a8b: NOT 00000a8c: SWAP1 00000a8d: SWAP3 00000a8e: ADD 00000a8f: SWAP2 00000a90: PUSH1 0x20 00000a92: SWAP2 00000a93: DUP3 00000a94: ADD 00000a95: SWAP2 00000a96: ADD 00000a97: PUSH2 0x0a7c 00000a9a: JUMP 00000a9b: JUMPDEST 00000a9c: MLOAD 00000a9d: DUP2 00000a9e: MLOAD 00000a9f: PUSH1 0x20 00000aa1: SWAP4 00000aa2: DUP5 00000aa3: SUB 00000aa4: PUSH2 0x0100 00000aa7: EXP 00000aa8: PUSH1 0x00 00000aaa: NOT 00000aab: ADD 00000aac: DUP1 00000aad: NOT 00000aae: SWAP1 00000aaf: SWAP3 00000ab0: AND 00000ab1: SWAP2 00000ab2: AND 00000ab3: OR 00000ab4: SWAP1 00000ab5: MSTORE 00000ab6: PUSH1 0x40 00000ab8: DUP1 00000ab9: MLOAD 00000aba: SWAP3 00000abb: SWAP1 00000abc: SWAP5 00000abd: ADD 00000abe: DUP3 00000abf: SWAP1 00000ac0: SUB 00000ac1: SWAP1 00000ac2: SWAP2 00000ac3: KECCAK256 00000ac4: DUP7 00000ac5: MSTORE 00000ac6: DUP6 00000ac7: DUP2 00000ac8: ADD 00000ac9: SWAP7 00000aca: SWAP1 00000acb: SWAP7 00000acc: MSTORE 00000acd: POP 00000ace: SWAP3 00000acf: DUP4 00000ad0: ADD 00000ad1: PUSH1 0x00 00000ad3: SWAP1 00000ad4: DUP2 00000ad5: KECCAK256 00000ad6: DUP2 00000ad7: SWAP1 00000ad8: SSTORE 00000ad9: DUP4 00000ada: MLOAD 00000adb: PUSH1 0x00 00000add: DUP1 00000ade: MLOAD 00000adf: PUSH1 0x20 00000ae1: PUSH2 0x49ec 00000ae4: DUP4 00000ae5: CODECOPY 00000ae6: DUP2 00000ae7: MLOAD 00000ae8: SWAP2 00000ae9: MSTORE 00000aea: DUP2 00000aeb: DUP8 00000aec: ADD 00000aed: MSTORE 00000aee: PUSH1 0x01 00000af0: PUSH1 0xa0 00000af2: PUSH1 0x02 00000af4: EXP 00000af5: SUB 00000af6: DUP8 00000af7: AND 00000af8: PUSH1 0x60 00000afa: PUSH1 0x02 00000afc: EXP 00000afd: MUL 00000afe: PUSH1 0x28 00000b00: DUP3 00000b01: ADD 00000b02: MSTORE 00000b03: DUP5 00000b04: MLOAD 00000b05: DUP1 00000b06: DUP3 00000b07: SUB 00000b08: PUSH1 0x1c 00000b0a: ADD 00000b0b: DUP2 00000b0c: MSTORE 00000b0d: PUSH1 0x3c 00000b0f: SWAP1 00000b10: SWAP2 00000b11: ADD 00000b12: SWAP5 00000b13: DUP6 00000b14: SWAP1 00000b15: MSTORE 00000b16: DUP1 00000b17: MLOAD 00000b18: SWAP2 00000b19: SWAP6 00000b1a: DUP7 00000b1b: SWAP6 00000b1c: SWAP2 00000b1d: SWAP5 00000b1e: POP 00000b1f: SWAP1 00000b20: SWAP3 00000b21: POP 00000b22: DUP3 00000b23: SWAP2 00000b24: SWAP1 00000b25: DUP5 00000b26: ADD 00000b27: SWAP1 00000b28: DUP1 00000b29: DUP4 00000b2a: DUP4 00000b2b: JUMPDEST 00000b2c: PUSH1 0x20 00000b2e: DUP4 00000b2f: LT 00000b30: PUSH2 0x0b4a 00000b33: JUMPI 00000b34: DUP1 00000b35: MLOAD 00000b36: DUP3 00000b37: MSTORE 00000b38: PUSH1 0x1f 00000b3a: NOT 00000b3b: SWAP1 00000b3c: SWAP3 00000b3d: ADD 00000b3e: SWAP2 00000b3f: PUSH1 0x20 00000b41: SWAP2 00000b42: DUP3 00000b43: ADD 00000b44: SWAP2 00000b45: ADD 00000b46: PUSH2 0x0b2b 00000b49: JUMP 00000b4a: JUMPDEST 00000b4b: MLOAD 00000b4c: DUP2 00000b4d: MLOAD 00000b4e: PUSH1 0x20 00000b50: SWAP4 00000b51: DUP5 00000b52: SUB 00000b53: PUSH2 0x0100 00000b56: EXP 00000b57: PUSH1 0x00 00000b59: NOT 00000b5a: ADD 00000b5b: DUP1 00000b5c: NOT 00000b5d: SWAP1 00000b5e: SWAP3 00000b5f: AND 00000b60: SWAP2 00000b61: AND 00000b62: OR 00000b63: SWAP1 00000b64: MSTORE 00000b65: PUSH1 0x40 00000b67: DUP1 00000b68: MLOAD 00000b69: SWAP3 00000b6a: SWAP1 00000b6b: SWAP5 00000b6c: ADD 00000b6d: DUP3 00000b6e: SWAP1 00000b6f: SUB 00000b70: SWAP1 00000b71: SWAP2 00000b72: KECCAK256 00000b73: DUP7 00000b74: MSTORE 00000b75: DUP6 00000b76: DUP2 00000b77: ADD 00000b78: SWAP7 00000b79: SWAP1 00000b7a: SWAP7 00000b7b: MSTORE 00000b7c: POP 00000b7d: SWAP3 00000b7e: DUP4 00000b7f: ADD 00000b80: PUSH1 0x00 00000b82: SWAP1 00000b83: DUP2 00000b84: KECCAK256 00000b85: DUP2 00000b86: SWAP1 00000b87: SSTORE 00000b88: DUP4 00000b89: MLOAD 00000b8a: PUSH1 0x00 00000b8c: DUP1 00000b8d: MLOAD 00000b8e: PUSH1 0x20 00000b90: PUSH2 0x4a0c 00000b93: DUP4 00000b94: CODECOPY 00000b95: DUP2 00000b96: MLOAD 00000b97: SWAP2 00000b98: MSTORE 00000b99: DUP2 00000b9a: DUP8 00000b9b: ADD 00000b9c: MSTORE 00000b9d: PUSH1 0x01 00000b9f: PUSH1 0xa0 00000ba1: PUSH1 0x02 00000ba3: EXP 00000ba4: SUB 00000ba5: DUP8 00000ba6: AND 00000ba7: PUSH1 0x60 00000ba9: PUSH1 0x02 00000bab: EXP 00000bac: MUL 00000bad: PUSH1 0x28 00000baf: DUP3 00000bb0: ADD 00000bb1: MSTORE 00000bb2: DUP5 00000bb3: MLOAD 00000bb4: DUP1 00000bb5: DUP3 00000bb6: SUB 00000bb7: PUSH1 0x1c 00000bb9: ADD 00000bba: DUP2 00000bbb: MSTORE 00000bbc: PUSH1 0x3c 00000bbe: SWAP1 00000bbf: SWAP2 00000bc0: ADD 00000bc1: SWAP5 00000bc2: DUP6 00000bc3: SWAP1 00000bc4: MSTORE 00000bc5: DUP1 00000bc6: MLOAD 00000bc7: SWAP2 00000bc8: SWAP6 00000bc9: DUP7 00000bca: SWAP6 00000bcb: SWAP2 00000bcc: SWAP5 00000bcd: POP 00000bce: SWAP1 00000bcf: SWAP3 00000bd0: POP 00000bd1: DUP3 00000bd2: SWAP2 00000bd3: SWAP1 00000bd4: DUP5 00000bd5: ADD 00000bd6: SWAP1 00000bd7: DUP1 00000bd8: DUP4 00000bd9: DUP4 00000bda: JUMPDEST 00000bdb: PUSH1 0x20 00000bdd: DUP4 00000bde: LT 00000bdf: PUSH2 0x0bf9 00000be2: JUMPI 00000be3: DUP1 00000be4: MLOAD 00000be5: DUP3 00000be6: MSTORE 00000be7: PUSH1 0x1f 00000be9: NOT 00000bea: SWAP1 00000beb: SWAP3 00000bec: ADD 00000bed: SWAP2 00000bee: PUSH1 0x20 00000bf0: SWAP2 00000bf1: DUP3 00000bf2: ADD 00000bf3: SWAP2 00000bf4: ADD 00000bf5: PUSH2 0x0bda 00000bf8: JUMP 00000bf9: JUMPDEST 00000bfa: MLOAD 00000bfb: DUP2 00000bfc: MLOAD 00000bfd: PUSH1 0x20 00000bff: SWAP4 00000c00: DUP5 00000c01: SUB 00000c02: PUSH2 0x0100 00000c05: EXP 00000c06: PUSH1 0x00 00000c08: NOT 00000c09: ADD 00000c0a: DUP1 00000c0b: NOT 00000c0c: SWAP1 00000c0d: SWAP3 00000c0e: AND 00000c0f: SWAP2 00000c10: AND 00000c11: OR 00000c12: SWAP1 00000c13: MSTORE 00000c14: PUSH1 0x40 00000c16: DUP1 00000c17: MLOAD 00000c18: SWAP3 00000c19: SWAP1 00000c1a: SWAP5 00000c1b: ADD 00000c1c: DUP3 00000c1d: SWAP1 00000c1e: SUB 00000c1f: SWAP1 00000c20: SWAP2 00000c21: KECCAK256 00000c22: DUP7 00000c23: MSTORE 00000c24: DUP6 00000c25: DUP2 00000c26: ADD 00000c27: SWAP7 00000c28: SWAP1 00000c29: SWAP7 00000c2a: MSTORE 00000c2b: POP 00000c2c: SWAP3 00000c2d: DUP4 00000c2e: ADD 00000c2f: PUSH1 0x00 00000c31: SWAP1 00000c32: DUP2 00000c33: KECCAK256 00000c34: DUP2 00000c35: SWAP1 00000c36: SSTORE 00000c37: DUP4 00000c38: MLOAD 00000c39: PUSH1 0x00 00000c3b: DUP1 00000c3c: MLOAD 00000c3d: PUSH1 0x20 00000c3f: PUSH2 0x49cc 00000c42: DUP4 00000c43: CODECOPY 00000c44: DUP2 00000c45: MLOAD 00000c46: SWAP2 00000c47: MSTORE 00000c48: DUP2 00000c49: DUP8 00000c4a: ADD 00000c4b: MSTORE 00000c4c: PUSH1 0x01 00000c4e: PUSH1 0xa0 00000c50: PUSH1 0x02 00000c52: EXP 00000c53: SUB 00000c54: DUP8 00000c55: AND 00000c56: PUSH1 0x60 00000c58: PUSH1 0x02 00000c5a: EXP 00000c5b: MUL 00000c5c: PUSH1 0x33 00000c5e: DUP3 00000c5f: ADD 00000c60: MSTORE 00000c61: DUP5 00000c62: MLOAD 00000c63: DUP1 00000c64: DUP3 00000c65: SUB 00000c66: PUSH1 0x27 00000c68: ADD 00000c69: DUP2 00000c6a: MSTORE 00000c6b: PUSH1 0x47 00000c6d: SWAP1 00000c6e: SWAP2 00000c6f: ADD 00000c70: SWAP5 00000c71: DUP6 00000c72: SWAP1 00000c73: MSTORE 00000c74: DUP1 00000c75: MLOAD 00000c76: SWAP2 00000c77: SWAP6 00000c78: DUP7 00000c79: SWAP6 00000c7a: SWAP2 00000c7b: SWAP5 00000c7c: POP 00000c7d: SWAP1 00000c7e: SWAP3 00000c7f: POP 00000c80: DUP3 00000c81: SWAP2 00000c82: SWAP1 00000c83: DUP5 00000c84: ADD 00000c85: SWAP1 00000c86: DUP1 00000c87: DUP4 00000c88: DUP4 00000c89: JUMPDEST 00000c8a: PUSH1 0x20 00000c8c: DUP4 00000c8d: LT 00000c8e: PUSH2 0x0ca8 00000c91: JUMPI 00000c92: DUP1 00000c93: MLOAD 00000c94: DUP3 00000c95: MSTORE 00000c96: PUSH1 0x1f 00000c98: NOT 00000c99: SWAP1 00000c9a: SWAP3 00000c9b: ADD 00000c9c: SWAP2 00000c9d: PUSH1 0x20 00000c9f: SWAP2 00000ca0: DUP3 00000ca1: ADD 00000ca2: SWAP2 00000ca3: ADD 00000ca4: PUSH2 0x0c89 00000ca7: JUMP 00000ca8: JUMPDEST 00000ca9: MLOAD 00000caa: DUP2 00000cab: MLOAD 00000cac: PUSH1 0x20 00000cae: SWAP4 00000caf: DUP5 00000cb0: SUB 00000cb1: PUSH2 0x0100 00000cb4: EXP 00000cb5: PUSH1 0x00 00000cb7: NOT 00000cb8: ADD 00000cb9: DUP1 00000cba: NOT 00000cbb: SWAP1 00000cbc: SWAP3 00000cbd: AND 00000cbe: SWAP2 00000cbf: AND 00000cc0: OR 00000cc1: SWAP1 00000cc2: MSTORE 00000cc3: PUSH1 0x40 00000cc5: DUP1 00000cc6: MLOAD 00000cc7: SWAP3 00000cc8: SWAP1 00000cc9: SWAP5 00000cca: ADD 00000ccb: DUP3 00000ccc: SWAP1 00000ccd: SUB 00000cce: SWAP1 00000ccf: SWAP2 00000cd0: KECCAK256 00000cd1: DUP7 00000cd2: MSTORE 00000cd3: DUP6 00000cd4: DUP2 00000cd5: ADD 00000cd6: SWAP7 00000cd7: SWAP1 00000cd8: SWAP7 00000cd9: MSTORE 00000cda: POP 00000cdb: SWAP3 00000cdc: DUP4 00000cdd: ADD 00000cde: PUSH1 0x00 00000ce0: SWAP1 00000ce1: DUP2 00000ce2: KECCAK256 00000ce3: DUP2 00000ce4: SWAP1 00000ce5: SSTORE 00000ce6: DUP4 00000ce7: MLOAD 00000ce8: PUSH1 0x00 00000cea: DUP1 00000ceb: MLOAD 00000cec: PUSH1 0x20 00000cee: PUSH2 0x4a4c 00000cf1: DUP4 00000cf2: CODECOPY 00000cf3: DUP2 00000cf4: MLOAD 00000cf5: SWAP2 00000cf6: MSTORE 00000cf7: DUP2 00000cf8: DUP8 00000cf9: ADD 00000cfa: MSTORE 00000cfb: PUSH1 0x01 00000cfd: PUSH1 0xa0 00000cff: PUSH1 0x02 00000d01: EXP 00000d02: SUB 00000d03: DUP8 00000d04: AND 00000d05: PUSH1 0x60 00000d07: PUSH1 0x02 00000d09: EXP 00000d0a: MUL 00000d0b: PUSH1 0x31 00000d0d: DUP3 00000d0e: ADD 00000d0f: MSTORE 00000d10: DUP5 00000d11: MLOAD 00000d12: DUP1 00000d13: DUP3 00000d14: SUB 00000d15: PUSH1 0x25 00000d17: ADD 00000d18: DUP2 00000d19: MSTORE 00000d1a: PUSH1 0x45 00000d1c: SWAP1 00000d1d: SWAP2 00000d1e: ADD 00000d1f: SWAP5 00000d20: DUP6 00000d21: SWAP1 00000d22: MSTORE 00000d23: DUP1 00000d24: MLOAD 00000d25: SWAP2 00000d26: SWAP6 00000d27: DUP7 00000d28: SWAP6 00000d29: SWAP2 00000d2a: SWAP5 00000d2b: POP 00000d2c: SWAP1 00000d2d: SWAP3 00000d2e: POP 00000d2f: DUP3 00000d30: SWAP2 00000d31: SWAP1 00000d32: DUP5 00000d33: ADD 00000d34: SWAP1 00000d35: DUP1 00000d36: DUP4 00000d37: DUP4 00000d38: JUMPDEST 00000d39: PUSH1 0x20 00000d3b: DUP4 00000d3c: LT 00000d3d: PUSH2 0x0d57 00000d40: JUMPI 00000d41: DUP1 00000d42: MLOAD 00000d43: DUP3 00000d44: MSTORE 00000d45: PUSH1 0x1f 00000d47: NOT 00000d48: SWAP1 00000d49: SWAP3 00000d4a: ADD 00000d4b: SWAP2 00000d4c: PUSH1 0x20 00000d4e: SWAP2 00000d4f: DUP3 00000d50: ADD 00000d51: SWAP2 00000d52: ADD 00000d53: PUSH2 0x0d38 00000d56: JUMP 00000d57: JUMPDEST 00000d58: MLOAD 00000d59: DUP2 00000d5a: MLOAD 00000d5b: PUSH1 0x20 00000d5d: SWAP4 00000d5e: DUP5 00000d5f: SUB 00000d60: PUSH2 0x0100 00000d63: EXP 00000d64: PUSH1 0x00 00000d66: NOT 00000d67: ADD 00000d68: DUP1 00000d69: NOT 00000d6a: SWAP1 00000d6b: SWAP3 00000d6c: AND 00000d6d: SWAP2 00000d6e: AND 00000d6f: OR 00000d70: SWAP1 00000d71: MSTORE 00000d72: PUSH1 0x40 00000d74: DUP1 00000d75: MLOAD 00000d76: SWAP3 00000d77: SWAP1 00000d78: SWAP5 00000d79: ADD 00000d7a: DUP3 00000d7b: SWAP1 00000d7c: SUB 00000d7d: SWAP1 00000d7e: SWAP2 00000d7f: KECCAK256 00000d80: DUP7 00000d81: MSTORE 00000d82: DUP6 00000d83: ADD 00000d84: SWAP6 00000d85: SWAP1 00000d86: SWAP6 00000d87: MSTORE 00000d88: SWAP3 00000d89: SWAP1 00000d8a: SWAP3 00000d8b: ADD 00000d8c: PUSH1 0x00 00000d8e: SWAP1 00000d8f: DUP2 00000d90: KECCAK256 00000d91: DUP2 00000d92: SWAP1 00000d93: SSTORE 00000d94: PUSH2 0x0811 00000d97: SWAP4 00000d98: POP 00000d99: DUP5 00000d9a: SWAP3 00000d9b: POP 00000d9c: SWAP1 00000d9d: POP 00000d9e: PUSH2 0x27c0 00000da1: JUMP 00000da2: JUMPDEST 00000da3: PUSH2 0x0daa 00000da6: PUSH2 0x1911 00000da9: JUMP 00000daa: JUMPDEST 00000dab: PUSH1 0x01 00000dad: PUSH1 0xa0 00000daf: PUSH1 0x02 00000db1: EXP 00000db2: SUB 00000db3: AND 00000db4: CALLER 00000db5: EQ 00000db6: PUSH2 0x0dbe 00000db9: JUMPI 00000dba: PUSH1 0x00 00000dbc: DUP1 00000dbd: REVERT 00000dbe: JUMPDEST 00000dbf: PUSH2 0x0dc7 00000dc2: DUP2 00000dc3: PUSH2 0x2848 00000dc6: JUMP 00000dc7: JUMPDEST 00000dc8: POP 00000dc9: JUMP 00000dca: JUMPDEST 00000dcb: PUSH1 0x00 00000dcd: DUP1 00000dce: PUSH2 0x0dee 00000dd1: DUP4 00000dd2: PUSH2 0x0de2 00000dd5: DUP7 00000dd6: PUSH2 0x0ddd 00000dd9: PUSH2 0x141e 00000ddc: JUMP 00000ddd: JUMPDEST 00000dde: PUSH2 0x1d7d 00000de1: JUMP 00000de2: JUMPDEST 00000de3: SWAP1 00000de4: PUSH4 0xffffffff 00000de9: PUSH2 0x28d3 00000dec: AND 00000ded: JUMP 00000dee: JUMPDEST 00000def: SWAP1 00000df0: POP 00000df1: PUSH1 0x00 00000df3: PUSH2 0x0dfc 00000df6: PUSH1 0x00 00000df8: PUSH2 0x2505 00000dfb: JUMP 00000dfc: JUMPDEST 00000dfd: GT 00000dfe: DUP1 00000dff: ISZERO 00000e00: PUSH2 0x0e11 00000e03: JUMPI 00000e04: POP 00000e05: DUP1 00000e06: PUSH2 0x0e0e 00000e09: DUP6 00000e0a: PUSH2 0x2505 00000e0d: JUMP 00000e0e: JUMPDEST 00000e0f: LT 00000e10: ISZERO 00000e11: JUMPDEST 00000e12: DUP1 00000e13: ISZERO 00000e14: PUSH2 0x0e25 00000e17: JUMPI 00000e18: POP 00000e19: PUSH2 0x0e21 00000e1c: DUP5 00000e1d: PUSH2 0x0932 00000e20: JUMP 00000e21: JUMPDEST 00000e22: DUP4 00000e23: GT 00000e24: ISZERO 00000e25: JUMPDEST 00000e26: DUP1 00000e27: ISZERO 00000e28: PUSH2 0x0e39 00000e2b: JUMPI 00000e2c: POP 00000e2d: PUSH2 0x0e35 00000e30: DUP5 00000e31: PUSH2 0x1cd2 00000e34: JUMP 00000e35: JUMPDEST 00000e36: DUP4 00000e37: LT 00000e38: ISZERO 00000e39: JUMPDEST 00000e3a: SWAP5 00000e3b: SWAP4 00000e3c: POP 00000e3d: POP 00000e3e: POP 00000e3f: POP 00000e40: JUMP 00000e41: JUMPDEST 00000e42: PUSH2 0x0e49 00000e45: PUSH2 0x1eb6 00000e48: JUMP 00000e49: JUMPDEST 00000e4a: PUSH1 0x01 00000e4c: PUSH1 0xa0 00000e4e: PUSH1 0x02 00000e50: EXP 00000e51: SUB 00000e52: AND 00000e53: CALLER 00000e54: EQ 00000e55: PUSH2 0x0e5d 00000e58: JUMPI 00000e59: PUSH1 0x00 00000e5b: DUP1 00000e5c: REVERT 00000e5d: JUMPDEST 00000e5e: PUSH2 0x0e65 00000e61: PUSH2 0x18ba 00000e64: JUMP 00000e65: JUMPDEST 00000e66: PUSH1 0x01 00000e68: PUSH1 0xa0 00000e6a: PUSH1 0x02 00000e6c: EXP 00000e6d: SUB 00000e6e: AND 00000e6f: PUSH2 0x0e76 00000e72: PUSH2 0x28e0 00000e75: JUMP 00000e76: JUMPDEST 00000e77: PUSH1 0x01 00000e79: PUSH1 0xa0 00000e7b: PUSH1 0x02 00000e7d: EXP 00000e7e: SUB 00000e7f: AND 00000e80: EQ 00000e81: PUSH2 0x0e89 00000e84: JUMPI 00000e85: PUSH1 0x00 00000e87: DUP1 00000e88: REVERT 00000e89: JUMPDEST 00000e8a: PUSH2 0x0e92 00000e8d: DUP4 00000e8e: PUSH2 0x1018 00000e91: JUMP 00000e92: JUMPDEST 00000e93: ISZERO 00000e94: ISZERO 00000e95: PUSH2 0x0e9d 00000e98: JUMPI 00000e99: PUSH1 0x00 00000e9b: DUP1 00000e9c: REVERT 00000e9d: JUMPDEST 00000e9e: PUSH2 0x0ea8 00000ea1: DUP4 00000ea2: DUP4 00000ea3: DUP4 00000ea4: PUSH2 0x2958 00000ea7: JUMP 00000ea8: JUMPDEST 00000ea9: POP 00000eaa: POP 00000eab: POP 00000eac: JUMP 00000ead: JUMPDEST 00000eae: PUSH32 0x9ba5a09a13321d5fc0d3150bbf4489a02b9b881bf70e2fc6639c91e8c5ce714c 00000ecf: PUSH1 0x00 00000ed1: MSTORE 00000ed2: PUSH1 0x02 00000ed4: PUSH1 0x20 00000ed6: MSTORE 00000ed7: PUSH32 0x87f07cf898f772bd3ff661aa30d2354333eefbd852e374d9021ef7a3463e81fd 00000ef8: SLOAD 00000ef9: PUSH1 0x01 00000efb: PUSH1 0xa0 00000efd: PUSH1 0x02 00000eff: EXP 00000f00: SUB 00000f01: AND 00000f02: SWAP1 00000f03: JUMP 00000f04: JUMPDEST 00000f05: PUSH1 0x00 00000f07: DUP1 00000f08: PUSH1 0x00 00000f0a: DUP4 00000f0b: PUSH1 0x40 00000f0d: MLOAD 00000f0e: PUSH1 0x20 00000f10: ADD 00000f11: DUP1 00000f12: DUP1 00000f13: PUSH1 0x00 00000f15: DUP1 00000f16: MLOAD 00000f17: PUSH1 0x20 00000f19: PUSH2 0x4a4c 00000f1c: DUP4 00000f1d: CODECOPY 00000f1e: DUP2 00000f1f: MLOAD 00000f20: SWAP2 00000f21: MSTORE 00000f22: DUP2 00000f23: MSTORE 00000f24: POP 00000f25: PUSH1 0x11 00000f27: ADD 00000f28: DUP3 00000f29: PUSH1 0x01 00000f2b: PUSH1 0xa0 00000f2d: PUSH1 0x02 00000f2f: EXP 00000f30: SUB 00000f31: AND 00000f32: PUSH1 0x01 00000f34: PUSH1 0xa0 00000f36: PUSH1 0x02 00000f38: EXP 00000f39: SUB 00000f3a: AND 00000f3b: PUSH1 0x60 00000f3d: PUSH1 0x02 00000f3f: EXP 00000f40: MUL 00000f41: DUP2 00000f42: MSTORE 00000f43: PUSH1 0x14 00000f45: ADD 00000f46: SWAP2 00000f47: POP 00000f48: POP 00000f49: PUSH1 0x40 00000f4b: MLOAD 00000f4c: PUSH1 0x20 00000f4e: DUP2 00000f4f: DUP4 00000f50: SUB 00000f51: SUB 00000f52: DUP2 00000f53: MSTORE 00000f54: SWAP1 00000f55: PUSH1 0x40 00000f57: MSTORE 00000f58: PUSH1 0x40 00000f5a: MLOAD 00000f5b: DUP1 00000f5c: DUP3 00000f5d: DUP1 00000f5e: MLOAD 00000f5f: SWAP1 00000f60: PUSH1 0x20 00000f62: ADD 00000f63: SWAP1 00000f64: DUP1 00000f65: DUP4 00000f66: DUP4 00000f67: PUSH1 0x20 00000f69: DUP4 00000f6a: LT 00000f6b: PUSH2 0x09b4 00000f6e: JUMPI 00000f6f: DUP1 00000f70: MLOAD 00000f71: DUP3 00000f72: MSTORE 00000f73: PUSH1 0x1f 00000f75: NOT 00000f76: SWAP1 00000f77: SWAP3 00000f78: ADD 00000f79: SWAP2 00000f7a: PUSH1 0x20 00000f7c: SWAP2 00000f7d: DUP3 00000f7e: ADD 00000f7f: SWAP2 00000f80: ADD 00000f81: PUSH2 0x0995 00000f84: JUMP 00000f85: JUMPDEST 00000f86: PUSH1 0x00 00000f88: DUP1 00000f89: PUSH1 0x00 00000f8b: DUP4 00000f8c: PUSH1 0x40 00000f8e: MLOAD 00000f8f: PUSH1 0x20 00000f91: ADD 00000f92: DUP1 00000f93: DUP1 00000f94: PUSH32 0x6d65646961746f7242616c616e63650000000000000000000000000000000000 00000fb5: DUP2 00000fb6: MSTORE 00000fb7: POP 00000fb8: PUSH1 0x0f 00000fba: ADD 00000fbb: DUP3 00000fbc: PUSH1 0x01 00000fbe: PUSH1 0xa0 00000fc0: PUSH1 0x02 00000fc2: EXP 00000fc3: SUB 00000fc4: AND 00000fc5: PUSH1 0x01 00000fc7: PUSH1 0xa0 00000fc9: PUSH1 0x02 00000fcb: EXP 00000fcc: SUB 00000fcd: AND 00000fce: PUSH1 0x60 00000fd0: PUSH1 0x02 00000fd2: EXP 00000fd3: MUL 00000fd4: DUP2 00000fd5: MSTORE 00000fd6: PUSH1 0x14 00000fd8: ADD 00000fd9: SWAP2 00000fda: POP 00000fdb: POP 00000fdc: PUSH1 0x40 00000fde: MLOAD 00000fdf: PUSH1 0x20 00000fe1: DUP2 00000fe2: DUP4 00000fe3: SUB 00000fe4: SUB 00000fe5: DUP2 00000fe6: MSTORE 00000fe7: SWAP1 00000fe8: PUSH1 0x40 00000fea: MSTORE 00000feb: PUSH1 0x40 00000fed: MLOAD 00000fee: DUP1 00000fef: DUP3 00000ff0: DUP1 00000ff1: MLOAD 00000ff2: SWAP1 00000ff3: PUSH1 0x20 00000ff5: ADD 00000ff6: SWAP1 00000ff7: DUP1 00000ff8: DUP4 00000ff9: DUP4 00000ffa: PUSH1 0x20 00000ffc: DUP4 00000ffd: LT 00000ffe: PUSH2 0x09b4 00001001: JUMPI 00001002: DUP1 00001003: MLOAD 00001004: DUP3 00001005: MSTORE 00001006: PUSH1 0x1f 00001008: NOT 00001009: SWAP1 0000100a: SWAP3 0000100b: ADD 0000100c: SWAP2 0000100d: PUSH1 0x20 0000100f: SWAP2 00001010: DUP3 00001011: ADD 00001012: SWAP2 00001013: ADD 00001014: PUSH2 0x0995 00001017: JUMP 00001018: JUMPDEST 00001019: PUSH1 0x00 0000101b: DUP1 0000101c: PUSH2 0x1024 0000101f: DUP4 00001020: PUSH2 0x1cd2 00001023: JUMP 00001024: JUMPDEST 00001025: GT 00001026: SWAP3 00001027: SWAP2 00001028: POP 00001029: POP 0000102a: JUMP 0000102b: JUMPDEST 0000102c: PUSH2 0x1033 0000102f: PUSH2 0x1911 00001032: JUMP 00001033: JUMPDEST 00001034: PUSH1 0x01 00001036: PUSH1 0xa0 00001038: PUSH1 0x02 0000103a: EXP 0000103b: SUB 0000103c: AND 0000103d: CALLER 0000103e: EQ 0000103f: PUSH2 0x1047 00001042: JUMPI 00001043: PUSH1 0x00 00001045: DUP1 00001046: REVERT 00001047: JUMPDEST 00001048: PUSH2 0x1050 0000104b: DUP3 0000104c: PUSH2 0x1018 0000104f: JUMP 00001050: JUMPDEST 00001051: ISZERO 00001052: ISZERO 00001053: PUSH2 0x105b 00001056: JUMPI 00001057: PUSH1 0x00 00001059: DUP1 0000105a: REVERT 0000105b: JUMPDEST 0000105c: PUSH2 0x1064 0000105f: DUP3 00001060: PUSH2 0x0932 00001063: JUMP 00001064: JUMPDEST 00001065: DUP2 00001066: GT 00001067: DUP1 00001068: PUSH2 0x106f 0000106b: JUMPI 0000106c: POP 0000106d: DUP1 0000106e: ISZERO 0000106f: JUMPDEST 00001070: ISZERO 00001071: ISZERO 00001072: PUSH2 0x107a 00001075: JUMPI 00001076: PUSH1 0x00 00001078: DUP1 00001079: REVERT 0000107a: JUMPDEST 0000107b: DUP1 0000107c: PUSH1 0x00 0000107e: DUP1 0000107f: DUP5 00001080: PUSH1 0x40 00001082: MLOAD 00001083: PUSH1 0x20 00001085: ADD 00001086: DUP1 00001087: DUP1 00001088: PUSH1 0x00 0000108a: DUP1 0000108b: MLOAD 0000108c: PUSH1 0x20 0000108e: PUSH2 0x4a2c 00001091: DUP4 00001092: CODECOPY 00001093: DUP2 00001094: MLOAD 00001095: SWAP2 00001096: MSTORE 00001097: DUP2 00001098: MSTORE 00001099: POP 0000109a: PUSH1 0x0a 0000109c: ADD 0000109d: DUP3 0000109e: PUSH1 0x01 000010a0: PUSH1 0xa0 000010a2: PUSH1 0x02 000010a4: EXP 000010a5: SUB 000010a6: AND 000010a7: PUSH1 0x01 000010a9: PUSH1 0xa0 000010ab: PUSH1 0x02 000010ad: EXP 000010ae: SUB 000010af: AND 000010b0: PUSH1 0x60 000010b2: PUSH1 0x02 000010b4: EXP 000010b5: MUL 000010b6: DUP2 000010b7: MSTORE 000010b8: PUSH1 0x14 000010ba: ADD 000010bb: SWAP2 000010bc: POP 000010bd: POP 000010be: PUSH1 0x40 000010c0: MLOAD 000010c1: PUSH1 0x20 000010c3: DUP2 000010c4: DUP4 000010c5: SUB 000010c6: SUB 000010c7: DUP2 000010c8: MSTORE 000010c9: SWAP1 000010ca: PUSH1 0x40 000010cc: MSTORE 000010cd: PUSH1 0x40 000010cf: MLOAD 000010d0: DUP1 000010d1: DUP3 000010d2: DUP1 000010d3: MLOAD 000010d4: SWAP1 000010d5: PUSH1 0x20 000010d7: ADD 000010d8: SWAP1 000010d9: DUP1 000010da: DUP4 000010db: DUP4 000010dc: JUMPDEST 000010dd: PUSH1 0x20 000010df: DUP4 000010e0: LT 000010e1: PUSH2 0x10fb 000010e4: JUMPI 000010e5: DUP1 000010e6: MLOAD 000010e7: DUP3 000010e8: MSTORE 000010e9: PUSH1 0x1f 000010eb: NOT 000010ec: SWAP1 000010ed: SWAP3 000010ee: ADD 000010ef: SWAP2 000010f0: PUSH1 0x20 000010f2: SWAP2 000010f3: DUP3 000010f4: ADD 000010f5: SWAP2 000010f6: ADD 000010f7: PUSH2 0x10dc 000010fa: JUMP 000010fb: JUMPDEST 000010fc: MLOAD 000010fd: DUP2 000010fe: MLOAD 000010ff: PUSH1 0x20 00001101: SWAP4 00001102: DUP5 00001103: SUB 00001104: PUSH2 0x0100 00001107: EXP 00001108: PUSH1 0x00 0000110a: NOT 0000110b: ADD 0000110c: DUP1 0000110d: NOT 0000110e: SWAP1 0000110f: SWAP3 00001110: AND 00001111: SWAP2 00001112: AND 00001113: OR 00001114: SWAP1 00001115: MSTORE 00001116: PUSH1 0x40 00001118: DUP1 00001119: MLOAD 0000111a: SWAP3 0000111b: SWAP1 0000111c: SWAP5 0000111d: ADD 0000111e: DUP3 0000111f: SWAP1 00001120: SUB 00001121: SWAP1 00001122: SWAP2 00001123: KECCAK256 00001124: DUP7 00001125: MSTORE 00001126: DUP6 00001127: DUP2 00001128: ADD 00001129: SWAP7 0000112a: SWAP1 0000112b: SWAP7 0000112c: MSTORE 0000112d: POP 0000112e: SWAP3 0000112f: DUP4 00001130: ADD 00001131: PUSH1 0x00 00001133: KECCAK256 00001134: SWAP5 00001135: SWAP1 00001136: SWAP5 00001137: SSTORE 00001138: POP 00001139: DUP1 0000113a: MLOAD 0000113b: DUP5 0000113c: DUP2 0000113d: MSTORE 0000113e: SWAP1 0000113f: MLOAD 00001140: PUSH1 0x01 00001142: PUSH1 0xa0 00001144: PUSH1 0x02 00001146: EXP 00001147: SUB 00001148: DUP7 00001149: AND 0000114a: SWAP4 0000114b: POP 0000114c: PUSH32 0xca0b3dabefdbd8c72c0a9cf4a6e9d107da897abf036ef3f3f3b010cdd2594159 0000116d: SWAP3 0000116e: SWAP2 0000116f: DUP2 00001170: SWAP1 00001171: SUB 00001172: SWAP1 00001173: SWAP2 00001174: ADD 00001175: SWAP1 00001176: LOG2 00001177: POP 00001178: POP 00001179: JUMP 0000117a: JUMPDEST 0000117b: PUSH1 0x40 0000117d: DUP1 0000117e: MLOAD 0000117f: PUSH1 0x04 00001181: DUP2 00001182: MSTORE 00001183: PUSH1 0x24 00001185: DUP2 00001186: ADD 00001187: DUP3 00001188: MSTORE 00001189: PUSH1 0x20 0000118b: DUP2 0000118c: ADD 0000118d: DUP1 0000118e: MLOAD 0000118f: PUSH1 0x01 00001191: PUSH1 0xe0 00001193: PUSH1 0x02 00001195: EXP 00001196: SUB 00001197: AND 00001198: PUSH32 0x6fde820200000000000000000000000000000000000000000000000000000000 000011b9: OR 000011ba: DUP2 000011bb: MSTORE 000011bc: SWAP2 000011bd: MLOAD 000011be: DUP2 000011bf: MLOAD 000011c0: PUSH1 0x00 000011c2: SWAP4 000011c3: ADDRESS 000011c4: SWAP4 000011c5: SWAP3 000011c6: SWAP2 000011c7: DUP3 000011c8: SWAP2 000011c9: SWAP1 000011ca: DUP1 000011cb: DUP4 000011cc: DUP4 000011cd: DUP10 000011ce: JUMPDEST 000011cf: DUP4 000011d0: DUP2 000011d1: LT 000011d2: ISZERO 000011d3: PUSH2 0x11e6 000011d6: JUMPI 000011d7: DUP2 000011d8: DUP2 000011d9: ADD 000011da: MLOAD 000011db: DUP4 000011dc: DUP3 000011dd: ADD 000011de: MSTORE 000011df: PUSH1 0x20 000011e1: ADD 000011e2: PUSH2 0x11ce 000011e5: JUMP 000011e6: JUMPDEST 000011e7: POP 000011e8: POP 000011e9: POP 000011ea: POP 000011eb: SWAP1 000011ec: POP 000011ed: SWAP1 000011ee: DUP2 000011ef: ADD 000011f0: SWAP1 000011f1: PUSH1 0x1f 000011f3: AND 000011f4: DUP1 000011f5: ISZERO 000011f6: PUSH2 0x1213 000011f9: JUMPI 000011fa: DUP1 000011fb: DUP3 000011fc: SUB 000011fd: DUP1 000011fe: MLOAD 000011ff: PUSH1 0x01 00001201: DUP4 00001202: PUSH1 0x20 00001204: SUB 00001205: PUSH2 0x0100 00001208: EXP 00001209: SUB 0000120a: NOT 0000120b: AND 0000120c: DUP2 0000120d: MSTORE 0000120e: PUSH1 0x20 00001210: ADD 00001211: SWAP2 00001212: POP 00001213: JUMPDEST 00001214: POP 00001215: SWAP2 00001216: POP 00001217: POP 00001218: PUSH1 0x00 0000121a: PUSH1 0x40 0000121c: MLOAD 0000121d: DUP1 0000121e: DUP4 0000121f: SUB 00001220: DUP2 00001221: PUSH1 0x00 00001223: DUP7 00001224: GAS 00001225: CALL 00001226: SWAP2 00001227: POP 00001228: POP 00001229: ISZERO 0000122a: DUP1 0000122b: PUSH2 0x12a5 0000122e: JUMPI 0000122f: POP 00001230: ADDRESS 00001231: PUSH1 0x01 00001233: PUSH1 0xa0 00001235: PUSH1 0x02 00001237: EXP 00001238: SUB 00001239: AND 0000123a: PUSH4 0x6fde8202 0000123f: PUSH1 0x40 00001241: MLOAD 00001242: DUP2 00001243: PUSH4 0xffffffff 00001248: AND 00001249: PUSH1 0xe0 0000124b: PUSH1 0x02 0000124d: EXP 0000124e: MUL 0000124f: DUP2 00001250: MSTORE 00001251: PUSH1 0x04 00001253: ADD 00001254: PUSH1 0x20 00001256: PUSH1 0x40 00001258: MLOAD 00001259: DUP1 0000125a: DUP4 0000125b: SUB 0000125c: DUP2 0000125d: PUSH1 0x00 0000125f: DUP8 00001260: DUP1 00001261: EXTCODESIZE 00001262: ISZERO 00001263: DUP1 00001264: ISZERO 00001265: PUSH2 0x126d 00001268: JUMPI 00001269: PUSH1 0x00 0000126b: DUP1 0000126c: REVERT 0000126d: JUMPDEST 0000126e: POP 0000126f: GAS 00001270: CALL 00001271: ISZERO 00001272: DUP1 00001273: ISZERO 00001274: PUSH2 0x1281 00001277: JUMPI 00001278: RETURNDATASIZE 00001279: PUSH1 0x00 0000127b: DUP1 0000127c: RETURNDATACOPY 0000127d: RETURNDATASIZE 0000127e: PUSH1 0x00 00001280: REVERT 00001281: JUMPDEST 00001282: POP 00001283: POP 00001284: POP 00001285: POP 00001286: PUSH1 0x40 00001288: MLOAD 00001289: RETURNDATASIZE 0000128a: PUSH1 0x20 0000128c: DUP2 0000128d: LT 0000128e: ISZERO 0000128f: PUSH2 0x1297 00001292: JUMPI 00001293: PUSH1 0x00 00001295: DUP1 00001296: REVERT 00001297: JUMPDEST 00001298: POP 00001299: MLOAD 0000129a: PUSH1 0x01 0000129c: PUSH1 0xa0 0000129e: PUSH1 0x02 000012a0: EXP 000012a1: SUB 000012a2: AND 000012a3: CALLER 000012a4: EQ 000012a5: JUMPDEST 000012a6: DUP1 000012a7: PUSH2 0x12af 000012aa: JUMPI 000012ab: POP 000012ac: CALLER 000012ad: ADDRESS 000012ae: EQ 000012af: JUMPDEST 000012b0: ISZERO 000012b1: ISZERO 000012b2: PUSH2 0x12ba 000012b5: JUMPI 000012b6: PUSH1 0x00 000012b8: DUP1 000012b9: REVERT 000012ba: JUMPDEST 000012bb: PUSH2 0x12c2 000012be: PUSH2 0x1377 000012c1: JUMP 000012c2: JUMPDEST 000012c3: ISZERO 000012c4: PUSH2 0x12cc 000012c7: JUMPI 000012c8: PUSH1 0x00 000012ca: DUP1 000012cb: REVERT 000012cc: JUMPDEST 000012cd: PUSH1 0x01 000012cf: PUSH1 0xa0 000012d1: PUSH1 0x02 000012d3: EXP 000012d4: SUB 000012d5: DUP3 000012d6: AND 000012d7: ISZERO 000012d8: ISZERO 000012d9: PUSH2 0x12e1 000012dc: JUMPI 000012dd: PUSH1 0x00 000012df: DUP1 000012e0: REVERT 000012e1: JUMPDEST 000012e2: PUSH2 0x12ea 000012e5: DUP8 000012e6: PUSH2 0x2848 000012e9: JUMP 000012ea: JUMPDEST 000012eb: PUSH2 0x12f3 000012ee: DUP7 000012ef: PUSH2 0x2994 000012f2: JUMP 000012f3: JUMPDEST 000012f4: PUSH2 0x1321 000012f7: PUSH1 0x00 000012f9: DUP7 000012fa: PUSH1 0x03 000012fc: DUP1 000012fd: PUSH1 0x20 000012ff: MUL 00001300: PUSH1 0x40 00001302: MLOAD 00001303: SWAP1 00001304: DUP2 00001305: ADD 00001306: PUSH1 0x40 00001308: MSTORE 00001309: DUP1 0000130a: SWAP3 0000130b: SWAP2 0000130c: SWAP1 0000130d: DUP3 0000130e: PUSH1 0x03 00001310: PUSH1 0x20 00001312: MUL 00001313: DUP1 00001314: DUP3 00001315: DUP5 00001316: CALLDATACOPY 00001317: POP 00001318: PUSH2 0x2a0b 0000131b: SWAP4 0000131c: POP 0000131d: POP 0000131e: POP 0000131f: POP 00001320: JUMP 00001321: JUMPDEST 00001322: PUSH1 0x40 00001324: DUP1 00001325: MLOAD 00001326: DUP1 00001327: DUP3 00001328: ADD 00001329: DUP3 0000132a: MSTORE 0000132b: PUSH2 0x134a 0000132e: SWAP2 0000132f: PUSH1 0x00 00001331: SWAP2 00001332: SWAP1 00001333: DUP8 00001334: SWAP1 00001335: PUSH1 0x02 00001337: SWAP1 00001338: DUP4 00001339: SWAP1 0000133a: DUP4 0000133b: SWAP1 0000133c: DUP1 0000133d: DUP3 0000133e: DUP5 0000133f: CALLDATACOPY 00001340: POP 00001341: PUSH2 0x2cab 00001344: SWAP4 00001345: POP 00001346: POP 00001347: POP 00001348: POP 00001349: JUMP 0000134a: JUMPDEST 0000134b: PUSH2 0x1353 0000134e: DUP4 0000134f: PUSH2 0x2e5a 00001352: JUMP 00001353: JUMPDEST 00001354: PUSH2 0x135c 00001357: DUP3 00001358: PUSH2 0x2ebb 0000135b: JUMP 0000135c: JUMPDEST 0000135d: PUSH2 0x1364 00001360: PUSH2 0x2f7d 00001363: JUMP 00001364: JUMPDEST 00001365: PUSH2 0x136c 00001368: PUSH2 0x1377 0000136b: JUMP 0000136c: JUMPDEST 0000136d: SWAP8 0000136e: SWAP7 0000136f: POP 00001370: POP 00001371: POP 00001372: POP 00001373: POP 00001374: POP 00001375: POP 00001376: JUMP 00001377: JUMPDEST 00001378: PUSH32 0x0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba 00001399: PUSH1 0x00 0000139b: MSTORE 0000139c: PUSH1 0x04 0000139e: PUSH1 0x20 000013a0: MSTORE 000013a1: PUSH32 0x078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc 000013c2: SLOAD 000013c3: PUSH1 0xff 000013c5: AND 000013c6: SWAP1 000013c7: JUMP 000013c8: JUMPDEST 000013c9: PUSH1 0x00 000013cb: DUP1 000013cc: PUSH2 0x13e0 000013cf: DUP4 000013d0: PUSH2 0x0de2 000013d3: DUP7 000013d4: PUSH2 0x13db 000013d7: PUSH2 0x141e 000013da: JUMP 000013db: JUMPDEST 000013dc: PUSH2 0x240b 000013df: JUMP 000013e0: JUMPDEST 000013e1: SWAP1 000013e2: POP 000013e3: PUSH1 0x00 000013e5: PUSH2 0x13ee 000013e8: PUSH1 0x00 000013ea: PUSH2 0x1427 000013ed: JUMP 000013ee: JUMPDEST 000013ef: GT 000013f0: DUP1 000013f1: ISZERO 000013f2: PUSH2 0x1403 000013f5: JUMPI 000013f6: POP 000013f7: DUP1 000013f8: PUSH2 0x1400 000013fb: DUP6 000013fc: PUSH2 0x1427 000013ff: JUMP 00001400: JUMPDEST 00001401: LT 00001402: ISZERO 00001403: JUMPDEST 00001404: DUP1 00001405: ISZERO 00001406: PUSH2 0x0e39 00001409: JUMPI 0000140a: POP 0000140b: PUSH2 0x1413 0000140e: DUP5 0000140f: PUSH2 0x0f04 00001412: JUMP 00001413: JUMPDEST 00001414: SWAP1 00001415: SWAP3 00001416: GT 00001417: ISZERO 00001418: SWAP4 00001419: SWAP3 0000141a: POP 0000141b: POP 0000141c: POP 0000141d: JUMP 0000141e: JUMPDEST 0000141f: PUSH3 0x015180 00001423: TIMESTAMP 00001424: DIV 00001425: SWAP1 00001426: JUMP 00001427: JUMPDEST 00001428: PUSH1 0x00 0000142a: DUP1 0000142b: PUSH1 0x00 0000142d: DUP4 0000142e: PUSH1 0x40 00001430: MLOAD 00001431: PUSH1 0x20 00001433: ADD 00001434: DUP1 00001435: DUP1 00001436: PUSH1 0x00 00001438: DUP1 00001439: MLOAD 0000143a: PUSH1 0x20 0000143c: PUSH2 0x49cc 0000143f: DUP4 00001440: CODECOPY 00001441: DUP2 00001442: MLOAD 00001443: SWAP2 00001444: MSTORE 00001445: DUP2 00001446: MSTORE 00001447: POP 00001448: PUSH1 0x13 0000144a: ADD 0000144b: DUP3 0000144c: PUSH1 0x01 0000144e: PUSH1 0xa0 00001450: PUSH1 0x02 00001452: EXP 00001453: SUB 00001454: AND 00001455: PUSH1 0x01 00001457: PUSH1 0xa0 00001459: PUSH1 0x02 0000145b: EXP 0000145c: SUB 0000145d: AND 0000145e: PUSH1 0x60 00001460: PUSH1 0x02 00001462: EXP 00001463: MUL 00001464: DUP2 00001465: MSTORE 00001466: PUSH1 0x14 00001468: ADD 00001469: SWAP2 0000146a: POP 0000146b: POP 0000146c: PUSH1 0x40 0000146e: MLOAD 0000146f: PUSH1 0x20 00001471: DUP2 00001472: DUP4 00001473: SUB 00001474: SUB 00001475: DUP2 00001476: MSTORE 00001477: SWAP1 00001478: PUSH1 0x40 0000147a: MSTORE 0000147b: PUSH1 0x40 0000147d: MLOAD 0000147e: DUP1 0000147f: DUP3 00001480: DUP1 00001481: MLOAD 00001482: SWAP1 00001483: PUSH1 0x20 00001485: ADD 00001486: SWAP1 00001487: DUP1 00001488: DUP4 00001489: DUP4 0000148a: PUSH1 0x20 0000148c: DUP4 0000148d: LT 0000148e: PUSH2 0x09b4 00001491: JUMPI 00001492: DUP1 00001493: MLOAD 00001494: DUP3 00001495: MSTORE 00001496: PUSH1 0x1f 00001498: NOT 00001499: SWAP1 0000149a: SWAP3 0000149b: ADD 0000149c: SWAP2 0000149d: PUSH1 0x20 0000149f: SWAP2 000014a0: DUP3 000014a1: ADD 000014a2: SWAP2 000014a3: ADD 000014a4: PUSH2 0x0995 000014a7: JUMP 000014a8: JUMPDEST 000014a9: PUSH32 0xb1516c2600000000000000000000000000000000000000000000000000000000 000014ca: SWAP1 000014cb: JUMP 000014cc: JUMPDEST 000014cd: PUSH1 0x00 000014cf: PUSH1 0x04 000014d1: PUSH1 0x00 000014d3: DUP4 000014d4: PUSH1 0x40 000014d6: MLOAD 000014d7: PUSH1 0x20 000014d9: ADD 000014da: DUP1 000014db: DUP1 000014dc: PUSH32 0x6d65737361676546697865640000000000000000000000000000000000000000 000014fd: DUP2 000014fe: MSTORE 000014ff: POP 00001500: PUSH1 0x0c 00001502: ADD 00001503: DUP3 00001504: PUSH1 0x00 00001506: NOT 00001507: AND 00001508: PUSH1 0x00 0000150a: NOT 0000150b: AND 0000150c: DUP2 0000150d: MSTORE 0000150e: PUSH1 0x20 00001510: ADD 00001511: SWAP2 00001512: POP 00001513: POP 00001514: PUSH1 0x40 00001516: MLOAD 00001517: PUSH1 0x20 00001519: DUP2 0000151a: DUP4 0000151b: SUB 0000151c: SUB 0000151d: DUP2 0000151e: MSTORE 0000151f: SWAP1 00001520: PUSH1 0x40 00001522: MSTORE 00001523: PUSH1 0x40 00001525: MLOAD 00001526: DUP1 00001527: DUP3 00001528: DUP1 00001529: MLOAD 0000152a: SWAP1 0000152b: PUSH1 0x20 0000152d: ADD 0000152e: SWAP1 0000152f: DUP1 00001530: DUP4 00001531: DUP4 00001532: JUMPDEST 00001533: PUSH1 0x20 00001535: DUP4 00001536: LT 00001537: PUSH2 0x1551 0000153a: JUMPI 0000153b: DUP1 0000153c: MLOAD 0000153d: DUP3 0000153e: MSTORE 0000153f: PUSH1 0x1f 00001541: NOT 00001542: SWAP1 00001543: SWAP3 00001544: ADD 00001545: SWAP2 00001546: PUSH1 0x20 00001548: SWAP2 00001549: DUP3 0000154a: ADD 0000154b: SWAP2 0000154c: ADD 0000154d: PUSH2 0x1532 00001550: JUMP 00001551: JUMPDEST 00001552: MLOAD 00001553: DUP2 00001554: MLOAD 00001555: PUSH1 0x20 00001557: SWAP4 00001558: DUP5 00001559: SUB 0000155a: PUSH2 0x0100 0000155d: EXP 0000155e: PUSH1 0x00 00001560: NOT 00001561: ADD 00001562: DUP1 00001563: NOT 00001564: SWAP1 00001565: SWAP3 00001566: AND 00001567: SWAP2 00001568: AND 00001569: OR 0000156a: SWAP1 0000156b: MSTORE 0000156c: PUSH1 0x40 0000156e: DUP1 0000156f: MLOAD 00001570: SWAP3 00001571: SWAP1 00001572: SWAP5 00001573: ADD 00001574: DUP3 00001575: SWAP1 00001576: SUB 00001577: SWAP1 00001578: SWAP2 00001579: KECCAK256 0000157a: DUP7 0000157b: MSTORE 0000157c: DUP6 0000157d: ADD 0000157e: SWAP6 0000157f: SWAP1 00001580: SWAP6 00001581: MSTORE 00001582: SWAP3 00001583: SWAP1 00001584: SWAP3 00001585: ADD 00001586: PUSH1 0x00 00001588: KECCAK256 00001589: SLOAD 0000158a: PUSH1 0xff 0000158c: AND 0000158d: SWAP6 0000158e: SWAP5 0000158f: POP 00001590: POP 00001591: POP 00001592: POP 00001593: POP 00001594: JUMP 00001595: JUMPDEST 00001596: ADDRESS 00001597: PUSH1 0x01 00001599: PUSH1 0xa0 0000159b: PUSH1 0x02 0000159d: EXP 0000159e: SUB 0000159f: AND 000015a0: PUSH4 0x6fde8202 000015a5: PUSH1 0x40 000015a7: MLOAD 000015a8: DUP2 000015a9: PUSH4 0xffffffff 000015ae: AND 000015af: PUSH1 0xe0 000015b1: PUSH1 0x02 000015b3: EXP 000015b4: MUL 000015b5: DUP2 000015b6: MSTORE 000015b7: PUSH1 0x04 000015b9: ADD 000015ba: PUSH1 0x20 000015bc: PUSH1 0x40 000015be: MLOAD 000015bf: DUP1 000015c0: DUP4 000015c1: SUB 000015c2: DUP2 000015c3: PUSH1 0x00 000015c5: DUP8 000015c6: DUP1 000015c7: EXTCODESIZE 000015c8: ISZERO 000015c9: DUP1 000015ca: ISZERO 000015cb: PUSH2 0x15d3 000015ce: JUMPI 000015cf: PUSH1 0x00 000015d1: DUP1 000015d2: REVERT 000015d3: JUMPDEST 000015d4: POP 000015d5: GAS 000015d6: CALL 000015d7: ISZERO 000015d8: DUP1 000015d9: ISZERO 000015da: PUSH2 0x15e7 000015dd: JUMPI 000015de: RETURNDATASIZE 000015df: PUSH1 0x00 000015e1: DUP1 000015e2: RETURNDATACOPY 000015e3: RETURNDATASIZE 000015e4: PUSH1 0x00 000015e6: REVERT 000015e7: JUMPDEST 000015e8: POP 000015e9: POP 000015ea: POP 000015eb: POP 000015ec: PUSH1 0x40 000015ee: MLOAD 000015ef: RETURNDATASIZE 000015f0: PUSH1 0x20 000015f2: DUP2 000015f3: LT 000015f4: ISZERO 000015f5: PUSH2 0x15fd 000015f8: JUMPI 000015f9: PUSH1 0x00 000015fb: DUP1 000015fc: REVERT 000015fd: JUMPDEST 000015fe: POP 000015ff: MLOAD 00001600: PUSH1 0x01 00001602: PUSH1 0xa0 00001604: PUSH1 0x02 00001606: EXP 00001607: SUB 00001608: AND 00001609: CALLER 0000160a: EQ 0000160b: PUSH2 0x1613 0000160e: JUMPI 0000160f: PUSH1 0x00 00001611: DUP1 00001612: REVERT 00001613: JUMPDEST 00001614: DUP1 00001615: PUSH1 0x01 00001617: PUSH1 0xa0 00001619: PUSH1 0x02 0000161b: EXP 0000161c: SUB 0000161d: DUP2 0000161e: AND 0000161f: ISZERO 00001620: ISZERO 00001621: PUSH2 0x1629 00001624: JUMPI 00001625: PUSH1 0x00 00001627: DUP1 00001628: REVERT 00001629: JUMPDEST 0000162a: PUSH1 0x01 0000162c: PUSH1 0xa0 0000162e: PUSH1 0x02 00001630: EXP 00001631: SUB 00001632: DUP4 00001633: AND 00001634: ISZERO 00001635: DUP1 00001636: PUSH2 0x1645 00001639: JUMPI 0000163a: POP 0000163b: PUSH2 0x1643 0000163e: DUP4 0000163f: PUSH2 0x1018 00001642: JUMP 00001643: JUMPDEST 00001644: ISZERO 00001645: JUMPDEST 00001646: ISZERO 00001647: ISZERO 00001648: PUSH2 0x1650 0000164b: JUMPI 0000164c: PUSH1 0x00 0000164e: DUP1 0000164f: REVERT 00001650: JUMPDEST 00001651: PUSH2 0x0ea8 00001654: DUP4 00001655: DUP4 00001656: PUSH2 0x2fd4 00001659: JUMP 0000165a: JUMPDEST 0000165b: PUSH2 0x1662 0000165e: PUSH2 0x1911 00001661: JUMP 00001662: JUMPDEST 00001663: PUSH1 0x01 00001665: PUSH1 0xa0 00001667: PUSH1 0x02 00001669: EXP 0000166a: SUB 0000166b: AND 0000166c: CALLER 0000166d: EQ 0000166e: PUSH2 0x1676 00001671: JUMPI 00001672: PUSH1 0x00 00001674: DUP1 00001675: REVERT 00001676: JUMPDEST 00001677: PUSH2 0x0dc7 0000167a: DUP2 0000167b: PUSH2 0x2994 0000167e: JUMP 0000167f: JUMPDEST 00001680: PUSH1 0x00 00001682: DUP1 00001683: PUSH1 0x00 00001685: DUP1 00001686: PUSH1 0x00 00001688: PUSH2 0x1690 0000168b: DUP7 0000168c: PUSH2 0x0932 0000168f: JUMP 00001690: JUMPDEST 00001691: SWAP4 00001692: POP 00001693: PUSH2 0x169b 00001696: DUP7 00001697: PUSH2 0x2505 0000169a: JUMP 0000169b: JUMPDEST 0000169c: SWAP3 0000169d: POP 0000169e: PUSH2 0x16a9 000016a1: DUP7 000016a2: PUSH2 0x0ddd 000016a5: PUSH2 0x141e 000016a8: JUMP 000016a9: JUMPDEST 000016aa: SWAP2 000016ab: POP 000016ac: DUP2 000016ad: DUP4 000016ae: GT 000016af: PUSH2 0x16b9 000016b2: JUMPI 000016b3: PUSH1 0x00 000016b5: PUSH2 0x16bd 000016b8: JUMP 000016b9: JUMPDEST 000016ba: DUP2 000016bb: DUP4 000016bc: SUB 000016bd: JUMPDEST 000016be: SWAP1 000016bf: POP 000016c0: DUP1 000016c1: DUP5 000016c2: LT 000016c3: PUSH2 0x16cc 000016c6: JUMPI 000016c7: DUP1 000016c8: PUSH2 0x16ce 000016cb: JUMP 000016cc: JUMPDEST 000016cd: DUP4 000016ce: JUMPDEST 000016cf: SWAP7 000016d0: SWAP6 000016d1: POP 000016d2: POP 000016d3: POP 000016d4: POP 000016d5: POP 000016d6: POP 000016d7: JUMP 000016d8: JUMPDEST 000016d9: PUSH2 0x16e0 000016dc: PUSH2 0x1911 000016df: JUMP 000016e0: JUMPDEST 000016e1: PUSH1 0x01 000016e3: PUSH1 0xa0 000016e5: PUSH1 0x02 000016e7: EXP 000016e8: SUB 000016e9: AND 000016ea: CALLER 000016eb: EQ 000016ec: PUSH2 0x16f4 000016ef: JUMPI 000016f0: PUSH1 0x00 000016f2: DUP1 000016f3: REVERT 000016f4: JUMPDEST 000016f5: PUSH2 0x16fd 000016f8: DUP3 000016f9: PUSH2 0x1018 000016fc: JUMP 000016fd: JUMPDEST 000016fe: ISZERO 000016ff: ISZERO 00001700: PUSH2 0x1708 00001703: JUMPI 00001704: PUSH1 0x00 00001706: DUP1 00001707: REVERT 00001708: JUMPDEST 00001709: PUSH2 0x1711 0000170c: DUP3 0000170d: PUSH2 0x0f04 00001710: JUMP 00001711: JUMPDEST 00001712: DUP2 00001713: GT 00001714: DUP1 00001715: PUSH2 0x171c 00001718: JUMPI 00001719: POP 0000171a: DUP1 0000171b: ISZERO 0000171c: JUMPDEST 0000171d: ISZERO 0000171e: ISZERO 0000171f: PUSH2 0x1727 00001722: JUMPI 00001723: PUSH1 0x00 00001725: DUP1 00001726: REVERT 00001727: JUMPDEST 00001728: DUP1 00001729: PUSH1 0x00 0000172b: DUP1 0000172c: DUP5 0000172d: PUSH1 0x40 0000172f: MLOAD 00001730: PUSH1 0x20 00001732: ADD 00001733: DUP1 00001734: DUP1 00001735: PUSH1 0x00 00001737: DUP1 00001738: MLOAD 00001739: PUSH1 0x20 0000173b: PUSH2 0x49cc 0000173e: DUP4 0000173f: CODECOPY 00001740: DUP2 00001741: MLOAD 00001742: SWAP2 00001743: MSTORE 00001744: DUP2 00001745: MSTORE 00001746: POP 00001747: PUSH1 0x13 00001749: ADD 0000174a: DUP3 0000174b: PUSH1 0x01 0000174d: PUSH1 0xa0 0000174f: PUSH1 0x02 00001751: EXP 00001752: SUB 00001753: AND 00001754: PUSH1 0x01 00001756: PUSH1 0xa0 00001758: PUSH1 0x02 0000175a: EXP 0000175b: SUB 0000175c: AND 0000175d: PUSH1 0x60 0000175f: PUSH1 0x02 00001761: EXP 00001762: MUL 00001763: DUP2 00001764: MSTORE 00001765: PUSH1 0x14 00001767: ADD 00001768: SWAP2 00001769: POP 0000176a: POP 0000176b: PUSH1 0x40 0000176d: MLOAD 0000176e: PUSH1 0x20 00001770: DUP2 00001771: DUP4 00001772: SUB 00001773: SUB 00001774: DUP2 00001775: MSTORE 00001776: SWAP1 00001777: PUSH1 0x40 00001779: MSTORE 0000177a: PUSH1 0x40 0000177c: MLOAD 0000177d: DUP1 0000177e: DUP3 0000177f: DUP1 00001780: MLOAD 00001781: SWAP1 00001782: PUSH1 0x20 00001784: ADD 00001785: SWAP1 00001786: DUP1 00001787: DUP4 00001788: DUP4 00001789: JUMPDEST 0000178a: PUSH1 0x20 0000178c: DUP4 0000178d: LT 0000178e: PUSH2 0x17a8 00001791: JUMPI 00001792: DUP1 00001793: MLOAD 00001794: DUP3 00001795: MSTORE 00001796: PUSH1 0x1f 00001798: NOT 00001799: SWAP1 0000179a: SWAP3 0000179b: ADD 0000179c: SWAP2 0000179d: PUSH1 0x20 0000179f: SWAP2 000017a0: DUP3 000017a1: ADD 000017a2: SWAP2 000017a3: ADD 000017a4: PUSH2 0x1789 000017a7: JUMP 000017a8: JUMPDEST 000017a9: MLOAD 000017aa: DUP2 000017ab: MLOAD 000017ac: PUSH1 0x20 000017ae: SWAP4 000017af: DUP5 000017b0: SUB 000017b1: PUSH2 0x0100 000017b4: EXP 000017b5: PUSH1 0x00 000017b7: NOT 000017b8: ADD 000017b9: DUP1 000017ba: NOT 000017bb: SWAP1 000017bc: SWAP3 000017bd: AND 000017be: SWAP2 000017bf: AND 000017c0: OR 000017c1: SWAP1 000017c2: MSTORE 000017c3: PUSH1 0x40 000017c5: DUP1 000017c6: MLOAD 000017c7: SWAP3 000017c8: SWAP1 000017c9: SWAP5 000017ca: ADD 000017cb: DUP3 000017cc: SWAP1 000017cd: SUB 000017ce: SWAP1 000017cf: SWAP2 000017d0: KECCAK256 000017d1: DUP7 000017d2: MSTORE 000017d3: DUP6 000017d4: DUP2 000017d5: ADD 000017d6: SWAP7 000017d7: SWAP1 000017d8: SWAP7 000017d9: MSTORE 000017da: POP 000017db: SWAP3 000017dc: DUP4 000017dd: ADD 000017de: PUSH1 0x00 000017e0: KECCAK256 000017e1: SWAP5 000017e2: SWAP1 000017e3: SWAP5 000017e4: SSTORE 000017e5: POP 000017e6: DUP1 000017e7: MLOAD 000017e8: DUP5 000017e9: DUP2 000017ea: MSTORE 000017eb: SWAP1 000017ec: MLOAD 000017ed: PUSH1 0x01 000017ef: PUSH1 0xa0 000017f1: PUSH1 0x02 000017f3: EXP 000017f4: SUB 000017f5: DUP7 000017f6: AND 000017f7: SWAP4 000017f8: POP 000017f9: PUSH32 0x4c177b42dbe934b3abbc0208c11a42e46589983431616f1710ab19969c5ed62e 0000181a: SWAP3 0000181b: SWAP2 0000181c: DUP2 0000181d: SWAP1 0000181e: SUB 0000181f: SWAP1 00001820: SWAP2 00001821: ADD 00001822: SWAP1 00001823: LOG2 00001824: POP 00001825: POP 00001826: JUMP 00001827: JUMPDEST 00001828: PUSH1 0x00 0000182a: DUP1 0000182b: PUSH1 0x00 0000182d: DUP4 0000182e: PUSH1 0x40 00001830: MLOAD 00001831: PUSH1 0x20 00001833: ADD 00001834: DUP1 00001835: DUP1 00001836: PUSH32 0x746f6b656e526567697374726174696f6e4d6573736167654964000000000000 00001857: DUP2 00001858: MSTORE 00001859: POP 0000185a: PUSH1 0x1a 0000185c: ADD 0000185d: DUP3 0000185e: PUSH1 0x01 00001860: PUSH1 0xa0 00001862: PUSH1 0x02 00001864: EXP 00001865: SUB 00001866: AND 00001867: PUSH1 0x01 00001869: PUSH1 0xa0 0000186b: PUSH1 0x02 0000186d: EXP 0000186e: SUB 0000186f: AND 00001870: PUSH1 0x60 00001872: PUSH1 0x02 00001874: EXP 00001875: MUL 00001876: DUP2 00001877: MSTORE 00001878: PUSH1 0x14 0000187a: ADD 0000187b: SWAP2 0000187c: POP 0000187d: POP 0000187e: PUSH1 0x40 00001880: MLOAD 00001881: PUSH1 0x20 00001883: DUP2 00001884: DUP4 00001885: SUB 00001886: SUB 00001887: DUP2 00001888: MSTORE 00001889: SWAP1 0000188a: PUSH1 0x40 0000188c: MSTORE 0000188d: PUSH1 0x40 0000188f: MLOAD 00001890: DUP1 00001891: DUP3 00001892: DUP1 00001893: MLOAD 00001894: SWAP1 00001895: PUSH1 0x20 00001897: ADD 00001898: SWAP1 00001899: DUP1 0000189a: DUP4 0000189b: DUP4 0000189c: PUSH1 0x20 0000189e: DUP4 0000189f: LT 000018a0: PUSH2 0x09b4 000018a3: JUMPI 000018a4: DUP1 000018a5: MLOAD 000018a6: DUP3 000018a7: MSTORE 000018a8: PUSH1 0x1f 000018aa: NOT 000018ab: SWAP1 000018ac: SWAP3 000018ad: ADD 000018ae: SWAP2 000018af: PUSH1 0x20 000018b1: SWAP2 000018b2: DUP3 000018b3: ADD 000018b4: SWAP2 000018b5: ADD 000018b6: PUSH2 0x0995 000018b9: JUMP 000018ba: JUMPDEST 000018bb: PUSH32 0x98aa806e31e94a687a31c65769cb99670064dd7f5a87526da075c5fb4eab9880 000018dc: PUSH1 0x00 000018de: MSTORE 000018df: PUSH1 0x02 000018e1: PUSH1 0x20 000018e3: MSTORE 000018e4: PUSH32 0x0c1206883be66049a02d4937078367c00b3d71dd1a9465df969363c6ddeac96d 00001905: SLOAD 00001906: PUSH1 0x01 00001908: PUSH1 0xa0 0000190a: PUSH1 0x02 0000190c: EXP 0000190d: SUB 0000190e: AND 0000190f: SWAP1 00001910: JUMP 00001911: JUMPDEST 00001912: PUSH32 0x02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0 00001933: PUSH1 0x00 00001935: MSTORE 00001936: PUSH1 0x02 00001938: PUSH1 0x20 0000193a: MSTORE 0000193b: PUSH32 0xb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e 0000195c: SLOAD 0000195d: PUSH1 0x01 0000195f: PUSH1 0xa0 00001961: PUSH1 0x02 00001963: EXP 00001964: SUB 00001965: AND 00001966: SWAP1 00001967: JUMP 00001968: JUMPDEST 00001969: PUSH1 0x00 0000196b: PUSH1 0x60 0000196d: PUSH2 0x1974 00001970: PUSH2 0x1eb6 00001973: JUMP 00001974: JUMPDEST 00001975: PUSH1 0x01 00001977: PUSH1 0xa0 00001979: PUSH1 0x02 0000197b: EXP 0000197c: SUB 0000197d: AND 0000197e: PUSH4 0xcb08a10c 00001983: DUP5 00001984: PUSH1 0x40 00001986: MLOAD 00001987: DUP3 00001988: PUSH4 0xffffffff 0000198d: AND 0000198e: PUSH1 0xe0 00001990: PUSH1 0x02 00001992: EXP 00001993: MUL 00001994: DUP2 00001995: MSTORE 00001996: PUSH1 0x04 00001998: ADD 00001999: DUP1 0000199a: DUP3 0000199b: PUSH1 0x00 0000199d: NOT 0000199e: AND 0000199f: PUSH1 0x00 000019a1: NOT 000019a2: AND 000019a3: DUP2 000019a4: MSTORE 000019a5: PUSH1 0x20 000019a7: ADD 000019a8: SWAP2 000019a9: POP 000019aa: POP 000019ab: PUSH1 0x20 000019ad: PUSH1 0x40 000019af: MLOAD 000019b0: DUP1 000019b1: DUP4 000019b2: SUB 000019b3: DUP2 000019b4: PUSH1 0x00 000019b6: DUP8 000019b7: DUP1 000019b8: EXTCODESIZE 000019b9: ISZERO 000019ba: DUP1 000019bb: ISZERO 000019bc: PUSH2 0x19c4 000019bf: JUMPI 000019c0: PUSH1 0x00 000019c2: DUP1 000019c3: REVERT 000019c4: JUMPDEST 000019c5: POP 000019c6: GAS 000019c7: CALL 000019c8: ISZERO 000019c9: DUP1 000019ca: ISZERO 000019cb: PUSH2 0x19d8 000019ce: JUMPI 000019cf: RETURNDATASIZE 000019d0: PUSH1 0x00 000019d2: DUP1 000019d3: RETURNDATACOPY 000019d4: RETURNDATASIZE 000019d5: PUSH1 0x00 000019d7: REVERT 000019d8: JUMPDEST 000019d9: POP 000019da: POP 000019db: POP 000019dc: POP 000019dd: PUSH1 0x40 000019df: MLOAD 000019e0: RETURNDATASIZE 000019e1: PUSH1 0x20 000019e3: DUP2 000019e4: LT 000019e5: ISZERO 000019e6: PUSH2 0x19ee 000019e9: JUMPI 000019ea: PUSH1 0x00 000019ec: DUP1 000019ed: REVERT 000019ee: JUMPDEST 000019ef: POP 000019f0: MLOAD 000019f1: ISZERO 000019f2: PUSH2 0x19fa 000019f5: JUMPI 000019f6: PUSH1 0x00 000019f8: DUP1 000019f9: REVERT 000019fa: JUMPDEST 000019fb: ADDRESS 000019fc: PUSH2 0x1a03 000019ff: PUSH2 0x1eb6 00001a02: JUMP 00001a03: JUMPDEST 00001a04: PUSH1 0x01 00001a06: PUSH1 0xa0 00001a08: PUSH1 0x02 00001a0a: EXP 00001a0b: SUB 00001a0c: AND 00001a0d: PUSH4 0x3f9a8e7e 00001a12: DUP6 00001a13: PUSH1 0x40 00001a15: MLOAD 00001a16: DUP3 00001a17: PUSH4 0xffffffff 00001a1c: AND 00001a1d: PUSH1 0xe0 00001a1f: PUSH1 0x02 00001a21: EXP 00001a22: MUL 00001a23: DUP2 00001a24: MSTORE 00001a25: PUSH1 0x04 00001a27: ADD 00001a28: DUP1 00001a29: DUP3 00001a2a: PUSH1 0x00 00001a2c: NOT 00001a2d: AND 00001a2e: PUSH1 0x00 00001a30: NOT 00001a31: AND 00001a32: DUP2 00001a33: MSTORE 00001a34: PUSH1 0x20 00001a36: ADD 00001a37: SWAP2 00001a38: POP 00001a39: POP 00001a3a: PUSH1 0x20 00001a3c: PUSH1 0x40 00001a3e: MLOAD 00001a3f: DUP1 00001a40: DUP4 00001a41: SUB 00001a42: DUP2 00001a43: PUSH1 0x00 00001a45: DUP8 00001a46: DUP1 00001a47: EXTCODESIZE 00001a48: ISZERO 00001a49: DUP1 00001a4a: ISZERO 00001a4b: PUSH2 0x1a53 00001a4e: JUMPI 00001a4f: PUSH1 0x00 00001a51: DUP1 00001a52: REVERT 00001a53: JUMPDEST 00001a54: POP 00001a55: GAS 00001a56: CALL 00001a57: ISZERO 00001a58: DUP1 00001a59: ISZERO 00001a5a: PUSH2 0x1a67 00001a5d: JUMPI 00001a5e: RETURNDATASIZE 00001a5f: PUSH1 0x00 00001a61: DUP1 00001a62: RETURNDATACOPY 00001a63: RETURNDATASIZE 00001a64: PUSH1 0x00 00001a66: REVERT 00001a67: JUMPDEST 00001a68: POP 00001a69: POP 00001a6a: POP 00001a6b: POP 00001a6c: PUSH1 0x40 00001a6e: MLOAD 00001a6f: RETURNDATASIZE 00001a70: PUSH1 0x20 00001a72: DUP2 00001a73: LT 00001a74: ISZERO 00001a75: PUSH2 0x1a7d 00001a78: JUMPI 00001a79: PUSH1 0x00 00001a7b: DUP1 00001a7c: REVERT 00001a7d: JUMPDEST 00001a7e: POP 00001a7f: MLOAD 00001a80: PUSH1 0x01 00001a82: PUSH1 0xa0 00001a84: PUSH1 0x02 00001a86: EXP 00001a87: SUB 00001a88: AND 00001a89: EQ 00001a8a: PUSH2 0x1a92 00001a8d: JUMPI 00001a8e: PUSH1 0x00 00001a90: DUP1 00001a91: REVERT 00001a92: JUMPDEST 00001a93: PUSH2 0x1a9a 00001a96: PUSH2 0x18ba 00001a99: JUMP 00001a9a: JUMPDEST 00001a9b: PUSH1 0x01 00001a9d: PUSH1 0xa0 00001a9f: PUSH1 0x02 00001aa1: EXP 00001aa2: SUB 00001aa3: AND 00001aa4: PUSH2 0x1aab 00001aa7: PUSH2 0x1eb6 00001aaa: JUMP 00001aab: JUMPDEST 00001aac: PUSH1 0x01 00001aae: PUSH1 0xa0 00001ab0: PUSH1 0x02 00001ab2: EXP 00001ab3: SUB 00001ab4: AND 00001ab5: PUSH4 0x4a610b04 00001aba: DUP6 00001abb: PUSH1 0x40 00001abd: MLOAD 00001abe: DUP3 00001abf: PUSH4 0xffffffff 00001ac4: AND 00001ac5: PUSH1 0xe0 00001ac7: PUSH1 0x02 00001ac9: EXP 00001aca: MUL 00001acb: DUP2 00001acc: MSTORE 00001acd: PUSH1 0x04 00001acf: ADD 00001ad0: DUP1 00001ad1: DUP3 00001ad2: PUSH1 0x00 00001ad4: NOT 00001ad5: AND 00001ad6: PUSH1 0x00 00001ad8: NOT 00001ad9: AND 00001ada: DUP2 00001adb: MSTORE 00001adc: PUSH1 0x20 00001ade: ADD 00001adf: SWAP2 00001ae0: POP 00001ae1: POP 00001ae2: PUSH1 0x20 00001ae4: PUSH1 0x40 00001ae6: MLOAD 00001ae7: DUP1 00001ae8: DUP4 00001ae9: SUB 00001aea: DUP2 00001aeb: PUSH1 0x00 00001aed: DUP8 00001aee: DUP1 00001aef: EXTCODESIZE 00001af0: ISZERO 00001af1: DUP1 00001af2: ISZERO 00001af3: PUSH2 0x1afb 00001af6: JUMPI 00001af7: PUSH1 0x00 00001af9: DUP1 00001afa: REVERT 00001afb: JUMPDEST 00001afc: POP 00001afd: GAS 00001afe: CALL 00001aff: ISZERO 00001b00: DUP1 00001b01: ISZERO 00001b02: PUSH2 0x1b0f 00001b05: JUMPI 00001b06: RETURNDATASIZE 00001b07: PUSH1 0x00 00001b09: DUP1 00001b0a: RETURNDATACOPY 00001b0b: RETURNDATASIZE 00001b0c: PUSH1 0x00 00001b0e: REVERT 00001b0f: JUMPDEST 00001b10: POP 00001b11: POP 00001b12: POP 00001b13: POP 00001b14: PUSH1 0x40 00001b16: MLOAD 00001b17: RETURNDATASIZE 00001b18: PUSH1 0x20 00001b1a: DUP2 00001b1b: LT 00001b1c: ISZERO 00001b1d: PUSH2 0x1b25 00001b20: JUMPI 00001b21: PUSH1 0x00 00001b23: DUP1 00001b24: REVERT 00001b25: JUMPDEST 00001b26: POP 00001b27: MLOAD 00001b28: PUSH1 0x01 00001b2a: PUSH1 0xa0 00001b2c: PUSH1 0x02 00001b2e: EXP 00001b2f: SUB 00001b30: AND 00001b31: EQ 00001b32: PUSH2 0x1b3a 00001b35: JUMPI 00001b36: PUSH1 0x00 00001b38: DUP1 00001b39: REVERT 00001b3a: JUMPDEST 00001b3b: POP 00001b3c: POP 00001b3d: PUSH1 0x40 00001b3f: DUP1 00001b40: MLOAD 00001b41: PUSH1 0x24 00001b43: DUP1 00001b44: DUP3 00001b45: ADD 00001b46: DUP5 00001b47: SWAP1 00001b48: MSTORE 00001b49: DUP3 00001b4a: MLOAD 00001b4b: DUP1 00001b4c: DUP4 00001b4d: SUB 00001b4e: SWAP1 00001b4f: SWAP2 00001b50: ADD 00001b51: DUP2 00001b52: MSTORE 00001b53: PUSH1 0x44 00001b55: SWAP1 00001b56: SWAP2 00001b57: ADD 00001b58: SWAP1 00001b59: SWAP2 00001b5a: MSTORE 00001b5b: PUSH1 0x20 00001b5d: DUP2 00001b5e: ADD 00001b5f: DUP1 00001b60: MLOAD 00001b61: PUSH1 0x01 00001b63: PUSH1 0xe0 00001b65: PUSH1 0x02 00001b67: EXP 00001b68: SUB 00001b69: AND 00001b6a: PUSH32 0x0950d51500000000000000000000000000000000000000000000000000000000 00001b8b: SWAP1 00001b8c: DUP2 00001b8d: OR 00001b8e: SWAP1 00001b8f: SWAP2 00001b90: MSTORE 00001b91: SWAP1 00001b92: PUSH2 0x1b99 00001b95: PUSH2 0x1eb6 00001b98: JUMP 00001b99: JUMPDEST 00001b9a: PUSH1 0x01 00001b9c: PUSH1 0xa0 00001b9e: PUSH1 0x02 00001ba0: EXP 00001ba1: SUB 00001ba2: AND 00001ba3: PUSH4 0xdc8601b3 00001ba8: PUSH2 0x1baf 00001bab: PUSH2 0x18ba 00001bae: JUMP 00001baf: JUMPDEST 00001bb0: DUP4 00001bb1: PUSH2 0x1bb8 00001bb4: PUSH2 0x1e68 00001bb7: JUMP 00001bb8: JUMPDEST 00001bb9: PUSH1 0x40 00001bbb: MLOAD 00001bbc: DUP5 00001bbd: PUSH4 0xffffffff 00001bc2: AND 00001bc3: PUSH1 0xe0 00001bc5: PUSH1 0x02 00001bc7: EXP 00001bc8: MUL 00001bc9: DUP2 00001bca: MSTORE 00001bcb: PUSH1 0x04 00001bcd: ADD 00001bce: DUP1 00001bcf: DUP5 00001bd0: PUSH1 0x01 00001bd2: PUSH1 0xa0 00001bd4: PUSH1 0x02 00001bd6: EXP 00001bd7: SUB 00001bd8: AND 00001bd9: PUSH1 0x01 00001bdb: PUSH1 0xa0 00001bdd: PUSH1 0x02 00001bdf: EXP 00001be0: SUB 00001be1: AND 00001be2: DUP2 00001be3: MSTORE 00001be4: PUSH1 0x20 00001be6: ADD 00001be7: DUP1 00001be8: PUSH1 0x20 00001bea: ADD 00001beb: DUP4 00001bec: DUP2 00001bed: MSTORE 00001bee: PUSH1 0x20 00001bf0: ADD 00001bf1: DUP3 00001bf2: DUP2 00001bf3: SUB 00001bf4: DUP3 00001bf5: MSTORE 00001bf6: DUP5 00001bf7: DUP2 00001bf8: DUP2 00001bf9: MLOAD 00001bfa: DUP2 00001bfb: MSTORE 00001bfc: PUSH1 0x20 00001bfe: ADD 00001bff: SWAP2 00001c00: POP 00001c01: DUP1 00001c02: MLOAD 00001c03: SWAP1 00001c04: PUSH1 0x20 00001c06: ADD 00001c07: SWAP1 00001c08: DUP1 00001c09: DUP4 00001c0a: DUP4 00001c0b: PUSH1 0x00 00001c0d: JUMPDEST 00001c0e: DUP4 00001c0f: DUP2 00001c10: LT 00001c11: ISZERO 00001c12: PUSH2 0x1c25 00001c15: JUMPI 00001c16: DUP2 00001c17: DUP2 00001c18: ADD 00001c19: MLOAD 00001c1a: DUP4 00001c1b: DUP3 00001c1c: ADD 00001c1d: MSTORE 00001c1e: PUSH1 0x20 00001c20: ADD 00001c21: PUSH2 0x1c0d 00001c24: JUMP 00001c25: JUMPDEST 00001c26: POP 00001c27: POP 00001c28: POP 00001c29: POP 00001c2a: SWAP1 00001c2b: POP 00001c2c: SWAP1 00001c2d: DUP2 00001c2e: ADD 00001c2f: SWAP1 00001c30: PUSH1 0x1f 00001c32: AND 00001c33: DUP1 00001c34: ISZERO 00001c35: PUSH2 0x1c52 00001c38: JUMPI 00001c39: DUP1 00001c3a: DUP3 00001c3b: SUB 00001c3c: DUP1 00001c3d: MLOAD 00001c3e: PUSH1 0x01 00001c40: DUP4 00001c41: PUSH1 0x20 00001c43: SUB 00001c44: PUSH2 0x0100 00001c47: EXP 00001c48: SUB 00001c49: NOT 00001c4a: AND 00001c4b: DUP2 00001c4c: MSTORE 00001c4d: PUSH1 0x20 00001c4f: ADD 00001c50: SWAP2 00001c51: POP 00001c52: JUMPDEST 00001c53: POP 00001c54: SWAP5 00001c55: POP 00001c56: POP 00001c57: POP 00001c58: POP 00001c59: POP 00001c5a: PUSH1 0x20 00001c5c: PUSH1 0x40 00001c5e: MLOAD 00001c5f: DUP1 00001c60: DUP4 00001c61: SUB 00001c62: DUP2 00001c63: PUSH1 0x00 00001c65: DUP8 00001c66: DUP1 00001c67: EXTCODESIZE 00001c68: ISZERO 00001c69: DUP1 00001c6a: ISZERO 00001c6b: PUSH2 0x1c73 00001c6e: JUMPI 00001c6f: PUSH1 0x00 00001c71: DUP1 00001c72: REVERT 00001c73: JUMPDEST 00001c74: POP 00001c75: GAS 00001c76: CALL 00001c77: ISZERO 00001c78: DUP1 00001c79: ISZERO 00001c7a: PUSH2 0x1c87 00001c7d: JUMPI 00001c7e: RETURNDATASIZE 00001c7f: PUSH1 0x00 00001c81: DUP1 00001c82: RETURNDATACOPY 00001c83: RETURNDATASIZE 00001c84: PUSH1 0x00 00001c86: REVERT 00001c87: JUMPDEST 00001c88: POP 00001c89: POP 00001c8a: POP 00001c8b: POP 00001c8c: PUSH1 0x40 00001c8e: MLOAD 00001c8f: RETURNDATASIZE 00001c90: PUSH1 0x20 00001c92: DUP2 00001c93: LT 00001c94: ISZERO 00001c95: PUSH2 0x1c9d 00001c98: JUMPI 00001c99: PUSH1 0x00 00001c9b: DUP1 00001c9c: REVERT 00001c9d: JUMPDEST 00001c9e: POP 00001c9f: POP 00001ca0: POP 00001ca1: POP 00001ca2: POP 00001ca3: JUMP 00001ca4: JUMPDEST 00001ca5: PUSH1 0x01 00001ca7: DUP1 00001ca8: DUP1 00001ca9: SWAP1 00001caa: SWAP2 00001cab: SWAP3 00001cac: JUMP 00001cad: JUMPDEST 00001cae: PUSH2 0x1cb5 00001cb1: PUSH2 0x1911 00001cb4: JUMP 00001cb5: JUMPDEST 00001cb6: PUSH1 0x01 00001cb8: PUSH1 0xa0 00001cba: PUSH1 0x02 00001cbc: EXP 00001cbd: SUB 00001cbe: AND 00001cbf: CALLER 00001cc0: EQ 00001cc1: PUSH2 0x1cc9 00001cc4: JUMPI 00001cc5: PUSH1 0x00 00001cc7: DUP1 00001cc8: REVERT 00001cc9: JUMPDEST 00001cca: PUSH2 0x0dc7 00001ccd: DUP2 00001cce: PUSH2 0x2ffc 00001cd1: JUMP 00001cd2: JUMPDEST 00001cd3: PUSH1 0x00 00001cd5: DUP1 00001cd6: PUSH1 0x00 00001cd8: DUP4 00001cd9: PUSH1 0x40 00001cdb: MLOAD 00001cdc: PUSH1 0x20 00001cde: ADD 00001cdf: DUP1 00001ce0: DUP1 00001ce1: PUSH1 0x00 00001ce3: DUP1 00001ce4: MLOAD 00001ce5: PUSH1 0x20 00001ce7: PUSH2 0x4a0c 00001cea: DUP4 00001ceb: CODECOPY 00001cec: DUP2 00001ced: MLOAD 00001cee: SWAP2 00001cef: MSTORE 00001cf0: DUP2 00001cf1: MSTORE 00001cf2: POP 00001cf3: PUSH1 0x08 00001cf5: ADD 00001cf6: DUP3 00001cf7: PUSH1 0x01 00001cf9: PUSH1 0xa0 00001cfb: PUSH1 0x02 00001cfd: EXP 00001cfe: SUB 00001cff: AND 00001d00: PUSH1 0x01 00001d02: PUSH1 0xa0 00001d04: PUSH1 0x02 00001d06: EXP 00001d07: SUB 00001d08: AND 00001d09: PUSH1 0x60 00001d0b: PUSH1 0x02 00001d0d: EXP 00001d0e: MUL 00001d0f: DUP2 00001d10: MSTORE 00001d11: PUSH1 0x14 00001d13: ADD 00001d14: SWAP2 00001d15: POP 00001d16: POP 00001d17: PUSH1 0x40 00001d19: MLOAD 00001d1a: PUSH1 0x20 00001d1c: DUP2 00001d1d: DUP4 00001d1e: SUB 00001d1f: SUB 00001d20: DUP2 00001d21: MSTORE 00001d22: SWAP1 00001d23: PUSH1 0x40 00001d25: MSTORE 00001d26: PUSH1 0x40 00001d28: MLOAD 00001d29: DUP1 00001d2a: DUP3 00001d2b: DUP1 00001d2c: MLOAD 00001d2d: SWAP1 00001d2e: PUSH1 0x20 00001d30: ADD 00001d31: SWAP1 00001d32: DUP1 00001d33: DUP4 00001d34: DUP4 00001d35: PUSH1 0x20 00001d37: DUP4 00001d38: LT 00001d39: PUSH2 0x09b4 00001d3c: JUMPI 00001d3d: DUP1 00001d3e: MLOAD 00001d3f: DUP3 00001d40: MSTORE 00001d41: PUSH1 0x1f 00001d43: NOT 00001d44: SWAP1 00001d45: SWAP3 00001d46: ADD 00001d47: SWAP2 00001d48: PUSH1 0x20 00001d4a: SWAP2 00001d4b: DUP3 00001d4c: ADD 00001d4d: SWAP2 00001d4e: ADD 00001d4f: PUSH2 0x0995 00001d52: JUMP 00001d53: JUMPDEST 00001d54: PUSH1 0x00 00001d56: DUP1 00001d57: PUSH2 0x1d5e 00001d5a: PUSH2 0x3087 00001d5d: JUMP 00001d5e: JUMPDEST 00001d5f: ISZERO 00001d60: ISZERO 00001d61: PUSH2 0x1d72 00001d64: JUMPI 00001d65: POP 00001d66: CALLER 00001d67: PUSH2 0x1d72 00001d6a: DUP2 00001d6b: DUP7 00001d6c: DUP7 00001d6d: DUP7 00001d6e: PUSH2 0x30d8 00001d71: JUMP 00001d72: JUMPDEST 00001d73: POP 00001d74: PUSH1 0x01 00001d76: SWAP5 00001d77: SWAP4 00001d78: POP 00001d79: POP 00001d7a: POP 00001d7b: POP 00001d7c: JUMP 00001d7d: JUMPDEST 00001d7e: PUSH1 0x00 00001d80: DUP1 00001d81: PUSH1 0x00 00001d83: DUP5 00001d84: DUP5 00001d85: PUSH1 0x40 00001d87: MLOAD 00001d88: PUSH1 0x20 00001d8a: ADD 00001d8b: DUP1 00001d8c: DUP1 00001d8d: PUSH32 0x746f74616c5370656e7450657244617900000000000000000000000000000000 00001dae: DUP2 00001daf: MSTORE 00001db0: POP 00001db1: PUSH1 0x10 00001db3: ADD 00001db4: DUP4 00001db5: PUSH1 0x01 00001db7: PUSH1 0xa0 00001db9: PUSH1 0x02 00001dbb: EXP 00001dbc: SUB 00001dbd: AND 00001dbe: PUSH1 0x01 00001dc0: PUSH1 0xa0 00001dc2: PUSH1 0x02 00001dc4: EXP 00001dc5: SUB 00001dc6: AND 00001dc7: PUSH1 0x60 00001dc9: PUSH1 0x02 00001dcb: EXP 00001dcc: MUL 00001dcd: DUP2 00001dce: MSTORE 00001dcf: PUSH1 0x14 00001dd1: ADD 00001dd2: DUP3 00001dd3: DUP2 00001dd4: MSTORE 00001dd5: PUSH1 0x20 00001dd7: ADD 00001dd8: SWAP3 00001dd9: POP 00001dda: POP 00001ddb: POP 00001ddc: PUSH1 0x40 00001dde: MLOAD 00001ddf: PUSH1 0x20 00001de1: DUP2 00001de2: DUP4 00001de3: SUB 00001de4: SUB 00001de5: DUP2 00001de6: MSTORE 00001de7: SWAP1 00001de8: PUSH1 0x40 00001dea: MSTORE 00001deb: PUSH1 0x40 00001ded: MLOAD 00001dee: DUP1 00001def: DUP3 00001df0: DUP1 00001df1: MLOAD 00001df2: SWAP1 00001df3: PUSH1 0x20 00001df5: ADD 00001df6: SWAP1 00001df7: DUP1 00001df8: DUP4 00001df9: DUP4 00001dfa: JUMPDEST 00001dfb: PUSH1 0x20 00001dfd: DUP4 00001dfe: LT 00001dff: PUSH2 0x1e19 00001e02: JUMPI 00001e03: DUP1 00001e04: MLOAD 00001e05: DUP3 00001e06: MSTORE 00001e07: PUSH1 0x1f 00001e09: NOT 00001e0a: SWAP1 00001e0b: SWAP3 00001e0c: ADD 00001e0d: SWAP2 00001e0e: PUSH1 0x20 00001e10: SWAP2 00001e11: DUP3 00001e12: ADD 00001e13: SWAP2 00001e14: ADD 00001e15: PUSH2 0x1dfa 00001e18: JUMP 00001e19: JUMPDEST 00001e1a: MLOAD 00001e1b: DUP2 00001e1c: MLOAD 00001e1d: PUSH1 0x20 00001e1f: SWAP4 00001e20: DUP5 00001e21: SUB 00001e22: PUSH2 0x0100 00001e25: EXP 00001e26: PUSH1 0x00 00001e28: NOT 00001e29: ADD 00001e2a: DUP1 00001e2b: NOT 00001e2c: SWAP1 00001e2d: SWAP3 00001e2e: AND 00001e2f: SWAP2 00001e30: AND 00001e31: OR 00001e32: SWAP1 00001e33: MSTORE 00001e34: PUSH1 0x40 00001e36: DUP1 00001e37: MLOAD 00001e38: SWAP3 00001e39: SWAP1 00001e3a: SWAP5 00001e3b: ADD 00001e3c: DUP3 00001e3d: SWAP1 00001e3e: SUB 00001e3f: SWAP1 00001e40: SWAP2 00001e41: KECCAK256 00001e42: DUP7 00001e43: MSTORE 00001e44: DUP6 00001e45: ADD 00001e46: SWAP6 00001e47: SWAP1 00001e48: SWAP6 00001e49: MSTORE 00001e4a: SWAP3 00001e4b: SWAP1 00001e4c: SWAP3 00001e4d: ADD 00001e4e: PUSH1 0x00 00001e50: KECCAK256 00001e51: SLOAD 00001e52: SWAP4 00001e53: POP 00001e54: POP 00001e55: POP 00001e56: POP 00001e57: JUMPDEST 00001e58: SWAP3 00001e59: SWAP2 00001e5a: POP 00001e5b: POP 00001e5c: JUMP 00001e5d: JUMPDEST 00001e5e: PUSH2 0x0ea8 00001e61: DUP4 00001e62: DUP4 00001e63: DUP4 00001e64: PUSH2 0x2586 00001e67: JUMP 00001e68: JUMPDEST 00001e69: PUSH32 0x2dfd6c9f781bb6bbb5369c114e949b69ebb440ef3d4dd6b2836225eb1dc3a2be 00001e8a: PUSH1 0x00 00001e8c: SWAP1 00001e8d: DUP2 00001e8e: MSTORE 00001e8f: PUSH1 0x20 00001e91: MSTORE 00001e92: PUSH32 0x2de0d2cdc19d356cb53b5984f91bfd3b31fe0c678a0d190a6db39274bb34753f 00001eb3: SLOAD 00001eb4: SWAP1 00001eb5: JUMP 00001eb6: JUMPDEST 00001eb7: PUSH32 0x811bbb11e8899da471f0e69a3ed55090fc90215227fc5fb1cb0d6e962ea7b74f 00001ed8: PUSH1 0x00 00001eda: MSTORE 00001edb: PUSH1 0x02 00001edd: PUSH1 0x20 00001edf: MSTORE 00001ee0: PUSH32 0xb4ed64697d3ef8518241966f7c6f28b0d72f20f51198717d198d2d55076c593d 00001f01: SLOAD 00001f02: PUSH1 0x01 00001f04: PUSH1 0xa0 00001f06: PUSH1 0x02 00001f08: EXP 00001f09: SUB 00001f0a: AND 00001f0b: SWAP1 00001f0c: JUMP 00001f0d: JUMPDEST 00001f0e: PUSH1 0x00 00001f10: DUP1 00001f11: PUSH1 0x00 00001f13: DUP1 00001f14: PUSH1 0x60 00001f16: PUSH1 0x00 00001f18: ADDRESS 00001f19: PUSH1 0x01 00001f1b: PUSH1 0xa0 00001f1d: PUSH1 0x02 00001f1f: EXP 00001f20: SUB 00001f21: AND 00001f22: PUSH4 0x6fde8202 00001f27: PUSH1 0x40 00001f29: MLOAD 00001f2a: DUP2 00001f2b: PUSH4 0xffffffff 00001f30: AND 00001f31: PUSH1 0xe0 00001f33: PUSH1 0x02 00001f35: EXP 00001f36: MUL 00001f37: DUP2 00001f38: MSTORE 00001f39: PUSH1 0x04 00001f3b: ADD 00001f3c: PUSH1 0x20 00001f3e: PUSH1 0x40 00001f40: MLOAD 00001f41: DUP1 00001f42: DUP4 00001f43: SUB 00001f44: DUP2 00001f45: PUSH1 0x00 00001f47: DUP8 00001f48: DUP1 00001f49: EXTCODESIZE 00001f4a: ISZERO 00001f4b: DUP1 00001f4c: ISZERO 00001f4d: PUSH2 0x1f55 00001f50: JUMPI 00001f51: PUSH1 0x00 00001f53: DUP1 00001f54: REVERT 00001f55: JUMPDEST 00001f56: POP 00001f57: GAS 00001f58: CALL 00001f59: ISZERO 00001f5a: DUP1 00001f5b: ISZERO 00001f5c: PUSH2 0x1f69 00001f5f: JUMPI 00001f60: RETURNDATASIZE 00001f61: PUSH1 0x00 00001f63: DUP1 00001f64: RETURNDATACOPY 00001f65: RETURNDATASIZE 00001f66: PUSH1 0x00 00001f68: REVERT 00001f69: JUMPDEST 00001f6a: POP 00001f6b: POP 00001f6c: POP 00001f6d: POP 00001f6e: PUSH1 0x40 00001f70: MLOAD 00001f71: RETURNDATASIZE 00001f72: PUSH1 0x20 00001f74: DUP2 00001f75: LT 00001f76: ISZERO 00001f77: PUSH2 0x1f7f 00001f7a: JUMPI 00001f7b: PUSH1 0x00 00001f7d: DUP1 00001f7e: REVERT 00001f7f: JUMPDEST 00001f80: POP 00001f81: MLOAD 00001f82: PUSH1 0x01 00001f84: PUSH1 0xa0 00001f86: PUSH1 0x02 00001f88: EXP 00001f89: SUB 00001f8a: AND 00001f8b: CALLER 00001f8c: EQ 00001f8d: PUSH2 0x1f95 00001f90: JUMPI 00001f91: PUSH1 0x00 00001f93: DUP1 00001f94: REVERT 00001f95: JUMPDEST 00001f96: PUSH2 0x1f9e 00001f99: DUP9 00001f9a: PUSH2 0x1018 00001f9d: JUMP 00001f9e: JUMPDEST 00001f9f: ISZERO 00001fa0: ISZERO 00001fa1: PUSH2 0x1fa9 00001fa4: JUMPI 00001fa5: PUSH1 0x00 00001fa7: DUP1 00001fa8: REVERT 00001fa9: JUMPDEST 00001faa: PUSH1 0x40 00001fac: DUP1 00001fad: MLOAD 00001fae: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00001fcf: DUP2 00001fd0: MSTORE 00001fd1: ADDRESS 00001fd2: PUSH1 0x04 00001fd4: DUP3 00001fd5: ADD 00001fd6: MSTORE 00001fd7: SWAP1 00001fd8: MLOAD 00001fd9: PUSH1 0x01 00001fdb: PUSH1 0xa0 00001fdd: PUSH1 0x02 00001fdf: EXP 00001fe0: SUB 00001fe1: DUP11 00001fe2: AND 00001fe3: SWAP2 00001fe4: PUSH4 0x70a08231 00001fe9: SWAP2 00001fea: PUSH1 0x24 00001fec: DUP1 00001fed: DUP4 00001fee: ADD 00001fef: SWAP3 00001ff0: PUSH1 0x20 00001ff2: SWAP3 00001ff3: SWAP2 00001ff4: SWAP1 00001ff5: DUP3 00001ff6: SWAP1 00001ff7: SUB 00001ff8: ADD 00001ff9: DUP2 00001ffa: PUSH1 0x00 00001ffc: DUP8 00001ffd: DUP1 00001ffe: EXTCODESIZE 00001fff: ISZERO 00002000: DUP1 00002001: ISZERO 00002002: PUSH2 0x200a 00002005: JUMPI 00002006: PUSH1 0x00 00002008: DUP1 00002009: REVERT 0000200a: JUMPDEST 0000200b: POP 0000200c: GAS 0000200d: CALL 0000200e: ISZERO 0000200f: DUP1 00002010: ISZERO 00002011: PUSH2 0x201e 00002014: JUMPI 00002015: RETURNDATASIZE 00002016: PUSH1 0x00 00002018: DUP1 00002019: RETURNDATACOPY 0000201a: RETURNDATASIZE 0000201b: PUSH1 0x00 0000201d: REVERT 0000201e: JUMPDEST 0000201f: POP 00002020: POP 00002021: POP 00002022: POP 00002023: PUSH1 0x40 00002025: MLOAD 00002026: RETURNDATASIZE 00002027: PUSH1 0x20 00002029: DUP2 0000202a: LT 0000202b: ISZERO 0000202c: PUSH2 0x2034 0000202f: JUMPI 00002030: PUSH1 0x00 00002032: DUP1 00002033: REVERT 00002034: JUMPDEST 00002035: POP 00002036: MLOAD 00002037: SWAP6 00002038: POP 00002039: PUSH2 0x2041 0000203c: DUP9 0000203d: PUSH2 0x0f85 00002040: JUMP 00002041: JUMPDEST 00002042: SWAP5 00002043: POP 00002044: DUP5 00002045: DUP7 00002046: GT 00002047: PUSH2 0x204f 0000204a: JUMPI 0000204b: PUSH1 0x00 0000204d: DUP1 0000204e: REVERT 0000204f: JUMPDEST 00002050: DUP5 00002051: DUP7 00002052: SUB 00002053: SWAP4 00002054: POP 00002055: PUSH2 0x205d 00002058: DUP9 00002059: PUSH2 0x167f 0000205c: JUMP 0000205d: JUMPDEST 0000205e: SWAP3 0000205f: POP 00002060: PUSH1 0x00 00002062: DUP4 00002063: GT 00002064: PUSH2 0x206c 00002067: JUMPI 00002068: PUSH1 0x00 0000206a: DUP1 0000206b: REVERT 0000206c: JUMPDEST 0000206d: DUP3 0000206e: DUP5 0000206f: GT 00002070: ISZERO 00002071: PUSH2 0x2078 00002074: JUMPI 00002075: DUP3 00002076: SWAP4 00002077: POP 00002078: JUMPDEST 00002079: PUSH2 0x208a 0000207c: DUP9 0000207d: PUSH2 0x2084 00002080: PUSH2 0x141e 00002083: JUMP 00002084: JUMPDEST 00002085: DUP7 00002086: PUSH2 0x3704 00002089: JUMP 0000208a: JUMPDEST 0000208b: PUSH2 0x20a3 0000208e: DUP9 0000208f: PUSH2 0x209e 00002092: DUP8 00002093: DUP8 00002094: PUSH4 0xffffffff 00002099: PUSH2 0x28d3 0000209c: AND 0000209d: JUMP 0000209e: JUMPDEST 0000209f: PUSH2 0x37ef 000020a2: JUMP 000020a3: JUMPDEST 000020a4: PUSH1 0x40 000020a6: DUP1 000020a7: MLOAD 000020a8: PUSH1 0x01 000020aa: PUSH1 0xa0 000020ac: PUSH1 0x02 000020ae: EXP 000020af: SUB 000020b0: DUP1 000020b1: DUP12 000020b2: AND 000020b3: PUSH1 0x24 000020b5: DUP4 000020b6: ADD 000020b7: MSTORE 000020b8: DUP10 000020b9: AND 000020ba: PUSH1 0x44 000020bc: DUP3 000020bd: ADD 000020be: MSTORE 000020bf: PUSH1 0x64 000020c1: DUP1 000020c2: DUP3 000020c3: ADD 000020c4: DUP8 000020c5: SWAP1 000020c6: MSTORE 000020c7: DUP3 000020c8: MLOAD 000020c9: DUP1 000020ca: DUP4 000020cb: SUB 000020cc: SWAP1 000020cd: SWAP2 000020ce: ADD 000020cf: DUP2 000020d0: MSTORE 000020d1: PUSH1 0x84 000020d3: SWAP1 000020d4: SWAP2 000020d5: ADD 000020d6: SWAP1 000020d7: SWAP2 000020d8: MSTORE 000020d9: PUSH1 0x20 000020db: DUP2 000020dc: ADD 000020dd: DUP1 000020de: MLOAD 000020df: PUSH1 0x01 000020e1: PUSH1 0xe0 000020e3: PUSH1 0x02 000020e5: EXP 000020e6: SUB 000020e7: AND 000020e8: PUSH32 0x125e4cfb00000000000000000000000000000000000000000000000000000000 00002109: OR 0000210a: SWAP1 0000210b: MSTORE 0000210c: SWAP2 0000210d: POP 0000210e: PUSH2 0x2115 00002111: PUSH2 0x1eb6 00002114: JUMP 00002115: JUMPDEST 00002116: PUSH1 0x01 00002118: PUSH1 0xa0 0000211a: PUSH1 0x02 0000211c: EXP 0000211d: SUB 0000211e: AND 0000211f: PUSH4 0xdc8601b3 00002124: PUSH2 0x212b 00002127: PUSH2 0x18ba 0000212a: JUMP 0000212b: JUMPDEST 0000212c: DUP5 0000212d: PUSH2 0x2134 00002130: PUSH2 0x1e68 00002133: JUMP 00002134: JUMPDEST 00002135: PUSH1 0x40 00002137: MLOAD 00002138: DUP5 00002139: PUSH4 0xffffffff 0000213e: AND 0000213f: PUSH1 0xe0 00002141: PUSH1 0x02 00002143: EXP 00002144: MUL 00002145: DUP2 00002146: MSTORE 00002147: PUSH1 0x04 00002149: ADD 0000214a: DUP1 0000214b: DUP5 0000214c: PUSH1 0x01 0000214e: PUSH1 0xa0 00002150: PUSH1 0x02 00002152: EXP 00002153: SUB 00002154: AND 00002155: PUSH1 0x01 00002157: PUSH1 0xa0 00002159: PUSH1 0x02 0000215b: EXP 0000215c: SUB 0000215d: AND 0000215e: DUP2 0000215f: MSTORE 00002160: PUSH1 0x20 00002162: ADD 00002163: DUP1 00002164: PUSH1 0x20 00002166: ADD 00002167: DUP4 00002168: DUP2 00002169: MSTORE 0000216a: PUSH1 0x20 0000216c: ADD 0000216d: DUP3 0000216e: DUP2 0000216f: SUB 00002170: DUP3 00002171: MSTORE 00002172: DUP5 00002173: DUP2 00002174: DUP2 00002175: MLOAD 00002176: DUP2 00002177: MSTORE 00002178: PUSH1 0x20 0000217a: ADD 0000217b: SWAP2 0000217c: POP 0000217d: DUP1 0000217e: MLOAD 0000217f: SWAP1 00002180: PUSH1 0x20 00002182: ADD 00002183: SWAP1 00002184: DUP1 00002185: DUP4 00002186: DUP4 00002187: PUSH1 0x00 00002189: JUMPDEST 0000218a: DUP4 0000218b: DUP2 0000218c: LT 0000218d: ISZERO 0000218e: PUSH2 0x21a1 00002191: JUMPI 00002192: DUP2 00002193: DUP2 00002194: ADD 00002195: MLOAD 00002196: DUP4 00002197: DUP3 00002198: ADD 00002199: MSTORE 0000219a: PUSH1 0x20 0000219c: ADD 0000219d: PUSH2 0x2189 000021a0: JUMP 000021a1: JUMPDEST 000021a2: POP 000021a3: POP 000021a4: POP 000021a5: POP 000021a6: SWAP1 000021a7: POP 000021a8: SWAP1 000021a9: DUP2 000021aa: ADD 000021ab: SWAP1 000021ac: PUSH1 0x1f 000021ae: AND 000021af: DUP1 000021b0: ISZERO 000021b1: PUSH2 0x21ce 000021b4: JUMPI 000021b5: DUP1 000021b6: DUP3 000021b7: SUB 000021b8: DUP1 000021b9: MLOAD 000021ba: PUSH1 0x01 000021bc: DUP4 000021bd: PUSH1 0x20 000021bf: SUB 000021c0: PUSH2 0x0100 000021c3: EXP 000021c4: SUB 000021c5: NOT 000021c6: AND 000021c7: DUP2 000021c8: MSTORE 000021c9: PUSH1 0x20 000021cb: ADD 000021cc: SWAP2 000021cd: POP 000021ce: JUMPDEST 000021cf: POP 000021d0: SWAP5 000021d1: POP 000021d2: POP 000021d3: POP 000021d4: POP 000021d5: POP 000021d6: PUSH1 0x20 000021d8: PUSH1 0x40 000021da: MLOAD 000021db: DUP1 000021dc: DUP4 000021dd: SUB 000021de: DUP2 000021df: PUSH1 0x00 000021e1: DUP8 000021e2: DUP1 000021e3: EXTCODESIZE 000021e4: ISZERO 000021e5: DUP1 000021e6: ISZERO 000021e7: PUSH2 0x21ef 000021ea: JUMPI 000021eb: PUSH1 0x00 000021ed: DUP1 000021ee: REVERT 000021ef: JUMPDEST 000021f0: POP 000021f1: GAS 000021f2: CALL 000021f3: ISZERO 000021f4: DUP1 000021f5: ISZERO 000021f6: PUSH2 0x2203 000021f9: JUMPI 000021fa: RETURNDATASIZE 000021fb: PUSH1 0x00 000021fd: DUP1 000021fe: RETURNDATACOPY 000021ff: RETURNDATASIZE 00002200: PUSH1 0x00 00002202: REVERT 00002203: JUMPDEST 00002204: POP 00002205: POP 00002206: POP 00002207: POP 00002208: PUSH1 0x40 0000220a: MLOAD 0000220b: RETURNDATASIZE 0000220c: PUSH1 0x20 0000220e: DUP2 0000220f: LT 00002210: ISZERO 00002211: PUSH2 0x2219 00002214: JUMPI 00002215: PUSH1 0x00 00002217: DUP1 00002218: REVERT 00002219: JUMPDEST 0000221a: POP 0000221b: MLOAD 0000221c: SWAP1 0000221d: POP 0000221e: PUSH2 0x2227 00002221: DUP2 00002222: DUP10 00002223: PUSH2 0x3881 00002226: JUMP 00002227: JUMPDEST 00002228: PUSH2 0x2231 0000222b: DUP2 0000222c: DUP6 0000222d: PUSH2 0x396f 00002230: JUMP 00002231: JUMPDEST 00002232: PUSH2 0x223b 00002235: DUP2 00002236: DUP9 00002237: PUSH2 0x39f1 0000223a: JUMP 0000223b: JUMPDEST 0000223c: POP 0000223d: POP 0000223e: POP 0000223f: POP 00002240: POP 00002241: POP 00002242: POP 00002243: POP 00002244: JUMP 00002245: JUMPDEST 00002246: PUSH2 0x224d 00002249: PUSH2 0x1911 0000224c: JUMP 0000224d: JUMPDEST 0000224e: PUSH1 0x01 00002250: PUSH1 0xa0 00002252: PUSH1 0x02 00002254: EXP 00002255: SUB 00002256: AND 00002257: CALLER 00002258: EQ 00002259: PUSH2 0x2261 0000225c: JUMPI 0000225d: PUSH1 0x00 0000225f: DUP1 00002260: REVERT 00002261: JUMPDEST 00002262: PUSH2 0x226a 00002265: DUP3 00002266: PUSH2 0x1018 00002269: JUMP 0000226a: JUMPDEST 0000226b: ISZERO 0000226c: ISZERO 0000226d: PUSH2 0x2275 00002270: JUMPI 00002271: PUSH1 0x00 00002273: DUP1 00002274: REVERT 00002275: JUMPDEST 00002276: DUP1 00002277: ISZERO 00002278: DUP1 00002279: PUSH2 0x229b 0000227c: JUMPI 0000227d: POP 0000227e: PUSH2 0x2286 00002281: DUP3 00002282: PUSH2 0x1cd2 00002285: JUMP 00002286: JUMPDEST 00002287: DUP2 00002288: GT 00002289: DUP1 0000228a: ISZERO 0000228b: PUSH2 0x229b 0000228e: JUMPI 0000228f: POP 00002290: PUSH2 0x2298 00002293: DUP3 00002294: PUSH2 0x2505 00002297: JUMP 00002298: JUMPDEST 00002299: DUP2 0000229a: LT 0000229b: JUMPDEST 0000229c: ISZERO 0000229d: ISZERO 0000229e: PUSH2 0x22a6 000022a1: JUMPI 000022a2: PUSH1 0x00 000022a4: DUP1 000022a5: REVERT 000022a6: JUMPDEST 000022a7: DUP1 000022a8: PUSH1 0x00 000022aa: DUP1 000022ab: DUP5 000022ac: PUSH1 0x40 000022ae: MLOAD 000022af: PUSH1 0x20 000022b1: ADD 000022b2: DUP1 000022b3: DUP1 000022b4: PUSH1 0x00 000022b6: DUP1 000022b7: MLOAD 000022b8: PUSH1 0x20 000022ba: PUSH2 0x49ec 000022bd: DUP4 000022be: CODECOPY 000022bf: DUP2 000022c0: MLOAD 000022c1: SWAP2 000022c2: MSTORE 000022c3: DUP2 000022c4: MSTORE 000022c5: POP 000022c6: PUSH1 0x08 000022c8: ADD 000022c9: DUP3 000022ca: PUSH1 0x01 000022cc: PUSH1 0xa0 000022ce: PUSH1 0x02 000022d0: EXP 000022d1: SUB 000022d2: AND 000022d3: PUSH1 0x01 000022d5: PUSH1 0xa0 000022d7: PUSH1 0x02 000022d9: EXP 000022da: SUB 000022db: AND 000022dc: PUSH1 0x60 000022de: PUSH1 0x02 000022e0: EXP 000022e1: MUL 000022e2: DUP2 000022e3: MSTORE 000022e4: PUSH1 0x14 000022e6: ADD 000022e7: SWAP2 000022e8: POP 000022e9: POP 000022ea: PUSH1 0x40 000022ec: MLOAD 000022ed: PUSH1 0x20 000022ef: DUP2 000022f0: DUP4 000022f1: SUB 000022f2: SUB 000022f3: DUP2 000022f4: MSTORE 000022f5: SWAP1 000022f6: PUSH1 0x40 000022f8: MSTORE 000022f9: PUSH1 0x40 000022fb: MLOAD 000022fc: DUP1 000022fd: DUP3 000022fe: DUP1 000022ff: MLOAD 00002300: SWAP1 00002301: PUSH1 0x20 00002303: ADD 00002304: SWAP1 00002305: DUP1 00002306: DUP4 00002307: DUP4 00002308: PUSH1 0x20 0000230a: DUP4 0000230b: LT 0000230c: PUSH2 0x08f0 0000230f: JUMPI 00002310: DUP1 00002311: MLOAD 00002312: DUP3 00002313: MSTORE 00002314: PUSH1 0x1f 00002316: NOT 00002317: SWAP1 00002318: SWAP3 00002319: ADD 0000231a: SWAP2 0000231b: PUSH1 0x20 0000231d: SWAP2 0000231e: DUP3 0000231f: ADD 00002320: SWAP2 00002321: ADD 00002322: PUSH2 0x08d1 00002325: JUMP 00002326: JUMPDEST 00002327: PUSH2 0x232e 0000232a: PUSH2 0x1911 0000232d: JUMP 0000232e: JUMPDEST 0000232f: PUSH1 0x01 00002331: PUSH1 0xa0 00002333: PUSH1 0x02 00002335: EXP 00002336: SUB 00002337: AND 00002338: CALLER 00002339: EQ 0000233a: PUSH2 0x2342 0000233d: JUMPI 0000233e: PUSH1 0x00 00002340: DUP1 00002341: REVERT 00002342: JUMPDEST 00002343: PUSH2 0x234b 00002346: DUP3 00002347: PUSH2 0x1018 0000234a: JUMP 0000234b: JUMPDEST 0000234c: ISZERO 0000234d: ISZERO 0000234e: PUSH2 0x2356 00002351: JUMPI 00002352: PUSH1 0x00 00002354: DUP1 00002355: REVERT 00002356: JUMPDEST 00002357: PUSH1 0x00 00002359: DUP2 0000235a: GT 0000235b: DUP1 0000235c: ISZERO 0000235d: PUSH2 0x236d 00002360: JUMPI 00002361: POP 00002362: PUSH2 0x236a 00002365: DUP3 00002366: PUSH2 0x2505 00002369: JUMP 0000236a: JUMPDEST 0000236b: DUP2 0000236c: LT 0000236d: JUMPDEST 0000236e: DUP1 0000236f: ISZERO 00002370: PUSH2 0x2380 00002373: JUMPI 00002374: POP 00002375: PUSH2 0x237d 00002378: DUP3 00002379: PUSH2 0x0932 0000237c: JUMP 0000237d: JUMPDEST 0000237e: DUP2 0000237f: LT 00002380: JUMPDEST 00002381: ISZERO 00002382: ISZERO 00002383: PUSH2 0x238b 00002386: JUMPI 00002387: PUSH1 0x00 00002389: DUP1 0000238a: REVERT 0000238b: JUMPDEST 0000238c: DUP1 0000238d: PUSH1 0x00 0000238f: DUP1 00002390: DUP5 00002391: PUSH1 0x40 00002393: MLOAD 00002394: PUSH1 0x20 00002396: ADD 00002397: DUP1 00002398: DUP1 00002399: PUSH1 0x00 0000239b: DUP1 0000239c: MLOAD 0000239d: PUSH1 0x20 0000239f: PUSH2 0x4a0c 000023a2: DUP4 000023a3: CODECOPY 000023a4: DUP2 000023a5: MLOAD 000023a6: SWAP2 000023a7: MSTORE 000023a8: DUP2 000023a9: MSTORE 000023aa: POP 000023ab: PUSH1 0x08 000023ad: ADD 000023ae: DUP3 000023af: PUSH1 0x01 000023b1: PUSH1 0xa0 000023b3: PUSH1 0x02 000023b5: EXP 000023b6: SUB 000023b7: AND 000023b8: PUSH1 0x01 000023ba: PUSH1 0xa0 000023bc: PUSH1 0x02 000023be: EXP 000023bf: SUB 000023c0: AND 000023c1: PUSH1 0x60 000023c3: PUSH1 0x02 000023c5: EXP 000023c6: MUL 000023c7: DUP2 000023c8: MSTORE 000023c9: PUSH1 0x14 000023cb: ADD 000023cc: SWAP2 000023cd: POP 000023ce: POP 000023cf: PUSH1 0x40 000023d1: MLOAD 000023d2: PUSH1 0x20 000023d4: DUP2 000023d5: DUP4 000023d6: SUB 000023d7: SUB 000023d8: DUP2 000023d9: MSTORE 000023da: SWAP1 000023db: PUSH1 0x40 000023dd: MSTORE 000023de: PUSH1 0x40 000023e0: MLOAD 000023e1: DUP1 000023e2: DUP3 000023e3: DUP1 000023e4: MLOAD 000023e5: SWAP1 000023e6: PUSH1 0x20 000023e8: ADD 000023e9: SWAP1 000023ea: DUP1 000023eb: DUP4 000023ec: DUP4 000023ed: PUSH1 0x20 000023ef: DUP4 000023f0: LT 000023f1: PUSH2 0x08f0 000023f4: JUMPI 000023f5: DUP1 000023f6: MLOAD 000023f7: DUP3 000023f8: MSTORE 000023f9: PUSH1 0x1f 000023fb: NOT 000023fc: SWAP1 000023fd: SWAP3 000023fe: ADD 000023ff: SWAP2 00002400: PUSH1 0x20 00002402: SWAP2 00002403: DUP3 00002404: ADD 00002405: SWAP2 00002406: ADD 00002407: PUSH2 0x08d1 0000240a: JUMP 0000240b: JUMPDEST 0000240c: PUSH1 0x00 0000240e: DUP1 0000240f: PUSH1 0x00 00002411: DUP5 00002412: DUP5 00002413: PUSH1 0x40 00002415: MLOAD 00002416: PUSH1 0x20 00002418: ADD 00002419: DUP1 0000241a: DUP1 0000241b: PUSH32 0x746f74616c457865637574656450657244617900000000000000000000000000 0000243c: DUP2 0000243d: MSTORE 0000243e: POP 0000243f: PUSH1 0x13 00002441: ADD 00002442: DUP4 00002443: PUSH1 0x01 00002445: PUSH1 0xa0 00002447: PUSH1 0x02 00002449: EXP 0000244a: SUB 0000244b: AND 0000244c: PUSH1 0x01 0000244e: PUSH1 0xa0 00002450: PUSH1 0x02 00002452: EXP 00002453: SUB 00002454: AND 00002455: PUSH1 0x60 00002457: PUSH1 0x02 00002459: EXP 0000245a: MUL 0000245b: DUP2 0000245c: MSTORE 0000245d: PUSH1 0x14 0000245f: ADD 00002460: DUP3 00002461: DUP2 00002462: MSTORE 00002463: PUSH1 0x20 00002465: ADD 00002466: SWAP3 00002467: POP 00002468: POP 00002469: POP 0000246a: PUSH1 0x40 0000246c: MLOAD 0000246d: PUSH1 0x20 0000246f: DUP2 00002470: DUP4 00002471: SUB 00002472: SUB 00002473: DUP2 00002474: MSTORE 00002475: SWAP1 00002476: PUSH1 0x40 00002478: MSTORE 00002479: PUSH1 0x40 0000247b: MLOAD 0000247c: DUP1 0000247d: DUP3 0000247e: DUP1 0000247f: MLOAD 00002480: SWAP1 00002481: PUSH1 0x20 00002483: ADD 00002484: SWAP1 00002485: DUP1 00002486: DUP4 00002487: DUP4 00002488: PUSH1 0x20 0000248a: DUP4 0000248b: LT 0000248c: PUSH2 0x1e19 0000248f: JUMPI 00002490: DUP1 00002491: MLOAD 00002492: DUP3 00002493: MSTORE 00002494: PUSH1 0x1f 00002496: NOT 00002497: SWAP1 00002498: SWAP3 00002499: ADD 0000249a: SWAP2 0000249b: PUSH1 0x20 0000249d: SWAP2 0000249e: DUP3 0000249f: ADD 000024a0: SWAP2 000024a1: ADD 000024a2: PUSH2 0x1dfa 000024a5: JUMP 000024a6: JUMPDEST 000024a7: PUSH2 0x24ae 000024aa: PUSH2 0x1911 000024ad: JUMP 000024ae: JUMPDEST 000024af: PUSH1 0x01 000024b1: PUSH1 0xa0 000024b3: PUSH1 0x02 000024b5: EXP 000024b6: SUB 000024b7: AND 000024b8: CALLER 000024b9: EQ 000024ba: PUSH2 0x24c2 000024bd: JUMPI 000024be: PUSH1 0x00 000024c0: DUP1 000024c1: REVERT 000024c2: JUMPDEST 000024c3: PUSH1 0x01 000024c5: PUSH1 0xa0 000024c7: PUSH1 0x02 000024c9: EXP 000024ca: SUB 000024cb: DUP2 000024cc: AND 000024cd: ISZERO 000024ce: ISZERO 000024cf: PUSH2 0x24d7 000024d2: JUMPI 000024d3: PUSH1 0x00 000024d5: DUP1 000024d6: REVERT 000024d7: JUMPDEST 000024d8: PUSH2 0x0dc7 000024db: DUP2 000024dc: PUSH2 0x2ebb 000024df: JUMP 000024e0: JUMPDEST 000024e1: PUSH2 0x24e8 000024e4: PUSH2 0x1911 000024e7: JUMP 000024e8: JUMPDEST 000024e9: PUSH1 0x01 000024eb: PUSH1 0xa0 000024ed: PUSH1 0x02 000024ef: EXP 000024f0: SUB 000024f1: AND 000024f2: CALLER 000024f3: EQ 000024f4: PUSH2 0x24fc 000024f7: JUMPI 000024f8: PUSH1 0x00 000024fa: DUP1 000024fb: REVERT 000024fc: JUMPDEST 000024fd: PUSH2 0x0dc7 00002500: DUP2 00002501: PUSH2 0x2e5a 00002504: JUMP 00002505: JUMPDEST 00002506: PUSH1 0x00 00002508: DUP1 00002509: PUSH1 0x00 0000250b: DUP4 0000250c: PUSH1 0x40 0000250e: MLOAD 0000250f: PUSH1 0x20 00002511: ADD 00002512: DUP1 00002513: DUP1 00002514: PUSH1 0x00 00002516: DUP1 00002517: MLOAD 00002518: PUSH1 0x20 0000251a: PUSH2 0x4a2c 0000251d: DUP4 0000251e: CODECOPY 0000251f: DUP2 00002520: MLOAD 00002521: SWAP2 00002522: MSTORE 00002523: DUP2 00002524: MSTORE 00002525: POP 00002526: PUSH1 0x0a 00002528: ADD 00002529: DUP3 0000252a: PUSH1 0x01 0000252c: PUSH1 0xa0 0000252e: PUSH1 0x02 00002530: EXP 00002531: SUB 00002532: AND 00002533: PUSH1 0x01 00002535: PUSH1 0xa0 00002537: PUSH1 0x02 00002539: EXP 0000253a: SUB 0000253b: AND 0000253c: PUSH1 0x60 0000253e: PUSH1 0x02 00002540: EXP 00002541: MUL 00002542: DUP2 00002543: MSTORE 00002544: PUSH1 0x14 00002546: ADD 00002547: SWAP2 00002548: POP 00002549: POP 0000254a: PUSH1 0x40 0000254c: MLOAD 0000254d: PUSH1 0x20 0000254f: DUP2 00002550: DUP4 00002551: SUB 00002552: SUB 00002553: DUP2 00002554: MSTORE 00002555: SWAP1 00002556: PUSH1 0x40 00002558: MSTORE 00002559: PUSH1 0x40 0000255b: MLOAD 0000255c: DUP1 0000255d: DUP3 0000255e: DUP1 0000255f: MLOAD 00002560: SWAP1 00002561: PUSH1 0x20 00002563: ADD 00002564: SWAP1 00002565: DUP1 00002566: DUP4 00002567: DUP4 00002568: PUSH1 0x20 0000256a: DUP4 0000256b: LT 0000256c: PUSH2 0x09b4 0000256f: JUMPI 00002570: DUP1 00002571: MLOAD 00002572: DUP3 00002573: MSTORE 00002574: PUSH1 0x1f 00002576: NOT 00002577: SWAP1 00002578: SWAP3 00002579: ADD 0000257a: SWAP2 0000257b: PUSH1 0x20 0000257d: SWAP2 0000257e: DUP3 0000257f: ADD 00002580: SWAP2 00002581: ADD 00002582: PUSH2 0x0995 00002585: JUMP 00002586: JUMPDEST 00002587: PUSH2 0x258e 0000258a: PUSH2 0x3087 0000258d: JUMP 0000258e: JUMPDEST 0000258f: ISZERO 00002590: PUSH2 0x2598 00002593: JUMPI 00002594: PUSH1 0x00 00002596: DUP1 00002597: REVERT 00002598: JUMPDEST 00002599: PUSH2 0x25a2 0000259c: PUSH1 0x01 0000259e: PUSH2 0x3a74 000025a1: JUMP 000025a2: JUMPDEST 000025a3: PUSH2 0x25bc 000025a6: PUSH1 0x01 000025a8: PUSH1 0xa0 000025aa: PUSH1 0x02 000025ac: EXP 000025ad: SUB 000025ae: DUP5 000025af: AND 000025b0: CALLER 000025b1: DUP4 000025b2: PUSH4 0xffffffff 000025b7: PUSH2 0x3acf 000025ba: AND 000025bb: JUMP 000025bc: JUMPDEST 000025bd: PUSH2 0x25c6 000025c0: PUSH1 0x00 000025c2: PUSH2 0x3a74 000025c5: JUMP 000025c6: JUMPDEST 000025c7: PUSH2 0x0ea8 000025ca: DUP4 000025cb: CALLER 000025cc: DUP4 000025cd: DUP6 000025ce: PUSH1 0x40 000025d0: MLOAD 000025d1: PUSH1 0x20 000025d3: ADD 000025d4: DUP1 000025d5: DUP3 000025d6: PUSH1 0x01 000025d8: PUSH1 0xa0 000025da: PUSH1 0x02 000025dc: EXP 000025dd: SUB 000025de: AND 000025df: PUSH1 0x01 000025e1: PUSH1 0xa0 000025e3: PUSH1 0x02 000025e5: EXP 000025e6: SUB 000025e7: AND 000025e8: PUSH1 0x60 000025ea: PUSH1 0x02 000025ec: EXP 000025ed: MUL 000025ee: DUP2 000025ef: MSTORE 000025f0: PUSH1 0x14 000025f2: ADD 000025f3: SWAP2 000025f4: POP 000025f5: POP 000025f6: PUSH1 0x40 000025f8: MLOAD 000025f9: PUSH1 0x20 000025fb: DUP2 000025fc: DUP4 000025fd: SUB 000025fe: SUB 000025ff: DUP2 00002600: MSTORE 00002601: SWAP1 00002602: PUSH1 0x40 00002604: MSTORE 00002605: PUSH2 0x30d8 00002608: JUMP 00002609: JUMPDEST 0000260a: PUSH1 0x00 0000260c: DUP1 0000260d: PUSH1 0x00 0000260f: PUSH2 0x2616 00002612: PUSH2 0x1eb6 00002615: JUMP 00002616: JUMPDEST 00002617: PUSH1 0x01 00002619: PUSH1 0xa0 0000261b: PUSH1 0x02 0000261d: EXP 0000261e: SUB 0000261f: AND 00002620: CALLER 00002621: EQ 00002622: PUSH2 0x262a 00002625: JUMPI 00002626: PUSH1 0x00 00002628: DUP1 00002629: REVERT 0000262a: JUMPDEST 0000262b: PUSH2 0x2632 0000262e: PUSH2 0x18ba 00002631: JUMP 00002632: JUMPDEST 00002633: PUSH1 0x01 00002635: PUSH1 0xa0 00002637: PUSH1 0x02 00002639: EXP 0000263a: SUB 0000263b: AND 0000263c: PUSH2 0x2643 0000263f: PUSH2 0x28e0 00002642: JUMP 00002643: JUMPDEST 00002644: PUSH1 0x01 00002646: PUSH1 0xa0 00002648: PUSH1 0x02 0000264a: EXP 0000264b: SUB 0000264c: AND 0000264d: EQ 0000264e: PUSH2 0x2656 00002651: JUMPI 00002652: PUSH1 0x00 00002654: DUP1 00002655: REVERT 00002656: JUMPDEST 00002657: PUSH2 0x265f 0000265a: DUP5 0000265b: PUSH2 0x14cc 0000265e: JUMP 0000265f: JUMPDEST 00002660: ISZERO 00002661: PUSH2 0x2669 00002664: JUMPI 00002665: PUSH1 0x00 00002667: DUP1 00002668: REVERT 00002669: JUMPDEST 0000266a: PUSH2 0x2672 0000266d: DUP5 0000266e: PUSH2 0x26f1 00002671: JUMP 00002672: JUMPDEST 00002673: SWAP3 00002674: POP 00002675: PUSH2 0x267d 00002678: DUP5 00002679: PUSH2 0x3b72 0000267c: JUMP 0000267d: JUMPDEST 0000267e: SWAP2 0000267f: POP 00002680: PUSH2 0x2688 00002683: DUP5 00002684: PUSH2 0x3bf6 00002687: JUMP 00002688: JUMPDEST 00002689: SWAP1 0000268a: POP 0000268b: PUSH2 0x2693 0000268e: DUP5 0000268f: PUSH2 0x3c79 00002692: JUMP 00002693: JUMPDEST 00002694: PUSH2 0x269e 00002697: DUP4 00002698: DUP4 00002699: DUP4 0000269a: PUSH2 0x3d4b 0000269d: JUMP 0000269e: JUMPDEST 0000269f: PUSH1 0x40 000026a1: DUP1 000026a2: MLOAD 000026a3: PUSH1 0x01 000026a5: PUSH1 0xa0 000026a7: PUSH1 0x02 000026a9: EXP 000026aa: SUB 000026ab: DUP1 000026ac: DUP7 000026ad: AND 000026ae: DUP3 000026af: MSTORE 000026b0: DUP5 000026b1: AND 000026b2: PUSH1 0x20 000026b4: DUP3 000026b5: ADD 000026b6: MSTORE 000026b7: DUP1 000026b8: DUP3 000026b9: ADD 000026ba: DUP4 000026bb: SWAP1 000026bc: MSTORE 000026bd: SWAP1 000026be: MLOAD 000026bf: DUP6 000026c0: SWAP2 000026c1: PUSH32 0x07b5483b8e4bd8ea240a474d5117738350e7d431e3668c48a97910b0b397796a 000026e2: SWAP2 000026e3: SWAP1 000026e4: DUP2 000026e5: SWAP1 000026e6: SUB 000026e7: PUSH1 0x60 000026e9: ADD 000026ea: SWAP1 000026eb: LOG2 000026ec: POP 000026ed: POP 000026ee: POP 000026ef: POP 000026f0: JUMP 000026f1: JUMPDEST 000026f2: PUSH1 0x00 000026f4: PUSH1 0x02 000026f6: PUSH1 0x00 000026f8: DUP4 000026f9: PUSH1 0x40 000026fb: MLOAD 000026fc: PUSH1 0x20 000026fe: ADD 000026ff: DUP1 00002700: DUP1 00002701: PUSH32 0x6d657373616765546f6b656e0000000000000000000000000000000000000000 00002722: DUP2 00002723: MSTORE 00002724: POP 00002725: PUSH1 0x0c 00002727: ADD 00002728: DUP3 00002729: PUSH1 0x00 0000272b: NOT 0000272c: AND 0000272d: PUSH1 0x00 0000272f: NOT 00002730: AND 00002731: DUP2 00002732: MSTORE 00002733: PUSH1 0x20 00002735: ADD 00002736: SWAP2 00002737: POP 00002738: POP 00002739: PUSH1 0x40 0000273b: MLOAD 0000273c: PUSH1 0x20 0000273e: DUP2 0000273f: DUP4 00002740: SUB 00002741: SUB 00002742: DUP2 00002743: MSTORE 00002744: SWAP1 00002745: PUSH1 0x40 00002747: MSTORE 00002748: PUSH1 0x40 0000274a: MLOAD 0000274b: DUP1 0000274c: DUP3 0000274d: DUP1 0000274e: MLOAD 0000274f: SWAP1 00002750: PUSH1 0x20 00002752: ADD 00002753: SWAP1 00002754: DUP1 00002755: DUP4 00002756: DUP4 00002757: JUMPDEST 00002758: PUSH1 0x20 0000275a: DUP4 0000275b: LT 0000275c: PUSH2 0x2776 0000275f: JUMPI 00002760: DUP1 00002761: MLOAD 00002762: DUP3 00002763: MSTORE 00002764: PUSH1 0x1f 00002766: NOT 00002767: SWAP1 00002768: SWAP3 00002769: ADD 0000276a: SWAP2 0000276b: PUSH1 0x20 0000276d: SWAP2 0000276e: DUP3 0000276f: ADD 00002770: SWAP2 00002771: ADD 00002772: PUSH2 0x2757 00002775: JUMP 00002776: JUMPDEST 00002777: MLOAD 00002778: DUP2 00002779: MLOAD 0000277a: PUSH1 0x20 0000277c: SWAP4 0000277d: DUP5 0000277e: SUB 0000277f: PUSH2 0x0100 00002782: EXP 00002783: PUSH1 0x00 00002785: NOT 00002786: ADD 00002787: DUP1 00002788: NOT 00002789: SWAP1 0000278a: SWAP3 0000278b: AND 0000278c: SWAP2 0000278d: AND 0000278e: OR 0000278f: SWAP1 00002790: MSTORE 00002791: PUSH1 0x40 00002793: DUP1 00002794: MLOAD 00002795: SWAP3 00002796: SWAP1 00002797: SWAP5 00002798: ADD 00002799: DUP3 0000279a: SWAP1 0000279b: SUB 0000279c: SWAP1 0000279d: SWAP2 0000279e: KECCAK256 0000279f: DUP7 000027a0: MSTORE 000027a1: DUP6 000027a2: ADD 000027a3: SWAP6 000027a4: SWAP1 000027a5: SWAP6 000027a6: MSTORE 000027a7: SWAP3 000027a8: SWAP1 000027a9: SWAP3 000027aa: ADD 000027ab: PUSH1 0x00 000027ad: KECCAK256 000027ae: SLOAD 000027af: PUSH1 0x01 000027b1: PUSH1 0xa0 000027b3: PUSH1 0x02 000027b5: EXP 000027b6: SUB 000027b7: AND 000027b8: SWAP6 000027b9: SWAP5 000027ba: POP 000027bb: POP 000027bc: POP 000027bd: POP 000027be: POP 000027bf: JUMP 000027c0: JUMPDEST 000027c1: PUSH1 0x40 000027c3: DUP1 000027c4: MLOAD 000027c5: PUSH32 0x746f6b656e526567697374726174696f6e4d6573736167654964000000000000 000027e6: PUSH1 0x20 000027e8: DUP1 000027e9: DUP4 000027ea: ADD 000027eb: SWAP2 000027ec: SWAP1 000027ed: SWAP2 000027ee: MSTORE 000027ef: PUSH1 0x60 000027f1: PUSH1 0x02 000027f3: EXP 000027f4: PUSH1 0x01 000027f6: PUSH1 0xa0 000027f8: PUSH1 0x02 000027fa: EXP 000027fb: SUB 000027fc: DUP7 000027fd: AND 000027fe: MUL 000027ff: PUSH1 0x3a 00002801: DUP4 00002802: ADD 00002803: MSTORE 00002804: DUP3 00002805: MLOAD 00002806: PUSH1 0x2e 00002808: DUP2 00002809: DUP5 0000280a: SUB 0000280b: ADD 0000280c: DUP2 0000280d: MSTORE 0000280e: PUSH1 0x4e 00002810: SWAP1 00002811: SWAP3 00002812: ADD 00002813: SWAP3 00002814: DUP4 00002815: SWAP1 00002816: MSTORE 00002817: DUP2 00002818: MLOAD 00002819: DUP5 0000281a: SWAP4 0000281b: PUSH1 0x00 0000281d: SWAP4 0000281e: DUP5 0000281f: SWAP4 00002820: SWAP1 00002821: SWAP3 00002822: DUP3 00002823: SWAP2 00002824: DUP5 00002825: ADD 00002826: SWAP1 00002827: DUP1 00002828: DUP4 00002829: DUP4 0000282a: PUSH1 0x20 0000282c: DUP4 0000282d: LT 0000282e: PUSH2 0x08f0 00002831: JUMPI 00002832: DUP1 00002833: MLOAD 00002834: DUP3 00002835: MSTORE 00002836: PUSH1 0x1f 00002838: NOT 00002839: SWAP1 0000283a: SWAP3 0000283b: ADD 0000283c: SWAP2 0000283d: PUSH1 0x20 0000283f: SWAP2 00002840: DUP3 00002841: ADD 00002842: SWAP2 00002843: ADD 00002844: PUSH2 0x08d1 00002847: JUMP 00002848: JUMPDEST 00002849: PUSH2 0x2851 0000284c: DUP2 0000284d: PUSH2 0x3f79 00002850: JUMP 00002851: JUMPDEST 00002852: ISZERO 00002853: ISZERO 00002854: PUSH2 0x285c 00002857: JUMPI 00002858: PUSH1 0x00 0000285a: DUP1 0000285b: REVERT 0000285c: JUMPDEST 0000285d: PUSH32 0x811bbb11e8899da471f0e69a3ed55090fc90215227fc5fb1cb0d6e962ea7b74f 0000287e: PUSH1 0x00 00002880: MSTORE 00002881: PUSH1 0x02 00002883: PUSH1 0x20 00002885: MSTORE 00002886: PUSH32 0xb4ed64697d3ef8518241966f7c6f28b0d72f20f51198717d198d2d55076c593d 000028a7: DUP1 000028a8: SLOAD 000028a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028be: NOT 000028bf: AND 000028c0: PUSH1 0x01 000028c2: PUSH1 0xa0 000028c4: PUSH1 0x02 000028c6: EXP 000028c7: SUB 000028c8: SWAP3 000028c9: SWAP1 000028ca: SWAP3 000028cb: AND 000028cc: SWAP2 000028cd: SWAP1 000028ce: SWAP2 000028cf: OR 000028d0: SWAP1 000028d1: SSTORE 000028d2: JUMP 000028d3: JUMPDEST 000028d4: DUP2 000028d5: DUP2 000028d6: ADD 000028d7: DUP3 000028d8: DUP2 000028d9: LT 000028da: ISZERO 000028db: PUSH2 0x1e57 000028de: JUMPI 000028df: INVALID 000028e0: JUMPDEST 000028e1: PUSH1 0x00 000028e3: PUSH2 0x28ea 000028e6: PUSH2 0x1eb6 000028e9: JUMP 000028ea: JUMPDEST 000028eb: PUSH1 0x01 000028ed: PUSH1 0xa0 000028ef: PUSH1 0x02 000028f1: EXP 000028f2: SUB 000028f3: AND 000028f4: PUSH4 0xd67bdd25 000028f9: PUSH1 0x40 000028fb: MLOAD 000028fc: DUP2 000028fd: PUSH4 0xffffffff 00002902: AND 00002903: PUSH1 0xe0 00002905: PUSH1 0x02 00002907: EXP 00002908: MUL 00002909: DUP2 0000290a: MSTORE 0000290b: PUSH1 0x04 0000290d: ADD 0000290e: PUSH1 0x20 00002910: PUSH1 0x40 00002912: MLOAD 00002913: DUP1 00002914: DUP4 00002915: SUB 00002916: DUP2 00002917: PUSH1 0x00 00002919: DUP8 0000291a: DUP1 0000291b: EXTCODESIZE 0000291c: ISZERO 0000291d: DUP1 0000291e: ISZERO 0000291f: PUSH2 0x2927 00002922: JUMPI 00002923: PUSH1 0x00 00002925: DUP1 00002926: REVERT 00002927: JUMPDEST 00002928: POP 00002929: GAS 0000292a: CALL 0000292b: ISZERO 0000292c: DUP1 0000292d: ISZERO 0000292e: PUSH2 0x293b 00002931: JUMPI 00002932: RETURNDATASIZE 00002933: PUSH1 0x00 00002935: DUP1 00002936: RETURNDATACOPY 00002937: RETURNDATASIZE 00002938: PUSH1 0x00 0000293a: REVERT 0000293b: JUMPDEST 0000293c: POP 0000293d: POP 0000293e: POP 0000293f: POP 00002940: PUSH1 0x40 00002942: MLOAD 00002943: RETURNDATASIZE 00002944: PUSH1 0x20 00002946: DUP2 00002947: LT 00002948: ISZERO 00002949: PUSH2 0x2951 0000294c: JUMPI 0000294d: PUSH1 0x00 0000294f: DUP1 00002950: REVERT 00002951: JUMPDEST 00002952: POP 00002953: MLOAD 00002954: SWAP1 00002955: POP 00002956: SWAP1 00002957: JUMP 00002958: JUMPDEST 00002959: PUSH2 0x2962 0000295c: DUP4 0000295d: DUP3 0000295e: PUSH2 0x13c8 00002961: JUMP 00002962: JUMPDEST 00002963: ISZERO 00002964: PUSH2 0x2989 00002967: JUMPI 00002968: PUSH2 0x2979 0000296b: DUP4 0000296c: PUSH2 0x2973 0000296f: PUSH2 0x141e 00002972: JUMP 00002973: JUMPDEST 00002974: DUP4 00002975: PUSH2 0x3f81 00002978: JUMP 00002979: JUMPDEST 0000297a: PUSH2 0x2984 0000297d: DUP4 0000297e: DUP4 0000297f: DUP4 00002980: PUSH2 0x4028 00002983: JUMP 00002984: JUMPDEST 00002985: PUSH2 0x0ea8 00002988: JUMP 00002989: JUMPDEST 0000298a: PUSH2 0x0ea8 0000298d: DUP4 0000298e: DUP4 0000298f: DUP4 00002990: PUSH2 0x01ea 00002993: JUMP 00002994: JUMPDEST 00002995: PUSH32 0x98aa806e31e94a687a31c65769cb99670064dd7f5a87526da075c5fb4eab9880 000029b6: PUSH1 0x00 000029b8: MSTORE 000029b9: PUSH1 0x02 000029bb: PUSH1 0x20 000029bd: MSTORE 000029be: PUSH32 0x0c1206883be66049a02d4937078367c00b3d71dd1a9465df969363c6ddeac96d 000029df: DUP1 000029e0: SLOAD 000029e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029f6: NOT 000029f7: AND 000029f8: PUSH1 0x01 000029fa: PUSH1 0xa0 000029fc: PUSH1 0x02 000029fe: EXP 000029ff: SUB 00002a00: SWAP3 00002a01: SWAP1 00002a02: SWAP3 00002a03: AND 00002a04: SWAP2 00002a05: SWAP1 00002a06: SWAP2 00002a07: OR 00002a08: SWAP1 00002a09: SSTORE 00002a0a: JUMP 00002a0b: JUMPDEST 00002a0c: PUSH1 0x40 00002a0e: DUP2 00002a0f: ADD 00002a10: MLOAD 00002a11: PUSH1 0x00 00002a13: LT 00002a14: DUP1 00002a15: ISZERO 00002a16: PUSH2 0x2a26 00002a19: JUMPI 00002a1a: POP 00002a1b: PUSH1 0x40 00002a1d: DUP2 00002a1e: ADD 00002a1f: MLOAD 00002a20: PUSH1 0x20 00002a22: DUP3 00002a23: ADD 00002a24: MLOAD 00002a25: GT 00002a26: JUMPDEST 00002a27: DUP1 00002a28: ISZERO 00002a29: PUSH2 0x2a36 00002a2c: JUMPI 00002a2d: POP 00002a2e: PUSH1 0x20 00002a30: DUP2 00002a31: ADD 00002a32: MLOAD 00002a33: DUP2 00002a34: MLOAD 00002a35: GT 00002a36: JUMPDEST 00002a37: ISZERO 00002a38: ISZERO 00002a39: PUSH2 0x2a41 00002a3c: JUMPI 00002a3d: PUSH1 0x00 00002a3f: DUP1 00002a40: REVERT 00002a41: JUMPDEST 00002a42: DUP1 00002a43: MLOAD 00002a44: PUSH1 0x40 00002a46: DUP1 00002a47: MLOAD 00002a48: PUSH1 0x00 00002a4a: DUP1 00002a4b: MLOAD 00002a4c: PUSH1 0x20 00002a4e: PUSH2 0x4a2c 00002a51: DUP4 00002a52: CODECOPY 00002a53: DUP2 00002a54: MLOAD 00002a55: SWAP2 00002a56: MSTORE 00002a57: PUSH1 0x20 00002a59: DUP3 00002a5a: DUP2 00002a5b: ADD 00002a5c: SWAP2 00002a5d: SWAP1 00002a5e: SWAP2 00002a5f: MSTORE 00002a60: PUSH1 0x60 00002a62: PUSH1 0x02 00002a64: EXP 00002a65: PUSH1 0x01 00002a67: PUSH1 0xa0 00002a69: PUSH1 0x02 00002a6b: EXP 00002a6c: SUB 00002a6d: DUP8 00002a6e: AND 00002a6f: MUL 00002a70: PUSH1 0x2a 00002a72: DUP4 00002a73: ADD 00002a74: MSTORE 00002a75: DUP3 00002a76: MLOAD 00002a77: PUSH1 0x1e 00002a79: DUP2 00002a7a: DUP5 00002a7b: SUB 00002a7c: ADD 00002a7d: DUP2 00002a7e: MSTORE 00002a7f: PUSH1 0x3e 00002a81: SWAP1 00002a82: SWAP3 00002a83: ADD 00002a84: SWAP3 00002a85: DUP4 00002a86: SWAP1 00002a87: MSTORE 00002a88: DUP2 00002a89: MLOAD 00002a8a: PUSH1 0x00 00002a8c: SWAP4 00002a8d: DUP5 00002a8e: SWAP4 00002a8f: SWAP3 00002a90: SWAP1 00002a91: SWAP2 00002a92: DUP3 00002a93: SWAP2 00002a94: DUP5 00002a95: ADD 00002a96: SWAP1 00002a97: DUP1 00002a98: DUP4 00002a99: DUP4 00002a9a: JUMPDEST 00002a9b: PUSH1 0x20 00002a9d: DUP4 00002a9e: LT 00002a9f: PUSH2 0x2ab9 00002aa2: JUMPI 00002aa3: DUP1 00002aa4: MLOAD 00002aa5: DUP3 00002aa6: MSTORE 00002aa7: PUSH1 0x1f 00002aa9: NOT 00002aaa: SWAP1 00002aab: SWAP3 00002aac: ADD 00002aad: SWAP2 00002aae: PUSH1 0x20 00002ab0: SWAP2 00002ab1: DUP3 00002ab2: ADD 00002ab3: SWAP2 00002ab4: ADD 00002ab5: PUSH2 0x2a9a 00002ab8: JUMP 00002ab9: JUMPDEST 00002aba: MLOAD 00002abb: DUP2 00002abc: MLOAD 00002abd: PUSH1 0x20 00002abf: SWAP4 00002ac0: DUP5 00002ac1: SUB 00002ac2: PUSH2 0x0100 00002ac5: EXP 00002ac6: PUSH1 0x00 00002ac8: NOT 00002ac9: ADD 00002aca: DUP1 00002acb: NOT 00002acc: SWAP1 00002acd: SWAP3 00002ace: AND 00002acf: SWAP2 00002ad0: AND 00002ad1: OR 00002ad2: SWAP1 00002ad3: MSTORE 00002ad4: PUSH1 0x40 00002ad6: DUP1 00002ad7: MLOAD 00002ad8: SWAP3 00002ad9: SWAP1 00002ada: SWAP5 00002adb: ADD 00002adc: DUP3 00002add: SWAP1 00002ade: SUB 00002adf: SWAP1 00002ae0: SWAP2 00002ae1: KECCAK256 00002ae2: DUP7 00002ae3: MSTORE 00002ae4: DUP6 00002ae5: DUP2 00002ae6: ADD 00002ae7: SWAP7 00002ae8: SWAP1 00002ae9: SWAP7 00002aea: MSTORE 00002aeb: POP 00002aec: SWAP3 00002aed: DUP4 00002aee: ADD 00002aef: PUSH1 0x00 00002af1: SWAP1 00002af2: DUP2 00002af3: KECCAK256 00002af4: SWAP6 00002af5: SWAP1 00002af6: SWAP6 00002af7: SSTORE 00002af8: POP 00002af9: POP 00002afa: DUP4 00002afb: DUP3 00002afc: ADD 00002afd: MLOAD 00002afe: DUP2 00002aff: MLOAD 00002b00: PUSH1 0x00 00002b02: DUP1 00002b03: MLOAD 00002b04: PUSH1 0x20 00002b06: PUSH2 0x49ec 00002b09: DUP4 00002b0a: CODECOPY 00002b0b: DUP2 00002b0c: MLOAD 00002b0d: SWAP2 00002b0e: MSTORE 00002b0f: DUP2 00002b10: DUP6 00002b11: ADD 00002b12: MSTORE 00002b13: PUSH1 0x01 00002b15: PUSH1 0xa0 00002b17: PUSH1 0x02 00002b19: EXP 00002b1a: SUB 00002b1b: DUP8 00002b1c: AND 00002b1d: PUSH1 0x60 00002b1f: PUSH1 0x02 00002b21: EXP 00002b22: MUL 00002b23: PUSH1 0x28 00002b25: DUP3 00002b26: ADD 00002b27: MSTORE 00002b28: DUP3 00002b29: MLOAD 00002b2a: DUP1 00002b2b: DUP3 00002b2c: SUB 00002b2d: PUSH1 0x1c 00002b2f: ADD 00002b30: DUP2 00002b31: MSTORE 00002b32: PUSH1 0x3c 00002b34: SWAP1 00002b35: SWAP2 00002b36: ADD 00002b37: SWAP3 00002b38: DUP4 00002b39: SWAP1 00002b3a: MSTORE 00002b3b: DUP1 00002b3c: MLOAD 00002b3d: SWAP2 00002b3e: SWAP5 00002b3f: SWAP4 00002b40: DUP5 00002b41: SWAP4 00002b42: SWAP2 00002b43: SWAP3 00002b44: DUP3 00002b45: SWAP2 00002b46: DUP5 00002b47: ADD 00002b48: SWAP1 00002b49: DUP1 00002b4a: DUP4 00002b4b: DUP4 00002b4c: JUMPDEST 00002b4d: PUSH1 0x20 00002b4f: DUP4 00002b50: LT 00002b51: PUSH2 0x2b6b 00002b54: JUMPI 00002b55: DUP1 00002b56: MLOAD 00002b57: DUP3 00002b58: MSTORE 00002b59: PUSH1 0x1f 00002b5b: NOT 00002b5c: SWAP1 00002b5d: SWAP3 00002b5e: ADD 00002b5f: SWAP2 00002b60: PUSH1 0x20 00002b62: SWAP2 00002b63: DUP3 00002b64: ADD 00002b65: SWAP2 00002b66: ADD 00002b67: PUSH2 0x2b4c 00002b6a: JUMP 00002b6b: JUMPDEST 00002b6c: MLOAD 00002b6d: DUP2 00002b6e: MLOAD 00002b6f: PUSH1 0x20 00002b71: SWAP4 00002b72: DUP5 00002b73: SUB 00002b74: PUSH2 0x0100 00002b77: EXP 00002b78: PUSH1 0x00 00002b7a: NOT 00002b7b: ADD 00002b7c: DUP1 00002b7d: NOT 00002b7e: SWAP1 00002b7f: SWAP3 00002b80: AND 00002b81: SWAP2 00002b82: AND 00002b83: OR 00002b84: SWAP1 00002b85: MSTORE 00002b86: PUSH1 0x40 00002b88: DUP1 00002b89: MLOAD 00002b8a: SWAP3 00002b8b: SWAP1 00002b8c: SWAP5 00002b8d: ADD 00002b8e: DUP3 00002b8f: SWAP1 00002b90: SUB 00002b91: SWAP1 00002b92: SWAP2 00002b93: KECCAK256 00002b94: DUP7 00002b95: MSTORE 00002b96: DUP6 00002b97: DUP2 00002b98: ADD 00002b99: SWAP7 00002b9a: SWAP1 00002b9b: SWAP7 00002b9c: MSTORE 00002b9d: POP 00002b9e: SWAP3 00002b9f: DUP4 00002ba0: ADD 00002ba1: PUSH1 0x00 00002ba3: SWAP1 00002ba4: DUP2 00002ba5: KECCAK256 00002ba6: SWAP6 00002ba7: SWAP1 00002ba8: SWAP6 00002ba9: SSTORE 00002baa: POP 00002bab: POP 00002bac: DUP4 00002bad: DUP2 00002bae: ADD 00002baf: MLOAD 00002bb0: DUP2 00002bb1: MLOAD 00002bb2: PUSH1 0x00 00002bb4: DUP1 00002bb5: MLOAD 00002bb6: PUSH1 0x20 00002bb8: PUSH2 0x4a0c 00002bbb: DUP4 00002bbc: CODECOPY 00002bbd: DUP2 00002bbe: MLOAD 00002bbf: SWAP2 00002bc0: MSTORE 00002bc1: DUP2 00002bc2: DUP6 00002bc3: ADD 00002bc4: MSTORE 00002bc5: PUSH1 0x01 00002bc7: PUSH1 0xa0 00002bc9: PUSH1 0x02 00002bcb: EXP 00002bcc: SUB 00002bcd: DUP8 00002bce: AND 00002bcf: PUSH1 0x60 00002bd1: PUSH1 0x02 00002bd3: EXP 00002bd4: MUL 00002bd5: PUSH1 0x28 00002bd7: DUP3 00002bd8: ADD 00002bd9: MSTORE 00002bda: DUP3 00002bdb: MLOAD 00002bdc: DUP1 00002bdd: DUP3 00002bde: SUB 00002bdf: PUSH1 0x1c 00002be1: ADD 00002be2: DUP2 00002be3: MSTORE 00002be4: PUSH1 0x3c 00002be6: SWAP1 00002be7: SWAP2 00002be8: ADD 00002be9: SWAP3 00002bea: DUP4 00002beb: SWAP1 00002bec: MSTORE 00002bed: DUP1 00002bee: MLOAD 00002bef: SWAP2 00002bf0: SWAP5 00002bf1: SWAP4 00002bf2: DUP5 00002bf3: SWAP4 00002bf4: SWAP2 00002bf5: SWAP3 00002bf6: DUP3 00002bf7: SWAP2 00002bf8: DUP5 00002bf9: ADD 00002bfa: SWAP1 00002bfb: DUP1 00002bfc: DUP4 00002bfd: DUP4 00002bfe: JUMPDEST 00002bff: PUSH1 0x20 00002c01: DUP4 00002c02: LT 00002c03: PUSH2 0x2c1d 00002c06: JUMPI 00002c07: DUP1 00002c08: MLOAD 00002c09: DUP3 00002c0a: MSTORE 00002c0b: PUSH1 0x1f 00002c0d: NOT 00002c0e: SWAP1 00002c0f: SWAP3 00002c10: ADD 00002c11: SWAP2 00002c12: PUSH1 0x20 00002c14: SWAP2 00002c15: DUP3 00002c16: ADD 00002c17: SWAP2 00002c18: ADD 00002c19: PUSH2 0x2bfe 00002c1c: JUMP 00002c1d: JUMPDEST 00002c1e: MLOAD 00002c1f: DUP2 00002c20: MLOAD 00002c21: PUSH1 0x20 00002c23: SWAP4 00002c24: DUP5 00002c25: SUB 00002c26: PUSH2 0x0100 00002c29: EXP 00002c2a: PUSH1 0x00 00002c2c: NOT 00002c2d: ADD 00002c2e: DUP1 00002c2f: NOT 00002c30: SWAP1 00002c31: SWAP3 00002c32: AND 00002c33: SWAP2 00002c34: AND 00002c35: OR 00002c36: SWAP1 00002c37: MSTORE 00002c38: PUSH1 0x40 00002c3a: DUP1 00002c3b: MLOAD 00002c3c: SWAP3 00002c3d: SWAP1 00002c3e: SWAP5 00002c3f: ADD 00002c40: DUP3 00002c41: SWAP1 00002c42: SUB 00002c43: SWAP1 00002c44: SWAP2 00002c45: KECCAK256 00002c46: DUP7 00002c47: MSTORE 00002c48: DUP6 00002c49: ADD 00002c4a: SWAP6 00002c4b: SWAP1 00002c4c: SWAP6 00002c4d: MSTORE 00002c4e: SWAP3 00002c4f: SWAP1 00002c50: SWAP3 00002c51: ADD 00002c52: PUSH1 0x00 00002c54: SWAP1 00002c55: DUP2 00002c56: KECCAK256 00002c57: SWAP5 00002c58: SWAP1 00002c59: SWAP5 00002c5a: SSTORE 00002c5b: POP 00002c5c: POP 00002c5d: POP 00002c5e: PUSH1 0x01 00002c60: PUSH1 0xa0 00002c62: PUSH1 0x02 00002c64: EXP 00002c65: SUB 00002c66: DUP4 00002c67: AND 00002c68: SWAP1 00002c69: PUSH32 0xca0b3dabefdbd8c72c0a9cf4a6e9d107da897abf036ef3f3f3b010cdd2594159 00002c8a: SWAP1 00002c8b: DUP4 00002c8c: SWAP1 00002c8d: JUMPDEST 00002c8e: PUSH1 0x20 00002c90: MUL 00002c91: ADD 00002c92: MLOAD 00002c93: PUSH1 0x40 00002c95: MLOAD 00002c96: DUP1 00002c97: DUP3 00002c98: DUP2 00002c99: MSTORE 00002c9a: PUSH1 0x20 00002c9c: ADD 00002c9d: SWAP2 00002c9e: POP 00002c9f: POP 00002ca0: PUSH1 0x40 00002ca2: MLOAD 00002ca3: DUP1 00002ca4: SWAP2 00002ca5: SUB 00002ca6: SWAP1 00002ca7: LOG2 00002ca8: POP 00002ca9: POP 00002caa: JUMP 00002cab: JUMPDEST 00002cac: DUP1 00002cad: MLOAD 00002cae: PUSH1 0x20 00002cb0: DUP3 00002cb1: ADD 00002cb2: MLOAD 00002cb3: LT 00002cb4: PUSH2 0x2cbc 00002cb7: JUMPI 00002cb8: PUSH1 0x00 00002cba: DUP1 00002cbb: REVERT 00002cbc: JUMPDEST 00002cbd: DUP1 00002cbe: MLOAD 00002cbf: PUSH1 0x40 00002cc1: DUP1 00002cc2: MLOAD 00002cc3: PUSH1 0x00 00002cc5: DUP1 00002cc6: MLOAD 00002cc7: PUSH1 0x20 00002cc9: PUSH2 0x49cc 00002ccc: DUP4 00002ccd: CODECOPY 00002cce: DUP2 00002ccf: MLOAD 00002cd0: SWAP2 00002cd1: MSTORE 00002cd2: PUSH1 0x20 00002cd4: DUP3 00002cd5: DUP2 00002cd6: ADD 00002cd7: SWAP2 00002cd8: SWAP1 00002cd9: SWAP2 00002cda: MSTORE 00002cdb: PUSH1 0x60 00002cdd: PUSH1 0x02 00002cdf: EXP 00002ce0: PUSH1 0x01 00002ce2: PUSH1 0xa0 00002ce4: PUSH1 0x02 00002ce6: EXP 00002ce7: SUB 00002ce8: DUP8 00002ce9: AND 00002cea: MUL 00002ceb: PUSH1 0x33 00002ced: DUP4 00002cee: ADD 00002cef: MSTORE 00002cf0: DUP3 00002cf1: MLOAD 00002cf2: PUSH1 0x27 00002cf4: DUP2 00002cf5: DUP5 00002cf6: SUB 00002cf7: ADD 00002cf8: DUP2 00002cf9: MSTORE 00002cfa: PUSH1 0x47 00002cfc: SWAP1 00002cfd: SWAP3 00002cfe: ADD 00002cff: SWAP3 00002d00: DUP4 00002d01: SWAP1 00002d02: MSTORE 00002d03: DUP2 00002d04: MLOAD 00002d05: PUSH1 0x00 00002d07: SWAP4 00002d08: DUP5 00002d09: SWAP4 00002d0a: SWAP3 00002d0b: SWAP1 00002d0c: SWAP2 00002d0d: DUP3 00002d0e: SWAP2 00002d0f: DUP5 00002d10: ADD 00002d11: SWAP1 00002d12: DUP1 00002d13: DUP4 00002d14: DUP4 00002d15: JUMPDEST 00002d16: PUSH1 0x20 00002d18: DUP4 00002d19: LT 00002d1a: PUSH2 0x2d34 00002d1d: JUMPI 00002d1e: DUP1 00002d1f: MLOAD 00002d20: DUP3 00002d21: MSTORE 00002d22: PUSH1 0x1f 00002d24: NOT 00002d25: SWAP1 00002d26: SWAP3 00002d27: ADD 00002d28: SWAP2 00002d29: PUSH1 0x20 00002d2b: SWAP2 00002d2c: DUP3 00002d2d: ADD 00002d2e: SWAP2 00002d2f: ADD 00002d30: PUSH2 0x2d15 00002d33: JUMP 00002d34: JUMPDEST 00002d35: MLOAD 00002d36: DUP2 00002d37: MLOAD 00002d38: PUSH1 0x20 00002d3a: SWAP4 00002d3b: DUP5 00002d3c: SUB 00002d3d: PUSH2 0x0100 00002d40: EXP 00002d41: PUSH1 0x00 00002d43: NOT 00002d44: ADD 00002d45: DUP1 00002d46: NOT 00002d47: SWAP1 00002d48: SWAP3 00002d49: AND 00002d4a: SWAP2 00002d4b: AND 00002d4c: OR 00002d4d: SWAP1 00002d4e: MSTORE 00002d4f: PUSH1 0x40 00002d51: DUP1 00002d52: MLOAD 00002d53: SWAP3 00002d54: SWAP1 00002d55: SWAP5 00002d56: ADD 00002d57: DUP3 00002d58: SWAP1 00002d59: SUB 00002d5a: SWAP1 00002d5b: SWAP2 00002d5c: KECCAK256 00002d5d: DUP7 00002d5e: MSTORE 00002d5f: DUP6 00002d60: DUP2 00002d61: ADD 00002d62: SWAP7 00002d63: SWAP1 00002d64: SWAP7 00002d65: MSTORE 00002d66: POP 00002d67: SWAP3 00002d68: DUP4 00002d69: ADD 00002d6a: PUSH1 0x00 00002d6c: SWAP1 00002d6d: DUP2 00002d6e: KECCAK256 00002d6f: SWAP6 00002d70: SWAP1 00002d71: SWAP6 00002d72: SSTORE 00002d73: POP 00002d74: POP 00002d75: DUP4 00002d76: DUP3 00002d77: ADD 00002d78: MLOAD 00002d79: DUP2 00002d7a: MLOAD 00002d7b: PUSH1 0x00 00002d7d: DUP1 00002d7e: MLOAD 00002d7f: PUSH1 0x20 00002d81: PUSH2 0x4a4c 00002d84: DUP4 00002d85: CODECOPY 00002d86: DUP2 00002d87: MLOAD 00002d88: SWAP2 00002d89: MSTORE 00002d8a: DUP2 00002d8b: DUP6 00002d8c: ADD 00002d8d: MSTORE 00002d8e: PUSH1 0x01 00002d90: PUSH1 0xa0 00002d92: PUSH1 0x02 00002d94: EXP 00002d95: SUB 00002d96: DUP8 00002d97: AND 00002d98: PUSH1 0x60 00002d9a: PUSH1 0x02 00002d9c: EXP 00002d9d: MUL 00002d9e: PUSH1 0x31 00002da0: DUP3 00002da1: ADD 00002da2: MSTORE 00002da3: DUP3 00002da4: MLOAD 00002da5: DUP1 00002da6: DUP3 00002da7: SUB 00002da8: PUSH1 0x25 00002daa: ADD 00002dab: DUP2 00002dac: MSTORE 00002dad: PUSH1 0x45 00002daf: SWAP1 00002db0: SWAP2 00002db1: ADD 00002db2: SWAP3 00002db3: DUP4 00002db4: SWAP1 00002db5: MSTORE 00002db6: DUP1 00002db7: MLOAD 00002db8: SWAP2 00002db9: SWAP5 00002dba: SWAP4 00002dbb: DUP5 00002dbc: SWAP4 00002dbd: SWAP2 00002dbe: SWAP3 00002dbf: DUP3 00002dc0: SWAP2 00002dc1: DUP5 00002dc2: ADD 00002dc3: SWAP1 00002dc4: DUP1 00002dc5: DUP4 00002dc6: DUP4 00002dc7: JUMPDEST 00002dc8: PUSH1 0x20 00002dca: DUP4 00002dcb: LT 00002dcc: PUSH2 0x2de6 00002dcf: JUMPI 00002dd0: DUP1 00002dd1: MLOAD 00002dd2: DUP3 00002dd3: MSTORE 00002dd4: PUSH1 0x1f 00002dd6: NOT 00002dd7: SWAP1 00002dd8: SWAP3 00002dd9: ADD 00002dda: SWAP2 00002ddb: PUSH1 0x20 00002ddd: SWAP2 00002dde: DUP3 00002ddf: ADD 00002de0: SWAP2 00002de1: ADD 00002de2: PUSH2 0x2dc7 00002de5: JUMP 00002de6: JUMPDEST 00002de7: MLOAD 00002de8: DUP2 00002de9: MLOAD 00002dea: PUSH1 0x20 00002dec: SWAP4 00002ded: DUP5 00002dee: SUB 00002def: PUSH2 0x0100 00002df2: EXP 00002df3: PUSH1 0x00 00002df5: NOT 00002df6: ADD 00002df7: DUP1 00002df8: NOT 00002df9: SWAP1 00002dfa: SWAP3 00002dfb: AND 00002dfc: SWAP2 00002dfd: AND 00002dfe: OR 00002dff: SWAP1 00002e00: MSTORE 00002e01: PUSH1 0x40 00002e03: DUP1 00002e04: MLOAD 00002e05: SWAP3 00002e06: SWAP1 00002e07: SWAP5 00002e08: ADD 00002e09: DUP3 00002e0a: SWAP1 00002e0b: SUB 00002e0c: SWAP1 00002e0d: SWAP2 00002e0e: KECCAK256 00002e0f: DUP7 00002e10: MSTORE 00002e11: DUP6 00002e12: ADD 00002e13: SWAP6 00002e14: SWAP1 00002e15: SWAP6 00002e16: MSTORE 00002e17: SWAP3 00002e18: SWAP1 00002e19: SWAP3 00002e1a: ADD 00002e1b: PUSH1 0x00 00002e1d: SWAP1 00002e1e: DUP2 00002e1f: KECCAK256 00002e20: SWAP5 00002e21: SWAP1 00002e22: SWAP5 00002e23: SSTORE 00002e24: POP 00002e25: POP 00002e26: POP 00002e27: PUSH1 0x01 00002e29: PUSH1 0xa0 00002e2b: PUSH1 0x02 00002e2d: EXP 00002e2e: SUB 00002e2f: DUP4 00002e30: AND 00002e31: SWAP1 00002e32: PUSH32 0x4c177b42dbe934b3abbc0208c11a42e46589983431616f1710ab19969c5ed62e 00002e53: SWAP1 00002e54: DUP4 00002e55: SWAP1 00002e56: PUSH2 0x2c8d 00002e59: JUMP 00002e5a: JUMPDEST 00002e5b: PUSH2 0x2e62 00002e5e: PUSH2 0x42a0 00002e61: JUMP 00002e62: JUMPDEST 00002e63: DUP2 00002e64: GT 00002e65: ISZERO 00002e66: PUSH2 0x2e6e 00002e69: JUMPI 00002e6a: PUSH1 0x00 00002e6c: DUP1 00002e6d: REVERT 00002e6e: JUMPDEST 00002e6f: PUSH32 0x2dfd6c9f781bb6bbb5369c114e949b69ebb440ef3d4dd6b2836225eb1dc3a2be 00002e90: PUSH1 0x00 00002e92: SWAP1 00002e93: DUP2 00002e94: MSTORE 00002e95: PUSH1 0x20 00002e97: MSTORE 00002e98: PUSH32 0x2de0d2cdc19d356cb53b5984f91bfd3b31fe0c678a0d190a6db39274bb34753f 00002eb9: SSTORE 00002eba: JUMP 00002ebb: JUMPDEST 00002ebc: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002edd: PUSH2 0x2ee4 00002ee0: PUSH2 0x1911 00002ee3: JUMP 00002ee4: JUMPDEST 00002ee5: PUSH1 0x40 00002ee7: DUP1 00002ee8: MLOAD 00002ee9: PUSH1 0x01 00002eeb: PUSH1 0xa0 00002eed: PUSH1 0x02 00002eef: EXP 00002ef0: SUB 00002ef1: SWAP3 00002ef2: DUP4 00002ef3: AND 00002ef4: DUP2 00002ef5: MSTORE 00002ef6: SWAP2 00002ef7: DUP5 00002ef8: AND 00002ef9: PUSH1 0x20 00002efb: DUP4 00002efc: ADD 00002efd: MSTORE 00002efe: DUP1 00002eff: MLOAD 00002f00: SWAP2 00002f01: DUP3 00002f02: SWAP1 00002f03: SUB 00002f04: ADD 00002f05: SWAP1 00002f06: LOG1 00002f07: PUSH32 0x02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0 00002f28: PUSH1 0x00 00002f2a: MSTORE 00002f2b: PUSH1 0x02 00002f2d: PUSH1 0x20 00002f2f: MSTORE 00002f30: PUSH32 0xb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e 00002f51: DUP1 00002f52: SLOAD 00002f53: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f68: NOT 00002f69: AND 00002f6a: PUSH1 0x01 00002f6c: PUSH1 0xa0 00002f6e: PUSH1 0x02 00002f70: EXP 00002f71: SUB 00002f72: SWAP3 00002f73: SWAP1 00002f74: SWAP3 00002f75: AND 00002f76: SWAP2 00002f77: SWAP1 00002f78: SWAP2 00002f79: OR 00002f7a: SWAP1 00002f7b: SSTORE 00002f7c: JUMP 00002f7d: JUMPDEST 00002f7e: PUSH32 0x0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba 00002f9f: PUSH1 0x00 00002fa1: MSTORE 00002fa2: PUSH1 0x04 00002fa4: PUSH1 0x20 00002fa6: MSTORE 00002fa7: PUSH32 0x078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc 00002fc8: DUP1 00002fc9: SLOAD 00002fca: PUSH1 0xff 00002fcc: NOT 00002fcd: AND 00002fce: PUSH1 0x01 00002fd0: OR 00002fd1: SWAP1 00002fd2: SSTORE 00002fd3: JUMP 00002fd4: JUMPDEST 00002fd5: PUSH1 0x01 00002fd7: PUSH1 0xa0 00002fd9: PUSH1 0x02 00002fdb: EXP 00002fdc: SUB 00002fdd: DUP3 00002fde: AND 00002fdf: ISZERO 00002fe0: ISZERO 00002fe1: PUSH2 0x2ff2 00002fe4: JUMPI 00002fe5: PUSH2 0x2fed 00002fe8: DUP2 00002fe9: PUSH2 0x42e7 00002fec: JUMP 00002fed: JUMPDEST 00002fee: PUSH2 0x0811 00002ff1: JUMP 00002ff2: JUMPDEST 00002ff3: PUSH2 0x0811 00002ff6: DUP3 00002ff7: DUP3 00002ff8: PUSH2 0x42f3 00002ffb: JUMP 00002ffc: JUMPDEST 00002ffd: PUSH2 0x3005 00003000: DUP2 00003001: PUSH2 0x3f79 00003004: JUMP 00003005: JUMPDEST 00003006: ISZERO 00003007: ISZERO 00003008: PUSH2 0x3010 0000300b: JUMPI 0000300c: PUSH1 0x00 0000300e: DUP1 0000300f: REVERT 00003010: JUMPDEST 00003011: PUSH32 0x9ba5a09a13321d5fc0d3150bbf4489a02b9b881bf70e2fc6639c91e8c5ce714c 00003032: PUSH1 0x00 00003034: MSTORE 00003035: PUSH1 0x02 00003037: PUSH1 0x20 00003039: MSTORE 0000303a: PUSH32 0x87f07cf898f772bd3ff661aa30d2354333eefbd852e374d9021ef7a3463e81fd 0000305b: DUP1 0000305c: SLOAD 0000305d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003072: NOT 00003073: AND 00003074: PUSH1 0x01 00003076: PUSH1 0xa0 00003078: PUSH1 0x02 0000307a: EXP 0000307b: SUB 0000307c: SWAP3 0000307d: SWAP1 0000307e: SWAP3 0000307f: AND 00003080: SWAP2 00003081: SWAP1 00003082: SWAP2 00003083: OR 00003084: SWAP1 00003085: SSTORE 00003086: JUMP 00003087: JUMPDEST 00003088: PUSH32 0x6168652c307c1e813ca11cfb3a601f1cf3b22452021a5052d8b05f1f1f8a3e92 000030a9: PUSH1 0x00 000030ab: MSTORE 000030ac: PUSH1 0x04 000030ae: PUSH1 0x20 000030b0: MSTORE 000030b1: PUSH32 0xcb8d022f2163402334a4962e3279c5def3417d3d8dab9e27ba26e81e3f833784 000030d2: SLOAD 000030d3: PUSH1 0xff 000030d5: AND 000030d6: SWAP1 000030d7: JUMP 000030d8: JUMPDEST 000030d9: PUSH1 0x00 000030db: PUSH1 0x60 000030dd: DUP1 000030de: PUSH1 0x00 000030e0: DUP1 000030e1: PUSH1 0x60 000030e3: PUSH1 0x00 000030e5: PUSH2 0x30ec 000030e8: PUSH2 0x3087 000030eb: JUMP 000030ec: JUMPDEST 000030ed: ISZERO 000030ee: PUSH2 0x30f6 000030f1: JUMPI 000030f2: PUSH2 0x36f7 000030f5: JUMP 000030f6: JUMPDEST 000030f7: PUSH2 0x30ff 000030fa: DUP12 000030fb: PUSH2 0x1018 000030fe: JUMP 000030ff: JUMPDEST 00003100: SWAP7 00003101: POP 00003102: DUP7 00003103: ISZERO 00003104: ISZERO 00003105: PUSH2 0x3152 00003108: JUMPI 00003109: PUSH2 0x3111 0000310c: DUP12 0000310d: PUSH2 0x4391 00003110: JUMP 00003111: JUMPDEST 00003112: SWAP6 00003113: POP 00003114: PUSH2 0x311c 00003117: DUP12 00003118: PUSH2 0x44a2 0000311b: JUMP 0000311c: JUMPDEST 0000311d: SWAP5 0000311e: POP 0000311f: PUSH2 0x3127 00003122: DUP12 00003123: PUSH2 0x4524 00003126: JUMP 00003127: JUMPDEST 00003128: SWAP4 00003129: POP 0000312a: PUSH1 0x00 0000312c: DUP7 0000312d: MLOAD 0000312e: GT 0000312f: DUP1 00003130: PUSH2 0x313a 00003133: JUMPI 00003134: POP 00003135: PUSH1 0x00 00003137: DUP6 00003138: MLOAD 00003139: GT 0000313a: JUMPDEST 0000313b: ISZERO 0000313c: ISZERO 0000313d: PUSH2 0x3145 00003140: JUMPI 00003141: PUSH1 0x00 00003143: DUP1 00003144: REVERT 00003145: JUMPDEST 00003146: PUSH2 0x3152 00003149: DUP12 0000314a: DUP6 0000314b: PUSH1 0xff 0000314d: AND 0000314e: PUSH2 0x45a2 00003151: JUMP 00003152: JUMPDEST 00003153: PUSH2 0x315c 00003156: DUP12 00003157: DUP11 00003158: PUSH2 0x0dca 0000315b: JUMP 0000315c: JUMPDEST 0000315d: ISZERO 0000315e: ISZERO 0000315f: PUSH2 0x3167 00003162: JUMPI 00003163: PUSH1 0x00 00003165: DUP1 00003166: REVERT 00003167: JUMPDEST 00003168: PUSH2 0x3179 0000316b: DUP12 0000316c: PUSH2 0x3173 0000316f: PUSH2 0x141e 00003172: JUMP 00003173: JUMPDEST 00003174: DUP12 00003175: PUSH2 0x3704 00003178: JUMP 00003179: JUMPDEST 0000317a: PUSH2 0x3181 0000317d: PUSH2 0x0ead 00003180: JUMP 00003181: JUMPDEST 00003182: SWAP3 00003183: POP 00003184: PUSH1 0x01 00003186: PUSH1 0xa0 00003188: PUSH1 0x02 0000318a: EXP 0000318b: SUB 0000318c: DUP4 0000318d: AND 0000318e: ISZERO 0000318f: PUSH2 0x3368 00003192: JUMPI 00003193: DUP11 00003194: PUSH1 0x01 00003196: PUSH1 0xa0 00003198: PUSH1 0x02 0000319a: EXP 0000319b: SUB 0000319c: AND 0000319d: PUSH4 0x095ea7b3 000031a2: DUP5 000031a3: DUP12 000031a4: PUSH1 0x40 000031a6: MLOAD 000031a7: DUP4 000031a8: PUSH4 0xffffffff 000031ad: AND 000031ae: PUSH1 0xe0 000031b0: PUSH1 0x02 000031b2: EXP 000031b3: MUL 000031b4: DUP2 000031b5: MSTORE 000031b6: PUSH1 0x04 000031b8: ADD 000031b9: DUP1 000031ba: DUP4 000031bb: PUSH1 0x01 000031bd: PUSH1 0xa0 000031bf: PUSH1 0x02 000031c1: EXP 000031c2: SUB 000031c3: AND 000031c4: PUSH1 0x01 000031c6: PUSH1 0xa0 000031c8: PUSH1 0x02 000031ca: EXP 000031cb: SUB 000031cc: AND 000031cd: DUP2 000031ce: MSTORE 000031cf: PUSH1 0x20 000031d1: ADD 000031d2: DUP3 000031d3: DUP2 000031d4: MSTORE 000031d5: PUSH1 0x20 000031d7: ADD 000031d8: SWAP3 000031d9: POP 000031da: POP 000031db: POP 000031dc: PUSH1 0x20 000031de: PUSH1 0x40 000031e0: MLOAD 000031e1: DUP1 000031e2: DUP4 000031e3: SUB 000031e4: DUP2 000031e5: PUSH1 0x00 000031e7: DUP8 000031e8: DUP1 000031e9: EXTCODESIZE 000031ea: ISZERO 000031eb: DUP1 000031ec: ISZERO 000031ed: PUSH2 0x31f5 000031f0: JUMPI 000031f1: PUSH1 0x00 000031f3: DUP1 000031f4: REVERT 000031f5: JUMPDEST 000031f6: POP 000031f7: GAS 000031f8: CALL 000031f9: ISZERO 000031fa: DUP1 000031fb: ISZERO 000031fc: PUSH2 0x3209 000031ff: JUMPI 00003200: RETURNDATASIZE 00003201: PUSH1 0x00 00003203: DUP1 00003204: RETURNDATACOPY 00003205: RETURNDATASIZE 00003206: PUSH1 0x00 00003208: REVERT 00003209: JUMPDEST 0000320a: POP 0000320b: POP 0000320c: POP 0000320d: POP 0000320e: PUSH1 0x40 00003210: MLOAD 00003211: RETURNDATASIZE 00003212: PUSH1 0x20 00003214: DUP2 00003215: LT 00003216: ISZERO 00003217: PUSH2 0x321f 0000321a: JUMPI 0000321b: PUSH1 0x00 0000321d: DUP1 0000321e: REVERT 0000321f: JUMPDEST 00003220: POP 00003221: POP 00003222: PUSH1 0x01 00003224: PUSH1 0xa0 00003226: PUSH1 0x02 00003228: EXP 00003229: SUB 0000322a: DUP4 0000322b: AND 0000322c: PUSH4 0xf5a428b5 00003231: DUP12 00003232: PUSH2 0x323b 00003235: DUP2 00003236: DUP13 00003237: PUSH2 0x472e 0000323a: JUMP 0000323b: JUMPDEST 0000323c: PUSH1 0x40 0000323e: DUP1 0000323f: MLOAD 00003240: PUSH1 0xe0 00003242: PUSH1 0x02 00003244: EXP 00003245: PUSH4 0xffffffff 0000324a: DUP7 0000324b: AND 0000324c: MUL 0000324d: DUP2 0000324e: MSTORE 0000324f: PUSH1 0x01 00003251: PUSH1 0xa0 00003253: PUSH1 0x02 00003255: EXP 00003256: SUB 00003257: SWAP4 00003258: DUP5 00003259: AND 0000325a: PUSH1 0x04 0000325c: DUP3 0000325d: ADD 0000325e: MSTORE 0000325f: SWAP2 00003260: DUP4 00003261: AND 00003262: PUSH1 0x24 00003264: DUP4 00003265: ADD 00003266: MSTORE 00003267: SWAP2 00003268: DUP16 00003269: AND 0000326a: PUSH1 0x44 0000326c: DUP3 0000326d: ADD 0000326e: MSTORE 0000326f: PUSH1 0x64 00003271: DUP2 00003272: ADD 00003273: DUP14 00003274: SWAP1 00003275: MSTORE 00003276: PUSH1 0x00 00003278: PUSH1 0x84 0000327a: DUP3 0000327b: ADD 0000327c: DUP2 0000327d: SWAP1 0000327e: MSTORE 0000327f: SWAP2 00003280: MLOAD 00003281: PUSH1 0xa4 00003283: DUP1 00003284: DUP4 00003285: ADD 00003286: SWAP4 00003287: PUSH1 0x20 00003289: SWAP4 0000328a: DUP4 0000328b: SWAP1 0000328c: SUB 0000328d: SWAP1 0000328e: SWAP2 0000328f: ADD 00003290: SWAP1 00003291: DUP3 00003292: SWAP1 00003293: DUP8 00003294: DUP1 00003295: EXTCODESIZE 00003296: ISZERO 00003297: DUP1 00003298: ISZERO 00003299: PUSH2 0x32a1 0000329c: JUMPI 0000329d: PUSH1 0x00 0000329f: DUP1 000032a0: REVERT 000032a1: JUMPDEST 000032a2: POP 000032a3: GAS 000032a4: CALL 000032a5: ISZERO 000032a6: DUP1 000032a7: ISZERO 000032a8: PUSH2 0x32b5 000032ab: JUMPI 000032ac: RETURNDATASIZE 000032ad: PUSH1 0x00 000032af: DUP1 000032b0: RETURNDATACOPY 000032b1: RETURNDATASIZE 000032b2: PUSH1 0x00 000032b4: REVERT 000032b5: JUMPDEST 000032b6: POP 000032b7: POP 000032b8: POP 000032b9: POP 000032ba: PUSH1 0x40 000032bc: MLOAD 000032bd: RETURNDATASIZE 000032be: PUSH1 0x20 000032c0: DUP2 000032c1: LT 000032c2: ISZERO 000032c3: PUSH2 0x32cb 000032c6: JUMPI 000032c7: PUSH1 0x00 000032c9: DUP1 000032ca: REVERT 000032cb: JUMPDEST 000032cc: POP 000032cd: MLOAD 000032ce: ISZERO 000032cf: PUSH2 0x32d7 000032d2: JUMPI 000032d3: PUSH2 0x36f7 000032d6: JUMP 000032d7: JUMPDEST 000032d8: DUP11 000032d9: PUSH1 0x01 000032db: PUSH1 0xa0 000032dd: PUSH1 0x02 000032df: EXP 000032e0: SUB 000032e1: AND 000032e2: PUSH4 0x095ea7b3 000032e7: DUP5 000032e8: PUSH1 0x00 000032ea: PUSH1 0x40 000032ec: MLOAD 000032ed: DUP4 000032ee: PUSH4 0xffffffff 000032f3: AND 000032f4: PUSH1 0xe0 000032f6: PUSH1 0x02 000032f8: EXP 000032f9: MUL 000032fa: DUP2 000032fb: MSTORE 000032fc: PUSH1 0x04 000032fe: ADD 000032ff: DUP1 00003300: DUP4 00003301: PUSH1 0x01 00003303: PUSH1 0xa0 00003305: PUSH1 0x02 00003307: EXP 00003308: SUB 00003309: AND 0000330a: PUSH1 0x01 0000330c: PUSH1 0xa0 0000330e: PUSH1 0x02 00003310: EXP 00003311: SUB 00003312: AND 00003313: DUP2 00003314: MSTORE 00003315: PUSH1 0x20 00003317: ADD 00003318: DUP3 00003319: DUP2 0000331a: MSTORE 0000331b: PUSH1 0x20 0000331d: ADD 0000331e: SWAP3 0000331f: POP 00003320: POP 00003321: POP 00003322: PUSH1 0x20 00003324: PUSH1 0x40 00003326: MLOAD 00003327: DUP1 00003328: DUP4 00003329: SUB 0000332a: DUP2 0000332b: PUSH1 0x00 0000332d: DUP8 0000332e: DUP1 0000332f: EXTCODESIZE 00003330: ISZERO 00003331: DUP1 00003332: ISZERO 00003333: PUSH2 0x333b 00003336: JUMPI 00003337: PUSH1 0x00 00003339: DUP1 0000333a: REVERT 0000333b: JUMPDEST 0000333c: POP 0000333d: GAS 0000333e: CALL 0000333f: ISZERO 00003340: DUP1 00003341: ISZERO 00003342: PUSH2 0x334f 00003345: JUMPI 00003346: RETURNDATASIZE 00003347: PUSH1 0x00 00003349: DUP1 0000334a: RETURNDATACOPY 0000334b: RETURNDATASIZE 0000334c: PUSH1 0x00 0000334e: REVERT 0000334f: JUMPDEST 00003350: POP 00003351: POP 00003352: POP 00003353: POP 00003354: PUSH1 0x40 00003356: MLOAD 00003357: RETURNDATASIZE 00003358: PUSH1 0x20 0000335a: DUP2 0000335b: LT 0000335c: ISZERO 0000335d: PUSH2 0x3365 00003360: JUMPI 00003361: PUSH1 0x00 00003363: DUP1 00003364: REVERT 00003365: JUMPDEST 00003366: POP 00003367: POP 00003368: JUMPDEST 00003369: DUP7 0000336a: ISZERO 0000336b: PUSH2 0x340f 0000336e: JUMPI 0000336f: PUSH32 0x125e4cfb00000000000000000000000000000000000000000000000000000000 00003390: DUP12 00003391: PUSH2 0x339a 00003394: DUP13 00003395: DUP12 00003396: PUSH2 0x472e 00003399: JUMP 0000339a: JUMPDEST 0000339b: PUSH1 0x40 0000339d: DUP1 0000339e: MLOAD 0000339f: PUSH1 0x01 000033a1: PUSH1 0xa0 000033a3: PUSH1 0x02 000033a5: EXP 000033a6: SUB 000033a7: SWAP4 000033a8: DUP5 000033a9: AND 000033aa: PUSH1 0x24 000033ac: DUP3 000033ad: ADD 000033ae: MSTORE 000033af: SWAP2 000033b0: SWAP1 000033b1: SWAP3 000033b2: AND 000033b3: PUSH1 0x44 000033b5: DUP3 000033b6: ADD 000033b7: MSTORE 000033b8: PUSH1 0x64 000033ba: DUP1 000033bb: DUP3 000033bc: ADD 000033bd: DUP14 000033be: SWAP1 000033bf: MSTORE 000033c0: DUP3 000033c1: MLOAD 000033c2: DUP1 000033c3: DUP4 000033c4: SUB 000033c5: SWAP1 000033c6: SWAP2 000033c7: ADD 000033c8: DUP2 000033c9: MSTORE 000033ca: PUSH1 0x84 000033cc: SWAP1 000033cd: SWAP2 000033ce: ADD 000033cf: SWAP1 000033d0: SWAP2 000033d1: MSTORE 000033d2: PUSH1 0x20 000033d4: DUP2 000033d5: ADD 000033d6: DUP1 000033d7: MLOAD 000033d8: PUSH1 0x01 000033da: PUSH1 0xe0 000033dc: PUSH1 0x02 000033de: EXP 000033df: SUB 000033e0: AND 000033e1: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000033fe: NOT 000033ff: SWAP1 00003400: SWAP4 00003401: AND 00003402: SWAP3 00003403: SWAP1 00003404: SWAP3 00003405: OR 00003406: SWAP1 00003407: SWAP2 00003408: MSTORE 00003409: SWAP2 0000340a: POP 0000340b: PUSH2 0x35a7 0000340e: JUMP 0000340f: JUMPDEST 00003410: PUSH32 0x2ae87cdd00000000000000000000000000000000000000000000000000000000 00003431: DUP12 00003432: DUP8 00003433: DUP8 00003434: DUP8 00003435: PUSH2 0x343e 00003438: DUP16 00003439: DUP15 0000343a: PUSH2 0x472e 0000343d: JUMP 0000343e: JUMPDEST 0000343f: DUP15 00003440: PUSH1 0x40 00003442: MLOAD 00003443: PUSH1 0x24 00003445: ADD 00003446: DUP1 00003447: DUP8 00003448: PUSH1 0x01 0000344a: PUSH1 0xa0 0000344c: PUSH1 0x02 0000344e: EXP 0000344f: SUB 00003450: AND 00003451: PUSH1 0x01 00003453: PUSH1 0xa0 00003455: PUSH1 0x02 00003457: EXP 00003458: SUB 00003459: AND 0000345a: DUP2 0000345b: MSTORE 0000345c: PUSH1 0x20 0000345e: ADD 0000345f: DUP1 00003460: PUSH1 0x20 00003462: ADD 00003463: DUP1 00003464: PUSH1 0x20 00003466: ADD 00003467: DUP7 00003468: PUSH1 0xff 0000346a: AND 0000346b: PUSH1 0xff 0000346d: AND 0000346e: DUP2 0000346f: MSTORE 00003470: PUSH1 0x20 00003472: ADD 00003473: DUP6 00003474: PUSH1 0x01 00003476: PUSH1 0xa0 00003478: PUSH1 0x02 0000347a: EXP 0000347b: SUB 0000347c: AND 0000347d: PUSH1 0x01 0000347f: PUSH1 0xa0 00003481: PUSH1 0x02 00003483: EXP 00003484: SUB 00003485: AND 00003486: DUP2 00003487: MSTORE 00003488: PUSH1 0x20 0000348a: ADD 0000348b: DUP5 0000348c: DUP2 0000348d: MSTORE 0000348e: PUSH1 0x20 00003490: ADD 00003491: DUP4 00003492: DUP2 00003493: SUB 00003494: DUP4 00003495: MSTORE 00003496: DUP9 00003497: DUP2 00003498: DUP2 00003499: MLOAD 0000349a: DUP2 0000349b: MSTORE 0000349c: PUSH1 0x20 0000349e: ADD 0000349f: SWAP2 000034a0: POP 000034a1: DUP1 000034a2: MLOAD 000034a3: SWAP1 000034a4: PUSH1 0x20 000034a6: ADD 000034a7: SWAP1 000034a8: DUP1 000034a9: DUP4 000034aa: DUP4 000034ab: PUSH1 0x00 000034ad: JUMPDEST 000034ae: DUP4 000034af: DUP2 000034b0: LT 000034b1: ISZERO 000034b2: PUSH2 0x34c5 000034b5: JUMPI 000034b6: DUP2 000034b7: DUP2 000034b8: ADD 000034b9: MLOAD 000034ba: DUP4 000034bb: DUP3 000034bc: ADD 000034bd: MSTORE 000034be: PUSH1 0x20 000034c0: ADD 000034c1: PUSH2 0x34ad 000034c4: JUMP 000034c5: JUMPDEST 000034c6: POP 000034c7: POP 000034c8: POP 000034c9: POP 000034ca: SWAP1 000034cb: POP 000034cc: SWAP1 000034cd: DUP2 000034ce: ADD 000034cf: SWAP1 000034d0: PUSH1 0x1f 000034d2: AND 000034d3: DUP1 000034d4: ISZERO 000034d5: PUSH2 0x34f2 000034d8: JUMPI 000034d9: DUP1 000034da: DUP3 000034db: SUB 000034dc: DUP1 000034dd: MLOAD 000034de: PUSH1 0x01 000034e0: DUP4 000034e1: PUSH1 0x20 000034e3: SUB 000034e4: PUSH2 0x0100 000034e7: EXP 000034e8: SUB 000034e9: NOT 000034ea: AND 000034eb: DUP2 000034ec: MSTORE 000034ed: PUSH1 0x20 000034ef: ADD 000034f0: SWAP2 000034f1: POP 000034f2: JUMPDEST 000034f3: POP 000034f4: DUP4 000034f5: DUP2 000034f6: SUB 000034f7: DUP3 000034f8: MSTORE 000034f9: DUP8 000034fa: MLOAD 000034fb: DUP2 000034fc: MSTORE 000034fd: DUP8 000034fe: MLOAD 000034ff: PUSH1 0x20 00003501: SWAP2 00003502: DUP3 00003503: ADD 00003504: SWAP2 00003505: DUP10 00003506: ADD 00003507: SWAP1 00003508: DUP1 00003509: DUP4 0000350a: DUP4 0000350b: PUSH1 0x00 0000350d: JUMPDEST 0000350e: DUP4 0000350f: DUP2 00003510: LT 00003511: ISZERO 00003512: PUSH2 0x3525 00003515: JUMPI 00003516: DUP2 00003517: DUP2 00003518: ADD 00003519: MLOAD 0000351a: DUP4 0000351b: DUP3 0000351c: ADD 0000351d: MSTORE 0000351e: PUSH1 0x20 00003520: ADD 00003521: PUSH2 0x350d 00003524: JUMP 00003525: JUMPDEST 00003526: POP 00003527: POP 00003528: POP 00003529: POP 0000352a: SWAP1 0000352b: POP 0000352c: SWAP1 0000352d: DUP2 0000352e: ADD 0000352f: SWAP1 00003530: PUSH1 0x1f 00003532: AND 00003533: DUP1 00003534: ISZERO 00003535: PUSH2 0x3552 00003538: JUMPI 00003539: DUP1 0000353a: DUP3 0000353b: SUB 0000353c: DUP1 0000353d: MLOAD 0000353e: PUSH1 0x01 00003540: DUP4 00003541: PUSH1 0x20 00003543: SUB 00003544: PUSH2 0x0100 00003547: EXP 00003548: SUB 00003549: NOT 0000354a: AND 0000354b: DUP2 0000354c: MSTORE 0000354d: PUSH1 0x20 0000354f: ADD 00003550: SWAP2 00003551: POP 00003552: JUMPDEST 00003553: POP 00003554: PUSH1 0x40 00003556: DUP1 00003557: MLOAD 00003558: PUSH1 0x1f 0000355a: NOT 0000355b: DUP2 0000355c: DUP5 0000355d: SUB 0000355e: ADD 0000355f: DUP2 00003560: MSTORE 00003561: SWAP2 00003562: SWAP1 00003563: MSTORE 00003564: PUSH1 0x20 00003566: DUP2 00003567: ADD 00003568: DUP1 00003569: MLOAD 0000356a: PUSH1 0x01 0000356c: PUSH1 0xe0 0000356e: PUSH1 0x02 00003570: EXP 00003571: SUB 00003572: AND 00003573: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003590: NOT 00003591: SWAP1 00003592: SWAP13 00003593: AND 00003594: SWAP12 00003595: SWAP1 00003596: SWAP12 00003597: OR 00003598: SWAP1 00003599: SWAP11 0000359a: MSTORE 0000359b: POP 0000359c: SWAP8 0000359d: SWAP10 0000359e: POP 0000359f: POP 000035a0: POP 000035a1: POP 000035a2: POP 000035a3: POP 000035a4: POP 000035a5: POP 000035a6: POP 000035a7: JUMPDEST 000035a8: PUSH2 0x35b8 000035ab: DUP12 000035ac: PUSH2 0x209e 000035af: DUP12 000035b0: PUSH2 0x0de2 000035b3: DUP16 000035b4: PUSH2 0x0f85 000035b7: JUMP 000035b8: JUMPDEST 000035b9: PUSH2 0x35c0 000035bc: PUSH2 0x1eb6 000035bf: JUMP 000035c0: JUMPDEST 000035c1: PUSH1 0x01 000035c3: PUSH1 0xa0 000035c5: PUSH1 0x02 000035c7: EXP 000035c8: SUB 000035c9: AND 000035ca: PUSH4 0xdc8601b3 000035cf: PUSH2 0x35d6 000035d2: PUSH2 0x18ba 000035d5: JUMP 000035d6: JUMPDEST 000035d7: DUP5 000035d8: PUSH2 0x35df 000035db: PUSH2 0x1e68 000035de: JUMP 000035df: JUMPDEST 000035e0: PUSH1 0x40 000035e2: MLOAD 000035e3: DUP5 000035e4: PUSH4 0xffffffff 000035e9: AND 000035ea: PUSH1 0xe0 000035ec: PUSH1 0x02 000035ee: EXP 000035ef: MUL 000035f0: DUP2 000035f1: MSTORE 000035f2: PUSH1 0x04 000035f4: ADD 000035f5: DUP1 000035f6: DUP5 000035f7: PUSH1 0x01 000035f9: PUSH1 0xa0 000035fb: PUSH1 0x02 000035fd: EXP 000035fe: SUB 000035ff: AND 00003600: PUSH1 0x01 00003602: PUSH1 0xa0 00003604: PUSH1 0x02 00003606: EXP 00003607: SUB 00003608: AND 00003609: DUP2 0000360a: MSTORE 0000360b: PUSH1 0x20 0000360d: ADD 0000360e: DUP1 0000360f: PUSH1 0x20 00003611: ADD 00003612: DUP4 00003613: DUP2 00003614: MSTORE 00003615: PUSH1 0x20 00003617: ADD 00003618: DUP3 00003619: DUP2 0000361a: SUB 0000361b: DUP3 0000361c: MSTORE 0000361d: DUP5 0000361e: DUP2 0000361f: DUP2 00003620: MLOAD 00003621: DUP2 00003622: MSTORE 00003623: PUSH1 0x20 00003625: ADD 00003626: SWAP2 00003627: POP 00003628: DUP1 00003629: MLOAD 0000362a: SWAP1 0000362b: PUSH1 0x20 0000362d: ADD 0000362e: SWAP1 0000362f: DUP1 00003630: DUP4 00003631: DUP4 00003632: PUSH1 0x00 00003634: JUMPDEST 00003635: DUP4 00003636: DUP2 00003637: LT 00003638: ISZERO 00003639: PUSH2 0x364c 0000363c: JUMPI 0000363d: DUP2 0000363e: DUP2 0000363f: ADD 00003640: MLOAD 00003641: DUP4 00003642: DUP3 00003643: ADD 00003644: MSTORE 00003645: PUSH1 0x20 00003647: ADD 00003648: PUSH2 0x3634 0000364b: JUMP 0000364c: JUMPDEST 0000364d: POP 0000364e: POP 0000364f: POP 00003650: POP 00003651: SWAP1 00003652: POP 00003653: SWAP1 00003654: DUP2 00003655: ADD 00003656: SWAP1 00003657: PUSH1 0x1f 00003659: AND 0000365a: DUP1 0000365b: ISZERO 0000365c: PUSH2 0x3679 0000365f: JUMPI 00003660: DUP1 00003661: DUP3 00003662: SUB 00003663: DUP1 00003664: MLOAD 00003665: PUSH1 0x01 00003667: DUP4 00003668: PUSH1 0x20 0000366a: SUB 0000366b: PUSH2 0x0100 0000366e: EXP 0000366f: SUB 00003670: NOT 00003671: AND 00003672: DUP2 00003673: MSTORE 00003674: PUSH1 0x20 00003676: ADD 00003677: SWAP2 00003678: POP 00003679: JUMPDEST 0000367a: POP 0000367b: SWAP5 0000367c: POP 0000367d: POP 0000367e: POP 0000367f: POP 00003680: POP 00003681: PUSH1 0x20 00003683: PUSH1 0x40 00003685: MLOAD 00003686: DUP1 00003687: DUP4 00003688: SUB 00003689: DUP2 0000368a: PUSH1 0x00 0000368c: DUP8 0000368d: DUP1 0000368e: EXTCODESIZE 0000368f: ISZERO 00003690: DUP1 00003691: ISZERO 00003692: PUSH2 0x369a 00003695: JUMPI 00003696: PUSH1 0x00 00003698: DUP1 00003699: REVERT 0000369a: JUMPDEST 0000369b: POP 0000369c: GAS 0000369d: CALL 0000369e: ISZERO 0000369f: DUP1 000036a0: ISZERO 000036a1: PUSH2 0x36ae 000036a4: JUMPI 000036a5: RETURNDATASIZE 000036a6: PUSH1 0x00 000036a8: DUP1 000036a9: RETURNDATACOPY 000036aa: RETURNDATASIZE 000036ab: PUSH1 0x00 000036ad: REVERT 000036ae: JUMPDEST 000036af: POP 000036b0: POP 000036b1: POP 000036b2: POP 000036b3: PUSH1 0x40 000036b5: MLOAD 000036b6: RETURNDATASIZE 000036b7: PUSH1 0x20 000036b9: DUP2 000036ba: LT 000036bb: ISZERO 000036bc: PUSH2 0x36c4 000036bf: JUMPI 000036c0: PUSH1 0x00 000036c2: DUP1 000036c3: REVERT 000036c4: JUMPDEST 000036c5: POP 000036c6: MLOAD 000036c7: SWAP1 000036c8: POP 000036c9: PUSH2 0x36d2 000036cc: DUP2 000036cd: DUP13 000036ce: PUSH2 0x3881 000036d1: JUMP 000036d2: JUMPDEST 000036d3: PUSH2 0x36dc 000036d6: DUP2 000036d7: DUP11 000036d8: PUSH2 0x396f 000036db: JUMP 000036dc: JUMPDEST 000036dd: PUSH2 0x36e6 000036e0: DUP2 000036e1: DUP12 000036e2: PUSH2 0x39f1 000036e5: JUMP 000036e6: JUMPDEST 000036e7: DUP7 000036e8: ISZERO 000036e9: ISZERO 000036ea: PUSH2 0x36f7 000036ed: JUMPI 000036ee: PUSH2 0x36f7 000036f1: DUP12 000036f2: DUP3 000036f3: PUSH2 0x27c0 000036f6: JUMP 000036f7: JUMPDEST 000036f8: POP 000036f9: POP 000036fa: POP 000036fb: POP 000036fc: POP 000036fd: POP 000036fe: POP 000036ff: POP 00003700: POP 00003701: POP 00003702: POP 00003703: JUMP 00003704: JUMPDEST 00003705: PUSH2 0x3712 00003708: DUP2 00003709: PUSH2 0x0de2 0000370c: DUP6 0000370d: DUP6 0000370e: PUSH2 0x1d7d 00003711: JUMP 00003712: JUMPDEST 00003713: PUSH1 0x00 00003715: DUP1 00003716: DUP6 00003717: DUP6 00003718: PUSH1 0x40 0000371a: MLOAD 0000371b: PUSH1 0x20 0000371d: ADD 0000371e: DUP1 0000371f: DUP1 00003720: PUSH32 0x746f74616c5370656e7450657244617900000000000000000000000000000000 00003741: DUP2 00003742: MSTORE 00003743: POP 00003744: PUSH1 0x10 00003746: ADD 00003747: DUP4 00003748: PUSH1 0x01 0000374a: PUSH1 0xa0 0000374c: PUSH1 0x02 0000374e: EXP 0000374f: SUB 00003750: AND 00003751: PUSH1 0x01 00003753: PUSH1 0xa0 00003755: PUSH1 0x02 00003757: EXP 00003758: SUB 00003759: AND 0000375a: PUSH1 0x60 0000375c: PUSH1 0x02 0000375e: EXP 0000375f: MUL 00003760: DUP2 00003761: MSTORE 00003762: PUSH1 0x14 00003764: ADD 00003765: DUP3 00003766: DUP2 00003767: MSTORE 00003768: PUSH1 0x20 0000376a: ADD 0000376b: SWAP3 0000376c: POP 0000376d: POP 0000376e: POP 0000376f: PUSH1 0x40 00003771: MLOAD 00003772: PUSH1 0x20 00003774: DUP2 00003775: DUP4 00003776: SUB 00003777: SUB 00003778: DUP2 00003779: MSTORE 0000377a: SWAP1 0000377b: PUSH1 0x40 0000377d: MSTORE 0000377e: PUSH1 0x40 00003780: MLOAD 00003781: DUP1 00003782: DUP3 00003783: DUP1 00003784: MLOAD 00003785: SWAP1 00003786: PUSH1 0x20 00003788: ADD 00003789: SWAP1 0000378a: DUP1 0000378b: DUP4 0000378c: DUP4 0000378d: JUMPDEST 0000378e: PUSH1 0x20 00003790: DUP4 00003791: LT 00003792: PUSH2 0x37ac 00003795: JUMPI 00003796: DUP1 00003797: MLOAD 00003798: DUP3 00003799: MSTORE 0000379a: PUSH1 0x1f 0000379c: NOT 0000379d: SWAP1 0000379e: SWAP3 0000379f: ADD 000037a0: SWAP2 000037a1: PUSH1 0x20 000037a3: SWAP2 000037a4: DUP3 000037a5: ADD 000037a6: SWAP2 000037a7: ADD 000037a8: PUSH2 0x378d 000037ab: JUMP 000037ac: JUMPDEST 000037ad: MLOAD 000037ae: DUP2 000037af: MLOAD 000037b0: PUSH1 0x20 000037b2: SWAP4 000037b3: DUP5 000037b4: SUB 000037b5: PUSH2 0x0100 000037b8: EXP 000037b9: PUSH1 0x00 000037bb: NOT 000037bc: ADD 000037bd: DUP1 000037be: NOT 000037bf: SWAP1 000037c0: SWAP3 000037c1: AND 000037c2: SWAP2 000037c3: AND 000037c4: OR 000037c5: SWAP1 000037c6: MSTORE 000037c7: PUSH1 0x40 000037c9: DUP1 000037ca: MLOAD 000037cb: SWAP3 000037cc: SWAP1 000037cd: SWAP5 000037ce: ADD 000037cf: DUP3 000037d0: SWAP1 000037d1: SUB 000037d2: SWAP1 000037d3: SWAP2 000037d4: KECCAK256 000037d5: DUP7 000037d6: MSTORE 000037d7: DUP6 000037d8: ADD 000037d9: SWAP6 000037da: SWAP1 000037db: SWAP6 000037dc: MSTORE 000037dd: SWAP3 000037de: SWAP1 000037df: SWAP3 000037e0: ADD 000037e1: PUSH1 0x00 000037e3: KECCAK256 000037e4: SWAP4 000037e5: SWAP1 000037e6: SWAP4 000037e7: SSTORE 000037e8: POP 000037e9: POP 000037ea: POP 000037eb: POP 000037ec: POP 000037ed: POP 000037ee: JUMP 000037ef: JUMPDEST 000037f0: DUP1 000037f1: PUSH1 0x00 000037f3: DUP1 000037f4: DUP5 000037f5: PUSH1 0x40 000037f7: MLOAD 000037f8: PUSH1 0x20 000037fa: ADD 000037fb: DUP1 000037fc: DUP1 000037fd: PUSH32 0x6d65646961746f7242616c616e63650000000000000000000000000000000000 0000381e: DUP2 0000381f: MSTORE 00003820: POP 00003821: PUSH1 0x0f 00003823: ADD 00003824: DUP3 00003825: PUSH1 0x01 00003827: PUSH1 0xa0 00003829: PUSH1 0x02 0000382b: EXP 0000382c: SUB 0000382d: AND 0000382e: PUSH1 0x01 00003830: PUSH1 0xa0 00003832: PUSH1 0x02 00003834: EXP 00003835: SUB 00003836: AND 00003837: PUSH1 0x60 00003839: PUSH1 0x02 0000383b: EXP 0000383c: MUL 0000383d: DUP2 0000383e: MSTORE 0000383f: PUSH1 0x14 00003841: ADD 00003842: SWAP2 00003843: POP 00003844: POP 00003845: PUSH1 0x40 00003847: MLOAD 00003848: PUSH1 0x20 0000384a: DUP2 0000384b: DUP4 0000384c: SUB 0000384d: SUB 0000384e: DUP2 0000384f: MSTORE 00003850: SWAP1 00003851: PUSH1 0x40 00003853: MSTORE 00003854: PUSH1 0x40 00003856: MLOAD 00003857: DUP1 00003858: DUP3 00003859: DUP1 0000385a: MLOAD 0000385b: SWAP1 0000385c: PUSH1 0x20 0000385e: ADD 0000385f: SWAP1 00003860: DUP1 00003861: DUP4 00003862: DUP4 00003863: PUSH1 0x20 00003865: DUP4 00003866: LT 00003867: PUSH2 0x08f0 0000386a: JUMPI 0000386b: DUP1 0000386c: MLOAD 0000386d: DUP3 0000386e: MSTORE 0000386f: PUSH1 0x1f 00003871: NOT 00003872: SWAP1 00003873: SWAP3 00003874: ADD 00003875: SWAP2 00003876: PUSH1 0x20 00003878: SWAP2 00003879: DUP3 0000387a: ADD 0000387b: SWAP2 0000387c: ADD 0000387d: PUSH2 0x08d1 00003880: JUMP 00003881: JUMPDEST 00003882: DUP1 00003883: PUSH1 0x02 00003885: PUSH1 0x00 00003887: DUP5 00003888: PUSH1 0x40 0000388a: MLOAD 0000388b: PUSH1 0x20 0000388d: ADD 0000388e: DUP1 0000388f: DUP1 00003890: PUSH32 0x6d657373616765546f6b656e0000000000000000000000000000000000000000 000038b1: DUP2 000038b2: MSTORE 000038b3: POP 000038b4: PUSH1 0x0c 000038b6: ADD 000038b7: DUP3 000038b8: PUSH1 0x00 000038ba: NOT 000038bb: AND 000038bc: PUSH1 0x00 000038be: NOT 000038bf: AND 000038c0: DUP2 000038c1: MSTORE 000038c2: PUSH1 0x20 000038c4: ADD 000038c5: SWAP2 000038c6: POP 000038c7: POP 000038c8: PUSH1 0x40 000038ca: MLOAD 000038cb: PUSH1 0x20 000038cd: DUP2 000038ce: DUP4 000038cf: SUB 000038d0: SUB 000038d1: DUP2 000038d2: MSTORE 000038d3: SWAP1 000038d4: PUSH1 0x40 000038d6: MSTORE 000038d7: PUSH1 0x40 000038d9: MLOAD 000038da: DUP1 000038db: DUP3 000038dc: DUP1 000038dd: MLOAD 000038de: SWAP1 000038df: PUSH1 0x20 000038e1: ADD 000038e2: SWAP1 000038e3: DUP1 000038e4: DUP4 000038e5: DUP4 000038e6: JUMPDEST 000038e7: PUSH1 0x20 000038e9: DUP4 000038ea: LT 000038eb: PUSH2 0x3905 000038ee: JUMPI 000038ef: DUP1 000038f0: MLOAD 000038f1: DUP3 000038f2: MSTORE 000038f3: PUSH1 0x1f 000038f5: NOT 000038f6: SWAP1 000038f7: SWAP3 000038f8: ADD 000038f9: SWAP2 000038fa: PUSH1 0x20 000038fc: SWAP2 000038fd: DUP3 000038fe: ADD 000038ff: SWAP2 00003900: ADD 00003901: PUSH2 0x38e6 00003904: JUMP 00003905: JUMPDEST 00003906: MLOAD 00003907: DUP2 00003908: MLOAD 00003909: PUSH1 0x20 0000390b: SWAP4 0000390c: DUP5 0000390d: SUB 0000390e: PUSH2 0x0100 00003911: EXP 00003912: PUSH1 0x00 00003914: NOT 00003915: ADD 00003916: DUP1 00003917: NOT 00003918: SWAP1 00003919: SWAP3 0000391a: AND 0000391b: SWAP2 0000391c: AND 0000391d: OR 0000391e: SWAP1 0000391f: MSTORE 00003920: PUSH1 0x40 00003922: DUP1 00003923: MLOAD 00003924: SWAP3 00003925: SWAP1 00003926: SWAP5 00003927: ADD 00003928: DUP3 00003929: SWAP1 0000392a: SUB 0000392b: SWAP1 0000392c: SWAP2 0000392d: KECCAK256 0000392e: DUP7 0000392f: MSTORE 00003930: DUP6 00003931: ADD 00003932: SWAP6 00003933: SWAP1 00003934: SWAP6 00003935: MSTORE 00003936: SWAP3 00003937: SWAP1 00003938: SWAP3 00003939: ADD 0000393a: PUSH1 0x00 0000393c: KECCAK256 0000393d: DUP1 0000393e: SLOAD 0000393f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003954: NOT 00003955: AND 00003956: PUSH1 0x01 00003958: PUSH1 0xa0 0000395a: PUSH1 0x02 0000395c: EXP 0000395d: SUB 0000395e: SWAP6 0000395f: SWAP1 00003960: SWAP6 00003961: AND 00003962: SWAP5 00003963: SWAP1 00003964: SWAP5 00003965: OR 00003966: SWAP1 00003967: SWAP4 00003968: SSTORE 00003969: POP 0000396a: POP 0000396b: POP 0000396c: POP 0000396d: POP 0000396e: JUMP 0000396f: JUMPDEST 00003970: DUP1 00003971: PUSH1 0x00 00003973: DUP1 00003974: DUP5 00003975: PUSH1 0x40 00003977: MLOAD 00003978: PUSH1 0x20 0000397a: ADD 0000397b: DUP1 0000397c: DUP1 0000397d: PUSH32 0x6d65737361676556616c75650000000000000000000000000000000000000000 0000399e: DUP2 0000399f: MSTORE 000039a0: POP 000039a1: PUSH1 0x0c 000039a3: ADD 000039a4: DUP3 000039a5: PUSH1 0x00 000039a7: NOT 000039a8: AND 000039a9: PUSH1 0x00 000039ab: NOT 000039ac: AND 000039ad: DUP2 000039ae: MSTORE 000039af: PUSH1 0x20 000039b1: ADD 000039b2: SWAP2 000039b3: POP 000039b4: POP 000039b5: PUSH1 0x40 000039b7: MLOAD 000039b8: PUSH1 0x20 000039ba: DUP2 000039bb: DUP4 000039bc: SUB 000039bd: SUB 000039be: DUP2 000039bf: MSTORE 000039c0: SWAP1 000039c1: PUSH1 0x40 000039c3: MSTORE 000039c4: PUSH1 0x40 000039c6: MLOAD 000039c7: DUP1 000039c8: DUP3 000039c9: DUP1 000039ca: MLOAD 000039cb: SWAP1 000039cc: PUSH1 0x20 000039ce: ADD 000039cf: SWAP1 000039d0: DUP1 000039d1: DUP4 000039d2: DUP4 000039d3: PUSH1 0x20 000039d5: DUP4 000039d6: LT 000039d7: PUSH2 0x08f0 000039da: JUMPI 000039db: DUP1 000039dc: MLOAD 000039dd: DUP3 000039de: MSTORE 000039df: PUSH1 0x1f 000039e1: NOT 000039e2: SWAP1 000039e3: SWAP3 000039e4: ADD 000039e5: SWAP2 000039e6: PUSH1 0x20 000039e8: SWAP2 000039e9: DUP3 000039ea: ADD 000039eb: SWAP2 000039ec: ADD 000039ed: PUSH2 0x08d1 000039f0: JUMP 000039f1: JUMPDEST 000039f2: DUP1 000039f3: PUSH1 0x02 000039f5: PUSH1 0x00 000039f7: DUP5 000039f8: PUSH1 0x40 000039fa: MLOAD 000039fb: PUSH1 0x20 000039fd: ADD 000039fe: DUP1 000039ff: DUP1 00003a00: PUSH32 0x6d657373616765526563697069656e7400000000000000000000000000000000 00003a21: DUP2 00003a22: MSTORE 00003a23: POP 00003a24: PUSH1 0x10 00003a26: ADD 00003a27: DUP3 00003a28: PUSH1 0x00 00003a2a: NOT 00003a2b: AND 00003a2c: PUSH1 0x00 00003a2e: NOT 00003a2f: AND 00003a30: DUP2 00003a31: MSTORE 00003a32: PUSH1 0x20 00003a34: ADD 00003a35: SWAP2 00003a36: POP 00003a37: POP 00003a38: PUSH1 0x40 00003a3a: MLOAD 00003a3b: PUSH1 0x20 00003a3d: DUP2 00003a3e: DUP4 00003a3f: SUB 00003a40: SUB 00003a41: DUP2 00003a42: MSTORE 00003a43: SWAP1 00003a44: PUSH1 0x40 00003a46: MSTORE 00003a47: PUSH1 0x40 00003a49: MLOAD 00003a4a: DUP1 00003a4b: DUP3 00003a4c: DUP1 00003a4d: MLOAD 00003a4e: SWAP1 00003a4f: PUSH1 0x20 00003a51: ADD 00003a52: SWAP1 00003a53: DUP1 00003a54: DUP4 00003a55: DUP4 00003a56: PUSH1 0x20 00003a58: DUP4 00003a59: LT 00003a5a: PUSH2 0x3905 00003a5d: JUMPI 00003a5e: DUP1 00003a5f: MLOAD 00003a60: DUP3 00003a61: MSTORE 00003a62: PUSH1 0x1f 00003a64: NOT 00003a65: SWAP1 00003a66: SWAP3 00003a67: ADD 00003a68: SWAP2 00003a69: PUSH1 0x20 00003a6b: SWAP2 00003a6c: DUP3 00003a6d: ADD 00003a6e: SWAP2 00003a6f: ADD 00003a70: PUSH2 0x38e6 00003a73: JUMP 00003a74: JUMPDEST 00003a75: PUSH32 0x6168652c307c1e813ca11cfb3a601f1cf3b22452021a5052d8b05f1f1f8a3e92 00003a96: PUSH1 0x00 00003a98: MSTORE 00003a99: PUSH1 0x04 00003a9b: PUSH1 0x20 00003a9d: MSTORE 00003a9e: PUSH32 0xcb8d022f2163402334a4962e3279c5def3417d3d8dab9e27ba26e81e3f833784 00003abf: DUP1 00003ac0: SLOAD 00003ac1: PUSH1 0xff 00003ac3: NOT 00003ac4: AND 00003ac5: SWAP2 00003ac6: ISZERO 00003ac7: ISZERO 00003ac8: SWAP2 00003ac9: SWAP1 00003aca: SWAP2 00003acb: OR 00003acc: SWAP1 00003acd: SSTORE 00003ace: JUMP 00003acf: JUMPDEST 00003ad0: PUSH1 0x40 00003ad2: DUP1 00003ad3: MLOAD 00003ad4: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 00003af5: DUP2 00003af6: MSTORE 00003af7: PUSH1 0x01 00003af9: PUSH1 0xa0 00003afb: PUSH1 0x02 00003afd: EXP 00003afe: SUB 00003aff: DUP5 00003b00: DUP2 00003b01: AND 00003b02: PUSH1 0x04 00003b04: DUP4 00003b05: ADD 00003b06: MSTORE 00003b07: ADDRESS 00003b08: PUSH1 0x24 00003b0a: DUP4 00003b0b: ADD 00003b0c: MSTORE 00003b0d: PUSH1 0x44 00003b0f: DUP3 00003b10: ADD 00003b11: DUP5 00003b12: SWAP1 00003b13: MSTORE 00003b14: SWAP2 00003b15: MLOAD 00003b16: SWAP2 00003b17: DUP6 00003b18: AND 00003b19: SWAP2 00003b1a: PUSH4 0x23b872dd 00003b1f: SWAP2 00003b20: PUSH1 0x64 00003b22: DUP1 00003b23: DUP3 00003b24: ADD 00003b25: SWAP3 00003b26: PUSH1 0x00 00003b28: SWAP3 00003b29: SWAP1 00003b2a: SWAP2 00003b2b: SWAP1 00003b2c: DUP3 00003b2d: SWAP1 00003b2e: SUB 00003b2f: ADD 00003b30: DUP2 00003b31: DUP4 00003b32: DUP8 00003b33: DUP1 00003b34: EXTCODESIZE 00003b35: ISZERO 00003b36: DUP1 00003b37: ISZERO 00003b38: PUSH2 0x3b40 00003b3b: JUMPI 00003b3c: PUSH1 0x00 00003b3e: DUP1 00003b3f: REVERT 00003b40: JUMPDEST 00003b41: POP 00003b42: GAS 00003b43: CALL 00003b44: ISZERO 00003b45: DUP1 00003b46: ISZERO 00003b47: PUSH2 0x3b54 00003b4a: JUMPI 00003b4b: RETURNDATASIZE 00003b4c: PUSH1 0x00 00003b4e: DUP1 00003b4f: RETURNDATACOPY 00003b50: RETURNDATASIZE 00003b51: PUSH1 0x00 00003b53: REVERT 00003b54: JUMPDEST 00003b55: POP 00003b56: POP 00003b57: POP 00003b58: POP 00003b59: RETURNDATASIZE 00003b5a: ISZERO 00003b5b: PUSH2 0x0ea8 00003b5e: JUMPI 00003b5f: PUSH1 0x20 00003b61: PUSH1 0x00 00003b63: DUP1 00003b64: RETURNDATACOPY 00003b65: PUSH1 0x00 00003b67: MLOAD 00003b68: ISZERO 00003b69: ISZERO 00003b6a: PUSH2 0x0ea8 00003b6d: JUMPI 00003b6e: PUSH1 0x00 00003b70: DUP1 00003b71: REVERT 00003b72: JUMPDEST 00003b73: PUSH1 0x00 00003b75: PUSH1 0x02 00003b77: PUSH1 0x00 00003b79: DUP4 00003b7a: PUSH1 0x40 00003b7c: MLOAD 00003b7d: PUSH1 0x20 00003b7f: ADD 00003b80: DUP1 00003b81: DUP1 00003b82: PUSH32 0x6d657373616765526563697069656e7400000000000000000000000000000000 00003ba3: DUP2 00003ba4: MSTORE 00003ba5: POP 00003ba6: PUSH1 0x10 00003ba8: ADD 00003ba9: DUP3 00003baa: PUSH1 0x00 00003bac: NOT 00003bad: AND 00003bae: PUSH1 0x00 00003bb0: NOT 00003bb1: AND 00003bb2: DUP2 00003bb3: MSTORE 00003bb4: PUSH1 0x20 00003bb6: ADD 00003bb7: SWAP2 00003bb8: POP 00003bb9: POP 00003bba: PUSH1 0x40 00003bbc: MLOAD 00003bbd: PUSH1 0x20 00003bbf: DUP2 00003bc0: DUP4 00003bc1: SUB 00003bc2: SUB 00003bc3: DUP2 00003bc4: MSTORE 00003bc5: SWAP1 00003bc6: PUSH1 0x40 00003bc8: MSTORE 00003bc9: PUSH1 0x40 00003bcb: MLOAD 00003bcc: DUP1 00003bcd: DUP3 00003bce: DUP1 00003bcf: MLOAD 00003bd0: SWAP1 00003bd1: PUSH1 0x20 00003bd3: ADD 00003bd4: SWAP1 00003bd5: DUP1 00003bd6: DUP4 00003bd7: DUP4 00003bd8: PUSH1 0x20 00003bda: DUP4 00003bdb: LT 00003bdc: PUSH2 0x2776 00003bdf: JUMPI 00003be0: DUP1 00003be1: MLOAD 00003be2: DUP3 00003be3: MSTORE 00003be4: PUSH1 0x1f 00003be6: NOT 00003be7: SWAP1 00003be8: SWAP3 00003be9: ADD 00003bea: SWAP2 00003beb: PUSH1 0x20 00003bed: SWAP2 00003bee: DUP3 00003bef: ADD 00003bf0: SWAP2 00003bf1: ADD 00003bf2: PUSH2 0x2757 00003bf5: JUMP 00003bf6: JUMPDEST 00003bf7: PUSH1 0x00 00003bf9: DUP1 00003bfa: PUSH1 0x00 00003bfc: DUP4 00003bfd: PUSH1 0x40 00003bff: MLOAD 00003c00: PUSH1 0x20 00003c02: ADD 00003c03: DUP1 00003c04: DUP1 00003c05: PUSH32 0x6d65737361676556616c75650000000000000000000000000000000000000000 00003c26: DUP2 00003c27: MSTORE 00003c28: POP 00003c29: PUSH1 0x0c 00003c2b: ADD 00003c2c: DUP3 00003c2d: PUSH1 0x00 00003c2f: NOT 00003c30: AND 00003c31: PUSH1 0x00 00003c33: NOT 00003c34: AND 00003c35: DUP2 00003c36: MSTORE 00003c37: PUSH1 0x20 00003c39: ADD 00003c3a: SWAP2 00003c3b: POP 00003c3c: POP 00003c3d: PUSH1 0x40 00003c3f: MLOAD 00003c40: PUSH1 0x20 00003c42: DUP2 00003c43: DUP4 00003c44: SUB 00003c45: SUB 00003c46: DUP2 00003c47: MSTORE 00003c48: SWAP1 00003c49: PUSH1 0x40 00003c4b: MSTORE 00003c4c: PUSH1 0x40 00003c4e: MLOAD 00003c4f: DUP1 00003c50: DUP3 00003c51: DUP1 00003c52: MLOAD 00003c53: SWAP1 00003c54: PUSH1 0x20 00003c56: ADD 00003c57: SWAP1 00003c58: DUP1 00003c59: DUP4 00003c5a: DUP4 00003c5b: PUSH1 0x20 00003c5d: DUP4 00003c5e: LT 00003c5f: PUSH2 0x09b4 00003c62: JUMPI 00003c63: DUP1 00003c64: MLOAD 00003c65: DUP3 00003c66: MSTORE 00003c67: PUSH1 0x1f 00003c69: NOT 00003c6a: SWAP1 00003c6b: SWAP3 00003c6c: ADD 00003c6d: SWAP2 00003c6e: PUSH1 0x20 00003c70: SWAP2 00003c71: DUP3 00003c72: ADD 00003c73: SWAP2 00003c74: ADD 00003c75: PUSH2 0x0995 00003c78: JUMP 00003c79: JUMPDEST 00003c7a: PUSH1 0x01 00003c7c: PUSH1 0x04 00003c7e: PUSH1 0x00 00003c80: DUP4 00003c81: PUSH1 0x40 00003c83: MLOAD 00003c84: PUSH1 0x20 00003c86: ADD 00003c87: DUP1 00003c88: DUP1 00003c89: PUSH32 0x6d65737361676546697865640000000000000000000000000000000000000000 00003caa: DUP2 00003cab: MSTORE 00003cac: POP 00003cad: PUSH1 0x0c 00003caf: ADD 00003cb0: DUP3 00003cb1: PUSH1 0x00 00003cb3: NOT 00003cb4: AND 00003cb5: PUSH1 0x00 00003cb7: NOT 00003cb8: AND 00003cb9: DUP2 00003cba: MSTORE 00003cbb: PUSH1 0x20 00003cbd: ADD 00003cbe: SWAP2 00003cbf: POP 00003cc0: POP 00003cc1: PUSH1 0x40 00003cc3: MLOAD 00003cc4: PUSH1 0x20 00003cc6: DUP2 00003cc7: DUP4 00003cc8: SUB 00003cc9: SUB 00003cca: DUP2 00003ccb: MSTORE 00003ccc: SWAP1 00003ccd: PUSH1 0x40 00003ccf: MSTORE 00003cd0: PUSH1 0x40 00003cd2: MLOAD 00003cd3: DUP1 00003cd4: DUP3 00003cd5: DUP1 00003cd6: MLOAD 00003cd7: SWAP1 00003cd8: PUSH1 0x20 00003cda: ADD 00003cdb: SWAP1 00003cdc: DUP1 00003cdd: DUP4 00003cde: DUP4 00003cdf: JUMPDEST 00003ce0: PUSH1 0x20 00003ce2: DUP4 00003ce3: LT 00003ce4: PUSH2 0x3cfe 00003ce7: JUMPI 00003ce8: DUP1 00003ce9: MLOAD 00003cea: DUP3 00003ceb: MSTORE 00003cec: PUSH1 0x1f 00003cee: NOT 00003cef: SWAP1 00003cf0: SWAP3 00003cf1: ADD 00003cf2: SWAP2 00003cf3: PUSH1 0x20 00003cf5: SWAP2 00003cf6: DUP3 00003cf7: ADD 00003cf8: SWAP2 00003cf9: ADD 00003cfa: PUSH2 0x3cdf 00003cfd: JUMP 00003cfe: JUMPDEST 00003cff: MLOAD 00003d00: DUP2 00003d01: MLOAD 00003d02: PUSH1 0x20 00003d04: SWAP4 00003d05: DUP5 00003d06: SUB 00003d07: PUSH2 0x0100 00003d0a: EXP 00003d0b: PUSH1 0x00 00003d0d: NOT 00003d0e: ADD 00003d0f: DUP1 00003d10: NOT 00003d11: SWAP1 00003d12: SWAP3 00003d13: AND 00003d14: SWAP2 00003d15: AND 00003d16: OR 00003d17: SWAP1 00003d18: MSTORE 00003d19: PUSH1 0x40 00003d1b: DUP1 00003d1c: MLOAD 00003d1d: SWAP3 00003d1e: SWAP1 00003d1f: SWAP5 00003d20: ADD 00003d21: DUP3 00003d22: SWAP1 00003d23: SUB 00003d24: SWAP1 00003d25: SWAP2 00003d26: KECCAK256 00003d27: DUP7 00003d28: MSTORE 00003d29: DUP6 00003d2a: ADD 00003d2b: SWAP6 00003d2c: SWAP1 00003d2d: SWAP6 00003d2e: MSTORE 00003d2f: SWAP3 00003d30: SWAP1 00003d31: SWAP3 00003d32: ADD 00003d33: PUSH1 0x00 00003d35: KECCAK256 00003d36: DUP1 00003d37: SLOAD 00003d38: PUSH1 0xff 00003d3a: NOT 00003d3b: AND 00003d3c: SWAP5 00003d3d: ISZERO 00003d3e: ISZERO 00003d3f: SWAP5 00003d40: SWAP1 00003d41: SWAP5 00003d42: OR 00003d43: SWAP1 00003d44: SWAP4 00003d45: SSTORE 00003d46: POP 00003d47: POP 00003d48: POP 00003d49: POP 00003d4a: JUMP 00003d4b: JUMPDEST 00003d4c: PUSH1 0x00 00003d4e: PUSH2 0x3d6a 00003d51: DUP5 00003d52: PUSH2 0x209e 00003d55: DUP5 00003d56: PUSH2 0x3d5e 00003d59: DUP9 00003d5a: PUSH2 0x0f85 00003d5d: JUMP 00003d5e: JUMPDEST 00003d5f: SWAP1 00003d60: PUSH4 0xffffffff 00003d65: PUSH2 0x4788 00003d68: AND 00003d69: JUMP 00003d6a: JUMPDEST 00003d6b: PUSH2 0x3d72 00003d6e: PUSH2 0x0ead 00003d71: JUMP 00003d72: JUMPDEST 00003d73: SWAP1 00003d74: POP 00003d75: PUSH1 0x01 00003d77: PUSH1 0xa0 00003d79: PUSH1 0x02 00003d7b: EXP 00003d7c: SUB 00003d7d: DUP2 00003d7e: AND 00003d7f: ISZERO 00003d80: PUSH2 0x3f59 00003d83: JUMPI 00003d84: DUP4 00003d85: PUSH1 0x01 00003d87: PUSH1 0xa0 00003d89: PUSH1 0x02 00003d8b: EXP 00003d8c: SUB 00003d8d: AND 00003d8e: PUSH4 0x095ea7b3 00003d93: DUP3 00003d94: DUP5 00003d95: PUSH1 0x40 00003d97: MLOAD 00003d98: DUP4 00003d99: PUSH4 0xffffffff 00003d9e: AND 00003d9f: PUSH1 0xe0 00003da1: PUSH1 0x02 00003da3: EXP 00003da4: MUL 00003da5: DUP2 00003da6: MSTORE 00003da7: PUSH1 0x04 00003da9: ADD 00003daa: DUP1 00003dab: DUP4 00003dac: PUSH1 0x01 00003dae: PUSH1 0xa0 00003db0: PUSH1 0x02 00003db2: EXP 00003db3: SUB 00003db4: AND 00003db5: PUSH1 0x01 00003db7: PUSH1 0xa0 00003db9: PUSH1 0x02 00003dbb: EXP 00003dbc: SUB 00003dbd: AND 00003dbe: DUP2 00003dbf: MSTORE 00003dc0: PUSH1 0x20 00003dc2: ADD 00003dc3: DUP3 00003dc4: DUP2 00003dc5: MSTORE 00003dc6: PUSH1 0x20 00003dc8: ADD 00003dc9: SWAP3 00003dca: POP 00003dcb: POP 00003dcc: POP 00003dcd: PUSH1 0x20 00003dcf: PUSH1 0x40 00003dd1: MLOAD 00003dd2: DUP1 00003dd3: DUP4 00003dd4: SUB 00003dd5: DUP2 00003dd6: PUSH1 0x00 00003dd8: DUP8 00003dd9: DUP1 00003dda: EXTCODESIZE 00003ddb: ISZERO 00003ddc: DUP1 00003ddd: ISZERO 00003dde: PUSH2 0x3de6 00003de1: JUMPI 00003de2: PUSH1 0x00 00003de4: DUP1 00003de5: REVERT 00003de6: JUMPDEST 00003de7: POP 00003de8: GAS 00003de9: CALL 00003dea: ISZERO 00003deb: DUP1 00003dec: ISZERO 00003ded: PUSH2 0x3dfa 00003df0: JUMPI 00003df1: RETURNDATASIZE 00003df2: PUSH1 0x00 00003df4: DUP1 00003df5: RETURNDATACOPY 00003df6: RETURNDATASIZE 00003df7: PUSH1 0x00 00003df9: REVERT 00003dfa: JUMPDEST 00003dfb: POP 00003dfc: POP 00003dfd: POP 00003dfe: POP 00003dff: PUSH1 0x40 00003e01: MLOAD 00003e02: RETURNDATASIZE 00003e03: PUSH1 0x20 00003e05: DUP2 00003e06: LT 00003e07: ISZERO 00003e08: PUSH2 0x3e10 00003e0b: JUMPI 00003e0c: PUSH1 0x00 00003e0e: DUP1 00003e0f: REVERT 00003e10: JUMPDEST 00003e11: POP 00003e12: POP 00003e13: PUSH1 0x01 00003e15: PUSH1 0xa0 00003e17: PUSH1 0x02 00003e19: EXP 00003e1a: SUB 00003e1b: DUP2 00003e1c: AND 00003e1d: PUSH4 0xf5a428b5 00003e22: PUSH1 0x00 00003e24: DUP6 00003e25: DUP8 00003e26: DUP7 00003e27: PUSH2 0x3e2e 00003e2a: PUSH2 0x479a 00003e2d: JUMP 00003e2e: JUMPDEST 00003e2f: PUSH1 0x40 00003e31: DUP1 00003e32: MLOAD 00003e33: PUSH1 0xe0 00003e35: PUSH1 0x02 00003e37: EXP 00003e38: PUSH4 0xffffffff 00003e3d: DUP10 00003e3e: AND 00003e3f: MUL 00003e40: DUP2 00003e41: MSTORE 00003e42: PUSH1 0x01 00003e44: PUSH1 0xa0 00003e46: PUSH1 0x02 00003e48: EXP 00003e49: SUB 00003e4a: SWAP7 00003e4b: DUP8 00003e4c: AND 00003e4d: PUSH1 0x04 00003e4f: DUP3 00003e50: ADD 00003e51: MSTORE 00003e52: SWAP5 00003e53: DUP7 00003e54: AND 00003e55: PUSH1 0x24 00003e57: DUP7 00003e58: ADD 00003e59: MSTORE 00003e5a: SWAP3 00003e5b: SWAP1 00003e5c: SWAP5 00003e5d: AND 00003e5e: PUSH1 0x44 00003e60: DUP5 00003e61: ADD 00003e62: MSTORE 00003e63: PUSH1 0x64 00003e65: DUP4 00003e66: ADD 00003e67: MSTORE 00003e68: PUSH1 0x84 00003e6a: DUP3 00003e6b: ADD 00003e6c: SWAP3 00003e6d: SWAP1 00003e6e: SWAP3 00003e6f: MSTORE 00003e70: SWAP1 00003e71: MLOAD 00003e72: PUSH1 0xa4 00003e74: DUP1 00003e75: DUP4 00003e76: ADD 00003e77: SWAP3 00003e78: PUSH1 0x20 00003e7a: SWAP3 00003e7b: SWAP2 00003e7c: SWAP1 00003e7d: DUP3 00003e7e: SWAP1 00003e7f: SUB 00003e80: ADD 00003e81: DUP2 00003e82: PUSH1 0x00 00003e84: DUP8 00003e85: DUP1 00003e86: EXTCODESIZE 00003e87: ISZERO 00003e88: DUP1 00003e89: ISZERO 00003e8a: PUSH2 0x3e92 00003e8d: JUMPI 00003e8e: PUSH1 0x00 00003e90: DUP1 00003e91: REVERT 00003e92: JUMPDEST 00003e93: POP 00003e94: GAS 00003e95: CALL 00003e96: ISZERO 00003e97: DUP1 00003e98: ISZERO 00003e99: PUSH2 0x3ea6 00003e9c: JUMPI 00003e9d: RETURNDATASIZE 00003e9e: PUSH1 0x00 00003ea0: DUP1 00003ea1: RETURNDATACOPY 00003ea2: RETURNDATASIZE 00003ea3: PUSH1 0x00 00003ea5: REVERT 00003ea6: JUMPDEST 00003ea7: POP 00003ea8: POP 00003ea9: POP 00003eaa: POP 00003eab: PUSH1 0x40 00003ead: MLOAD 00003eae: RETURNDATASIZE 00003eaf: PUSH1 0x20 00003eb1: DUP2 00003eb2: LT 00003eb3: ISZERO 00003eb4: PUSH2 0x3ebc 00003eb7: JUMPI 00003eb8: PUSH1 0x00 00003eba: DUP1 00003ebb: REVERT 00003ebc: JUMPDEST 00003ebd: POP 00003ebe: MLOAD 00003ebf: ISZERO 00003ec0: PUSH2 0x3ec8 00003ec3: JUMPI 00003ec4: PUSH2 0x3f73 00003ec7: JUMP 00003ec8: JUMPDEST 00003ec9: DUP4 00003eca: PUSH1 0x01 00003ecc: PUSH1 0xa0 00003ece: PUSH1 0x02 00003ed0: EXP 00003ed1: SUB 00003ed2: AND 00003ed3: PUSH4 0x095ea7b3 00003ed8: DUP3 00003ed9: PUSH1 0x00 00003edb: PUSH1 0x40 00003edd: MLOAD 00003ede: DUP4 00003edf: PUSH4 0xffffffff 00003ee4: AND 00003ee5: PUSH1 0xe0 00003ee7: PUSH1 0x02 00003ee9: EXP 00003eea: MUL 00003eeb: DUP2 00003eec: MSTORE 00003eed: PUSH1 0x04 00003eef: ADD 00003ef0: DUP1 00003ef1: DUP4 00003ef2: PUSH1 0x01 00003ef4: PUSH1 0xa0 00003ef6: PUSH1 0x02 00003ef8: EXP 00003ef9: SUB 00003efa: AND 00003efb: PUSH1 0x01 00003efd: PUSH1 0xa0 00003eff: PUSH1 0x02 00003f01: EXP 00003f02: SUB 00003f03: AND 00003f04: DUP2 00003f05: MSTORE 00003f06: PUSH1 0x20 00003f08: ADD 00003f09: DUP3 00003f0a: DUP2 00003f0b: MSTORE 00003f0c: PUSH1 0x20 00003f0e: ADD 00003f0f: SWAP3 00003f10: POP 00003f11: POP 00003f12: POP 00003f13: PUSH1 0x20 00003f15: PUSH1 0x40 00003f17: MLOAD 00003f18: DUP1 00003f19: DUP4 00003f1a: SUB 00003f1b: DUP2 00003f1c: PUSH1 0x00 00003f1e: DUP8 00003f1f: DUP1 00003f20: EXTCODESIZE 00003f21: ISZERO 00003f22: DUP1 00003f23: ISZERO 00003f24: PUSH2 0x3f2c 00003f27: JUMPI 00003f28: PUSH1 0x00 00003f2a: DUP1 00003f2b: REVERT 00003f2c: JUMPDEST 00003f2d: POP 00003f2e: GAS 00003f2f: CALL 00003f30: ISZERO 00003f31: DUP1 00003f32: ISZERO 00003f33: PUSH2 0x3f40 00003f36: JUMPI 00003f37: RETURNDATASIZE 00003f38: PUSH1 0x00 00003f3a: DUP1 00003f3b: RETURNDATACOPY 00003f3c: RETURNDATASIZE 00003f3d: PUSH1 0x00 00003f3f: REVERT 00003f40: JUMPDEST 00003f41: POP 00003f42: POP 00003f43: POP 00003f44: POP 00003f45: PUSH1 0x40 00003f47: MLOAD 00003f48: RETURNDATASIZE 00003f49: PUSH1 0x20 00003f4b: DUP2 00003f4c: LT 00003f4d: ISZERO 00003f4e: PUSH2 0x3f56 00003f51: JUMPI 00003f52: PUSH1 0x00 00003f54: DUP1 00003f55: REVERT 00003f56: JUMPDEST 00003f57: POP 00003f58: POP 00003f59: JUMPDEST 00003f5a: PUSH2 0x3f73 00003f5d: PUSH1 0x01 00003f5f: PUSH1 0xa0 00003f61: PUSH1 0x02 00003f63: EXP 00003f64: SUB 00003f65: DUP6 00003f66: AND 00003f67: DUP5 00003f68: DUP5 00003f69: PUSH4 0xffffffff 00003f6e: PUSH2 0x47e1 00003f71: AND 00003f72: JUMP 00003f73: JUMPDEST 00003f74: POP 00003f75: POP 00003f76: POP 00003f77: POP 00003f78: JUMP 00003f79: JUMPDEST 00003f7a: PUSH1 0x00 00003f7c: SWAP1 00003f7d: EXTCODESIZE 00003f7e: GT 00003f7f: SWAP1 00003f80: JUMP 00003f81: JUMPDEST 00003f82: PUSH2 0x3f8f 00003f85: DUP2 00003f86: PUSH2 0x0de2 00003f89: DUP6 00003f8a: DUP6 00003f8b: PUSH2 0x240b 00003f8e: JUMP 00003f8f: JUMPDEST 00003f90: PUSH1 0x00 00003f92: DUP1 00003f93: DUP6 00003f94: DUP6 00003f95: PUSH1 0x40 00003f97: MLOAD 00003f98: PUSH1 0x20 00003f9a: ADD 00003f9b: DUP1 00003f9c: DUP1 00003f9d: PUSH32 0x746f74616c457865637574656450657244617900000000000000000000000000 00003fbe: DUP2 00003fbf: MSTORE 00003fc0: POP 00003fc1: PUSH1 0x13 00003fc3: ADD 00003fc4: DUP4 00003fc5: PUSH1 0x01 00003fc7: PUSH1 0xa0 00003fc9: PUSH1 0x02 00003fcb: EXP 00003fcc: SUB 00003fcd: AND 00003fce: PUSH1 0x01 00003fd0: PUSH1 0xa0 00003fd2: PUSH1 0x02 00003fd4: EXP 00003fd5: SUB 00003fd6: AND 00003fd7: PUSH1 0x60 00003fd9: PUSH1 0x02 00003fdb: EXP 00003fdc: MUL 00003fdd: DUP2 00003fde: MSTORE 00003fdf: PUSH1 0x14 00003fe1: ADD 00003fe2: DUP3 00003fe3: DUP2 00003fe4: MSTORE 00003fe5: PUSH1 0x20 00003fe7: ADD 00003fe8: SWAP3 00003fe9: POP 00003fea: POP 00003feb: POP 00003fec: PUSH1 0x40 00003fee: MLOAD 00003fef: PUSH1 0x20 00003ff1: DUP2 00003ff2: DUP4 00003ff3: SUB 00003ff4: SUB 00003ff5: DUP2 00003ff6: MSTORE 00003ff7: SWAP1 00003ff8: PUSH1 0x40 00003ffa: MSTORE 00003ffb: PUSH1 0x40 00003ffd: MLOAD 00003ffe: DUP1 00003fff: DUP3 00004000: DUP1 00004001: MLOAD 00004002: SWAP1 00004003: PUSH1 0x20 00004005: ADD 00004006: SWAP1 00004007: DUP1 00004008: DUP4 00004009: DUP4 0000400a: PUSH1 0x20 0000400c: DUP4 0000400d: LT 0000400e: PUSH2 0x37ac 00004011: JUMPI 00004012: DUP1 00004013: MLOAD 00004014: DUP3 00004015: MSTORE 00004016: PUSH1 0x1f 00004018: NOT 00004019: SWAP1 0000401a: SWAP3 0000401b: ADD 0000401c: SWAP2 0000401d: PUSH1 0x20 0000401f: SWAP2 00004020: DUP3 00004021: ADD 00004022: SWAP2 00004023: ADD 00004024: PUSH2 0x378d 00004027: JUMP 00004028: JUMPDEST 00004029: PUSH1 0x00 0000402b: DUP1 0000402c: PUSH2 0x4033 0000402f: PUSH2 0x479a 00004032: JUMP 00004033: JUMPDEST 00004034: SWAP2 00004035: POP 00004036: PUSH2 0x4046 00004039: DUP6 0000403a: PUSH2 0x209e 0000403d: DUP6 0000403e: PUSH2 0x3d5e 00004041: DUP10 00004042: PUSH2 0x0f85 00004045: JUMP 00004046: JUMPDEST 00004047: PUSH2 0x404e 0000404a: PUSH2 0x0ead 0000404d: JUMP 0000404e: JUMPDEST 0000404f: SWAP1 00004050: POP 00004051: PUSH1 0x01 00004053: PUSH1 0xa0 00004055: PUSH1 0x02 00004057: EXP 00004058: SUB 00004059: DUP2 0000405a: AND 0000405b: ISZERO 0000405c: PUSH2 0x4239 0000405f: JUMPI 00004060: DUP5 00004061: PUSH1 0x01 00004063: PUSH1 0xa0 00004065: PUSH1 0x02 00004067: EXP 00004068: SUB 00004069: AND 0000406a: PUSH4 0x095ea7b3 0000406f: DUP3 00004070: DUP6 00004071: PUSH1 0x40 00004073: MLOAD 00004074: DUP4 00004075: PUSH4 0xffffffff 0000407a: AND 0000407b: PUSH1 0xe0 0000407d: PUSH1 0x02 0000407f: EXP 00004080: MUL 00004081: DUP2 00004082: MSTORE 00004083: PUSH1 0x04 00004085: ADD 00004086: DUP1 00004087: DUP4 00004088: PUSH1 0x01 0000408a: PUSH1 0xa0 0000408c: PUSH1 0x02 0000408e: EXP 0000408f: SUB 00004090: AND 00004091: PUSH1 0x01 00004093: PUSH1 0xa0 00004095: PUSH1 0x02 00004097: EXP 00004098: SUB 00004099: AND 0000409a: DUP2 0000409b: MSTORE 0000409c: PUSH1 0x20 0000409e: ADD 0000409f: DUP3 000040a0: DUP2 000040a1: MSTORE 000040a2: PUSH1 0x20 000040a4: ADD 000040a5: SWAP3 000040a6: POP 000040a7: POP 000040a8: POP 000040a9: PUSH1 0x20 000040ab: PUSH1 0x40 000040ad: MLOAD 000040ae: DUP1 000040af: DUP4 000040b0: SUB 000040b1: DUP2 000040b2: PUSH1 0x00 000040b4: DUP8 000040b5: DUP1 000040b6: EXTCODESIZE 000040b7: ISZERO 000040b8: DUP1 000040b9: ISZERO 000040ba: PUSH2 0x40c2 000040bd: JUMPI 000040be: PUSH1 0x00 000040c0: DUP1 000040c1: REVERT 000040c2: JUMPDEST 000040c3: POP 000040c4: GAS 000040c5: CALL 000040c6: ISZERO 000040c7: DUP1 000040c8: ISZERO 000040c9: PUSH2 0x40d6 000040cc: JUMPI 000040cd: RETURNDATASIZE 000040ce: PUSH1 0x00 000040d0: DUP1 000040d1: RETURNDATACOPY 000040d2: RETURNDATASIZE 000040d3: PUSH1 0x00 000040d5: REVERT 000040d6: JUMPDEST 000040d7: POP 000040d8: POP 000040d9: POP 000040da: POP 000040db: PUSH1 0x40 000040dd: MLOAD 000040de: RETURNDATASIZE 000040df: PUSH1 0x20 000040e1: DUP2 000040e2: LT 000040e3: ISZERO 000040e4: PUSH2 0x40ec 000040e7: JUMPI 000040e8: PUSH1 0x00 000040ea: DUP1 000040eb: REVERT 000040ec: JUMPDEST 000040ed: POP 000040ee: POP 000040ef: PUSH1 0x40 000040f1: DUP1 000040f2: MLOAD 000040f3: PUSH32 0xf5a428b500000000000000000000000000000000000000000000000000000000 00004114: DUP2 00004115: MSTORE 00004116: PUSH1 0x00 00004118: PUSH1 0x04 0000411a: DUP3 0000411b: ADD 0000411c: DUP2 0000411d: SWAP1 0000411e: MSTORE 0000411f: PUSH1 0x01 00004121: PUSH1 0xa0 00004123: PUSH1 0x02 00004125: EXP 00004126: SUB 00004127: DUP8 00004128: DUP2 00004129: AND 0000412a: PUSH1 0x24 0000412c: DUP5 0000412d: ADD 0000412e: MSTORE 0000412f: DUP9 00004130: DUP2 00004131: AND 00004132: PUSH1 0x44 00004134: DUP5 00004135: ADD 00004136: MSTORE 00004137: PUSH1 0x64 00004139: DUP4 0000413a: ADD 0000413b: DUP8 0000413c: SWAP1 0000413d: MSTORE 0000413e: PUSH1 0x84 00004140: DUP4 00004141: ADD 00004142: DUP7 00004143: SWAP1 00004144: MSTORE 00004145: SWAP3 00004146: MLOAD 00004147: SWAP3 00004148: DUP5 00004149: AND 0000414a: SWAP3 0000414b: PUSH4 0xf5a428b5 00004150: SWAP3 00004151: PUSH1 0xa4 00004153: DUP1 00004154: DUP3 00004155: ADD 00004156: SWAP4 00004157: PUSH1 0x20 00004159: SWAP4 0000415a: SWAP3 0000415b: DUP4 0000415c: SWAP1 0000415d: SUB 0000415e: SWAP1 0000415f: SWAP2 00004160: ADD 00004161: SWAP1 00004162: DUP3 00004163: SWAP1 00004164: DUP8 00004165: DUP1 00004166: EXTCODESIZE 00004167: ISZERO 00004168: DUP1 00004169: ISZERO 0000416a: PUSH2 0x4172 0000416d: JUMPI 0000416e: PUSH1 0x00 00004170: DUP1 00004171: REVERT 00004172: JUMPDEST 00004173: POP 00004174: GAS 00004175: CALL 00004176: ISZERO 00004177: DUP1 00004178: ISZERO 00004179: PUSH2 0x4186 0000417c: JUMPI 0000417d: RETURNDATASIZE 0000417e: PUSH1 0x00 00004180: DUP1 00004181: RETURNDATACOPY 00004182: RETURNDATASIZE 00004183: PUSH1 0x00 00004185: REVERT 00004186: JUMPDEST 00004187: POP 00004188: POP 00004189: POP 0000418a: POP 0000418b: PUSH1 0x40 0000418d: MLOAD 0000418e: RETURNDATASIZE 0000418f: PUSH1 0x20 00004191: DUP2 00004192: LT 00004193: ISZERO 00004194: PUSH2 0x419c 00004197: JUMPI 00004198: PUSH1 0x00 0000419a: DUP1 0000419b: REVERT 0000419c: JUMPDEST 0000419d: POP 0000419e: MLOAD 0000419f: ISZERO 000041a0: PUSH2 0x41a8 000041a3: JUMPI 000041a4: PUSH2 0x1c9d 000041a7: JUMP 000041a8: JUMPDEST 000041a9: DUP5 000041aa: PUSH1 0x01 000041ac: PUSH1 0xa0 000041ae: PUSH1 0x02 000041b0: EXP 000041b1: SUB 000041b2: AND 000041b3: PUSH4 0x095ea7b3 000041b8: DUP3 000041b9: PUSH1 0x00 000041bb: PUSH1 0x40 000041bd: MLOAD 000041be: DUP4 000041bf: PUSH4 0xffffffff 000041c4: AND 000041c5: PUSH1 0xe0 000041c7: PUSH1 0x02 000041c9: EXP 000041ca: MUL 000041cb: DUP2 000041cc: MSTORE 000041cd: PUSH1 0x04 000041cf: ADD 000041d0: DUP1 000041d1: DUP4 000041d2: PUSH1 0x01 000041d4: PUSH1 0xa0 000041d6: PUSH1 0x02 000041d8: EXP 000041d9: SUB 000041da: AND 000041db: PUSH1 0x01 000041dd: PUSH1 0xa0 000041df: PUSH1 0x02 000041e1: EXP 000041e2: SUB 000041e3: AND 000041e4: DUP2 000041e5: MSTORE 000041e6: PUSH1 0x20 000041e8: ADD 000041e9: DUP3 000041ea: DUP2 000041eb: MSTORE 000041ec: PUSH1 0x20 000041ee: ADD 000041ef: SWAP3 000041f0: POP 000041f1: POP 000041f2: POP 000041f3: PUSH1 0x20 000041f5: PUSH1 0x40 000041f7: MLOAD 000041f8: DUP1 000041f9: DUP4 000041fa: SUB 000041fb: DUP2 000041fc: PUSH1 0x00 000041fe: DUP8 000041ff: DUP1 00004200: EXTCODESIZE 00004201: ISZERO 00004202: DUP1 00004203: ISZERO 00004204: PUSH2 0x420c 00004207: JUMPI 00004208: PUSH1 0x00 0000420a: DUP1 0000420b: REVERT 0000420c: JUMPDEST 0000420d: POP 0000420e: GAS 0000420f: CALL 00004210: ISZERO 00004211: DUP1 00004212: ISZERO 00004213: PUSH2 0x4220 00004216: JUMPI 00004217: RETURNDATASIZE 00004218: PUSH1 0x00 0000421a: DUP1 0000421b: RETURNDATACOPY 0000421c: RETURNDATASIZE 0000421d: PUSH1 0x00 0000421f: REVERT 00004220: JUMPDEST 00004221: POP 00004222: POP 00004223: POP 00004224: POP 00004225: PUSH1 0x40 00004227: MLOAD 00004228: RETURNDATASIZE 00004229: PUSH1 0x20 0000422b: DUP2 0000422c: LT 0000422d: ISZERO 0000422e: PUSH2 0x4236 00004231: JUMPI 00004232: PUSH1 0x00 00004234: DUP1 00004235: REVERT 00004236: JUMPDEST 00004237: POP 00004238: POP 00004239: JUMPDEST 0000423a: PUSH2 0x4253 0000423d: PUSH1 0x01 0000423f: PUSH1 0xa0 00004241: PUSH1 0x02 00004243: EXP 00004244: SUB 00004245: DUP7 00004246: AND 00004247: DUP6 00004248: DUP6 00004249: PUSH4 0xffffffff 0000424e: PUSH2 0x47e1 00004251: AND 00004252: JUMP 00004253: JUMPDEST 00004254: PUSH1 0x40 00004256: DUP1 00004257: MLOAD 00004258: DUP5 00004259: DUP2 0000425a: MSTORE 0000425b: SWAP1 0000425c: MLOAD 0000425d: DUP4 0000425e: SWAP2 0000425f: PUSH1 0x01 00004261: PUSH1 0xa0 00004263: PUSH1 0x02 00004265: EXP 00004266: SUB 00004267: DUP1 00004268: DUP9 00004269: AND 0000426a: SWAP3 0000426b: SWAP1 0000426c: DUP10 0000426d: AND 0000426e: SWAP2 0000426f: PUSH32 0x9afd47907e25028cdaca89d193518c302bbb128617d5a992c5abd45815526593 00004290: SWAP2 00004291: SWAP1 00004292: DUP2 00004293: SWAP1 00004294: SUB 00004295: PUSH1 0x20 00004297: ADD 00004298: SWAP1 00004299: LOG4 0000429a: POP 0000429b: POP 0000429c: POP 0000429d: POP 0000429e: POP 0000429f: JUMP 000042a0: JUMPDEST 000042a1: PUSH1 0x00 000042a3: PUSH2 0x42aa 000042a6: PUSH2 0x1eb6 000042a9: JUMP 000042aa: JUMPDEST 000042ab: PUSH1 0x01 000042ad: PUSH1 0xa0 000042af: PUSH1 0x02 000042b1: EXP 000042b2: SUB 000042b3: AND 000042b4: PUSH4 0xe5789d03 000042b9: PUSH1 0x40 000042bb: MLOAD 000042bc: DUP2 000042bd: PUSH4 0xffffffff 000042c2: AND 000042c3: PUSH1 0xe0 000042c5: PUSH1 0x02 000042c7: EXP 000042c8: MUL 000042c9: DUP2 000042ca: MSTORE 000042cb: PUSH1 0x04 000042cd: ADD 000042ce: PUSH1 0x20 000042d0: PUSH1 0x40 000042d2: MLOAD 000042d3: DUP1 000042d4: DUP4 000042d5: SUB 000042d6: DUP2 000042d7: PUSH1 0x00 000042d9: DUP8 000042da: DUP1 000042db: EXTCODESIZE 000042dc: ISZERO 000042dd: DUP1 000042de: ISZERO 000042df: PUSH2 0x2927 000042e2: JUMPI 000042e3: PUSH1 0x00 000042e5: DUP1 000042e6: REVERT 000042e7: JUMPDEST 000042e8: ADDRESS 000042e9: BALANCE 000042ea: PUSH2 0x0811 000042ed: DUP3 000042ee: DUP3 000042ef: PUSH2 0x4844 000042f2: JUMP 000042f3: JUMPDEST 000042f4: PUSH1 0x40 000042f6: DUP1 000042f7: MLOAD 000042f8: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00004319: DUP2 0000431a: MSTORE 0000431b: ADDRESS 0000431c: PUSH1 0x04 0000431e: DUP3 0000431f: ADD 00004320: MSTORE 00004321: SWAP1 00004322: MLOAD 00004323: DUP4 00004324: SWAP2 00004325: PUSH1 0x00 00004327: SWAP2 00004328: PUSH1 0x01 0000432a: PUSH1 0xa0 0000432c: PUSH1 0x02 0000432e: EXP 0000432f: SUB 00004330: DUP5 00004331: AND 00004332: SWAP2 00004333: PUSH4 0x70a08231 00004338: SWAP2 00004339: PUSH1 0x24 0000433b: DUP1 0000433c: DUP4 0000433d: ADD 0000433e: SWAP3 0000433f: PUSH1 0x20 00004341: SWAP3 00004342: SWAP2 00004343: SWAP1 00004344: DUP3 00004345: SWAP1 00004346: SUB 00004347: ADD 00004348: DUP2 00004349: DUP8 0000434a: DUP8 0000434b: DUP1 0000434c: EXTCODESIZE 0000434d: ISZERO 0000434e: DUP1 0000434f: ISZERO 00004350: PUSH2 0x4358 00004353: JUMPI 00004354: PUSH1 0x00 00004356: DUP1 00004357: REVERT 00004358: JUMPDEST 00004359: POP 0000435a: GAS 0000435b: CALL 0000435c: ISZERO 0000435d: DUP1 0000435e: ISZERO 0000435f: PUSH2 0x436c 00004362: JUMPI 00004363: RETURNDATASIZE 00004364: PUSH1 0x00 00004366: DUP1 00004367: RETURNDATACOPY 00004368: RETURNDATASIZE 00004369: PUSH1 0x00 0000436b: REVERT 0000436c: JUMPDEST 0000436d: POP 0000436e: POP 0000436f: POP 00004370: POP 00004371: PUSH1 0x40 00004373: MLOAD 00004374: RETURNDATASIZE 00004375: PUSH1 0x20 00004377: DUP2 00004378: LT 00004379: ISZERO 0000437a: PUSH2 0x4382 0000437d: JUMPI 0000437e: PUSH1 0x00 00004380: DUP1 00004381: REVERT 00004382: JUMPDEST 00004383: POP 00004384: MLOAD 00004385: SWAP1 00004386: POP 00004387: PUSH2 0x3f73 0000438a: DUP5 0000438b: DUP5 0000438c: DUP4 0000438d: PUSH2 0x48a5 00004390: JUMP 00004391: JUMPDEST 00004392: PUSH1 0x40 00004394: MLOAD 00004395: PUSH32 0x06fdde0300000000000000000000000000000000000000000000000000000000 000043b6: DUP2 000043b7: MSTORE 000043b8: PUSH1 0x60 000043ba: SWAP1 000043bb: PUSH1 0x00 000043bd: DUP3 000043be: PUSH1 0x20 000043c0: DUP4 000043c1: PUSH1 0x04 000043c3: DUP2 000043c4: DUP9 000043c5: GAS 000043c6: STATICCALL 000043c7: ISZERO 000043c8: ISZERO 000043c9: PUSH2 0x43fa 000043cc: JUMPI 000043cd: PUSH32 0xa3f4df7e00000000000000000000000000000000000000000000000000000000 000043ee: DUP4 000043ef: MSTORE 000043f0: PUSH1 0x20 000043f2: DUP4 000043f3: PUSH1 0x04 000043f5: DUP6 000043f6: DUP9 000043f7: GAS 000043f8: STATICCALL 000043f9: POP 000043fa: JUMPDEST 000043fb: RETURNDATASIZE 000043fc: DUP4 000043fd: ADD 000043fe: PUSH1 0x40 00004400: MSTORE 00004401: PUSH1 0x20 00004403: RETURNDATASIZE 00004404: GT 00004405: PUSH1 0x01 00004407: DUP2 00004408: EQ 00004409: PUSH2 0x4414 0000440c: JUMPI 0000440d: RETURNDATASIZE 0000440e: SWAP3 0000440f: POP 00004410: PUSH2 0x4422 00004413: JUMP 00004414: JUMPDEST 00004415: PUSH1 0x20 00004417: DUP1 00004418: PUSH1 0x40 0000441a: MLOAD 0000441b: RETURNDATACOPY 0000441c: PUSH1 0x40 0000441e: MLOAD 0000441f: MLOAD 00004420: SWAP3 00004421: POP 00004422: JUMPDEST 00004423: POP 00004424: DUP2 00004425: PUSH1 0x40 00004427: MLOAD 00004428: SWAP1 00004429: DUP1 0000442a: DUP3 0000442b: MSTORE 0000442c: DUP1 0000442d: PUSH1 0x1f 0000442f: ADD 00004430: PUSH1 0x1f 00004432: NOT 00004433: AND 00004434: PUSH1 0x20 00004436: ADD 00004437: DUP3 00004438: ADD 00004439: PUSH1 0x40 0000443b: MSTORE 0000443c: DUP1 0000443d: ISZERO 0000443e: PUSH2 0x4451 00004441: JUMPI 00004442: DUP2 00004443: PUSH1 0x20 00004445: ADD 00004446: PUSH1 0x20 00004448: DUP3 00004449: MUL 0000444a: DUP1 0000444b: CODESIZE 0000444c: DUP4 0000444d: CODECOPY 0000444e: ADD 0000444f: SWAP1 00004450: POP 00004451: JUMPDEST 00004452: POP 00004453: SWAP1 00004454: POP 00004455: PUSH1 0x20 00004457: RETURNDATASIZE 00004458: GT 00004459: ISZERO 0000445a: PUSH2 0x446a 0000445d: JUMPI 0000445e: DUP2 0000445f: PUSH1 0x40 00004461: PUSH1 0x20 00004463: DUP4 00004464: ADD 00004465: RETURNDATACOPY 00004466: PUSH2 0x0e39 00004469: JUMP 0000446a: JUMPDEST 0000446b: PUSH1 0x00 0000446d: RETURNDATASIZE 0000446e: GT 0000446f: ISZERO 00004470: PUSH2 0x0e39 00004473: JUMPI 00004474: PUSH1 0x00 00004476: DUP4 00004477: MLOAD 00004478: SWAP4 00004479: POP 0000447a: DUP4 0000447b: PUSH1 0x20 0000447d: DUP4 0000447e: ADD 0000447f: MSTORE 00004480: JUMPDEST 00004481: PUSH1 0x00 00004483: DUP5 00004484: GT 00004485: ISZERO 00004486: PUSH2 0x4498 00004489: JUMPI 0000448a: PUSH1 0x08 0000448c: SWAP4 0000448d: SWAP1 0000448e: SWAP4 0000448f: SHL 00004490: SWAP3 00004491: PUSH1 0x01 00004493: ADD 00004494: PUSH2 0x4480 00004497: JUMP 00004498: JUMPDEST 00004499: DUP2 0000449a: MSTORE 0000449b: SWAP5 0000449c: SWAP4 0000449d: POP 0000449e: POP 0000449f: POP 000044a0: POP 000044a1: JUMP 000044a2: JUMPDEST 000044a3: PUSH1 0x40 000044a5: MLOAD 000044a6: PUSH32 0x95d89b4100000000000000000000000000000000000000000000000000000000 000044c7: DUP2 000044c8: MSTORE 000044c9: PUSH1 0x60 000044cb: SWAP1 000044cc: PUSH1 0x00 000044ce: DUP3 000044cf: PUSH1 0x20 000044d1: DUP4 000044d2: PUSH1 0x04 000044d4: DUP2 000044d5: DUP9 000044d6: GAS 000044d7: STATICCALL 000044d8: ISZERO 000044d9: ISZERO 000044da: PUSH2 0x43fa 000044dd: JUMPI 000044de: PUSH32 0xf76f8d7800000000000000000000000000000000000000000000000000000000 000044ff: DUP4 00004500: MSTORE 00004501: PUSH1 0x20 00004503: DUP4 00004504: PUSH1 0x04 00004506: DUP6 00004507: DUP9 00004508: GAS 00004509: STATICCALL 0000450a: POP 0000450b: RETURNDATASIZE 0000450c: DUP4 0000450d: ADD 0000450e: PUSH1 0x40 00004510: MSTORE 00004511: PUSH1 0x20 00004513: RETURNDATASIZE 00004514: GT 00004515: PUSH1 0x01 00004517: DUP2 00004518: EQ 00004519: PUSH2 0x4414 0000451c: JUMPI 0000451d: RETURNDATASIZE 0000451e: SWAP3 0000451f: POP 00004520: PUSH2 0x4422 00004523: JUMP 00004524: JUMPDEST 00004525: PUSH1 0x00 00004527: DUP1 00004528: PUSH1 0x40 0000452a: MLOAD 0000452b: PUSH1 0x20 0000452d: DUP2 0000452e: ADD 0000452f: PUSH1 0x40 00004531: MSTORE 00004532: PUSH32 0x313ce56700000000000000000000000000000000000000000000000000000000 00004553: DUP2 00004554: MSTORE 00004555: PUSH1 0x20 00004557: DUP2 00004558: PUSH1 0x04 0000455a: DUP4 0000455b: DUP8 0000455c: GAS 0000455d: STATICCALL 0000455e: ISZERO 0000455f: ISZERO 00004560: PUSH2 0x459a 00004563: JUMPI 00004564: PUSH32 0x2e0f262500000000000000000000000000000000000000000000000000000000 00004585: DUP2 00004586: MSTORE 00004587: PUSH1 0x20 00004589: DUP2 0000458a: PUSH1 0x04 0000458c: DUP4 0000458d: DUP8 0000458e: GAS 0000458f: STATICCALL 00004590: ISZERO 00004591: ISZERO 00004592: PUSH2 0x459a 00004595: JUMPI 00004596: PUSH1 0x00 00004598: DUP2 00004599: MSTORE 0000459a: JUMPDEST 0000459b: MLOAD 0000459c: SWAP4 0000459d: SWAP3 0000459e: POP 0000459f: POP 000045a0: POP 000045a1: JUMP 000045a2: JUMPDEST 000045a3: PUSH1 0x00 000045a5: DUP1 000045a6: PUSH1 0x00 000045a8: DUP1 000045a9: PUSH1 0x00 000045ab: DUP1 000045ac: PUSH1 0x12 000045ae: DUP8 000045af: LT 000045b0: ISZERO 000045b1: PUSH2 0x4697 000045b4: JUMPI 000045b5: DUP7 000045b6: PUSH1 0x12 000045b8: SUB 000045b9: PUSH1 0x0a 000045bb: EXP 000045bc: SWAP6 000045bd: POP 000045be: PUSH2 0x45d7 000045c1: DUP7 000045c2: PUSH2 0x45cb 000045c5: PUSH1 0x00 000045c7: PUSH2 0x1cd2 000045ca: JUMP 000045cb: JUMPDEST 000045cc: SWAP1 000045cd: PUSH4 0xffffffff 000045d2: PUSH2 0x4947 000045d5: AND 000045d6: JUMP 000045d7: JUMPDEST 000045d8: SWAP5 000045d9: POP 000045da: PUSH2 0x45e7 000045dd: DUP7 000045de: PUSH2 0x45cb 000045e1: PUSH1 0x00 000045e3: PUSH2 0x0932 000045e6: JUMP 000045e7: JUMPDEST 000045e8: SWAP4 000045e9: POP 000045ea: PUSH2 0x45f7 000045ed: DUP7 000045ee: PUSH2 0x45cb 000045f1: PUSH1 0x00 000045f3: PUSH2 0x2505 000045f6: JUMP 000045f7: JUMPDEST 000045f8: SWAP3 000045f9: POP 000045fa: PUSH2 0x4607 000045fd: DUP7 000045fe: PUSH2 0x45cb 00004601: PUSH1 0x00 00004603: PUSH2 0x0f04 00004606: JUMP 00004607: JUMPDEST 00004608: SWAP2 00004609: POP 0000460a: PUSH2 0x4617 0000460d: DUP7 0000460e: PUSH2 0x45cb 00004611: PUSH1 0x00 00004613: PUSH2 0x1427 00004616: JUMP 00004617: JUMPDEST 00004618: SWAP1 00004619: POP 0000461a: DUP5 0000461b: ISZERO 0000461c: ISZERO 0000461d: PUSH2 0x464f 00004620: JUMPI 00004621: PUSH1 0x01 00004623: SWAP5 00004624: POP 00004625: DUP5 00004626: DUP5 00004627: GT 00004628: PUSH2 0x464f 0000462b: JUMPI 0000462c: PUSH1 0x64 0000462e: SWAP4 0000462f: POP 00004630: PUSH1 0x64 00004632: SWAP2 00004633: POP 00004634: DUP4 00004635: DUP4 00004636: GT 00004637: ISZERO 00004638: DUP1 00004639: PUSH2 0x4642 0000463c: JUMPI 0000463d: POP 0000463e: DUP2 0000463f: DUP2 00004640: GT 00004641: ISZERO 00004642: JUMPDEST 00004643: ISZERO 00004644: PUSH2 0x464f 00004647: JUMPI 00004648: POP 00004649: PUSH2 0x2710 0000464c: SWAP2 0000464d: POP 0000464e: DUP2 0000464f: JUMPDEST 00004650: PUSH2 0x4674 00004653: DUP9 00004654: PUSH1 0x60 00004656: PUSH1 0x40 00004658: MLOAD 00004659: SWAP1 0000465a: DUP2 0000465b: ADD 0000465c: PUSH1 0x40 0000465e: MSTORE 0000465f: DUP1 00004660: DUP7 00004661: DUP2 00004662: MSTORE 00004663: PUSH1 0x20 00004665: ADD 00004666: DUP8 00004667: DUP2 00004668: MSTORE 00004669: PUSH1 0x20 0000466b: ADD 0000466c: DUP9 0000466d: DUP2 0000466e: MSTORE 0000466f: POP 00004670: PUSH2 0x2a0b 00004673: JUMP 00004674: JUMPDEST 00004675: PUSH2 0x4692 00004678: DUP9 00004679: PUSH1 0x40 0000467b: DUP1 0000467c: MLOAD 0000467d: SWAP1 0000467e: DUP2 0000467f: ADD 00004680: PUSH1 0x40 00004682: MSTORE 00004683: DUP1 00004684: DUP5 00004685: DUP2 00004686: MSTORE 00004687: PUSH1 0x20 00004689: ADD 0000468a: DUP6 0000468b: DUP2 0000468c: MSTORE 0000468d: POP 0000468e: PUSH2 0x2cab 00004691: JUMP 00004692: JUMPDEST 00004693: PUSH2 0x223b 00004696: JUMP 00004697: JUMPDEST 00004698: PUSH1 0x12 0000469a: DUP8 0000469b: SUB 0000469c: PUSH1 0x0a 0000469e: EXP 0000469f: SWAP6 000046a0: POP 000046a1: PUSH2 0x46f7 000046a4: DUP9 000046a5: PUSH1 0x60 000046a7: PUSH1 0x40 000046a9: MLOAD 000046aa: SWAP1 000046ab: DUP2 000046ac: ADD 000046ad: PUSH1 0x40 000046af: MSTORE 000046b0: DUP1 000046b1: PUSH2 0x46ca 000046b4: DUP11 000046b5: PUSH2 0x46be 000046b8: PUSH1 0x00 000046ba: PUSH2 0x2505 000046bd: JUMP 000046be: JUMPDEST 000046bf: SWAP1 000046c0: PUSH4 0xffffffff 000046c5: PUSH2 0x495c 000046c8: AND 000046c9: JUMP 000046ca: JUMPDEST 000046cb: DUP2 000046cc: MSTORE 000046cd: PUSH1 0x20 000046cf: ADD 000046d0: PUSH2 0x46dd 000046d3: DUP11 000046d4: PUSH2 0x46be 000046d7: PUSH1 0x00 000046d9: PUSH2 0x0932 000046dc: JUMP 000046dd: JUMPDEST 000046de: DUP2 000046df: MSTORE 000046e0: PUSH1 0x20 000046e2: ADD 000046e3: PUSH2 0x46f0 000046e6: DUP11 000046e7: PUSH2 0x46be 000046ea: PUSH1 0x00 000046ec: PUSH2 0x1cd2 000046ef: JUMP 000046f0: JUMPDEST 000046f1: SWAP1 000046f2: MSTORE 000046f3: PUSH2 0x2a0b 000046f6: JUMP 000046f7: JUMPDEST 000046f8: PUSH2 0x223b 000046fb: DUP9 000046fc: PUSH1 0x40 000046fe: DUP1 000046ff: MLOAD 00004700: SWAP1 00004701: DUP2 00004702: ADD 00004703: PUSH1 0x40 00004705: MSTORE 00004706: DUP1 00004707: PUSH2 0x4714 0000470a: DUP11 0000470b: PUSH2 0x46be 0000470e: PUSH1 0x00 00004710: PUSH2 0x1427 00004713: JUMP 00004714: JUMPDEST 00004715: DUP2 00004716: MSTORE 00004717: PUSH1 0x20 00004719: ADD 0000471a: PUSH2 0x4727 0000471d: DUP11 0000471e: PUSH2 0x46be 00004721: PUSH1 0x00 00004723: PUSH2 0x0f04 00004726: JUMP 00004727: JUMPDEST 00004728: SWAP1 00004729: MSTORE 0000472a: PUSH2 0x2cab 0000472d: JUMP 0000472e: JUMPDEST 0000472f: DUP1 00004730: MLOAD 00004731: DUP3 00004732: SWAP1 00004733: PUSH1 0x00 00004735: LT 00004736: ISZERO 00004737: PUSH2 0x1e57 0000473a: JUMPI 0000473b: DUP2 0000473c: MLOAD 0000473d: PUSH1 0x14 0000473f: EQ 00004740: PUSH2 0x4748 00004743: JUMPI 00004744: PUSH1 0x00 00004746: DUP1 00004747: REVERT 00004748: JUMPDEST 00004749: PUSH2 0x4751 0000474c: DUP3 0000474d: PUSH2 0x4985 00004750: JUMP 00004751: JUMPDEST 00004752: SWAP1 00004753: POP 00004754: PUSH1 0x01 00004756: PUSH1 0xa0 00004758: PUSH1 0x02 0000475a: EXP 0000475b: SUB 0000475c: DUP2 0000475d: AND 0000475e: ISZERO 0000475f: ISZERO 00004760: PUSH2 0x4768 00004763: JUMPI 00004764: PUSH1 0x00 00004766: DUP1 00004767: REVERT 00004768: JUMPDEST 00004769: PUSH2 0x4770 0000476c: PUSH2 0x498c 0000476f: JUMP 00004770: JUMPDEST 00004771: PUSH1 0x01 00004773: PUSH1 0xa0 00004775: PUSH1 0x02 00004777: EXP 00004778: SUB 00004779: DUP3 0000477a: DUP2 0000477b: AND 0000477c: SWAP2 0000477d: AND 0000477e: EQ 0000477f: ISZERO 00004780: PUSH2 0x1e57 00004783: JUMPI 00004784: PUSH1 0x00 00004786: DUP1 00004787: REVERT 00004788: JUMPDEST 00004789: PUSH1 0x00 0000478b: DUP3 0000478c: DUP3 0000478d: GT 0000478e: ISZERO 0000478f: PUSH2 0x4794 00004792: JUMPI 00004793: INVALID 00004794: JUMPDEST 00004795: POP 00004796: SWAP1 00004797: SUB 00004798: SWAP1 00004799: JUMP 0000479a: JUMPDEST 0000479b: PUSH1 0x00 0000479d: PUSH2 0x47a4 000047a0: PUSH2 0x1eb6 000047a3: JUMP 000047a4: JUMPDEST 000047a5: PUSH1 0x01 000047a7: PUSH1 0xa0 000047a9: PUSH1 0x02 000047ab: EXP 000047ac: SUB 000047ad: AND 000047ae: PUSH4 0x669f618b 000047b3: PUSH1 0x40 000047b5: MLOAD 000047b6: DUP2 000047b7: PUSH4 0xffffffff 000047bc: AND 000047bd: PUSH1 0xe0 000047bf: PUSH1 0x02 000047c1: EXP 000047c2: MUL 000047c3: DUP2 000047c4: MSTORE 000047c5: PUSH1 0x04 000047c7: ADD 000047c8: PUSH1 0x20 000047ca: PUSH1 0x40 000047cc: MLOAD 000047cd: DUP1 000047ce: DUP4 000047cf: SUB 000047d0: DUP2 000047d1: PUSH1 0x00 000047d3: DUP8 000047d4: DUP1 000047d5: EXTCODESIZE 000047d6: ISZERO 000047d7: DUP1 000047d8: ISZERO 000047d9: PUSH2 0x2927 000047dc: JUMPI 000047dd: PUSH1 0x00 000047df: DUP1 000047e0: REVERT 000047e1: JUMPDEST 000047e2: DUP3 000047e3: PUSH1 0x01 000047e5: PUSH1 0xa0 000047e7: PUSH1 0x02 000047e9: EXP 000047ea: SUB 000047eb: AND 000047ec: PUSH4 0xa9059cbb 000047f1: DUP4 000047f2: DUP4 000047f3: PUSH1 0x40 000047f5: MLOAD 000047f6: DUP4 000047f7: PUSH4 0xffffffff 000047fc: AND 000047fd: PUSH1 0xe0 000047ff: PUSH1 0x02 00004801: EXP 00004802: MUL 00004803: DUP2 00004804: MSTORE 00004805: PUSH1 0x04 00004807: ADD 00004808: DUP1 00004809: DUP4 0000480a: PUSH1 0x01 0000480c: PUSH1 0xa0 0000480e: PUSH1 0x02 00004810: EXP 00004811: SUB 00004812: AND 00004813: PUSH1 0x01 00004815: PUSH1 0xa0 00004817: PUSH1 0x02 00004819: EXP 0000481a: SUB 0000481b: AND 0000481c: DUP2 0000481d: MSTORE 0000481e: PUSH1 0x20 00004820: ADD 00004821: DUP3 00004822: DUP2 00004823: MSTORE 00004824: PUSH1 0x20 00004826: ADD 00004827: SWAP3 00004828: POP 00004829: POP 0000482a: POP 0000482b: PUSH1 0x00 0000482d: PUSH1 0x40 0000482f: MLOAD 00004830: DUP1 00004831: DUP4 00004832: SUB 00004833: DUP2 00004834: PUSH1 0x00 00004836: DUP8 00004837: DUP1 00004838: EXTCODESIZE 00004839: ISZERO 0000483a: DUP1 0000483b: ISZERO 0000483c: PUSH2 0x3b40 0000483f: JUMPI 00004840: PUSH1 0x00 00004842: DUP1 00004843: REVERT 00004844: JUMPDEST 00004845: PUSH1 0x40 00004847: MLOAD 00004848: PUSH1 0x01 0000484a: PUSH1 0xa0 0000484c: PUSH1 0x02 0000484e: EXP 0000484f: SUB 00004850: DUP4 00004851: AND 00004852: SWAP1 00004853: DUP3 00004854: ISZERO 00004855: PUSH2 0x08fc 00004858: MUL 00004859: SWAP1 0000485a: DUP4 0000485b: SWAP1 0000485c: PUSH1 0x00 0000485e: DUP2 0000485f: DUP2 00004860: DUP2 00004861: DUP6 00004862: DUP9 00004863: DUP9 00004864: CALL 00004865: SWAP4 00004866: POP 00004867: POP 00004868: POP 00004869: POP 0000486a: ISZERO 0000486b: ISZERO 0000486c: PUSH2 0x0811 0000486f: JUMPI 00004870: DUP1 00004871: DUP3 00004872: PUSH2 0x4879 00004875: PUSH2 0x499b 00004878: JUMP 00004879: JUMPDEST 0000487a: PUSH1 0x01 0000487c: PUSH1 0xa0 0000487e: PUSH1 0x02 00004880: EXP 00004881: SUB 00004882: SWAP1 00004883: SWAP2 00004884: AND 00004885: DUP2 00004886: MSTORE 00004887: PUSH1 0x40 00004889: MLOAD 0000488a: SWAP1 0000488b: DUP2 0000488c: SWAP1 0000488d: SUB 0000488e: PUSH1 0x20 00004890: ADD 00004891: SWAP1 00004892: DUP3 00004893: CREATE 00004894: DUP1 00004895: ISZERO 00004896: DUP1 00004897: ISZERO 00004898: PUSH2 0x1c9d 0000489b: JUMPI 0000489c: RETURNDATASIZE 0000489d: PUSH1 0x00 0000489f: DUP1 000048a0: RETURNDATACOPY 000048a1: RETURNDATASIZE 000048a2: PUSH1 0x00 000048a4: REVERT 000048a5: JUMPDEST 000048a6: PUSH1 0x40 000048a8: DUP1 000048a9: MLOAD 000048aa: PUSH1 0x01 000048ac: PUSH1 0xa0 000048ae: PUSH1 0x02 000048b0: EXP 000048b1: SUB 000048b2: DUP5 000048b3: AND 000048b4: PUSH1 0x24 000048b6: DUP3 000048b7: ADD 000048b8: MSTORE 000048b9: PUSH1 0x44 000048bb: DUP1 000048bc: DUP3 000048bd: ADD 000048be: DUP5 000048bf: SWAP1 000048c0: MSTORE 000048c1: DUP3 000048c2: MLOAD 000048c3: DUP1 000048c4: DUP4 000048c5: SUB 000048c6: SWAP1 000048c7: SWAP2 000048c8: ADD 000048c9: DUP2 000048ca: MSTORE 000048cb: PUSH1 0x64 000048cd: SWAP1 000048ce: SWAP2 000048cf: ADD 000048d0: SWAP1 000048d1: SWAP2 000048d2: MSTORE 000048d3: PUSH1 0x20 000048d5: DUP2 000048d6: DUP2 000048d7: ADD 000048d8: DUP1 000048d9: MLOAD 000048da: PUSH1 0x01 000048dc: PUSH1 0xe0 000048de: PUSH1 0x02 000048e0: EXP 000048e1: SUB 000048e2: AND 000048e3: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 00004904: OR 00004905: DUP2 00004906: MSTORE 00004907: DUP3 00004908: MLOAD 00004909: PUSH1 0x60 0000490b: SWAP4 0000490c: PUSH1 0x00 0000490e: SWAP4 0000490f: SWAP1 00004910: SWAP3 00004911: SWAP1 00004912: SWAP2 00004913: DUP5 00004914: SWAP2 00004915: DUP3 00004916: DUP11 00004917: GAS 00004918: CALL 00004919: PUSH1 0x00 0000491b: MLOAD 0000491c: SWAP4 0000491d: POP 0000491e: DUP4 0000491f: SWAP3 00004920: POP 00004921: DUP1 00004922: DUP1 00004923: ISZERO 00004924: PUSH2 0x01ea 00004927: JUMPI 00004928: POP 00004929: POP 0000492a: PUSH1 0x00 0000492c: DUP4 0000492d: MLOAD 0000492e: GT 0000492f: ISZERO 00004930: PUSH2 0x493f 00004933: JUMPI 00004934: DUP2 00004935: ISZERO 00004936: ISZERO 00004937: PUSH2 0x493f 0000493a: JUMPI 0000493b: PUSH1 0x00 0000493d: DUP1 0000493e: REVERT 0000493f: JUMPDEST 00004940: POP 00004941: POP 00004942: POP 00004943: POP 00004944: POP 00004945: POP 00004946: JUMP 00004947: JUMPDEST 00004948: PUSH1 0x00 0000494a: DUP2 0000494b: DUP4 0000494c: DUP2 0000494d: ISZERO 0000494e: ISZERO 0000494f: PUSH2 0x4954 00004952: JUMPI 00004953: INVALID 00004954: JUMPDEST 00004955: DIV 00004956: SWAP4 00004957: SWAP3 00004958: POP 00004959: POP 0000495a: POP 0000495b: JUMP 0000495c: JUMPDEST 0000495d: PUSH1 0x00 0000495f: DUP3 00004960: ISZERO 00004961: ISZERO 00004962: PUSH2 0x496d 00004965: JUMPI 00004966: POP 00004967: PUSH1 0x00 00004969: PUSH2 0x1e57 0000496c: JUMP 0000496d: JUMPDEST 0000496e: POP 0000496f: DUP2 00004970: DUP2 00004971: MUL 00004972: DUP2 00004973: DUP4 00004974: DUP3 00004975: DUP2 00004976: ISZERO 00004977: ISZERO 00004978: PUSH2 0x497d 0000497b: JUMPI 0000497c: INVALID 0000497d: JUMPDEST 0000497e: DIV 0000497f: EQ 00004980: PUSH2 0x1e57 00004983: JUMPI 00004984: INVALID 00004985: JUMPDEST 00004986: PUSH1 0x14 00004988: ADD 00004989: MLOAD 0000498a: SWAP1 0000498b: JUMP 0000498c: JUMPDEST 0000498d: PUSH1 0x00 0000498f: PUSH2 0x4996 00004992: PUSH2 0x18ba 00004995: JUMP 00004996: JUMPDEST 00004997: SWAP1 00004998: POP 00004999: SWAP1 0000499a: JUMP 0000499b: JUMPDEST 0000499c: PUSH1 0x40 0000499e: MLOAD 0000499f: PUSH1 0x21 000049a1: DUP1 000049a2: PUSH2 0x49ab 000049a5: DUP4 000049a6: CODECOPY 000049a7: ADD 000049a8: SWAP1 000049a9: JUMP 000049aa: STOP 000049ab: PUSH1 0x80 000049ad: PUSH1 0x40 000049af: MSTORE 000049b0: PUSH1 0x40 000049b2: MLOAD 000049b3: PUSH1 0x20 000049b5: DUP1 000049b6: PUSH1 0x21 000049b8: DUP4 000049b9: CODECOPY 000049ba: DUP2 000049bb: ADD 000049bc: PUSH1 0x40 000049be: MSTORE 000049bf: MLOAD 000049c0: PUSH1 0x01 000049c2: PUSH1 0xa0 000049c4: PUSH1 0x02 000049c6: EXP 000049c7: SUB 000049c8: DUP2 000049c9: AND 000049ca: SELFDESTRUCT 000049cb: STOP 000049cc: PUSH6 0x786563757469 000049d3: PUSH16 0x6e4461696c794c696d69740000000000 000049e4: STOP 000049e5: STOP 000049e6: STOP 000049e7: STOP 000049e8: STOP 000049e9: STOP 000049ea: STOP 000049eb: STOP 000049ec: PUSH14 0x6178506572547800000000000000 000049fb: STOP 000049fc: STOP 000049fd: STOP 000049fe: STOP 000049ff: STOP 00004a00: STOP 00004a01: STOP 00004a02: STOP 00004a03: STOP 00004a04: STOP 00004a05: STOP 00004a06: STOP 00004a07: STOP 00004a08: STOP 00004a09: STOP 00004a0a: STOP 00004a0b: STOP 00004a0c: PUSH14 0x696e506572547800000000000000 00004a1b: STOP 00004a1c: STOP 00004a1d: STOP 00004a1e: STOP 00004a1f: STOP 00004a20: STOP 00004a21: STOP 00004a22: STOP 00004a23: STOP 00004a24: STOP 00004a25: STOP 00004a26: STOP 00004a27: STOP 00004a28: STOP 00004a29: STOP 00004a2a: STOP 00004a2b: STOP 00004a2c: PUSH5 0x61696c794c 00004a32: PUSH10 0x6d697400000000000000 00004a3d: STOP 00004a3e: STOP 00004a3f: STOP 00004a40: STOP 00004a41: STOP 00004a42: STOP 00004a43: STOP 00004a44: STOP 00004a45: STOP 00004a46: STOP 00004a47: STOP 00004a48: STOP 00004a49: STOP 00004a4a: STOP 00004a4b: STOP 00004a4c: PUSH6 0x786563757469 00004a53: PUSH16 0x6e4d6178506572547800000000000000 00004a64: STOP 00004a65: STOP 00004a66: STOP 00004a67: STOP 00004a68: STOP 00004a69: STOP 00004a6a: STOP 00004a6b: STOP 00004a6c: LOG1 00004a6d: PUSH6 0x627a7a723058 00004a74: KECCAK256 00004a75: UNKNOWN(0xC5) 00004a76: SWAP7 00004a77: UNKNOWN(0xAC) 00004a78: PUSH13 0xe45f36653c4f56a2b52cef12ea 00004a86: UNKNOWN(0x4D) 00004a87: PUSH25
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | cast | SELFDESTRUCT present | 85 | no | — |
viewevidence_json{
"notes": "selfdestruct can remove contract code and send funds; review reachability",
"selfdestruct_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x7bc668b9376208639a2c490587a3e2b22c7c93276f833aa08e98f2fecf5c659d
call_targets:
0xe7afc97ae3b82c3eebb4bd5f96dd5fa84299490c
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x7bc668b9376208639a2c490587a3e2b22c7c93276f833aa08e98f2fecf5c659d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xe7afc97ae3b82c3eebb4bd5f96dd5fa84299490c"
],
"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": "0x01e4f53a",
"selector": "0x01e4f53a",
"calldata_variants": [
"0x01e4f53a",
"0x01e4f53a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01fcc1d3",
"selector": "0x01fcc1d3",
"calldata_variants": [
"0x01fcc1d3",
"0x01fcc1d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x032f693f",
"selector": "0x032f693f",
"calldata_variants": [
"0x032f693f",
"0x032f693f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0950d515",
"selector": "0x0950d515",
"calldata_variants": [
"0x0950d515",
"0x0950d5150000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0b26cf66",
"selector": "0x0b26cf66",
"calldata_variants": [
"0x0b26cf66",
"0x0b26cf660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10775238",
"selector": "0x10775238",
"calldata_variants": [
"0x10775238",
"0x107752380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x125e4cfb",
"selector": "0x125e4cfb",
"calldata_variants": [
"0x125e4cfb",
"0x125e4cfb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x151a6208",
"selector": "0x151a6208",
"calldata_variants": [
"0x151a6208",
"0x151a62080000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4645,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4720,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5590,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 25,
"guards_detected": [],
"untrusted_call_count": 25
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x7bc668b9376208639a2c490587a3e2b22c7c93276f833aa08e98f2fecf5c659d
call_targets:
0xe7afc97ae3b82c3eebb4bd5f96dd5fa84299490c
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x7bc668b9376208639a2c490587a3e2b22c7c93276f833aa08e98f2fecf5c659d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xe7afc97ae3b82c3eebb4bd5f96dd5fa84299490c"
],
"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": "0x01e4f53a",
"selector": "0x01e4f53a",
"calldata_variants": [
"0x01e4f53a",
"0x01e4f53a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01fcc1d3",
"selector": "0x01fcc1d3",
"calldata_variants": [
"0x01fcc1d3",
"0x01fcc1d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x032f693f",
"selector": "0x032f693f",
"calldata_variants": [
"0x032f693f",
"0x032f693f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0950d515",
"selector": "0x0950d515",
"calldata_variants": [
"0x0950d515",
"0x0950d5150000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0b26cf66",
"selector": "0x0b26cf66",
"calldata_variants": [
"0x0b26cf66",
"0x0b26cf660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10775238",
"selector": "0x10775238",
"calldata_variants": [
"0x10775238",
"0x107752380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x125e4cfb",
"selector": "0x125e4cfb",
"calldata_variants": [
"0x125e4cfb",
"0x125e4cfb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x151a6208",
"selector": "0x151a6208",
"calldata_variants": [
"0x151a6208",
"0x151a62080000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4645,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4720,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5590,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 25,
"guards_detected": []
}
|
| high | other | detector | SELFDESTRUCT reachable | 65 | no | no |
viewtrace_id: 0xb2b8746154f66ad87ba329abfa3d37b8708d30d9d8991aa0ec577dac17844208
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xb2b8746154f66ad87ba329abfa3d37b8708d30d9d8991aa0ec577dac17844208",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x01e4f53a",
"selector": "0x01e4f53a",
"calldata_variants": [
"0x01e4f53a",
"0x01e4f53a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01fcc1d3",
"selector": "0x01fcc1d3",
"calldata_variants": [
"0x01fcc1d3",
"0x01fcc1d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x032f693f",
"selector": "0x032f693f",
"calldata_variants": [
"0x032f693f",
"0x032f693f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0950d515",
"selector": "0x0950d515",
"calldata_variants": [
"0x0950d515",
"0x0950d5150000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0b26cf66",
"selector": "0x0b26cf66",
"calldata_variants": [
"0x0b26cf66",
"0x0b26cf660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10775238",
"selector": "0x10775238",
"calldata_variants": [
"0x10775238",
"0x107752380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x125e4cfb",
"selector": "0x125e4cfb",
"calldata_variants": [
"0x125e4cfb",
"0x125e4cfb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x151a6208",
"selector": "0x151a6208",
"calldata_variants": [
"0x151a6208",
"0x151a62080000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [],
"selfdestruct_count": 1
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0xb2b8746154f66ad87ba329abfa3d37b8708d30d9d8991aa0ec577dac17844208
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xb2b8746154f66ad87ba329abfa3d37b8708d30d9d8991aa0ec577dac17844208",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x01e4f53a",
"selector": "0x01e4f53a",
"calldata_variants": [
"0x01e4f53a",
"0x01e4f53a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01fcc1d3",
"selector": "0x01fcc1d3",
"calldata_variants": [
"0x01fcc1d3",
"0x01fcc1d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x032f693f",
"selector": "0x032f693f",
"calldata_variants": [
"0x032f693f",
"0x032f693f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0950d515",
"selector": "0x0950d515",
"calldata_variants": [
"0x0950d515",
"0x0950d5150000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0b26cf66",
"selector": "0x0b26cf66",
"calldata_variants": [
"0x0b26cf66",
"0x0b26cf660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10775238",
"selector": "0x10775238",
"calldata_variants": [
"0x10775238",
"0x107752380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x125e4cfb",
"selector": "0x125e4cfb",
"calldata_variants": [
"0x125e4cfb",
"0x125e4cfb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x151a6208",
"selector": "0x151a6208",
"calldata_variants": [
"0x151a6208",
"0x151a62080000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|
| 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": 31
}
|
| 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": 27
}
|