2b376d5a-7463-439f-990e-2ac02e70a615
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 |
|---|---|---|---|---|
| 30572 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 104291 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 104292 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 104293 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 104294 | capability.graph | complete | 1 / 3 | 1 week ago |
| 104295 | detector.run | complete | 1 / 3 | 1 week ago |
| 104296 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:195970] OpenAI Codex v0.77.0 (research preview)
[codex:195970] --------
[codex:195970] workdir: /tmp/codex-multi-4qi7mjdy
[codex:195970] model: gpt-5.2-codex
[codex:195970] provider: openai
[codex:195970] approval: never
[codex:195970] sandbox: read-only
[codex:195970] reasoning effort: xhigh
[codex:195970] reasoning summaries: auto
[codex:195970] session id: 019b6bb1-6630-7bf2-a3fa-660abf84316d
[codex:195970] --------
[codex:195970] user
[codex:195970] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:195970] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:195970] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:195970]
[codex:195970] Scope rules:
[codex:195970] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:195970] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:195970]
[codex:195970] Output MUST be valid JSON matching the provided schema.
[codex:195970] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:195970] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:195970]
[codex:195970] Output constraints (IMPORTANT):
[codex:195970] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:195970] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:195970] mcp startup: no servers
[codex:195970]
[codex:195970] thinking
[codex:195970] **Preparing to read AUDIT_BUNDLE.txt**
[codex:195970] exec
[codex:195970] /bin/bash -lc ls in /tmp/codex-multi-4qi7mjdy succeeded in 6ms:
[codex:195970] AUDIT_BUNDLE.txt
[codex:195970] codex-output-schema.json
[codex:195970] contracts
[codex:195970]
[codex:195970] thinking
[codex:195970] **Reading AUDIT_BUNDLE.txt**
[codex:195970] exec
[codex:195970] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-4qi7mjdy succeeded in 5ms:
[codex:195970] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:195970]
[codex:195970] ================================================================================
[codex:195970] FILE: contracts/Contract.sol
[codex:195970] ================================================================================
[codex:195970] pragma solidity ^0.4.17;
[codex:195970]
[codex:195970] /**
[codex:195970] * @title SafeMath
[codex:195970] * @dev Math operations with safety checks that throw on error
[codex:195970] */
[codex:195970] library SafeMath {
[codex:195970] function mul(uint256 a, uint256 b) internal pure returns (uint256) {
[codex:195970] if (a == 0) {
[codex:195970] return 0;
[codex:195970] }
[codex:195970] uint256 c = a * b;
[codex:195970] assert(c / a == b);
[codex:195970] return c;
[codex:195970] }
[codex:195970]
[codex:195970]
[codex:195970]
[codex:195970] thinking
[codex:195970] **Analyzing potential vulnerabilities and risks in legacy token contract forwarding**
[codex:195970] thinking
[codex:195970] **Evaluating upgrade forwarding risks and input handling inconsistencies**
[codex:195970]
[codex:195970] I'm reviewing how deprecated mode impacts balance tracking and function calls, especially how `destroyBlackFunds` uses balances from the upgraded contract but zeroes legacy storage, causing inconsistencies. I'm also looking at upgrade misconfigurations like setting upgraded address to self or an externally owned account, which could freeze transfers. Additionally, I see that in deprecated mode, missing payload size checks on transfer functions might expose the contract to short address attack risks. These nuances feel important for understanding potential subtle issues rather than clear exploits.
[codex:195970] thinking
[codex:195970] **Identifying upgrade path vulnerabilities and payload size bypass**
[codex:195970]
[codex:195970] I'm noticing that the lack of payload size checks in deprecated mode exposes risk of short address attacks when calls forward to the upgraded contract. There's also the risk that owner-set upgraded addresses may be invalid, causing frozen tokens. While many issues are related to upgrade patterns and owner privileges, these points highlight potential upgradeability and input validation weaknesses worth noting.
[codex:195970] exec
[codex:195970] /bin/bash -lc 'nl -ba contracts/Contract.sol' in /tmp/codex-multi-4qi7mjdy succeeded in 8ms:
[codex:195970] 1 pragma solidity ^0.4.17;
[codex:195970] 2
[codex:195970] 3 /**
[codex:195970] 4 * @title SafeMath
[codex:195970] 5 * @dev Math operations with safety checks that throw on error
[codex:195970] 6 */
[codex:195970] 7 library SafeMath {
[codex:195970] 8 function mul(uint256 a, uint256 b) internal pure returns (uint256) {
[codex:195970] 9 if (a == 0) {
[codex:195970] 10 return 0;
[codex:195970] 11 }
[codex:195970] 12 uint256 c = a * b;
[codex:195970] 13 assert(c / a == b);
[codex:195970] 14 return c;
[codex:195970] 15 }
[codex:195970] 16
[codex:195970] 17 function div(uint256 a, uint256 b) internal pure returns (uint256) {
[codex:195970] 18 // assert(b > 0); // Solidity automatically throws when dividing by 0
[codex:195970] 19 uint256 c = a / b;
[codex:195970] 20 // assert(a == b * c + a % b); // There is no case in which this doesn't hold
[codex:195970]
[codex:195970] thinking
[codex:195970] **Analyzing short address and upgrade risks**
[codex:195970] exec
[codex:195970] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-4qi7mjdy succeeded in 6ms:
[codex:195970] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:195970]
[codex:195970] thinking
[codex:195970] **Summarizing audit findings with detailed analysis**
[codex:195970] codex
[codex:195970] {"no_findings":false,"summary":"Found 1 low severity issue: legacy forwarder calls omit payload-size checks after deprecation, enabling short-address style parameter shifting for callers that still use the legacy contract.","findings":[{"severity":"low","category":"other","title":"Legacy forwarder lacks payload-size checks after deprecation","exploit_scenario":"Once deprecated is true, users may still interact with the legacy token address. Because transfer/transferFrom in the legacy contract do not enforce msg.data length in the deprecated branch, a caller can craft short calldata (classic short-address attack) that shifts the decoded parameters. Integrations that build calldata manually (e.g., exchange withdrawal systems) could be tricked into sending a larger amount or to a different address than intended while the call still succeeds on the upgraded contract.","recommendation":"Add onlyPayloadSize(2*32) to TetherToken.transfer and onlyPayloadSize(3*32) to TetherToken.transferFrom (or perform an explicit msg.data.length check) before any forwarding logic, so the legacy forwarder enforces the same payload-size protection even after deprecation.","evidence":"TetherToken.transfer and TetherToken.transferFrom omit onlyPayloadSize and directly forward to UpgradedStandardToken when deprecated, so msg.data length is not validated in the deprecated branch.","locations":["contracts/Contract.sol:336","contracts/Contract.sol:346"]}]}
[codex:195970] tokens used
[codex:195970] 29,176
[codex:195970] {"no_findings":false,"summary":"Found 1 low severity issue: legacy forwarder calls omit payload-size checks after deprecation, enabling short-address style parameter shifting for callers that still use the legacy contract.","findings":[{"severity":"low","category":"other","title":"Legacy forwarder lacks payload-size checks after deprecation","exploit_scenario":"Once deprecated is true, users may still interact with the legacy token address. Because transfer/transferFrom in the legacy contract do not enforce msg.data length in the deprecated branch, a caller can craft short calldata (classic short-address attack) that shifts the decoded parameters. Integrations that build calldata manually (e.g., exchange withdrawal systems) could be tricked into sending a larger amount or to a different address than intended while the call still succeeds on the upgraded contract.","recommendation":"Add onlyPayloadSize(2*32) to TetherToken.transfer and onlyPayloadSize(3*32) to TetherToken.transferFrom (or perform an explicit msg.data.length check) before any forwarding logic, so the legacy forwarder enforces the same payload-size protection even after deprecation.","evidence":"TetherToken.transfer and TetherToken.transferFrom omit onlyPayloadSize and directly forward to UpgradedStandardToken when deprecated, so msg.data length is not validated in the deprecated branch.","locations":["contracts/Contract.sol:336","contracts/Contract.sol:346"]}]}
{
"codex": {
"ran_at": "2025-12-29T20:03:58.415385+00:00",
"returncode": 0
},
"summary": "Found 1 low severity issue: legacy forwarder calls omit payload-size checks after deprecation, enabling short-address style parameter shifting for callers that still use the legacy contract.",
"raw_final": {
"summary": "Found 1 low severity issue: legacy forwarder calls omit payload-size checks after deprecation, enabling short-address style parameter shifting for callers that still use the legacy contract.",
"findings": [
{
"title": "Legacy forwarder lacks payload-size checks after deprecation",
"category": "other",
"evidence": "TetherToken.transfer and TetherToken.transferFrom omit onlyPayloadSize and directly forward to UpgradedStandardToken when deprecated, so msg.data length is not validated in the deprecated branch.",
"severity": "low",
"locations": [
"contracts/Contract.sol:336",
"contracts/Contract.sol:346"
],
"recommendation": "Add onlyPayloadSize(2*32) to TetherToken.transfer and onlyPayloadSize(3*32) to TetherToken.transferFrom (or perform an explicit msg.data.length check) before any forwarding logic, so the legacy forwarder enforces the same payload-size protection even after deprecation.",
"exploit_scenario": "Once deprecated is true, users may still interact with the legacy token address. Because transfer/transferFrom in the legacy contract do not enforce msg.data length in the deprecated branch, a caller can craft short calldata (classic short-address attack) that shifts the decoded parameters. Integrations that build calldata manually (e.g., exchange withdrawal systems) could be tricked into sending a larger amount or to a different address than intended while the call still succeeds on the upgraded contract."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0196 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: SWAP1 0000002f: DIV 00000030: PUSH4 0xffffffff 00000035: AND 00000036: DUP1 00000037: PUSH4 0x06fdde03 0000003c: EQ 0000003d: PUSH2 0x019b 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x0753c30c 00000047: EQ 00000048: PUSH2 0x0229 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0x095ea7b3 00000052: EQ 00000053: PUSH2 0x0262 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0x0e136b19 0000005d: EQ 0000005e: PUSH2 0x02a4 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0x0ecb93c0 00000068: EQ 00000069: PUSH2 0x02d1 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0x18160ddd 00000073: EQ 00000074: PUSH2 0x030a 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0x23b872dd 0000007e: EQ 0000007f: PUSH2 0x0333 00000082: JUMPI 00000083: DUP1 00000084: PUSH4 0x26976e3f 00000089: EQ 0000008a: PUSH2 0x0394 0000008d: JUMPI 0000008e: DUP1 0000008f: PUSH4 0x27e235e3 00000094: EQ 00000095: PUSH2 0x03e9 00000098: JUMPI 00000099: DUP1 0000009a: PUSH4 0x313ce567 0000009f: EQ 000000a0: PUSH2 0x0436 000000a3: JUMPI 000000a4: DUP1 000000a5: PUSH4 0x35390714 000000aa: EQ 000000ab: PUSH2 0x045f 000000ae: JUMPI 000000af: DUP1 000000b0: PUSH4 0x3eaaf86b 000000b5: EQ 000000b6: PUSH2 0x0488 000000b9: JUMPI 000000ba: DUP1 000000bb: PUSH4 0x3f4ba83a 000000c0: EQ 000000c1: PUSH2 0x04b1 000000c4: JUMPI 000000c5: DUP1 000000c6: PUSH4 0x59bf1abe 000000cb: EQ 000000cc: PUSH2 0x04c6 000000cf: JUMPI 000000d0: DUP1 000000d1: PUSH4 0x5c658165 000000d6: EQ 000000d7: PUSH2 0x0517 000000da: JUMPI 000000db: DUP1 000000dc: PUSH4 0x5c975abb 000000e1: EQ 000000e2: PUSH2 0x0583 000000e5: JUMPI 000000e6: DUP1 000000e7: PUSH4 0x70a08231 000000ec: EQ 000000ed: PUSH2 0x05b0 000000f0: JUMPI 000000f1: DUP1 000000f2: PUSH4 0x8456cb59 000000f7: EQ 000000f8: PUSH2 0x05fd 000000fb: JUMPI 000000fc: DUP1 000000fd: PUSH4 0x893d20e8 00000102: EQ 00000103: PUSH2 0x0612 00000106: JUMPI 00000107: DUP1 00000108: PUSH4 0x8da5cb5b 0000010d: EQ 0000010e: PUSH2 0x0667 00000111: JUMPI 00000112: DUP1 00000113: PUSH4 0x95d89b41 00000118: EQ 00000119: PUSH2 0x06bc 0000011c: JUMPI 0000011d: DUP1 0000011e: PUSH4 0xa9059cbb 00000123: EQ 00000124: PUSH2 0x074a 00000127: JUMPI 00000128: DUP1 00000129: PUSH4 0xc0324c77 0000012e: EQ 0000012f: PUSH2 0x078c 00000132: JUMPI 00000133: DUP1 00000134: PUSH4 0xcc872b66 00000139: EQ 0000013a: PUSH2 0x07b8 0000013d: JUMPI 0000013e: DUP1 0000013f: PUSH4 0xdb006a75 00000144: EQ 00000145: PUSH2 0x07db 00000148: JUMPI 00000149: DUP1 0000014a: PUSH4 0xdd62ed3e 0000014f: EQ 00000150: PUSH2 0x07fe 00000153: JUMPI 00000154: DUP1 00000155: PUSH4 0xdd644f72 0000015a: EQ 0000015b: PUSH2 0x086a 0000015e: JUMPI 0000015f: DUP1 00000160: PUSH4 0xe47d6060 00000165: EQ 00000166: PUSH2 0x0893 00000169: JUMPI 0000016a: DUP1 0000016b: PUSH4 0xe4997dc5 00000170: EQ 00000171: PUSH2 0x08e4 00000174: JUMPI 00000175: DUP1 00000176: PUSH4 0xe5b5019a 0000017b: EQ 0000017c: PUSH2 0x091d 0000017f: JUMPI 00000180: DUP1 00000181: PUSH4 0xf2fde38b 00000186: EQ 00000187: PUSH2 0x0946 0000018a: JUMPI 0000018b: DUP1 0000018c: PUSH4 0xf3bdc228 00000191: EQ 00000192: PUSH2 0x097f 00000195: JUMPI 00000196: JUMPDEST 00000197: PUSH1 0x00 00000199: DUP1 0000019a: REVERT 0000019b: JUMPDEST 0000019c: CALLVALUE 0000019d: ISZERO 0000019e: PUSH2 0x01a6 000001a1: JUMPI 000001a2: PUSH1 0x00 000001a4: DUP1 000001a5: REVERT 000001a6: JUMPDEST 000001a7: PUSH2 0x01ae 000001aa: PUSH2 0x09b8 000001ad: JUMP 000001ae: JUMPDEST 000001af: PUSH1 0x40 000001b1: MLOAD 000001b2: DUP1 000001b3: DUP1 000001b4: PUSH1 0x20 000001b6: ADD 000001b7: DUP3 000001b8: DUP2 000001b9: SUB 000001ba: DUP3 000001bb: MSTORE 000001bc: DUP4 000001bd: DUP2 000001be: DUP2 000001bf: MLOAD 000001c0: DUP2 000001c1: MSTORE 000001c2: PUSH1 0x20 000001c4: ADD 000001c5: SWAP2 000001c6: POP 000001c7: DUP1 000001c8: MLOAD 000001c9: SWAP1 000001ca: PUSH1 0x20 000001cc: ADD 000001cd: SWAP1 000001ce: DUP1 000001cf: DUP4 000001d0: DUP4 000001d1: PUSH1 0x00 000001d3: JUMPDEST 000001d4: DUP4 000001d5: DUP2 000001d6: LT 000001d7: ISZERO 000001d8: PUSH2 0x01ee 000001db: JUMPI 000001dc: DUP1 000001dd: DUP3 000001de: ADD 000001df: MLOAD 000001e0: DUP2 000001e1: DUP5 000001e2: ADD 000001e3: MSTORE 000001e4: PUSH1 0x20 000001e6: DUP2 000001e7: ADD 000001e8: SWAP1 000001e9: POP 000001ea: PUSH2 0x01d3 000001ed: JUMP 000001ee: JUMPDEST 000001ef: POP 000001f0: POP 000001f1: POP 000001f2: POP 000001f3: SWAP1 000001f4: POP 000001f5: SWAP1 000001f6: DUP2 000001f7: ADD 000001f8: SWAP1 000001f9: PUSH1 0x1f 000001fb: AND 000001fc: DUP1 000001fd: ISZERO 000001fe: PUSH2 0x021b 00000201: JUMPI 00000202: DUP1 00000203: DUP3 00000204: SUB 00000205: DUP1 00000206: MLOAD 00000207: PUSH1 0x01 00000209: DUP4 0000020a: PUSH1 0x20 0000020c: SUB 0000020d: PUSH2 0x0100 00000210: EXP 00000211: SUB 00000212: NOT 00000213: AND 00000214: DUP2 00000215: MSTORE 00000216: PUSH1 0x20 00000218: ADD 00000219: SWAP2 0000021a: POP 0000021b: JUMPDEST 0000021c: POP 0000021d: SWAP3 0000021e: POP 0000021f: POP 00000220: POP 00000221: PUSH1 0x40 00000223: MLOAD 00000224: DUP1 00000225: SWAP2 00000226: SUB 00000227: SWAP1 00000228: RETURN 00000229: JUMPDEST 0000022a: CALLVALUE 0000022b: ISZERO 0000022c: PUSH2 0x0234 0000022f: JUMPI 00000230: PUSH1 0x00 00000232: DUP1 00000233: REVERT 00000234: JUMPDEST 00000235: PUSH2 0x0260 00000238: PUSH1 0x04 0000023a: DUP1 0000023b: DUP1 0000023c: CALLDATALOAD 0000023d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000252: AND 00000253: SWAP1 00000254: PUSH1 0x20 00000256: ADD 00000257: SWAP1 00000258: SWAP2 00000259: SWAP1 0000025a: POP 0000025b: POP 0000025c: PUSH2 0x0a56 0000025f: JUMP 00000260: JUMPDEST 00000261: STOP 00000262: JUMPDEST 00000263: CALLVALUE 00000264: ISZERO 00000265: PUSH2 0x026d 00000268: JUMPI 00000269: PUSH1 0x00 0000026b: DUP1 0000026c: REVERT 0000026d: JUMPDEST 0000026e: PUSH2 0x02a2 00000271: PUSH1 0x04 00000273: DUP1 00000274: DUP1 00000275: CALLDATALOAD 00000276: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000028b: AND 0000028c: SWAP1 0000028d: PUSH1 0x20 0000028f: ADD 00000290: SWAP1 00000291: SWAP2 00000292: SWAP1 00000293: DUP1 00000294: CALLDATALOAD 00000295: SWAP1 00000296: PUSH1 0x20 00000298: ADD 00000299: SWAP1 0000029a: SWAP2 0000029b: SWAP1 0000029c: POP 0000029d: POP 0000029e: PUSH2 0x0b73 000002a1: JUMP 000002a2: JUMPDEST 000002a3: STOP 000002a4: JUMPDEST 000002a5: CALLVALUE 000002a6: ISZERO 000002a7: PUSH2 0x02af 000002aa: JUMPI 000002ab: PUSH1 0x00 000002ad: DUP1 000002ae: REVERT 000002af: JUMPDEST 000002b0: PUSH2 0x02b7 000002b3: PUSH2 0x0cc1 000002b6: JUMP 000002b7: JUMPDEST 000002b8: PUSH1 0x40 000002ba: MLOAD 000002bb: DUP1 000002bc: DUP3 000002bd: ISZERO 000002be: ISZERO 000002bf: ISZERO 000002c0: ISZERO 000002c1: DUP2 000002c2: MSTORE 000002c3: PUSH1 0x20 000002c5: ADD 000002c6: SWAP2 000002c7: POP 000002c8: POP 000002c9: PUSH1 0x40 000002cb: MLOAD 000002cc: DUP1 000002cd: SWAP2 000002ce: SUB 000002cf: SWAP1 000002d0: RETURN 000002d1: JUMPDEST 000002d2: CALLVALUE 000002d3: ISZERO 000002d4: PUSH2 0x02dc 000002d7: JUMPI 000002d8: PUSH1 0x00 000002da: DUP1 000002db: REVERT 000002dc: JUMPDEST 000002dd: PUSH2 0x0308 000002e0: PUSH1 0x04 000002e2: DUP1 000002e3: DUP1 000002e4: CALLDATALOAD 000002e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002fa: AND 000002fb: SWAP1 000002fc: PUSH1 0x20 000002fe: ADD 000002ff: SWAP1 00000300: SWAP2 00000301: SWAP1 00000302: POP 00000303: POP 00000304: PUSH2 0x0cd4 00000307: JUMP 00000308: JUMPDEST 00000309: STOP 0000030a: JUMPDEST 0000030b: CALLVALUE 0000030c: ISZERO 0000030d: PUSH2 0x0315 00000310: JUMPI 00000311: PUSH1 0x00 00000313: DUP1 00000314: REVERT 00000315: JUMPDEST 00000316: PUSH2 0x031d 00000319: PUSH2 0x0ded 0000031c: JUMP 0000031d: JUMPDEST 0000031e: PUSH1 0x40 00000320: MLOAD 00000321: DUP1 00000322: DUP3 00000323: DUP2 00000324: MSTORE 00000325: PUSH1 0x20 00000327: ADD 00000328: SWAP2 00000329: POP 0000032a: POP 0000032b: PUSH1 0x40 0000032d: MLOAD 0000032e: DUP1 0000032f: SWAP2 00000330: SUB 00000331: SWAP1 00000332: RETURN 00000333: JUMPDEST 00000334: CALLVALUE 00000335: ISZERO 00000336: PUSH2 0x033e 00000339: JUMPI 0000033a: PUSH1 0x00 0000033c: DUP1 0000033d: REVERT 0000033e: JUMPDEST 0000033f: PUSH2 0x0392 00000342: PUSH1 0x04 00000344: DUP1 00000345: DUP1 00000346: CALLDATALOAD 00000347: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000035c: AND 0000035d: SWAP1 0000035e: PUSH1 0x20 00000360: ADD 00000361: SWAP1 00000362: SWAP2 00000363: SWAP1 00000364: DUP1 00000365: CALLDATALOAD 00000366: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000037b: AND 0000037c: SWAP1 0000037d: PUSH1 0x20 0000037f: ADD 00000380: SWAP1 00000381: SWAP2 00000382: SWAP1 00000383: DUP1 00000384: CALLDATALOAD 00000385: SWAP1 00000386: PUSH1 0x20 00000388: ADD 00000389: SWAP1 0000038a: SWAP2 0000038b: SWAP1 0000038c: POP 0000038d: POP 0000038e: PUSH2 0x0ebd 00000391: JUMP 00000392: JUMPDEST 00000393: STOP 00000394: JUMPDEST 00000395: CALLVALUE 00000396: ISZERO 00000397: PUSH2 0x039f 0000039a: JUMPI 0000039b: PUSH1 0x00 0000039d: DUP1 0000039e: REVERT 0000039f: JUMPDEST 000003a0: PUSH2 0x03a7 000003a3: PUSH2 0x109d 000003a6: JUMP 000003a7: JUMPDEST 000003a8: PUSH1 0x40 000003aa: MLOAD 000003ab: DUP1 000003ac: DUP3 000003ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003c2: AND 000003c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003d8: AND 000003d9: DUP2 000003da: MSTORE 000003db: PUSH1 0x20 000003dd: ADD 000003de: SWAP2 000003df: POP 000003e0: POP 000003e1: PUSH1 0x40 000003e3: MLOAD 000003e4: DUP1 000003e5: SWAP2 000003e6: SUB 000003e7: SWAP1 000003e8: RETURN 000003e9: JUMPDEST 000003ea: CALLVALUE 000003eb: ISZERO 000003ec: PUSH2 0x03f4 000003ef: JUMPI 000003f0: PUSH1 0x00 000003f2: DUP1 000003f3: REVERT 000003f4: JUMPDEST 000003f5: PUSH2 0x0420 000003f8: PUSH1 0x04 000003fa: DUP1 000003fb: DUP1 000003fc: CALLDATALOAD 000003fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000412: AND 00000413: SWAP1 00000414: PUSH1 0x20 00000416: ADD 00000417: SWAP1 00000418: SWAP2 00000419: SWAP1 0000041a: POP 0000041b: POP 0000041c: PUSH2 0x10c3 0000041f: JUMP 00000420: JUMPDEST 00000421: PUSH1 0x40 00000423: MLOAD 00000424: DUP1 00000425: DUP3 00000426: DUP2 00000427: MSTORE 00000428: PUSH1 0x20 0000042a: ADD 0000042b: SWAP2 0000042c: POP 0000042d: POP 0000042e: PUSH1 0x40 00000430: MLOAD 00000431: DUP1 00000432: SWAP2 00000433: SUB 00000434: SWAP1 00000435: RETURN 00000436: JUMPDEST 00000437: CALLVALUE 00000438: ISZERO 00000439: PUSH2 0x0441 0000043c: JUMPI 0000043d: PUSH1 0x00 0000043f: DUP1 00000440: REVERT 00000441: JUMPDEST 00000442: PUSH2 0x0449 00000445: PUSH2 0x10db 00000448: JUMP 00000449: JUMPDEST 0000044a: PUSH1 0x40 0000044c: MLOAD 0000044d: DUP1 0000044e: DUP3 0000044f: DUP2 00000450: MSTORE 00000451: PUSH1 0x20 00000453: ADD 00000454: SWAP2 00000455: POP 00000456: POP 00000457: PUSH1 0x40 00000459: MLOAD 0000045a: DUP1 0000045b: SWAP2 0000045c: SUB 0000045d: SWAP1 0000045e: RETURN 0000045f: JUMPDEST 00000460: CALLVALUE 00000461: ISZERO 00000462: PUSH2 0x046a 00000465: JUMPI 00000466: PUSH1 0x00 00000468: DUP1 00000469: REVERT 0000046a: JUMPDEST 0000046b: PUSH2 0x0472 0000046e: PUSH2 0x10e1 00000471: JUMP 00000472: JUMPDEST 00000473: PUSH1 0x40 00000475: MLOAD 00000476: DUP1 00000477: DUP3 00000478: DUP2 00000479: MSTORE 0000047a: PUSH1 0x20 0000047c: ADD 0000047d: SWAP2 0000047e: POP 0000047f: POP 00000480: PUSH1 0x40 00000482: MLOAD 00000483: DUP1 00000484: SWAP2 00000485: SUB 00000486: SWAP1 00000487: RETURN 00000488: JUMPDEST 00000489: CALLVALUE 0000048a: ISZERO 0000048b: PUSH2 0x0493 0000048e: JUMPI 0000048f: PUSH1 0x00 00000491: DUP1 00000492: REVERT 00000493: JUMPDEST 00000494: PUSH2 0x049b 00000497: PUSH2 0x10e7 0000049a: JUMP 0000049b: JUMPDEST 0000049c: PUSH1 0x40 0000049e: MLOAD 0000049f: DUP1 000004a0: DUP3 000004a1: DUP2 000004a2: MSTORE 000004a3: PUSH1 0x20 000004a5: ADD 000004a6: SWAP2 000004a7: POP 000004a8: POP 000004a9: PUSH1 0x40 000004ab: MLOAD 000004ac: DUP1 000004ad: SWAP2 000004ae: SUB 000004af: SWAP1 000004b0: RETURN 000004b1: JUMPDEST 000004b2: CALLVALUE 000004b3: ISZERO 000004b4: PUSH2 0x04bc 000004b7: JUMPI 000004b8: PUSH1 0x00 000004ba: DUP1 000004bb: REVERT 000004bc: JUMPDEST 000004bd: PUSH2 0x04c4 000004c0: PUSH2 0x10ed 000004c3: JUMP 000004c4: JUMPDEST 000004c5: STOP 000004c6: JUMPDEST 000004c7: CALLVALUE 000004c8: ISZERO 000004c9: PUSH2 0x04d1 000004cc: JUMPI 000004cd: PUSH1 0x00 000004cf: DUP1 000004d0: REVERT 000004d1: JUMPDEST 000004d2: PUSH2 0x04fd 000004d5: PUSH1 0x04 000004d7: DUP1 000004d8: DUP1 000004d9: CALLDATALOAD 000004da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004ef: AND 000004f0: SWAP1 000004f1: PUSH1 0x20 000004f3: ADD 000004f4: SWAP1 000004f5: SWAP2 000004f6: SWAP1 000004f7: POP 000004f8: POP 000004f9: PUSH2 0x11ab 000004fc: JUMP 000004fd: JUMPDEST 000004fe: PUSH1 0x40 00000500: MLOAD 00000501: DUP1 00000502: DUP3 00000503: ISZERO 00000504: ISZERO 00000505: ISZERO 00000506: ISZERO 00000507: DUP2 00000508: MSTORE 00000509: PUSH1 0x20 0000050b: ADD 0000050c: SWAP2 0000050d: POP 0000050e: POP 0000050f: PUSH1 0x40 00000511: MLOAD 00000512: DUP1 00000513: SWAP2 00000514: SUB 00000515: SWAP1 00000516: RETURN 00000517: JUMPDEST 00000518: CALLVALUE 00000519: ISZERO 0000051a: PUSH2 0x0522 0000051d: JUMPI 0000051e: PUSH1 0x00 00000520: DUP1 00000521: REVERT 00000522: JUMPDEST 00000523: PUSH2 0x056d 00000526: PUSH1 0x04 00000528: DUP1 00000529: DUP1 0000052a: CALLDATALOAD 0000052b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000540: AND 00000541: SWAP1 00000542: PUSH1 0x20 00000544: ADD 00000545: SWAP1 00000546: SWAP2 00000547: SWAP1 00000548: DUP1 00000549: CALLDATALOAD 0000054a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000055f: AND 00000560: SWAP1 00000561: PUSH1 0x20 00000563: ADD 00000564: SWAP1 00000565: SWAP2 00000566: SWAP1 00000567: POP 00000568: POP 00000569: PUSH2 0x1201 0000056c: JUMP 0000056d: JUMPDEST 0000056e: PUSH1 0x40 00000570: MLOAD 00000571: DUP1 00000572: DUP3 00000573: DUP2 00000574: MSTORE 00000575: PUSH1 0x20 00000577: ADD 00000578: SWAP2 00000579: POP 0000057a: POP 0000057b: PUSH1 0x40 0000057d: MLOAD 0000057e: DUP1 0000057f: SWAP2 00000580: SUB 00000581: SWAP1 00000582: RETURN 00000583: JUMPDEST 00000584: CALLVALUE 00000585: ISZERO 00000586: PUSH2 0x058e 00000589: JUMPI 0000058a: PUSH1 0x00 0000058c: DUP1 0000058d: REVERT 0000058e: JUMPDEST 0000058f: PUSH2 0x0596 00000592: PUSH2 0x1226 00000595: JUMP 00000596: JUMPDEST 00000597: PUSH1 0x40 00000599: MLOAD 0000059a: DUP1 0000059b: DUP3 0000059c: ISZERO 0000059d: ISZERO 0000059e: ISZERO 0000059f: ISZERO 000005a0: DUP2 000005a1: MSTORE 000005a2: PUSH1 0x20 000005a4: ADD 000005a5: SWAP2 000005a6: POP 000005a7: POP 000005a8: PUSH1 0x40 000005aa: MLOAD 000005ab: DUP1 000005ac: SWAP2 000005ad: SUB 000005ae: SWAP1 000005af: RETURN 000005b0: JUMPDEST 000005b1: CALLVALUE 000005b2: ISZERO 000005b3: PUSH2 0x05bb 000005b6: JUMPI 000005b7: PUSH1 0x00 000005b9: DUP1 000005ba: REVERT 000005bb: JUMPDEST 000005bc: PUSH2 0x05e7 000005bf: PUSH1 0x04 000005c1: DUP1 000005c2: DUP1 000005c3: CALLDATALOAD 000005c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005d9: AND 000005da: SWAP1 000005db: PUSH1 0x20 000005dd: ADD 000005de: SWAP1 000005df: SWAP2 000005e0: SWAP1 000005e1: POP 000005e2: POP 000005e3: PUSH2 0x1239 000005e6: JUMP 000005e7: JUMPDEST 000005e8: PUSH1 0x40 000005ea: MLOAD 000005eb: DUP1 000005ec: DUP3 000005ed: DUP2 000005ee: MSTORE 000005ef: PUSH1 0x20 000005f1: ADD 000005f2: SWAP2 000005f3: POP 000005f4: POP 000005f5: PUSH1 0x40 000005f7: MLOAD 000005f8: DUP1 000005f9: SWAP2 000005fa: SUB 000005fb: SWAP1 000005fc: RETURN 000005fd: JUMPDEST 000005fe: CALLVALUE 000005ff: ISZERO 00000600: PUSH2 0x0608 00000603: JUMPI 00000604: PUSH1 0x00 00000606: DUP1 00000607: REVERT 00000608: JUMPDEST 00000609: PUSH2 0x0610 0000060c: PUSH2 0x1348 0000060f: JUMP 00000610: JUMPDEST 00000611: STOP 00000612: JUMPDEST 00000613: CALLVALUE 00000614: ISZERO 00000615: PUSH2 0x061d 00000618: JUMPI 00000619: PUSH1 0x00 0000061b: DUP1 0000061c: REVERT 0000061d: JUMPDEST 0000061e: PUSH2 0x0625 00000621: PUSH2 0x1408 00000624: JUMP 00000625: JUMPDEST 00000626: PUSH1 0x40 00000628: MLOAD 00000629: DUP1 0000062a: DUP3 0000062b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000640: AND 00000641: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000656: AND 00000657: DUP2 00000658: MSTORE 00000659: PUSH1 0x20 0000065b: ADD 0000065c: SWAP2 0000065d: POP 0000065e: POP 0000065f: PUSH1 0x40 00000661: MLOAD 00000662: DUP1 00000663: SWAP2 00000664: SUB 00000665: SWAP1 00000666: RETURN 00000667: JUMPDEST 00000668: CALLVALUE 00000669: ISZERO 0000066a: PUSH2 0x0672 0000066d: JUMPI 0000066e: PUSH1 0x00 00000670: DUP1 00000671: REVERT 00000672: JUMPDEST 00000673: PUSH2 0x067a 00000676: PUSH2 0x1431 00000679: JUMP 0000067a: JUMPDEST 0000067b: PUSH1 0x40 0000067d: MLOAD 0000067e: DUP1 0000067f: DUP3 00000680: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000695: AND 00000696: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006ab: AND 000006ac: DUP2 000006ad: MSTORE 000006ae: PUSH1 0x20 000006b0: ADD 000006b1: SWAP2 000006b2: POP 000006b3: POP 000006b4: PUSH1 0x40 000006b6: MLOAD 000006b7: DUP1 000006b8: SWAP2 000006b9: SUB 000006ba: SWAP1 000006bb: RETURN 000006bc: JUMPDEST 000006bd: CALLVALUE 000006be: ISZERO 000006bf: PUSH2 0x06c7 000006c2: JUMPI 000006c3: PUSH1 0x00 000006c5: DUP1 000006c6: REVERT 000006c7: JUMPDEST 000006c8: PUSH2 0x06cf 000006cb: PUSH2 0x1456 000006ce: JUMP 000006cf: JUMPDEST 000006d0: PUSH1 0x40 000006d2: MLOAD 000006d3: DUP1 000006d4: DUP1 000006d5: PUSH1 0x20 000006d7: ADD 000006d8: DUP3 000006d9: DUP2 000006da: SUB 000006db: DUP3 000006dc: MSTORE 000006dd: DUP4 000006de: DUP2 000006df: DUP2 000006e0: MLOAD 000006e1: DUP2 000006e2: MSTORE 000006e3: PUSH1 0x20 000006e5: ADD 000006e6: SWAP2 000006e7: POP 000006e8: DUP1 000006e9: MLOAD 000006ea: SWAP1 000006eb: PUSH1 0x20 000006ed: ADD 000006ee: SWAP1 000006ef: DUP1 000006f0: DUP4 000006f1: DUP4 000006f2: PUSH1 0x00 000006f4: JUMPDEST 000006f5: DUP4 000006f6: DUP2 000006f7: LT 000006f8: ISZERO 000006f9: PUSH2 0x070f 000006fc: JUMPI 000006fd: DUP1 000006fe: DUP3 000006ff: ADD 00000700: MLOAD 00000701: DUP2 00000702: DUP5 00000703: ADD 00000704: MSTORE 00000705: PUSH1 0x20 00000707: DUP2 00000708: ADD 00000709: SWAP1 0000070a: POP 0000070b: PUSH2 0x06f4 0000070e: JUMP 0000070f: JUMPDEST 00000710: POP 00000711: POP 00000712: POP 00000713: POP 00000714: SWAP1 00000715: POP 00000716: SWAP1 00000717: DUP2 00000718: ADD 00000719: SWAP1 0000071a: PUSH1 0x1f 0000071c: AND 0000071d: DUP1 0000071e: ISZERO 0000071f: PUSH2 0x073c 00000722: JUMPI 00000723: DUP1 00000724: DUP3 00000725: SUB 00000726: DUP1 00000727: MLOAD 00000728: PUSH1 0x01 0000072a: DUP4 0000072b: PUSH1 0x20 0000072d: SUB 0000072e: PUSH2 0x0100 00000731: EXP 00000732: SUB 00000733: NOT 00000734: AND 00000735: DUP2 00000736: MSTORE 00000737: PUSH1 0x20 00000739: ADD 0000073a: SWAP2 0000073b: POP 0000073c: JUMPDEST 0000073d: POP 0000073e: SWAP3 0000073f: POP 00000740: POP 00000741: POP 00000742: PUSH1 0x40 00000744: MLOAD 00000745: DUP1 00000746: SWAP2 00000747: SUB 00000748: SWAP1 00000749: RETURN 0000074a: JUMPDEST 0000074b: CALLVALUE 0000074c: ISZERO 0000074d: PUSH2 0x0755 00000750: JUMPI 00000751: PUSH1 0x00 00000753: DUP1 00000754: REVERT 00000755: JUMPDEST 00000756: PUSH2 0x078a 00000759: PUSH1 0x04 0000075b: DUP1 0000075c: DUP1 0000075d: CALLDATALOAD 0000075e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000773: AND 00000774: SWAP1 00000775: PUSH1 0x20 00000777: ADD 00000778: SWAP1 00000779: SWAP2 0000077a: SWAP1 0000077b: DUP1 0000077c: CALLDATALOAD 0000077d: SWAP1 0000077e: PUSH1 0x20 00000780: ADD 00000781: SWAP1 00000782: SWAP2 00000783: SWAP1 00000784: POP 00000785: POP 00000786: PUSH2 0x14f4 00000789: JUMP 0000078a: JUMPDEST 0000078b: STOP 0000078c: JUMPDEST 0000078d: CALLVALUE 0000078e: ISZERO 0000078f: PUSH2 0x0797 00000792: JUMPI 00000793: PUSH1 0x00 00000795: DUP1 00000796: REVERT 00000797: JUMPDEST 00000798: PUSH2 0x07b6 0000079b: PUSH1 0x04 0000079d: DUP1 0000079e: DUP1 0000079f: CALLDATALOAD 000007a0: SWAP1 000007a1: PUSH1 0x20 000007a3: ADD 000007a4: SWAP1 000007a5: SWAP2 000007a6: SWAP1 000007a7: DUP1 000007a8: CALLDATALOAD 000007a9: SWAP1 000007aa: PUSH1 0x20 000007ac: ADD 000007ad: SWAP1 000007ae: SWAP2 000007af: SWAP1 000007b0: POP 000007b1: POP 000007b2: PUSH2 0x169e 000007b5: JUMP 000007b6: JUMPDEST 000007b7: STOP 000007b8: JUMPDEST 000007b9: CALLVALUE 000007ba: ISZERO 000007bb: PUSH2 0x07c3 000007be: JUMPI 000007bf: PUSH1 0x00 000007c1: DUP1 000007c2: REVERT 000007c3: JUMPDEST 000007c4: PUSH2 0x07d9 000007c7: PUSH1 0x04 000007c9: DUP1 000007ca: DUP1 000007cb: CALLDATALOAD 000007cc: SWAP1 000007cd: PUSH1 0x20 000007cf: ADD 000007d0: SWAP1 000007d1: SWAP2 000007d2: SWAP1 000007d3: POP 000007d4: POP 000007d5: PUSH2 0x1783 000007d8: JUMP 000007d9: JUMPDEST 000007da: STOP 000007db: JUMPDEST 000007dc: CALLVALUE 000007dd: ISZERO 000007de: PUSH2 0x07e6 000007e1: JUMPI 000007e2: PUSH1 0x00 000007e4: DUP1 000007e5: REVERT 000007e6: JUMPDEST 000007e7: PUSH2 0x07fc 000007ea: PUSH1 0x04 000007ec: DUP1 000007ed: DUP1 000007ee: CALLDATALOAD 000007ef: SWAP1 000007f0: PUSH1 0x20 000007f2: ADD 000007f3: SWAP1 000007f4: SWAP2 000007f5: SWAP1 000007f6: POP 000007f7: POP 000007f8: PUSH2 0x197a 000007fb: JUMP 000007fc: JUMPDEST 000007fd: STOP 000007fe: JUMPDEST 000007ff: CALLVALUE 00000800: ISZERO 00000801: PUSH2 0x0809 00000804: JUMPI 00000805: PUSH1 0x00 00000807: DUP1 00000808: REVERT 00000809: JUMPDEST 0000080a: PUSH2 0x0854 0000080d: PUSH1 0x04 0000080f: DUP1 00000810: DUP1 00000811: CALLDATALOAD 00000812: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000827: AND 00000828: SWAP1 00000829: PUSH1 0x20 0000082b: ADD 0000082c: SWAP1 0000082d: SWAP2 0000082e: SWAP1 0000082f: DUP1 00000830: CALLDATALOAD 00000831: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000846: AND 00000847: SWAP1 00000848: PUSH1 0x20 0000084a: ADD 0000084b: SWAP1 0000084c: SWAP2 0000084d: SWAP1 0000084e: POP 0000084f: POP 00000850: PUSH2 0x1b0d 00000853: JUMP 00000854: JUMPDEST 00000855: PUSH1 0x40 00000857: MLOAD 00000858: DUP1 00000859: DUP3 0000085a: DUP2 0000085b: MSTORE 0000085c: PUSH1 0x20 0000085e: ADD 0000085f: SWAP2 00000860: POP 00000861: POP 00000862: PUSH1 0x40 00000864: MLOAD 00000865: DUP1 00000866: SWAP2 00000867: SUB 00000868: SWAP1 00000869: RETURN 0000086a: JUMPDEST 0000086b: CALLVALUE 0000086c: ISZERO 0000086d: PUSH2 0x0875 00000870: JUMPI 00000871: PUSH1 0x00 00000873: DUP1 00000874: REVERT 00000875: JUMPDEST 00000876: PUSH2 0x087d 00000879: PUSH2 0x1c52 0000087c: JUMP 0000087d: JUMPDEST 0000087e: PUSH1 0x40 00000880: MLOAD 00000881: DUP1 00000882: DUP3 00000883: DUP2 00000884: MSTORE 00000885: PUSH1 0x20 00000887: ADD 00000888: SWAP2 00000889: POP 0000088a: POP 0000088b: PUSH1 0x40 0000088d: MLOAD 0000088e: DUP1 0000088f: SWAP2 00000890: SUB 00000891: SWAP1 00000892: RETURN 00000893: JUMPDEST 00000894: CALLVALUE 00000895: ISZERO 00000896: PUSH2 0x089e 00000899: JUMPI 0000089a: PUSH1 0x00 0000089c: DUP1 0000089d: REVERT 0000089e: JUMPDEST 0000089f: PUSH2 0x08ca 000008a2: PUSH1 0x04 000008a4: DUP1 000008a5: DUP1 000008a6: CALLDATALOAD 000008a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008bc: AND 000008bd: SWAP1 000008be: PUSH1 0x20 000008c0: ADD 000008c1: SWAP1 000008c2: SWAP2 000008c3: SWAP1 000008c4: POP 000008c5: POP 000008c6: PUSH2 0x1c58 000008c9: JUMP 000008ca: JUMPDEST 000008cb: PUSH1 0x40 000008cd: MLOAD 000008ce: DUP1 000008cf: DUP3 000008d0: ISZERO 000008d1: ISZERO 000008d2: ISZERO 000008d3: ISZERO 000008d4: DUP2 000008d5: MSTORE 000008d6: PUSH1 0x20 000008d8: ADD 000008d9: SWAP2 000008da: POP 000008db: POP 000008dc: PUSH1 0x40 000008de: MLOAD 000008df: DUP1 000008e0: SWAP2 000008e1: SUB 000008e2: SWAP1 000008e3: RETURN 000008e4: JUMPDEST 000008e5: CALLVALUE 000008e6: ISZERO 000008e7: PUSH2 0x08ef 000008ea: JUMPI 000008eb: PUSH1 0x00 000008ed: DUP1 000008ee: REVERT 000008ef: JUMPDEST 000008f0: PUSH2 0x091b 000008f3: PUSH1 0x04 000008f5: DUP1 000008f6: DUP1 000008f7: CALLDATALOAD 000008f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000090d: AND 0000090e: SWAP1 0000090f: PUSH1 0x20 00000911: ADD 00000912: SWAP1 00000913: SWAP2 00000914: SWAP1 00000915: POP 00000916: POP 00000917: PUSH2 0x1c78 0000091a: JUMP 0000091b: JUMPDEST 0000091c: STOP 0000091d: JUMPDEST 0000091e: CALLVALUE 0000091f: ISZERO 00000920: PUSH2 0x0928 00000923: JUMPI 00000924: PUSH1 0x00 00000926: DUP1 00000927: REVERT 00000928: JUMPDEST 00000929: PUSH2 0x0930 0000092c: PUSH2 0x1d91 0000092f: JUMP 00000930: JUMPDEST 00000931: PUSH1 0x40 00000933: MLOAD 00000934: DUP1 00000935: DUP3 00000936: DUP2 00000937: MSTORE 00000938: PUSH1 0x20 0000093a: ADD 0000093b: SWAP2 0000093c: POP 0000093d: POP 0000093e: PUSH1 0x40 00000940: MLOAD 00000941: DUP1 00000942: SWAP2 00000943: SUB 00000944: SWAP1 00000945: RETURN 00000946: JUMPDEST 00000947: CALLVALUE 00000948: ISZERO 00000949: PUSH2 0x0951 0000094c: JUMPI 0000094d: PUSH1 0x00 0000094f: DUP1 00000950: REVERT 00000951: JUMPDEST 00000952: PUSH2 0x097d 00000955: PUSH1 0x04 00000957: DUP1 00000958: DUP1 00000959: CALLDATALOAD 0000095a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000096f: AND 00000970: SWAP1 00000971: PUSH1 0x20 00000973: ADD 00000974: SWAP1 00000975: SWAP2 00000976: SWAP1 00000977: POP 00000978: POP 00000979: PUSH2 0x1db5 0000097c: JUMP 0000097d: JUMPDEST 0000097e: STOP 0000097f: JUMPDEST 00000980: CALLVALUE 00000981: ISZERO 00000982: PUSH2 0x098a 00000985: JUMPI 00000986: PUSH1 0x00 00000988: DUP1 00000989: REVERT 0000098a: JUMPDEST 0000098b: PUSH2 0x09b6 0000098e: PUSH1 0x04 00000990: DUP1 00000991: DUP1 00000992: CALLDATALOAD 00000993: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009a8: AND 000009a9: SWAP1 000009aa: PUSH1 0x20 000009ac: ADD 000009ad: SWAP1 000009ae: SWAP2 000009af: SWAP1 000009b0: POP 000009b1: POP 000009b2: PUSH2 0x1e8a 000009b5: JUMP 000009b6: JUMPDEST 000009b7: STOP 000009b8: JUMPDEST 000009b9: PUSH1 0x07 000009bb: DUP1 000009bc: SLOAD 000009bd: PUSH1 0x01 000009bf: DUP2 000009c0: PUSH1 0x01 000009c2: AND 000009c3: ISZERO 000009c4: PUSH2 0x0100 000009c7: MUL 000009c8: SUB 000009c9: AND 000009ca: PUSH1 0x02 000009cc: SWAP1 000009cd: DIV 000009ce: DUP1 000009cf: PUSH1 0x1f 000009d1: ADD 000009d2: PUSH1 0x20 000009d4: DUP1 000009d5: SWAP2 000009d6: DIV 000009d7: MUL 000009d8: PUSH1 0x20 000009da: ADD 000009db: PUSH1 0x40 000009dd: MLOAD 000009de: SWAP1 000009df: DUP2 000009e0: ADD 000009e1: PUSH1 0x40 000009e3: MSTORE 000009e4: DUP1 000009e5: SWAP3 000009e6: SWAP2 000009e7: SWAP1 000009e8: DUP2 000009e9: DUP2 000009ea: MSTORE 000009eb: PUSH1 0x20 000009ed: ADD 000009ee: DUP3 000009ef: DUP1 000009f0: SLOAD 000009f1: PUSH1 0x01 000009f3: DUP2 000009f4: PUSH1 0x01 000009f6: AND 000009f7: ISZERO 000009f8: PUSH2 0x0100 000009fb: MUL 000009fc: SUB 000009fd: AND 000009fe: PUSH1 0x02 00000a00: SWAP1 00000a01: DIV 00000a02: DUP1 00000a03: ISZERO 00000a04: PUSH2 0x0a4e 00000a07: JUMPI 00000a08: DUP1 00000a09: PUSH1 0x1f 00000a0b: LT 00000a0c: PUSH2 0x0a23 00000a0f: JUMPI 00000a10: PUSH2 0x0100 00000a13: DUP1 00000a14: DUP4 00000a15: SLOAD 00000a16: DIV 00000a17: MUL 00000a18: DUP4 00000a19: MSTORE 00000a1a: SWAP2 00000a1b: PUSH1 0x20 00000a1d: ADD 00000a1e: SWAP2 00000a1f: PUSH2 0x0a4e 00000a22: JUMP 00000a23: JUMPDEST 00000a24: DUP3 00000a25: ADD 00000a26: SWAP2 00000a27: SWAP1 00000a28: PUSH1 0x00 00000a2a: MSTORE 00000a2b: PUSH1 0x20 00000a2d: PUSH1 0x00 00000a2f: KECCAK256 00000a30: SWAP1 00000a31: JUMPDEST 00000a32: DUP2 00000a33: SLOAD 00000a34: DUP2 00000a35: MSTORE 00000a36: SWAP1 00000a37: PUSH1 0x01 00000a39: ADD 00000a3a: SWAP1 00000a3b: PUSH1 0x20 00000a3d: ADD 00000a3e: DUP1 00000a3f: DUP4 00000a40: GT 00000a41: PUSH2 0x0a31 00000a44: JUMPI 00000a45: DUP3 00000a46: SWAP1 00000a47: SUB 00000a48: PUSH1 0x1f 00000a4a: AND 00000a4b: DUP3 00000a4c: ADD 00000a4d: SWAP2 00000a4e: JUMPDEST 00000a4f: POP 00000a50: POP 00000a51: POP 00000a52: POP 00000a53: POP 00000a54: DUP2 00000a55: JUMP 00000a56: JUMPDEST 00000a57: PUSH1 0x00 00000a59: DUP1 00000a5a: SWAP1 00000a5b: SLOAD 00000a5c: SWAP1 00000a5d: PUSH2 0x0100 00000a60: EXP 00000a61: SWAP1 00000a62: DIV 00000a63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a78: AND 00000a79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a8e: AND 00000a8f: CALLER 00000a90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000aa5: AND 00000aa6: EQ 00000aa7: ISZERO 00000aa8: ISZERO 00000aa9: PUSH2 0x0ab1 00000aac: JUMPI 00000aad: PUSH1 0x00 00000aaf: DUP1 00000ab0: REVERT 00000ab1: JUMPDEST 00000ab2: PUSH1 0x01 00000ab4: PUSH1 0x0a 00000ab6: PUSH1 0x14 00000ab8: PUSH2 0x0100 00000abb: EXP 00000abc: DUP2 00000abd: SLOAD 00000abe: DUP2 00000abf: PUSH1 0xff 00000ac1: MUL 00000ac2: NOT 00000ac3: AND 00000ac4: SWAP1 00000ac5: DUP4 00000ac6: ISZERO 00000ac7: ISZERO 00000ac8: MUL 00000ac9: OR 00000aca: SWAP1 00000acb: SSTORE 00000acc: POP 00000acd: DUP1 00000ace: PUSH1 0x0a 00000ad0: PUSH1 0x00 00000ad2: PUSH2 0x0100 00000ad5: EXP 00000ad6: DUP2 00000ad7: SLOAD 00000ad8: DUP2 00000ad9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000aee: MUL 00000aef: NOT 00000af0: AND 00000af1: SWAP1 00000af2: DUP4 00000af3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b08: AND 00000b09: MUL 00000b0a: OR 00000b0b: SWAP1 00000b0c: SSTORE 00000b0d: POP 00000b0e: PUSH32 0xcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e 00000b2f: DUP2 00000b30: PUSH1 0x40 00000b32: MLOAD 00000b33: DUP1 00000b34: DUP3 00000b35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b4a: AND 00000b4b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b60: AND 00000b61: DUP2 00000b62: MSTORE 00000b63: PUSH1 0x20 00000b65: ADD 00000b66: SWAP2 00000b67: POP 00000b68: POP 00000b69: PUSH1 0x40 00000b6b: MLOAD 00000b6c: DUP1 00000b6d: SWAP2 00000b6e: SUB 00000b6f: SWAP1 00000b70: LOG1 00000b71: POP 00000b72: JUMP 00000b73: JUMPDEST 00000b74: PUSH1 0x40 00000b76: PUSH1 0x04 00000b78: DUP2 00000b79: ADD 00000b7a: PUSH1 0x00 00000b7c: CALLDATASIZE 00000b7d: SWAP1 00000b7e: POP 00000b7f: LT 00000b80: ISZERO 00000b81: ISZERO 00000b82: ISZERO 00000b83: PUSH2 0x0b8b 00000b86: JUMPI 00000b87: PUSH1 0x00 00000b89: DUP1 00000b8a: REVERT 00000b8b: JUMPDEST 00000b8c: PUSH1 0x0a 00000b8e: PUSH1 0x14 00000b90: SWAP1 00000b91: SLOAD 00000b92: SWAP1 00000b93: PUSH2 0x0100 00000b96: EXP 00000b97: SWAP1 00000b98: DIV 00000b99: PUSH1 0xff 00000b9b: AND 00000b9c: ISZERO 00000b9d: PUSH2 0x0cb1 00000ba0: JUMPI 00000ba1: PUSH1 0x0a 00000ba3: PUSH1 0x00 00000ba5: SWAP1 00000ba6: SLOAD 00000ba7: SWAP1 00000ba8: PUSH2 0x0100 00000bab: EXP 00000bac: SWAP1 00000bad: DIV 00000bae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bc3: AND 00000bc4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bd9: AND 00000bda: PUSH4 0xaee92d33 00000bdf: CALLER 00000be0: DUP6 00000be1: DUP6 00000be2: PUSH1 0x40 00000be4: MLOAD 00000be5: DUP5 00000be6: PUSH4 0xffffffff 00000beb: AND 00000bec: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000c0a: MUL 00000c0b: DUP2 00000c0c: MSTORE 00000c0d: PUSH1 0x04 00000c0f: ADD 00000c10: DUP1 00000c11: DUP5 00000c12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c27: AND 00000c28: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c3d: AND 00000c3e: DUP2 00000c3f: MSTORE 00000c40: PUSH1 0x20 00000c42: ADD 00000c43: DUP4 00000c44: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c59: AND 00000c5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c6f: AND 00000c70: DUP2 00000c71: MSTORE 00000c72: PUSH1 0x20 00000c74: ADD 00000c75: DUP3 00000c76: DUP2 00000c77: MSTORE 00000c78: PUSH1 0x20 00000c7a: ADD 00000c7b: SWAP4 00000c7c: POP 00000c7d: POP 00000c7e: POP 00000c7f: POP 00000c80: PUSH1 0x00 00000c82: PUSH1 0x40 00000c84: MLOAD 00000c85: DUP1 00000c86: DUP4 00000c87: SUB 00000c88: DUP2 00000c89: PUSH1 0x00 00000c8b: DUP8 00000c8c: DUP1 00000c8d: EXTCODESIZE 00000c8e: ISZERO 00000c8f: ISZERO 00000c90: PUSH2 0x0c98 00000c93: JUMPI 00000c94: PUSH1 0x00 00000c96: DUP1 00000c97: REVERT 00000c98: JUMPDEST 00000c99: PUSH2 0x02c6 00000c9c: GAS 00000c9d: SUB 00000c9e: CALL 00000c9f: ISZERO 00000ca0: ISZERO 00000ca1: PUSH2 0x0ca9 00000ca4: JUMPI 00000ca5: PUSH1 0x00 00000ca7: DUP1 00000ca8: REVERT 00000ca9: JUMPDEST 00000caa: POP 00000cab: POP 00000cac: POP 00000cad: PUSH2 0x0cbc 00000cb0: JUMP 00000cb1: JUMPDEST 00000cb2: PUSH2 0x0cbb 00000cb5: DUP4 00000cb6: DUP4 00000cb7: PUSH2 0x200e 00000cba: JUMP 00000cbb: JUMPDEST 00000cbc: JUMPDEST 00000cbd: POP 00000cbe: POP 00000cbf: POP 00000cc0: JUMP 00000cc1: JUMPDEST 00000cc2: PUSH1 0x0a 00000cc4: PUSH1 0x14 00000cc6: SWAP1 00000cc7: SLOAD 00000cc8: SWAP1 00000cc9: PUSH2 0x0100 00000ccc: EXP 00000ccd: SWAP1 00000cce: DIV 00000ccf: PUSH1 0xff 00000cd1: AND 00000cd2: DUP2 00000cd3: JUMP 00000cd4: JUMPDEST 00000cd5: PUSH1 0x00 00000cd7: DUP1 00000cd8: SWAP1 00000cd9: SLOAD 00000cda: SWAP1 00000cdb: PUSH2 0x0100 00000cde: EXP 00000cdf: SWAP1 00000ce0: DIV 00000ce1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cf6: AND 00000cf7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d0c: AND 00000d0d: CALLER 00000d0e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d23: AND 00000d24: EQ 00000d25: ISZERO 00000d26: ISZERO 00000d27: PUSH2 0x0d2f 00000d2a: JUMPI 00000d2b: PUSH1 0x00 00000d2d: DUP1 00000d2e: REVERT 00000d2f: JUMPDEST 00000d30: PUSH1 0x01 00000d32: PUSH1 0x06 00000d34: PUSH1 0x00 00000d36: DUP4 00000d37: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d4c: AND 00000d4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d62: AND 00000d63: DUP2 00000d64: MSTORE 00000d65: PUSH1 0x20 00000d67: ADD 00000d68: SWAP1 00000d69: DUP2 00000d6a: MSTORE 00000d6b: PUSH1 0x20 00000d6d: ADD 00000d6e: PUSH1 0x00 00000d70: KECCAK256 00000d71: PUSH1 0x00 00000d73: PUSH2 0x0100 00000d76: EXP 00000d77: DUP2 00000d78: SLOAD 00000d79: DUP2 00000d7a: PUSH1 0xff 00000d7c: MUL 00000d7d: NOT 00000d7e: AND 00000d7f: SWAP1 00000d80: DUP4 00000d81: ISZERO 00000d82: ISZERO 00000d83: MUL 00000d84: OR 00000d85: SWAP1 00000d86: SSTORE 00000d87: POP 00000d88: PUSH32 0x42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc 00000da9: DUP2 00000daa: PUSH1 0x40 00000dac: MLOAD 00000dad: DUP1 00000dae: DUP3 00000daf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dc4: AND 00000dc5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dda: AND 00000ddb: DUP2 00000ddc: MSTORE 00000ddd: PUSH1 0x20 00000ddf: ADD 00000de0: SWAP2 00000de1: POP 00000de2: POP 00000de3: PUSH1 0x40 00000de5: MLOAD 00000de6: DUP1 00000de7: SWAP2 00000de8: SUB 00000de9: SWAP1 00000dea: LOG1 00000deb: POP 00000dec: JUMP 00000ded: JUMPDEST 00000dee: PUSH1 0x00 00000df0: PUSH1 0x0a 00000df2: PUSH1 0x14 00000df4: SWAP1 00000df5: SLOAD 00000df6: SWAP1 00000df7: PUSH2 0x0100 00000dfa: EXP 00000dfb: SWAP1 00000dfc: DIV 00000dfd: PUSH1 0xff 00000dff: AND 00000e00: ISZERO 00000e01: PUSH2 0x0eb4 00000e04: JUMPI 00000e05: PUSH1 0x0a 00000e07: PUSH1 0x00 00000e09: SWAP1 00000e0a: SLOAD 00000e0b: SWAP1 00000e0c: PUSH2 0x0100 00000e0f: EXP 00000e10: SWAP1 00000e11: DIV 00000e12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e27: AND 00000e28: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e3d: AND 00000e3e: PUSH4 0x18160ddd 00000e43: PUSH1 0x00 00000e45: PUSH1 0x40 00000e47: MLOAD 00000e48: PUSH1 0x20 00000e4a: ADD 00000e4b: MSTORE 00000e4c: PUSH1 0x40 00000e4e: MLOAD 00000e4f: DUP2 00000e50: PUSH4 0xffffffff 00000e55: AND 00000e56: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000e74: MUL 00000e75: DUP2 00000e76: MSTORE 00000e77: PUSH1 0x04 00000e79: ADD 00000e7a: PUSH1 0x20 00000e7c: PUSH1 0x40 00000e7e: MLOAD 00000e7f: DUP1 00000e80: DUP4 00000e81: SUB 00000e82: DUP2 00000e83: PUSH1 0x00 00000e85: DUP8 00000e86: DUP1 00000e87: EXTCODESIZE 00000e88: ISZERO 00000e89: ISZERO 00000e8a: PUSH2 0x0e92 00000e8d: JUMPI 00000e8e: PUSH1 0x00 00000e90: DUP1 00000e91: REVERT 00000e92: JUMPDEST 00000e93: PUSH2 0x02c6 00000e96: GAS 00000e97: SUB 00000e98: CALL 00000e99: ISZERO 00000e9a: ISZERO 00000e9b: PUSH2 0x0ea3 00000e9e: JUMPI 00000e9f: PUSH1 0x00 00000ea1: DUP1 00000ea2: REVERT 00000ea3: JUMPDEST 00000ea4: POP 00000ea5: POP 00000ea6: POP 00000ea7: PUSH1 0x40 00000ea9: MLOAD 00000eaa: DUP1 00000eab: MLOAD 00000eac: SWAP1 00000ead: POP 00000eae: SWAP1 00000eaf: POP 00000eb0: PUSH2 0x0eba 00000eb3: JUMP 00000eb4: JUMPDEST 00000eb5: PUSH1 0x01 00000eb7: SLOAD 00000eb8: SWAP1 00000eb9: POP 00000eba: JUMPDEST 00000ebb: SWAP1 00000ebc: JUMP 00000ebd: JUMPDEST 00000ebe: PUSH1 0x00 00000ec0: PUSH1 0x14 00000ec2: SWAP1 00000ec3: SLOAD 00000ec4: SWAP1 00000ec5: PUSH2 0x0100 00000ec8: EXP 00000ec9: SWAP1 00000eca: DIV 00000ecb: PUSH1 0xff 00000ecd: AND 00000ece: ISZERO 00000ecf: ISZERO 00000ed0: ISZERO 00000ed1: PUSH2 0x0ed9 00000ed4: JUMPI 00000ed5: PUSH1 0x00 00000ed7: DUP1 00000ed8: REVERT 00000ed9: JUMPDEST 00000eda: PUSH1 0x06 00000edc: PUSH1 0x00 00000ede: DUP5 00000edf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ef4: AND 00000ef5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f0a: AND 00000f0b: DUP2 00000f0c: MSTORE 00000f0d: PUSH1 0x20 00000f0f: ADD 00000f10: SWAP1 00000f11: DUP2 00000f12: MSTORE 00000f13: PUSH1 0x20 00000f15: ADD 00000f16: PUSH1 0x00 00000f18: KECCAK256 00000f19: PUSH1 0x00 00000f1b: SWAP1 00000f1c: SLOAD 00000f1d: SWAP1 00000f1e: PUSH2 0x0100 00000f21: EXP 00000f22: SWAP1 00000f23: DIV 00000f24: PUSH1 0xff 00000f26: AND 00000f27: ISZERO 00000f28: ISZERO 00000f29: ISZERO 00000f2a: PUSH2 0x0f32 00000f2d: JUMPI 00000f2e: PUSH1 0x00 00000f30: DUP1 00000f31: REVERT 00000f32: JUMPDEST 00000f33: PUSH1 0x0a 00000f35: PUSH1 0x14 00000f37: SWAP1 00000f38: SLOAD 00000f39: SWAP1 00000f3a: PUSH2 0x0100 00000f3d: EXP 00000f3e: SWAP1 00000f3f: DIV 00000f40: PUSH1 0xff 00000f42: AND 00000f43: ISZERO 00000f44: PUSH2 0x108c 00000f47: JUMPI 00000f48: PUSH1 0x0a 00000f4a: PUSH1 0x00 00000f4c: SWAP1 00000f4d: SLOAD 00000f4e: SWAP1 00000f4f: PUSH2 0x0100 00000f52: EXP 00000f53: SWAP1 00000f54: DIV 00000f55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f6a: AND 00000f6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f80: AND 00000f81: PUSH4 0x8b477adb 00000f86: CALLER 00000f87: DUP6 00000f88: DUP6 00000f89: DUP6 00000f8a: PUSH1 0x40 00000f8c: MLOAD 00000f8d: DUP6 00000f8e: PUSH4 0xffffffff 00000f93: AND 00000f94: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000fb2: MUL 00000fb3: DUP2 00000fb4: MSTORE 00000fb5: PUSH1 0x04 00000fb7: ADD 00000fb8: DUP1 00000fb9: DUP6 00000fba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fcf: AND 00000fd0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fe5: AND 00000fe6: DUP2 00000fe7: MSTORE 00000fe8: PUSH1 0x20 00000fea: ADD 00000feb: DUP5 00000fec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001001: AND 00001002: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001017: AND 00001018: DUP2 00001019: MSTORE 0000101a: PUSH1 0x20 0000101c: ADD 0000101d: DUP4 0000101e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001033: AND 00001034: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001049: AND 0000104a: DUP2 0000104b: MSTORE 0000104c: PUSH1 0x20 0000104e: ADD 0000104f: DUP3 00001050: DUP2 00001051: MSTORE 00001052: PUSH1 0x20 00001054: ADD 00001055: SWAP5 00001056: POP 00001057: POP 00001058: POP 00001059: POP 0000105a: POP 0000105b: PUSH1 0x00 0000105d: PUSH1 0x40 0000105f: MLOAD 00001060: DUP1 00001061: DUP4 00001062: SUB 00001063: DUP2 00001064: PUSH1 0x00 00001066: DUP8 00001067: DUP1 00001068: EXTCODESIZE 00001069: ISZERO 0000106a: ISZERO 0000106b: PUSH2 0x1073 0000106e: JUMPI 0000106f: PUSH1 0x00 00001071: DUP1 00001072: REVERT 00001073: JUMPDEST 00001074: PUSH2 0x02c6 00001077: GAS 00001078: SUB 00001079: CALL 0000107a: ISZERO 0000107b: ISZERO 0000107c: PUSH2 0x1084 0000107f: JUMPI 00001080: PUSH1 0x00 00001082: DUP1 00001083: REVERT 00001084: JUMPDEST 00001085: POP 00001086: POP 00001087: POP 00001088: PUSH2 0x1098 0000108b: JUMP 0000108c: JUMPDEST 0000108d: PUSH2 0x1097 00001090: DUP4 00001091: DUP4 00001092: DUP4 00001093: PUSH2 0x21ab 00001096: JUMP 00001097: JUMPDEST 00001098: JUMPDEST 00001099: POP 0000109a: POP 0000109b: POP 0000109c: JUMP 0000109d: JUMPDEST 0000109e: PUSH1 0x0a 000010a0: PUSH1 0x00 000010a2: SWAP1 000010a3: SLOAD 000010a4: SWAP1 000010a5: PUSH2 0x0100 000010a8: EXP 000010a9: SWAP1 000010aa: DIV 000010ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010c0: AND 000010c1: DUP2 000010c2: JUMP 000010c3: JUMPDEST 000010c4: PUSH1 0x02 000010c6: PUSH1 0x20 000010c8: MSTORE 000010c9: DUP1 000010ca: PUSH1 0x00 000010cc: MSTORE 000010cd: PUSH1 0x40 000010cf: PUSH1 0x00 000010d1: KECCAK256 000010d2: PUSH1 0x00 000010d4: SWAP2 000010d5: POP 000010d6: SWAP1 000010d7: POP 000010d8: SLOAD 000010d9: DUP2 000010da: JUMP 000010db: JUMPDEST 000010dc: PUSH1 0x09 000010de: SLOAD 000010df: DUP2 000010e0: JUMP 000010e1: JUMPDEST 000010e2: PUSH1 0x04 000010e4: SLOAD 000010e5: DUP2 000010e6: JUMP 000010e7: JUMPDEST 000010e8: PUSH1 0x01 000010ea: SLOAD 000010eb: DUP2 000010ec: JUMP 000010ed: JUMPDEST 000010ee: PUSH1 0x00 000010f0: DUP1 000010f1: SWAP1 000010f2: SLOAD 000010f3: SWAP1 000010f4: PUSH2 0x0100 000010f7: EXP 000010f8: SWAP1 000010f9: DIV 000010fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000110f: AND 00001110: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001125: AND 00001126: CALLER 00001127: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000113c: AND 0000113d: EQ 0000113e: ISZERO 0000113f: ISZERO 00001140: PUSH2 0x1148 00001143: JUMPI 00001144: PUSH1 0x00 00001146: DUP1 00001147: REVERT 00001148: JUMPDEST 00001149: PUSH1 0x00 0000114b: PUSH1 0x14 0000114d: SWAP1 0000114e: SLOAD 0000114f: SWAP1 00001150: PUSH2 0x0100 00001153: EXP 00001154: SWAP1 00001155: DIV 00001156: PUSH1 0xff 00001158: AND 00001159: ISZERO 0000115a: ISZERO 0000115b: PUSH2 0x1163 0000115e: JUMPI 0000115f: PUSH1 0x00 00001161: DUP1 00001162: REVERT 00001163: JUMPDEST 00001164: PUSH1 0x00 00001166: DUP1 00001167: PUSH1 0x14 00001169: PUSH2 0x0100 0000116c: EXP 0000116d: DUP2 0000116e: SLOAD 0000116f: DUP2 00001170: PUSH1 0xff 00001172: MUL 00001173: NOT 00001174: AND 00001175: SWAP1 00001176: DUP4 00001177: ISZERO 00001178: ISZERO 00001179: MUL 0000117a: OR 0000117b: SWAP1 0000117c: SSTORE 0000117d: POP 0000117e: PUSH32 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33 0000119f: PUSH1 0x40 000011a1: MLOAD 000011a2: PUSH1 0x40 000011a4: MLOAD 000011a5: DUP1 000011a6: SWAP2 000011a7: SUB 000011a8: SWAP1 000011a9: LOG1 000011aa: JUMP 000011ab: JUMPDEST 000011ac: PUSH1 0x00 000011ae: PUSH1 0x06 000011b0: PUSH1 0x00 000011b2: DUP4 000011b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011c8: AND 000011c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011de: AND 000011df: DUP2 000011e0: MSTORE 000011e1: PUSH1 0x20 000011e3: ADD 000011e4: SWAP1 000011e5: DUP2 000011e6: MSTORE 000011e7: PUSH1 0x20 000011e9: ADD 000011ea: PUSH1 0x00 000011ec: KECCAK256 000011ed: PUSH1 0x00 000011ef: SWAP1 000011f0: SLOAD 000011f1: SWAP1 000011f2: PUSH2 0x0100 000011f5: EXP 000011f6: SWAP1 000011f7: DIV 000011f8: PUSH1 0xff 000011fa: AND 000011fb: SWAP1 000011fc: POP 000011fd: SWAP2 000011fe: SWAP1 000011ff: POP 00001200: JUMP 00001201: JUMPDEST 00001202: PUSH1 0x05 00001204: PUSH1 0x20 00001206: MSTORE 00001207: DUP2 00001208: PUSH1 0x00 0000120a: MSTORE 0000120b: PUSH1 0x40 0000120d: PUSH1 0x00 0000120f: KECCAK256 00001210: PUSH1 0x20 00001212: MSTORE 00001213: DUP1 00001214: PUSH1 0x00 00001216: MSTORE 00001217: PUSH1 0x40 00001219: PUSH1 0x00 0000121b: KECCAK256 0000121c: PUSH1 0x00 0000121e: SWAP2 0000121f: POP 00001220: SWAP2 00001221: POP 00001222: POP 00001223: SLOAD 00001224: DUP2 00001225: JUMP 00001226: JUMPDEST 00001227: PUSH1 0x00 00001229: PUSH1 0x14 0000122b: SWAP1 0000122c: SLOAD 0000122d: SWAP1 0000122e: PUSH2 0x0100 00001231: EXP 00001232: SWAP1 00001233: DIV 00001234: PUSH1 0xff 00001236: AND 00001237: DUP2 00001238: JUMP 00001239: JUMPDEST 0000123a: PUSH1 0x00 0000123c: PUSH1 0x0a 0000123e: PUSH1 0x14 00001240: SWAP1 00001241: SLOAD 00001242: SWAP1 00001243: PUSH2 0x0100 00001246: EXP 00001247: SWAP1 00001248: DIV 00001249: PUSH1 0xff 0000124b: AND 0000124c: ISZERO 0000124d: PUSH2 0x1337 00001250: JUMPI 00001251: PUSH1 0x0a 00001253: PUSH1 0x00 00001255: SWAP1 00001256: SLOAD 00001257: SWAP1 00001258: PUSH2 0x0100 0000125b: EXP 0000125c: SWAP1 0000125d: DIV 0000125e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001273: AND 00001274: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001289: AND 0000128a: PUSH4 0x70a08231 0000128f: DUP4 00001290: PUSH1 0x00 00001292: PUSH1 0x40 00001294: MLOAD 00001295: PUSH1 0x20 00001297: ADD 00001298: MSTORE 00001299: PUSH1 0x40 0000129b: MLOAD 0000129c: DUP3 0000129d: PUSH4 0xffffffff 000012a2: AND 000012a3: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000012c1: MUL 000012c2: DUP2 000012c3: MSTORE 000012c4: PUSH1 0x04 000012c6: ADD 000012c7: DUP1 000012c8: DUP3 000012c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012de: AND 000012df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012f4: AND 000012f5: DUP2 000012f6: MSTORE 000012f7: PUSH1 0x20 000012f9: ADD 000012fa: SWAP2 000012fb: POP 000012fc: POP 000012fd: PUSH1 0x20 000012ff: PUSH1 0x40 00001301: MLOAD 00001302: DUP1 00001303: DUP4 00001304: SUB 00001305: DUP2 00001306: PUSH1 0x00 00001308: DUP8 00001309: DUP1 0000130a: EXTCODESIZE 0000130b: ISZERO 0000130c: ISZERO 0000130d: PUSH2 0x1315 00001310: JUMPI 00001311: PUSH1 0x00 00001313: DUP1 00001314: REVERT 00001315: JUMPDEST 00001316: PUSH2 0x02c6 00001319: GAS 0000131a: SUB 0000131b: CALL 0000131c: ISZERO 0000131d: ISZERO 0000131e: PUSH2 0x1326 00001321: JUMPI 00001322: PUSH1 0x00 00001324: DUP1 00001325: REVERT 00001326: JUMPDEST 00001327: POP 00001328: POP 00001329: POP 0000132a: PUSH1 0x40 0000132c: MLOAD 0000132d: DUP1 0000132e: MLOAD 0000132f: SWAP1 00001330: POP 00001331: SWAP1 00001332: POP 00001333: PUSH2 0x1343 00001336: JUMP 00001337: JUMPDEST 00001338: PUSH2 0x1340 0000133b: DUP3 0000133c: PUSH2 0x2652 0000133f: JUMP 00001340: JUMPDEST 00001341: SWAP1 00001342: POP 00001343: JUMPDEST 00001344: SWAP2 00001345: SWAP1 00001346: POP 00001347: JUMP 00001348: JUMPDEST 00001349: PUSH1 0x00 0000134b: DUP1 0000134c: SWAP1 0000134d: SLOAD 0000134e: SWAP1 0000134f: PUSH2 0x0100 00001352: EXP 00001353: SWAP1 00001354: DIV 00001355: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000136a: AND 0000136b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001380: AND 00001381: CALLER 00001382: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001397: AND 00001398: EQ 00001399: ISZERO 0000139a: ISZERO 0000139b: PUSH2 0x13a3 0000139e: JUMPI 0000139f: PUSH1 0x00 000013a1: DUP1 000013a2: REVERT 000013a3: JUMPDEST 000013a4: PUSH1 0x00 000013a6: PUSH1 0x14 000013a8: SWAP1 000013a9: SLOAD 000013aa: SWAP1 000013ab: PUSH2 0x0100 000013ae: EXP 000013af: SWAP1 000013b0: DIV 000013b1: PUSH1 0xff 000013b3: AND 000013b4: ISZERO 000013b5: ISZERO 000013b6: ISZERO 000013b7: PUSH2 0x13bf 000013ba: JUMPI 000013bb: PUSH1 0x00 000013bd: DUP1 000013be: REVERT 000013bf: JUMPDEST 000013c0: PUSH1 0x01 000013c2: PUSH1 0x00 000013c4: PUSH1 0x14 000013c6: PUSH2 0x0100 000013c9: EXP 000013ca: DUP2 000013cb: SLOAD 000013cc: DUP2 000013cd: PUSH1 0xff 000013cf: MUL 000013d0: NOT 000013d1: AND 000013d2: SWAP1 000013d3: DUP4 000013d4: ISZERO 000013d5: ISZERO 000013d6: MUL 000013d7: OR 000013d8: SWAP1 000013d9: SSTORE 000013da: POP 000013db: PUSH32 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625 000013fc: PUSH1 0x40 000013fe: MLOAD 000013ff: PUSH1 0x40 00001401: MLOAD 00001402: DUP1 00001403: SWAP2 00001404: SUB 00001405: SWAP1 00001406: LOG1 00001407: JUMP 00001408: JUMPDEST 00001409: PUSH1 0x00 0000140b: DUP1 0000140c: PUSH1 0x00 0000140e: SWAP1 0000140f: SLOAD 00001410: SWAP1 00001411: PUSH2 0x0100 00001414: EXP 00001415: SWAP1 00001416: DIV 00001417: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000142c: AND 0000142d: SWAP1 0000142e: POP 0000142f: SWAP1 00001430: JUMP 00001431: JUMPDEST 00001432: PUSH1 0x00 00001434: DUP1 00001435: SWAP1 00001436: SLOAD 00001437: SWAP1 00001438: PUSH2 0x0100 0000143b: EXP 0000143c: SWAP1 0000143d: DIV 0000143e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001453: AND 00001454: DUP2 00001455: JUMP 00001456: JUMPDEST 00001457: PUSH1 0x08 00001459: DUP1 0000145a: SLOAD 0000145b: PUSH1 0x01 0000145d: DUP2 0000145e: PUSH1 0x01 00001460: AND 00001461: ISZERO 00001462: PUSH2 0x0100 00001465: MUL 00001466: SUB 00001467: AND 00001468: PUSH1 0x02 0000146a: SWAP1 0000146b: DIV 0000146c: DUP1 0000146d: PUSH1 0x1f 0000146f: ADD 00001470: PUSH1 0x20 00001472: DUP1 00001473: SWAP2 00001474: DIV 00001475: MUL 00001476: PUSH1 0x20 00001478: ADD 00001479: PUSH1 0x40 0000147b: MLOAD 0000147c: SWAP1 0000147d: DUP2 0000147e: ADD 0000147f: PUSH1 0x40 00001481: MSTORE 00001482: DUP1 00001483: SWAP3 00001484: SWAP2 00001485: SWAP1 00001486: DUP2 00001487: DUP2 00001488: MSTORE 00001489: PUSH1 0x20 0000148b: ADD 0000148c: DUP3 0000148d: DUP1 0000148e: SLOAD 0000148f: PUSH1 0x01 00001491: DUP2 00001492: PUSH1 0x01 00001494: AND 00001495: ISZERO 00001496: PUSH2 0x0100 00001499: MUL 0000149a: SUB 0000149b: AND 0000149c: PUSH1 0x02 0000149e: SWAP1 0000149f: DIV 000014a0: DUP1 000014a1: ISZERO 000014a2: PUSH2 0x14ec 000014a5: JUMPI 000014a6: DUP1 000014a7: PUSH1 0x1f 000014a9: LT 000014aa: PUSH2 0x14c1 000014ad: JUMPI 000014ae: PUSH2 0x0100 000014b1: DUP1 000014b2: DUP4 000014b3: SLOAD 000014b4: DIV 000014b5: MUL 000014b6: DUP4 000014b7: MSTORE 000014b8: SWAP2 000014b9: PUSH1 0x20 000014bb: ADD 000014bc: SWAP2 000014bd: PUSH2 0x14ec 000014c0: JUMP 000014c1: JUMPDEST 000014c2: DUP3 000014c3: ADD 000014c4: SWAP2 000014c5: SWAP1 000014c6: PUSH1 0x00 000014c8: MSTORE 000014c9: PUSH1 0x20 000014cb: PUSH1 0x00 000014cd: KECCAK256 000014ce: SWAP1 000014cf: JUMPDEST 000014d0: DUP2 000014d1: SLOAD 000014d2: DUP2 000014d3: MSTORE 000014d4: SWAP1 000014d5: PUSH1 0x01 000014d7: ADD 000014d8: SWAP1 000014d9: PUSH1 0x20 000014db: ADD 000014dc: DUP1 000014dd: DUP4 000014de: GT 000014df: PUSH2 0x14cf 000014e2: JUMPI 000014e3: DUP3 000014e4: SWAP1 000014e5: SUB 000014e6: PUSH1 0x1f 000014e8: AND 000014e9: DUP3 000014ea: ADD 000014eb: SWAP2 000014ec: JUMPDEST 000014ed: POP 000014ee: POP 000014ef: POP 000014f0: POP 000014f1: POP 000014f2: DUP2 000014f3: JUMP 000014f4: JUMPDEST 000014f5: PUSH1 0x00 000014f7: PUSH1 0x14 000014f9: SWAP1 000014fa: SLOAD 000014fb: SWAP1 000014fc: PUSH2 0x0100 000014ff: EXP 00001500: SWAP1 00001501: DIV 00001502: PUSH1 0xff 00001504: AND 00001505: ISZERO 00001506: ISZERO 00001507: ISZERO 00001508: PUSH2 0x1510 0000150b: JUMPI 0000150c: PUSH1 0x00 0000150e: DUP1 0000150f: REVERT 00001510: JUMPDEST 00001511: PUSH1 0x06 00001513: PUSH1 0x00 00001515: CALLER 00001516: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000152b: AND 0000152c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001541: AND 00001542: DUP2 00001543: MSTORE 00001544: PUSH1 0x20 00001546: ADD 00001547: SWAP1 00001548: DUP2 00001549: MSTORE 0000154a: PUSH1 0x20 0000154c: ADD 0000154d: PUSH1 0x00 0000154f: KECCAK256 00001550: PUSH1 0x00 00001552: SWAP1 00001553: SLOAD 00001554: SWAP1 00001555: PUSH2 0x0100 00001558: EXP 00001559: SWAP1 0000155a: DIV 0000155b: PUSH1 0xff 0000155d: AND 0000155e: ISZERO 0000155f: ISZERO 00001560: ISZERO 00001561: PUSH2 0x1569 00001564: JUMPI 00001565: PUSH1 0x00 00001567: DUP1 00001568: REVERT 00001569: JUMPDEST 0000156a: PUSH1 0x0a 0000156c: PUSH1 0x14 0000156e: SWAP1 0000156f: SLOAD 00001570: SWAP1 00001571: PUSH2 0x0100 00001574: EXP 00001575: SWAP1 00001576: DIV 00001577: PUSH1 0xff 00001579: AND 0000157a: ISZERO 0000157b: PUSH2 0x168f 0000157e: JUMPI 0000157f: PUSH1 0x0a 00001581: PUSH1 0x00 00001583: SWAP1 00001584: SLOAD 00001585: SWAP1 00001586: PUSH2 0x0100 00001589: EXP 0000158a: SWAP1 0000158b: DIV 0000158c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015a1: AND 000015a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015b7: AND 000015b8: PUSH4 0x6e18980a 000015bd: CALLER 000015be: DUP5 000015bf: DUP5 000015c0: PUSH1 0x40 000015c2: MLOAD 000015c3: DUP5 000015c4: PUSH4 0xffffffff 000015c9: AND 000015ca: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000015e8: MUL 000015e9: DUP2 000015ea: MSTORE 000015eb: PUSH1 0x04 000015ed: ADD 000015ee: DUP1 000015ef: DUP5 000015f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001605: AND 00001606: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000161b: AND 0000161c: DUP2 0000161d: MSTORE 0000161e: PUSH1 0x20 00001620: ADD 00001621: DUP4 00001622: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001637: AND 00001638: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000164d: AND 0000164e: DUP2 0000164f: MSTORE 00001650: PUSH1 0x20 00001652: ADD 00001653: DUP3 00001654: DUP2 00001655: MSTORE 00001656: PUSH1 0x20 00001658: ADD 00001659: SWAP4 0000165a: POP 0000165b: POP 0000165c: POP 0000165d: POP 0000165e: PUSH1 0x00 00001660: PUSH1 0x40 00001662: MLOAD 00001663: DUP1 00001664: DUP4 00001665: SUB 00001666: DUP2 00001667: PUSH1 0x00 00001669: DUP8 0000166a: DUP1 0000166b: EXTCODESIZE 0000166c: ISZERO 0000166d: ISZERO 0000166e: PUSH2 0x1676 00001671: JUMPI 00001672: PUSH1 0x00 00001674: DUP1 00001675: REVERT 00001676: JUMPDEST 00001677: PUSH2 0x02c6 0000167a: GAS 0000167b: SUB 0000167c: CALL 0000167d: ISZERO 0000167e: ISZERO 0000167f: PUSH2 0x1687 00001682: JUMPI 00001683: PUSH1 0x00 00001685: DUP1 00001686: REVERT 00001687: JUMPDEST 00001688: POP 00001689: POP 0000168a: POP 0000168b: PUSH2 0x169a 0000168e: JUMP 0000168f: JUMPDEST 00001690: PUSH2 0x1699 00001693: DUP3 00001694: DUP3 00001695: PUSH2 0x269b 00001698: JUMP 00001699: JUMPDEST 0000169a: JUMPDEST 0000169b: POP 0000169c: POP 0000169d: JUMP 0000169e: JUMPDEST 0000169f: PUSH1 0x00 000016a1: DUP1 000016a2: SWAP1 000016a3: SLOAD 000016a4: SWAP1 000016a5: PUSH2 0x0100 000016a8: EXP 000016a9: SWAP1 000016aa: DIV 000016ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016c0: AND 000016c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016d6: AND 000016d7: CALLER 000016d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016ed: AND 000016ee: EQ 000016ef: ISZERO 000016f0: ISZERO 000016f1: PUSH2 0x16f9 000016f4: JUMPI 000016f5: PUSH1 0x00 000016f7: DUP1 000016f8: REVERT 000016f9: JUMPDEST 000016fa: PUSH1 0x14 000016fc: DUP3 000016fd: LT 000016fe: ISZERO 000016ff: ISZERO 00001700: PUSH2 0x1708 00001703: JUMPI 00001704: PUSH1 0x00 00001706: DUP1 00001707: REVERT 00001708: JUMPDEST 00001709: PUSH1 0x32 0000170b: DUP2 0000170c: LT 0000170d: ISZERO 0000170e: ISZERO 0000170f: PUSH2 0x1717 00001712: JUMPI 00001713: PUSH1 0x00 00001715: DUP1 00001716: REVERT 00001717: JUMPDEST 00001718: DUP2 00001719: PUSH1 0x03 0000171b: DUP2 0000171c: SWAP1 0000171d: SSTORE 0000171e: POP 0000171f: PUSH2 0x1736 00001722: PUSH1 0x09 00001724: SLOAD 00001725: PUSH1 0x0a 00001727: EXP 00001728: DUP3 00001729: PUSH2 0x2a03 0000172c: SWAP1 0000172d: SWAP2 0000172e: SWAP1 0000172f: PUSH4 0xffffffff 00001734: AND 00001735: JUMP 00001736: JUMPDEST 00001737: PUSH1 0x04 00001739: DUP2 0000173a: SWAP1 0000173b: SSTORE 0000173c: POP 0000173d: PUSH32 0xb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e 0000175e: PUSH1 0x03 00001760: SLOAD 00001761: PUSH1 0x04 00001763: SLOAD 00001764: PUSH1 0x40 00001766: MLOAD 00001767: DUP1 00001768: DUP4 00001769: DUP2 0000176a: MSTORE 0000176b: PUSH1 0x20 0000176d: ADD 0000176e: DUP3 0000176f: DUP2 00001770: MSTORE 00001771: PUSH1 0x20 00001773: ADD 00001774: SWAP3 00001775: POP 00001776: POP 00001777: POP 00001778: PUSH1 0x40 0000177a: MLOAD 0000177b: DUP1 0000177c: SWAP2 0000177d: SUB 0000177e: SWAP1 0000177f: LOG1 00001780: POP 00001781: POP 00001782: JUMP 00001783: JUMPDEST 00001784: PUSH1 0x00 00001786: DUP1 00001787: SWAP1 00001788: SLOAD 00001789: SWAP1 0000178a: PUSH2 0x0100 0000178d: EXP 0000178e: SWAP1 0000178f: DIV 00001790: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017a5: AND 000017a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017bb: AND 000017bc: CALLER 000017bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017d2: AND 000017d3: EQ 000017d4: ISZERO 000017d5: ISZERO 000017d6: PUSH2 0x17de 000017d9: JUMPI 000017da: PUSH1 0x00 000017dc: DUP1 000017dd: REVERT 000017de: JUMPDEST 000017df: PUSH1 0x01 000017e1: SLOAD 000017e2: DUP2 000017e3: PUSH1 0x01 000017e5: SLOAD 000017e6: ADD 000017e7: GT 000017e8: ISZERO 000017e9: ISZERO 000017ea: PUSH2 0x17f2 000017ed: JUMPI 000017ee: PUSH1 0x00 000017f0: DUP1 000017f1: REVERT 000017f2: JUMPDEST 000017f3: PUSH1 0x02 000017f5: PUSH1 0x00 000017f7: DUP1 000017f8: PUSH1 0x00 000017fa: SWAP1 000017fb: SLOAD 000017fc: SWAP1 000017fd: PUSH2 0x0100 00001800: EXP 00001801: SWAP1 00001802: DIV 00001803: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001818: AND 00001819: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000182e: AND 0000182f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001844: AND 00001845: DUP2 00001846: MSTORE 00001847: PUSH1 0x20 00001849: ADD 0000184a: SWAP1 0000184b: DUP2 0000184c: MSTORE 0000184d: PUSH1 0x20 0000184f: ADD 00001850: PUSH1 0x00 00001852: KECCAK256 00001853: SLOAD 00001854: DUP2 00001855: PUSH1 0x02 00001857: PUSH1 0x00 00001859: DUP1 0000185a: PUSH1 0x00 0000185c: SWAP1 0000185d: SLOAD 0000185e: SWAP1 0000185f: PUSH2 0x0100 00001862: EXP 00001863: SWAP1 00001864: DIV 00001865: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000187a: AND 0000187b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001890: AND 00001891: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018a6: AND 000018a7: DUP2 000018a8: MSTORE 000018a9: PUSH1 0x20 000018ab: ADD 000018ac: SWAP1 000018ad: DUP2 000018ae: MSTORE 000018af: PUSH1 0x20 000018b1: ADD 000018b2: PUSH1 0x00 000018b4: KECCAK256 000018b5: SLOAD 000018b6: ADD 000018b7: GT 000018b8: ISZERO 000018b9: ISZERO 000018ba: PUSH2 0x18c2 000018bd: JUMPI 000018be: PUSH1 0x00 000018c0: DUP1 000018c1: REVERT 000018c2: JUMPDEST 000018c3: DUP1 000018c4: PUSH1 0x02 000018c6: PUSH1 0x00 000018c8: DUP1 000018c9: PUSH1 0x00 000018cb: SWAP1 000018cc: SLOAD 000018cd: SWAP1 000018ce: PUSH2 0x0100 000018d1: EXP 000018d2: SWAP1 000018d3: DIV 000018d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018e9: AND 000018ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018ff: AND 00001900: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001915: AND 00001916: DUP2 00001917: MSTORE 00001918: PUSH1 0x20 0000191a: ADD 0000191b: SWAP1 0000191c: DUP2 0000191d: MSTORE 0000191e: PUSH1 0x20 00001920: ADD 00001921: PUSH1 0x00 00001923: KECCAK256 00001924: PUSH1 0x00 00001926: DUP3 00001927: DUP3 00001928: SLOAD 00001929: ADD 0000192a: SWAP3 0000192b: POP 0000192c: POP 0000192d: DUP2 0000192e: SWAP1 0000192f: SSTORE 00001930: POP 00001931: DUP1 00001932: PUSH1 0x01 00001934: PUSH1 0x00 00001936: DUP3 00001937: DUP3 00001938: SLOAD 00001939: ADD 0000193a: SWAP3 0000193b: POP 0000193c: POP 0000193d: DUP2 0000193e: SWAP1 0000193f: SSTORE 00001940: POP 00001941: PUSH32 0xcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a 00001962: DUP2 00001963: PUSH1 0x40 00001965: MLOAD 00001966: DUP1 00001967: DUP3 00001968: DUP2 00001969: MSTORE 0000196a: PUSH1 0x20 0000196c: ADD 0000196d: SWAP2 0000196e: POP 0000196f: POP 00001970: PUSH1 0x40 00001972: MLOAD 00001973: DUP1 00001974: SWAP2 00001975: SUB 00001976: SWAP1 00001977: LOG1 00001978: POP 00001979: JUMP 0000197a: JUMPDEST 0000197b: PUSH1 0x00 0000197d: DUP1 0000197e: SWAP1 0000197f: SLOAD 00001980: SWAP1 00001981: PUSH2 0x0100 00001984: EXP 00001985: SWAP1 00001986: DIV 00001987: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000199c: AND 0000199d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019b2: AND 000019b3: CALLER 000019b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019c9: AND 000019ca: EQ 000019cb: ISZERO 000019cc: ISZERO 000019cd: PUSH2 0x19d5 000019d0: JUMPI 000019d1: PUSH1 0x00 000019d3: DUP1 000019d4: REVERT 000019d5: JUMPDEST 000019d6: DUP1 000019d7: PUSH1 0x01 000019d9: SLOAD 000019da: LT 000019db: ISZERO 000019dc: ISZERO 000019dd: ISZERO 000019de: PUSH2 0x19e6 000019e1: JUMPI 000019e2: PUSH1 0x00 000019e4: DUP1 000019e5: REVERT 000019e6: JUMPDEST 000019e7: DUP1 000019e8: PUSH1 0x02 000019ea: PUSH1 0x00 000019ec: DUP1 000019ed: PUSH1 0x00 000019ef: SWAP1 000019f0: SLOAD 000019f1: SWAP1 000019f2: PUSH2 0x0100 000019f5: EXP 000019f6: SWAP1 000019f7: DIV 000019f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a0d: AND 00001a0e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a23: AND 00001a24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a39: AND 00001a3a: DUP2 00001a3b: MSTORE 00001a3c: PUSH1 0x20 00001a3e: ADD 00001a3f: SWAP1 00001a40: DUP2 00001a41: MSTORE 00001a42: PUSH1 0x20 00001a44: ADD 00001a45: PUSH1 0x00 00001a47: KECCAK256 00001a48: SLOAD 00001a49: LT 00001a4a: ISZERO 00001a4b: ISZERO 00001a4c: ISZERO 00001a4d: PUSH2 0x1a55 00001a50: JUMPI 00001a51: PUSH1 0x00 00001a53: DUP1 00001a54: REVERT 00001a55: JUMPDEST 00001a56: DUP1 00001a57: PUSH1 0x01 00001a59: PUSH1 0x00 00001a5b: DUP3 00001a5c: DUP3 00001a5d: SLOAD 00001a5e: SUB 00001a5f: SWAP3 00001a60: POP 00001a61: POP 00001a62: DUP2 00001a63: SWAP1 00001a64: SSTORE 00001a65: POP 00001a66: DUP1 00001a67: PUSH1 0x02 00001a69: PUSH1 0x00 00001a6b: DUP1 00001a6c: PUSH1 0x00 00001a6e: SWAP1 00001a6f: SLOAD 00001a70: SWAP1 00001a71: PUSH2 0x0100 00001a74: EXP 00001a75: SWAP1 00001a76: DIV 00001a77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a8c: AND 00001a8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001aa2: AND 00001aa3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ab8: AND 00001ab9: DUP2 00001aba: MSTORE 00001abb: PUSH1 0x20 00001abd: ADD 00001abe: SWAP1 00001abf: DUP2 00001ac0: MSTORE 00001ac1: PUSH1 0x20 00001ac3: ADD 00001ac4: PUSH1 0x00 00001ac6: KECCAK256 00001ac7: PUSH1 0x00 00001ac9: DUP3 00001aca: DUP3 00001acb: SLOAD 00001acc: SUB 00001acd: SWAP3 00001ace: POP 00001acf: POP 00001ad0: DUP2 00001ad1: SWAP1 00001ad2: SSTORE 00001ad3: POP 00001ad4: PUSH32 0x702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a44 00001af5: DUP2 00001af6: PUSH1 0x40 00001af8: MLOAD 00001af9: DUP1 00001afa: DUP3 00001afb: DUP2 00001afc: MSTORE 00001afd: PUSH1 0x20 00001aff: ADD 00001b00: SWAP2 00001b01: POP 00001b02: POP 00001b03: PUSH1 0x40 00001b05: MLOAD 00001b06: DUP1 00001b07: SWAP2 00001b08: SUB 00001b09: SWAP1 00001b0a: LOG1 00001b0b: POP 00001b0c: JUMP 00001b0d: JUMPDEST 00001b0e: PUSH1 0x00 00001b10: PUSH1 0x0a 00001b12: PUSH1 0x14 00001b14: SWAP1 00001b15: SLOAD 00001b16: SWAP1 00001b17: PUSH2 0x0100 00001b1a: EXP 00001b1b: SWAP1 00001b1c: DIV 00001b1d: PUSH1 0xff 00001b1f: AND 00001b20: ISZERO 00001b21: PUSH2 0x1c3f 00001b24: JUMPI 00001b25: PUSH1 0x0a 00001b27: PUSH1 0x00 00001b29: SWAP1 00001b2a: SLOAD 00001b2b: SWAP1 00001b2c: PUSH2 0x0100 00001b2f: EXP 00001b30: SWAP1 00001b31: DIV 00001b32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b47: AND 00001b48: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b5d: AND 00001b5e: PUSH4 0xdd62ed3e 00001b63: DUP5 00001b64: DUP5 00001b65: PUSH1 0x00 00001b67: PUSH1 0x40 00001b69: MLOAD 00001b6a: PUSH1 0x20 00001b6c: ADD 00001b6d: MSTORE 00001b6e: PUSH1 0x40 00001b70: MLOAD 00001b71: DUP4 00001b72: PUSH4 0xffffffff 00001b77: AND 00001b78: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00001b96: MUL 00001b97: DUP2 00001b98: MSTORE 00001b99: PUSH1 0x04 00001b9b: ADD 00001b9c: DUP1 00001b9d: DUP4 00001b9e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bb3: AND 00001bb4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bc9: AND 00001bca: DUP2 00001bcb: MSTORE 00001bcc: PUSH1 0x20 00001bce: ADD 00001bcf: DUP3 00001bd0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001be5: AND 00001be6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bfb: AND 00001bfc: DUP2 00001bfd: MSTORE 00001bfe: PUSH1 0x20 00001c00: ADD 00001c01: SWAP3 00001c02: POP 00001c03: POP 00001c04: POP 00001c05: PUSH1 0x20 00001c07: PUSH1 0x40 00001c09: MLOAD 00001c0a: DUP1 00001c0b: DUP4 00001c0c: SUB 00001c0d: DUP2 00001c0e: PUSH1 0x00 00001c10: DUP8 00001c11: DUP1 00001c12: EXTCODESIZE 00001c13: ISZERO 00001c14: ISZERO 00001c15: PUSH2 0x1c1d 00001c18: JUMPI 00001c19: PUSH1 0x00 00001c1b: DUP1 00001c1c: REVERT 00001c1d: JUMPDEST 00001c1e: PUSH2 0x02c6 00001c21: GAS 00001c22: SUB 00001c23: CALL 00001c24: ISZERO 00001c25: ISZERO 00001c26: PUSH2 0x1c2e 00001c29: JUMPI 00001c2a: PUSH1 0x00 00001c2c: DUP1 00001c2d: REVERT 00001c2e: JUMPDEST 00001c2f: POP 00001c30: POP 00001c31: POP 00001c32: PUSH1 0x40 00001c34: MLOAD 00001c35: DUP1 00001c36: MLOAD 00001c37: SWAP1 00001c38: POP 00001c39: SWAP1 00001c3a: POP 00001c3b: PUSH2 0x1c4c 00001c3e: JUMP 00001c3f: JUMPDEST 00001c40: PUSH2 0x1c49 00001c43: DUP4 00001c44: DUP4 00001c45: PUSH2 0x2a3e 00001c48: JUMP 00001c49: JUMPDEST 00001c4a: SWAP1 00001c4b: POP 00001c4c: JUMPDEST 00001c4d: SWAP3 00001c4e: SWAP2 00001c4f: POP 00001c50: POP 00001c51: JUMP 00001c52: JUMPDEST 00001c53: PUSH1 0x03 00001c55: SLOAD 00001c56: DUP2 00001c57: JUMP 00001c58: JUMPDEST 00001c59: PUSH1 0x06 00001c5b: PUSH1 0x20 00001c5d: MSTORE 00001c5e: DUP1 00001c5f: PUSH1 0x00 00001c61: MSTORE 00001c62: PUSH1 0x40 00001c64: PUSH1 0x00 00001c66: KECCAK256 00001c67: PUSH1 0x00 00001c69: SWAP2 00001c6a: POP 00001c6b: SLOAD 00001c6c: SWAP1 00001c6d: PUSH2 0x0100 00001c70: EXP 00001c71: SWAP1 00001c72: DIV 00001c73: PUSH1 0xff 00001c75: AND 00001c76: DUP2 00001c77: JUMP 00001c78: JUMPDEST 00001c79: PUSH1 0x00 00001c7b: DUP1 00001c7c: SWAP1 00001c7d: SLOAD 00001c7e: SWAP1 00001c7f: PUSH2 0x0100 00001c82: EXP 00001c83: SWAP1 00001c84: DIV 00001c85: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c9a: AND 00001c9b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cb0: AND 00001cb1: CALLER 00001cb2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cc7: AND 00001cc8: EQ 00001cc9: ISZERO 00001cca: ISZERO 00001ccb: PUSH2 0x1cd3 00001cce: JUMPI 00001ccf: PUSH1 0x00 00001cd1: DUP1 00001cd2: REVERT 00001cd3: JUMPDEST 00001cd4: PUSH1 0x00 00001cd6: PUSH1 0x06 00001cd8: PUSH1 0x00 00001cda: DUP4 00001cdb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cf0: AND 00001cf1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d06: AND 00001d07: DUP2 00001d08: MSTORE 00001d09: PUSH1 0x20 00001d0b: ADD 00001d0c: SWAP1 00001d0d: DUP2 00001d0e: MSTORE 00001d0f: PUSH1 0x20 00001d11: ADD 00001d12: PUSH1 0x00 00001d14: KECCAK256 00001d15: PUSH1 0x00 00001d17: PUSH2 0x0100 00001d1a: EXP 00001d1b: DUP2 00001d1c: SLOAD 00001d1d: DUP2 00001d1e: PUSH1 0xff 00001d20: MUL 00001d21: NOT 00001d22: AND 00001d23: SWAP1 00001d24: DUP4 00001d25: ISZERO 00001d26: ISZERO 00001d27: MUL 00001d28: OR 00001d29: SWAP1 00001d2a: SSTORE 00001d2b: POP 00001d2c: PUSH32 0xd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c 00001d4d: DUP2 00001d4e: PUSH1 0x40 00001d50: MLOAD 00001d51: DUP1 00001d52: DUP3 00001d53: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d68: AND 00001d69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d7e: AND 00001d7f: DUP2 00001d80: MSTORE 00001d81: PUSH1 0x20 00001d83: ADD 00001d84: SWAP2 00001d85: POP 00001d86: POP 00001d87: PUSH1 0x40 00001d89: MLOAD 00001d8a: DUP1 00001d8b: SWAP2 00001d8c: SUB 00001d8d: SWAP1 00001d8e: LOG1 00001d8f: POP 00001d90: JUMP 00001d91: JUMPDEST 00001d92: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001db3: DUP2 00001db4: JUMP 00001db5: JUMPDEST 00001db6: PUSH1 0x00 00001db8: DUP1 00001db9: SWAP1 00001dba: SLOAD 00001dbb: SWAP1 00001dbc: PUSH2 0x0100 00001dbf: EXP 00001dc0: SWAP1 00001dc1: DIV 00001dc2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dd7: AND 00001dd8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ded: AND 00001dee: CALLER 00001def: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e04: AND 00001e05: EQ 00001e06: ISZERO 00001e07: ISZERO 00001e08: PUSH2 0x1e10 00001e0b: JUMPI 00001e0c: PUSH1 0x00 00001e0e: DUP1 00001e0f: REVERT 00001e10: JUMPDEST 00001e11: PUSH1 0x00 00001e13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e28: AND 00001e29: DUP2 00001e2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e3f: AND 00001e40: EQ 00001e41: ISZERO 00001e42: ISZERO 00001e43: PUSH2 0x1e87 00001e46: JUMPI 00001e47: DUP1 00001e48: PUSH1 0x00 00001e4a: DUP1 00001e4b: PUSH2 0x0100 00001e4e: EXP 00001e4f: DUP2 00001e50: SLOAD 00001e51: DUP2 00001e52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e67: MUL 00001e68: NOT 00001e69: AND 00001e6a: SWAP1 00001e6b: DUP4 00001e6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e81: AND 00001e82: MUL 00001e83: OR 00001e84: SWAP1 00001e85: SSTORE 00001e86: POP 00001e87: JUMPDEST 00001e88: POP 00001e89: JUMP 00001e8a: JUMPDEST 00001e8b: PUSH1 0x00 00001e8d: DUP1 00001e8e: PUSH1 0x00 00001e90: SWAP1 00001e91: SLOAD 00001e92: SWAP1 00001e93: PUSH2 0x0100 00001e96: EXP 00001e97: SWAP1 00001e98: DIV 00001e99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001eae: AND 00001eaf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ec4: AND 00001ec5: CALLER 00001ec6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001edb: AND 00001edc: EQ 00001edd: ISZERO 00001ede: ISZERO 00001edf: PUSH2 0x1ee7 00001ee2: JUMPI 00001ee3: PUSH1 0x00 00001ee5: DUP1 00001ee6: REVERT 00001ee7: JUMPDEST 00001ee8: PUSH1 0x06 00001eea: PUSH1 0x00 00001eec: DUP4 00001eed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f02: AND 00001f03: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f18: AND 00001f19: DUP2 00001f1a: MSTORE 00001f1b: PUSH1 0x20 00001f1d: ADD 00001f1e: SWAP1 00001f1f: DUP2 00001f20: MSTORE 00001f21: PUSH1 0x20 00001f23: ADD 00001f24: PUSH1 0x00 00001f26: KECCAK256 00001f27: PUSH1 0x00 00001f29: SWAP1 00001f2a: SLOAD 00001f2b: SWAP1 00001f2c: PUSH2 0x0100 00001f2f: EXP 00001f30: SWAP1 00001f31: DIV 00001f32: PUSH1 0xff 00001f34: AND 00001f35: ISZERO 00001f36: ISZERO 00001f37: PUSH2 0x1f3f 00001f3a: JUMPI 00001f3b: PUSH1 0x00 00001f3d: DUP1 00001f3e: REVERT 00001f3f: JUMPDEST 00001f40: PUSH2 0x1f48 00001f43: DUP3 00001f44: PUSH2 0x1239 00001f47: JUMP 00001f48: JUMPDEST 00001f49: SWAP1 00001f4a: POP 00001f4b: PUSH1 0x00 00001f4d: PUSH1 0x02 00001f4f: PUSH1 0x00 00001f51: DUP5 00001f52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f67: AND 00001f68: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f7d: AND 00001f7e: DUP2 00001f7f: MSTORE 00001f80: PUSH1 0x20 00001f82: ADD 00001f83: SWAP1 00001f84: DUP2 00001f85: MSTORE 00001f86: PUSH1 0x20 00001f88: ADD 00001f89: PUSH1 0x00 00001f8b: KECCAK256 00001f8c: DUP2 00001f8d: SWAP1 00001f8e: SSTORE 00001f8f: POP 00001f90: DUP1 00001f91: PUSH1 0x01 00001f93: PUSH1 0x00 00001f95: DUP3 00001f96: DUP3 00001f97: SLOAD 00001f98: SUB 00001f99: SWAP3 00001f9a: POP 00001f9b: POP 00001f9c: DUP2 00001f9d: SWAP1 00001f9e: SSTORE 00001f9f: POP 00001fa0: PUSH32 0x61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c6 00001fc1: DUP3 00001fc2: DUP3 00001fc3: PUSH1 0x40 00001fc5: MLOAD 00001fc6: DUP1 00001fc7: DUP4 00001fc8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fdd: AND 00001fde: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ff3: AND 00001ff4: DUP2 00001ff5: MSTORE 00001ff6: PUSH1 0x20 00001ff8: ADD 00001ff9: DUP3 00001ffa: DUP2 00001ffb: MSTORE 00001ffc: PUSH1 0x20 00001ffe: ADD 00001fff: SWAP3 00002000: POP 00002001: POP 00002002: POP 00002003: PUSH1 0x40 00002005: MLOAD 00002006: DUP1 00002007: SWAP2 00002008: SUB 00002009: SWAP1 0000200a: LOG1 0000200b: POP 0000200c: POP 0000200d: JUMP 0000200e: JUMPDEST 0000200f: PUSH1 0x40 00002011: PUSH1 0x04 00002013: DUP2 00002014: ADD 00002015: PUSH1 0x00 00002017: CALLDATASIZE 00002018: SWAP1 00002019: POP 0000201a: LT 0000201b: ISZERO 0000201c: ISZERO 0000201d: ISZERO 0000201e: PUSH2 0x2026 00002021: JUMPI 00002022: PUSH1 0x00 00002024: DUP1 00002025: REVERT 00002026: JUMPDEST 00002027: PUSH1 0x00 00002029: DUP3 0000202a: EQ 0000202b: ISZERO 0000202c: DUP1 0000202d: ISZERO 0000202e: PUSH2 0x20b4 00002031: JUMPI 00002032: POP 00002033: PUSH1 0x00 00002035: PUSH1 0x05 00002037: PUSH1 0x00 00002039: CALLER 0000203a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000204f: AND 00002050: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002065: AND 00002066: DUP2 00002067: MSTORE 00002068: PUSH1 0x20 0000206a: ADD 0000206b: SWAP1 0000206c: DUP2 0000206d: MSTORE 0000206e: PUSH1 0x20 00002070: ADD 00002071: PUSH1 0x00 00002073: KECCAK256 00002074: PUSH1 0x00 00002076: DUP6 00002077: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000208c: AND 0000208d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020a2: AND 000020a3: DUP2 000020a4: MSTORE 000020a5: PUSH1 0x20 000020a7: ADD 000020a8: SWAP1 000020a9: DUP2 000020aa: MSTORE 000020ab: PUSH1 0x20 000020ad: ADD 000020ae: PUSH1 0x00 000020b0: KECCAK256 000020b1: SLOAD 000020b2: EQ 000020b3: ISZERO 000020b4: JUMPDEST 000020b5: ISZERO 000020b6: ISZERO 000020b7: ISZERO 000020b8: PUSH2 0x20c0 000020bb: JUMPI 000020bc: PUSH1 0x00 000020be: DUP1 000020bf: REVERT 000020c0: JUMPDEST 000020c1: DUP2 000020c2: PUSH1 0x05 000020c4: PUSH1 0x00 000020c6: CALLER 000020c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020dc: AND 000020dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020f2: AND 000020f3: DUP2 000020f4: MSTORE 000020f5: PUSH1 0x20 000020f7: ADD 000020f8: SWAP1 000020f9: DUP2 000020fa: MSTORE 000020fb: PUSH1 0x20 000020fd: ADD 000020fe: PUSH1 0x00 00002100: KECCAK256 00002101: PUSH1 0x00 00002103: DUP6 00002104: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002119: AND 0000211a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000212f: AND 00002130: DUP2 00002131: MSTORE 00002132: PUSH1 0x20 00002134: ADD 00002135: SWAP1 00002136: DUP2 00002137: MSTORE 00002138: PUSH1 0x20 0000213a: ADD 0000213b: PUSH1 0x00 0000213d: KECCAK256 0000213e: DUP2 0000213f: SWAP1 00002140: SSTORE 00002141: POP 00002142: DUP3 00002143: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002158: AND 00002159: CALLER 0000215a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000216f: AND 00002170: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00002191: DUP5 00002192: PUSH1 0x40 00002194: MLOAD 00002195: DUP1 00002196: DUP3 00002197: DUP2 00002198: MSTORE 00002199: PUSH1 0x20 0000219b: ADD 0000219c: SWAP2 0000219d: POP 0000219e: POP 0000219f: PUSH1 0x40 000021a1: MLOAD 000021a2: DUP1 000021a3: SWAP2 000021a4: SUB 000021a5: SWAP1 000021a6: LOG3 000021a7: POP 000021a8: POP 000021a9: POP 000021aa: JUMP 000021ab: JUMPDEST 000021ac: PUSH1 0x00 000021ae: DUP1 000021af: PUSH1 0x00 000021b1: PUSH1 0x60 000021b3: PUSH1 0x04 000021b5: DUP2 000021b6: ADD 000021b7: PUSH1 0x00 000021b9: CALLDATASIZE 000021ba: SWAP1 000021bb: POP 000021bc: LT 000021bd: ISZERO 000021be: ISZERO 000021bf: ISZERO 000021c0: PUSH2 0x21c8 000021c3: JUMPI 000021c4: PUSH1 0x00 000021c6: DUP1 000021c7: REVERT 000021c8: JUMPDEST 000021c9: PUSH1 0x05 000021cb: PUSH1 0x00 000021cd: DUP9 000021ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021e3: AND 000021e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021f9: AND 000021fa: DUP2 000021fb: MSTORE 000021fc: PUSH1 0x20 000021fe: ADD 000021ff: SWAP1 00002200: DUP2 00002201: MSTORE 00002202: PUSH1 0x20 00002204: ADD 00002205: PUSH1 0x00 00002207: KECCAK256 00002208: PUSH1 0x00 0000220a: CALLER 0000220b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002220: AND 00002221: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002236: AND 00002237: DUP2 00002238: MSTORE 00002239: PUSH1 0x20 0000223b: ADD 0000223c: SWAP1 0000223d: DUP2 0000223e: MSTORE 0000223f: PUSH1 0x20 00002241: ADD 00002242: PUSH1 0x00 00002244: KECCAK256 00002245: SLOAD 00002246: SWAP4 00002247: POP 00002248: PUSH2 0x2270 0000224b: PUSH2 0x2710 0000224e: PUSH2 0x2262 00002251: PUSH1 0x03 00002253: SLOAD 00002254: DUP9 00002255: PUSH2 0x2a03 00002258: SWAP1 00002259: SWAP2 0000225a: SWAP1 0000225b: PUSH4 0xffffffff 00002260: AND 00002261: JUMP 00002262: JUMPDEST 00002263: PUSH2 0x2ac5 00002266: SWAP1 00002267: SWAP2 00002268: SWAP1 00002269: PUSH4 0xffffffff 0000226e: AND 0000226f: JUMP 00002270: JUMPDEST 00002271: SWAP3 00002272: POP 00002273: PUSH1 0x04 00002275: SLOAD 00002276: DUP4 00002277: GT 00002278: ISZERO 00002279: PUSH2 0x2282 0000227c: JUMPI 0000227d: PUSH1 0x04 0000227f: SLOAD 00002280: SWAP3 00002281: POP 00002282: JUMPDEST 00002283: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000022a4: DUP5 000022a5: LT 000022a6: ISZERO 000022a7: PUSH2 0x233e 000022aa: JUMPI 000022ab: PUSH2 0x22bd 000022ae: DUP6 000022af: DUP6 000022b0: PUSH2 0x2ae0 000022b3: SWAP1 000022b4: SWAP2 000022b5: SWAP1 000022b6: PUSH4 0xffffffff 000022bb: AND 000022bc: JUMP 000022bd: JUMPDEST 000022be: PUSH1 0x05 000022c0: PUSH1 0x00 000022c2: DUP10 000022c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022d8: AND 000022d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022ee: AND 000022ef: DUP2 000022f0: MSTORE 000022f1: PUSH1 0x20 000022f3: ADD 000022f4: SWAP1 000022f5: DUP2 000022f6: MSTORE 000022f7: PUSH1 0x20 000022f9: ADD 000022fa: PUSH1 0x00 000022fc: KECCAK256 000022fd: PUSH1 0x00 000022ff: CALLER 00002300: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002315: AND 00002316: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000232b: AND 0000232c: DUP2 0000232d: MSTORE 0000232e: PUSH1 0x20 00002330: ADD 00002331: SWAP1 00002332: DUP2 00002333: MSTORE 00002334: PUSH1 0x20 00002336: ADD 00002337: PUSH1 0x00 00002339: KECCAK256 0000233a: DUP2 0000233b: SWAP1 0000233c: SSTORE 0000233d: POP 0000233e: JUMPDEST 0000233f: PUSH2 0x2351 00002342: DUP4 00002343: DUP7 00002344: PUSH2 0x2ae0 00002347: SWAP1 00002348: SWAP2 00002349: SWAP1 0000234a: PUSH4 0xffffffff 0000234f: AND 00002350: JUMP 00002351: JUMPDEST 00002352: SWAP2 00002353: POP 00002354: PUSH2 0x23a5 00002357: DUP6 00002358: PUSH1 0x02 0000235a: PUSH1 0x00 0000235c: DUP11 0000235d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002372: AND 00002373: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002388: AND 00002389: DUP2 0000238a: MSTORE 0000238b: PUSH1 0x20 0000238d: ADD 0000238e: SWAP1 0000238f: DUP2 00002390: MSTORE 00002391: PUSH1 0x20 00002393: ADD 00002394: PUSH1 0x00 00002396: KECCAK256 00002397: SLOAD 00002398: PUSH2 0x2ae0 0000239b: SWAP1 0000239c: SWAP2 0000239d: SWAP1 0000239e: PUSH4 0xffffffff 000023a3: AND 000023a4: JUMP 000023a5: JUMPDEST 000023a6: PUSH1 0x02 000023a8: PUSH1 0x00 000023aa: DUP10 000023ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023c0: AND 000023c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023d6: AND 000023d7: DUP2 000023d8: MSTORE 000023d9: PUSH1 0x20 000023db: ADD 000023dc: SWAP1 000023dd: DUP2 000023de: MSTORE 000023df: PUSH1 0x20 000023e1: ADD 000023e2: PUSH1 0x00 000023e4: KECCAK256 000023e5: DUP2 000023e6: SWAP1 000023e7: SSTORE 000023e8: POP 000023e9: PUSH2 0x243a 000023ec: DUP3 000023ed: PUSH1 0x02 000023ef: PUSH1 0x00 000023f1: DUP10 000023f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002407: AND 00002408: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000241d: AND 0000241e: DUP2 0000241f: MSTORE 00002420: PUSH1 0x20 00002422: ADD 00002423: SWAP1 00002424: DUP2 00002425: MSTORE 00002426: PUSH1 0x20 00002428: ADD 00002429: PUSH1 0x00 0000242b: KECCAK256 0000242c: SLOAD 0000242d: PUSH2 0x2af9 00002430: SWAP1 00002431: SWAP2 00002432: SWAP1 00002433: PUSH4 0xffffffff 00002438: AND 00002439: JUMP 0000243a: JUMPDEST 0000243b: PUSH1 0x02 0000243d: PUSH1 0x00 0000243f: DUP9 00002440: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002455: AND 00002456: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000246b: AND 0000246c: DUP2 0000246d: MSTORE 0000246e: PUSH1 0x20 00002470: ADD 00002471: SWAP1 00002472: DUP2 00002473: MSTORE 00002474: PUSH1 0x20 00002476: ADD 00002477: PUSH1 0x00 00002479: KECCAK256 0000247a: DUP2 0000247b: SWAP1 0000247c: SSTORE 0000247d: POP 0000247e: PUSH1 0x00 00002480: DUP4 00002481: GT 00002482: ISZERO 00002483: PUSH2 0x25e4 00002486: JUMPI 00002487: PUSH2 0x24f9 0000248a: DUP4 0000248b: PUSH1 0x02 0000248d: PUSH1 0x00 0000248f: DUP1 00002490: PUSH1 0x00 00002492: SWAP1 00002493: SLOAD 00002494: SWAP1 00002495: PUSH2 0x0100 00002498: EXP 00002499: SWAP1 0000249a: DIV 0000249b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024b0: AND 000024b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024c6: AND 000024c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024dc: AND 000024dd: DUP2 000024de: MSTORE 000024df: PUSH1 0x20 000024e1: ADD 000024e2: SWAP1 000024e3: DUP2 000024e4: MSTORE 000024e5: PUSH1 0x20 000024e7: ADD 000024e8: PUSH1 0x00 000024ea: KECCAK256 000024eb: SLOAD 000024ec: PUSH2 0x2af9 000024ef: SWAP1 000024f0: SWAP2 000024f1: SWAP1 000024f2: PUSH4 0xffffffff 000024f7: AND 000024f8: JUMP 000024f9: JUMPDEST 000024fa: PUSH1 0x02 000024fc: PUSH1 0x00 000024fe: DUP1 000024ff: PUSH1 0x00 00002501: SWAP1 00002502: SLOAD 00002503: SWAP1 00002504: PUSH2 0x0100 00002507: EXP 00002508: SWAP1 00002509: DIV 0000250a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000251f: AND 00002520: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002535: AND 00002536: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000254b: AND 0000254c: DUP2 0000254d: MSTORE 0000254e: PUSH1 0x20 00002550: ADD 00002551: SWAP1 00002552: DUP2 00002553: MSTORE 00002554: PUSH1 0x20 00002556: ADD 00002557: PUSH1 0x00 00002559: KECCAK256 0000255a: DUP2 0000255b: SWAP1 0000255c: SSTORE 0000255d: POP 0000255e: PUSH1 0x00 00002560: DUP1 00002561: SWAP1 00002562: SLOAD 00002563: SWAP1 00002564: PUSH2 0x0100 00002567: EXP 00002568: SWAP1 00002569: DIV 0000256a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000257f: AND 00002580: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002595: AND 00002596: DUP8 00002597: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025ac: AND 000025ad: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000025ce: DUP6 000025cf: PUSH1 0x40 000025d1: MLOAD 000025d2: DUP1 000025d3: DUP3 000025d4: DUP2 000025d5: MSTORE 000025d6: PUSH1 0x20 000025d8: ADD 000025d9: SWAP2 000025da: POP 000025db: POP 000025dc: PUSH1 0x40 000025de: MLOAD 000025df: DUP1 000025e0: SWAP2 000025e1: SUB 000025e2: SWAP1 000025e3: LOG3 000025e4: JUMPDEST 000025e5: DUP6 000025e6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025fb: AND 000025fc: DUP8 000025fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002612: AND 00002613: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00002634: DUP5 00002635: PUSH1 0x40 00002637: MLOAD 00002638: DUP1 00002639: DUP3 0000263a: DUP2 0000263b: MSTORE 0000263c: PUSH1 0x20 0000263e: ADD 0000263f: SWAP2 00002640: POP 00002641: POP 00002642: PUSH1 0x40 00002644: MLOAD 00002645: DUP1 00002646: SWAP2 00002647: SUB 00002648: SWAP1 00002649: LOG3 0000264a: POP 0000264b: POP 0000264c: POP 0000264d: POP 0000264e: POP 0000264f: POP 00002650: POP 00002651: JUMP 00002652: JUMPDEST 00002653: PUSH1 0x00 00002655: PUSH1 0x02 00002657: PUSH1 0x00 00002659: DUP4 0000265a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000266f: AND 00002670: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002685: AND 00002686: DUP2 00002687: MSTORE 00002688: PUSH1 0x20 0000268a: ADD 0000268b: SWAP1 0000268c: DUP2 0000268d: MSTORE 0000268e: PUSH1 0x20 00002690: ADD 00002691: PUSH1 0x00 00002693: KECCAK256 00002694: SLOAD 00002695: SWAP1 00002696: POP 00002697: SWAP2 00002698: SWAP1 00002699: POP 0000269a: JUMP 0000269b: JUMPDEST 0000269c: PUSH1 0x00 0000269e: DUP1 0000269f: PUSH1 0x40 000026a1: PUSH1 0x04 000026a3: DUP2 000026a4: ADD 000026a5: PUSH1 0x00 000026a7: CALLDATASIZE 000026a8: SWAP1 000026a9: POP 000026aa: LT 000026ab: ISZERO 000026ac: ISZERO 000026ad: ISZERO 000026ae: PUSH2 0x26b6 000026b1: JUMPI 000026b2: PUSH1 0x00 000026b4: DUP1 000026b5: REVERT 000026b6: JUMPDEST 000026b7: PUSH2 0x26df 000026ba: PUSH2 0x2710 000026bd: PUSH2 0x26d1 000026c0: PUSH1 0x03 000026c2: SLOAD 000026c3: DUP8 000026c4: PUSH2 0x2a03 000026c7: SWAP1 000026c8: SWAP2 000026c9: SWAP1 000026ca: PUSH4 0xffffffff 000026cf: AND 000026d0: JUMP 000026d1: JUMPDEST 000026d2: PUSH2 0x2ac5 000026d5: SWAP1 000026d6: SWAP2 000026d7: SWAP1 000026d8: PUSH4 0xffffffff 000026dd: AND 000026de: JUMP 000026df: JUMPDEST 000026e0: SWAP3 000026e1: POP 000026e2: PUSH1 0x04 000026e4: SLOAD 000026e5: DUP4 000026e6: GT 000026e7: ISZERO 000026e8: PUSH2 0x26f1 000026eb: JUMPI 000026ec: PUSH1 0x04 000026ee: SLOAD 000026ef: SWAP3 000026f0: POP 000026f1: JUMPDEST 000026f2: PUSH2 0x2704 000026f5: DUP4 000026f6: DUP6 000026f7: PUSH2 0x2ae0 000026fa: SWAP1 000026fb: SWAP2 000026fc: SWAP1 000026fd: PUSH4 0xffffffff 00002702: AND 00002703: JUMP 00002704: JUMPDEST 00002705: SWAP2 00002706: POP 00002707: PUSH2 0x2758 0000270a: DUP5 0000270b: PUSH1 0x02 0000270d: PUSH1 0x00 0000270f: CALLER 00002710: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002725: AND 00002726: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000273b: AND 0000273c: DUP2 0000273d: MSTORE 0000273e: PUSH1 0x20 00002740: ADD 00002741: SWAP1 00002742: DUP2 00002743: MSTORE 00002744: PUSH1 0x20 00002746: ADD 00002747: PUSH1 0x00 00002749: KECCAK256 0000274a: SLOAD 0000274b: PUSH2 0x2ae0 0000274e: SWAP1 0000274f: SWAP2 00002750: SWAP1 00002751: PUSH4 0xffffffff 00002756: AND 00002757: JUMP 00002758: JUMPDEST 00002759: PUSH1 0x02 0000275b: PUSH1 0x00 0000275d: CALLER 0000275e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002773: AND 00002774: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002789: AND 0000278a: DUP2 0000278b: MSTORE 0000278c: PUSH1 0x20 0000278e: ADD 0000278f: SWAP1 00002790: DUP2 00002791: MSTORE 00002792: PUSH1 0x20 00002794: ADD 00002795: PUSH1 0x00 00002797: KECCAK256 00002798: DUP2 00002799: SWAP1 0000279a: SSTORE 0000279b: POP 0000279c: PUSH2 0x27ed 0000279f: DUP3 000027a0: PUSH1 0x02 000027a2: PUSH1 0x00 000027a4: DUP9 000027a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027ba: AND 000027bb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027d0: AND 000027d1: DUP2 000027d2: MSTORE 000027d3: PUSH1 0x20 000027d5: ADD 000027d6: SWAP1 000027d7: DUP2 000027d8: MSTORE 000027d9: PUSH1 0x20 000027db: ADD 000027dc: PUSH1 0x00 000027de: KECCAK256 000027df: SLOAD 000027e0: PUSH2 0x2af9 000027e3: SWAP1 000027e4: SWAP2 000027e5: SWAP1 000027e6: PUSH4 0xffffffff 000027eb: AND 000027ec: JUMP 000027ed: JUMPDEST 000027ee: PUSH1 0x02 000027f0: PUSH1 0x00 000027f2: DUP8 000027f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002808: AND 00002809: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000281e: AND 0000281f: DUP2 00002820: MSTORE 00002821: PUSH1 0x20 00002823: ADD 00002824: SWAP1 00002825: DUP2 00002826: MSTORE 00002827: PUSH1 0x20 00002829: ADD 0000282a: PUSH1 0x00 0000282c: KECCAK256 0000282d: DUP2 0000282e: SWAP1 0000282f: SSTORE 00002830: POP 00002831: PUSH1 0x00 00002833: DUP4 00002834: GT 00002835: ISZERO 00002836: PUSH2 0x2997 00002839: JUMPI 0000283a: PUSH2 0x28ac 0000283d: DUP4 0000283e: PUSH1 0x02 00002840: PUSH1 0x00 00002842: DUP1 00002843: PUSH1 0x00 00002845: SWAP1 00002846: SLOAD 00002847: SWAP1 00002848: PUSH2 0x0100 0000284b: EXP 0000284c: SWAP1 0000284d: DIV 0000284e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002863: AND 00002864: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002879: AND 0000287a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000288f: AND 00002890: DUP2 00002891: MSTORE 00002892: PUSH1 0x20 00002894: ADD 00002895: SWAP1 00002896: DUP2 00002897: MSTORE 00002898: PUSH1 0x20 0000289a: ADD 0000289b: PUSH1 0x00 0000289d: KECCAK256 0000289e: SLOAD 0000289f: PUSH2 0x2af9 000028a2: SWAP1 000028a3: SWAP2 000028a4: SWAP1 000028a5: PUSH4 0xffffffff 000028aa: AND 000028ab: JUMP 000028ac: JUMPDEST 000028ad: PUSH1 0x02 000028af: PUSH1 0x00 000028b1: DUP1 000028b2: PUSH1 0x00 000028b4: SWAP1 000028b5: SLOAD 000028b6: SWAP1 000028b7: PUSH2 0x0100 000028ba: EXP 000028bb: SWAP1 000028bc: DIV 000028bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028d2: AND 000028d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028e8: AND 000028e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028fe: AND 000028ff: DUP2 00002900: MSTORE 00002901: PUSH1 0x20 00002903: ADD 00002904: SWAP1 00002905: DUP2 00002906: MSTORE 00002907: PUSH1 0x20 00002909: ADD 0000290a: PUSH1 0x00 0000290c: KECCAK256 0000290d: DUP2 0000290e: SWAP1 0000290f: SSTORE 00002910: POP 00002911: PUSH1 0x00 00002913: DUP1 00002914: SWAP1 00002915: SLOAD 00002916: SWAP1 00002917: PUSH2 0x0100 0000291a: EXP 0000291b: SWAP1 0000291c: DIV 0000291d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002932: AND 00002933: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002948: AND 00002949: CALLER 0000294a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000295f: AND 00002960: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00002981: DUP6 00002982: PUSH1 0x40 00002984: MLOAD 00002985: DUP1 00002986: DUP3 00002987: DUP2 00002988: MSTORE 00002989: PUSH1 0x20 0000298b: ADD 0000298c: SWAP2 0000298d: POP 0000298e: POP 0000298f: PUSH1 0x40 00002991: MLOAD 00002992: DUP1 00002993: SWAP2 00002994: SUB 00002995: SWAP1 00002996: LOG3 00002997: JUMPDEST 00002998: DUP5 00002999: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029ae: AND 000029af: CALLER 000029b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029c5: AND 000029c6: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000029e7: DUP5 000029e8: PUSH1 0x40 000029ea: MLOAD 000029eb: DUP1 000029ec: DUP3 000029ed: DUP2 000029ee: MSTORE 000029ef: PUSH1 0x20 000029f1: ADD 000029f2: SWAP2 000029f3: POP 000029f4: POP 000029f5: PUSH1 0x40 000029f7: MLOAD 000029f8: DUP1 000029f9: SWAP2 000029fa: SUB 000029fb: SWAP1 000029fc: LOG3 000029fd: POP 000029fe: POP 000029ff: POP 00002a00: POP 00002a01: POP 00002a02: JUMP 00002a03: JUMPDEST 00002a04: PUSH1 0x00 00002a06: DUP1 00002a07: PUSH1 0x00 00002a09: DUP5 00002a0a: EQ 00002a0b: ISZERO 00002a0c: PUSH2 0x2a18 00002a0f: JUMPI 00002a10: PUSH1 0x00 00002a12: SWAP2 00002a13: POP 00002a14: PUSH2 0x2a37 00002a17: JUMP 00002a18: JUMPDEST 00002a19: DUP3 00002a1a: DUP5 00002a1b: MUL 00002a1c: SWAP1 00002a1d: POP 00002a1e: DUP3 00002a1f: DUP5 00002a20: DUP3 00002a21: DUP2 00002a22: ISZERO 00002a23: ISZERO 00002a24: PUSH2 0x2a29 00002a27: JUMPI 00002a28: INVALID 00002a29: JUMPDEST 00002a2a: DIV 00002a2b: EQ 00002a2c: ISZERO 00002a2d: ISZERO 00002a2e: PUSH2 0x2a33 00002a31: JUMPI 00002a32: INVALID 00002a33: JUMPDEST 00002a34: DUP1 00002a35: SWAP2 00002a36: POP 00002a37: JUMPDEST 00002a38: POP 00002a39: SWAP3 00002a3a: SWAP2 00002a3b: POP 00002a3c: POP 00002a3d: JUMP 00002a3e: JUMPDEST 00002a3f: PUSH1 0x00 00002a41: PUSH1 0x05 00002a43: PUSH1 0x00 00002a45: DUP5 00002a46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a5b: AND 00002a5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a71: AND 00002a72: DUP2 00002a73: MSTORE 00002a74: PUSH1 0x20 00002a76: ADD 00002a77: SWAP1 00002a78: DUP2 00002a79: MSTORE 00002a7a: PUSH1 0x20 00002a7c: ADD 00002a7d: PUSH1 0x00 00002a7f: KECCAK256 00002a80: PUSH1 0x00 00002a82: DUP4 00002a83: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a98: AND 00002a99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002aae: AND 00002aaf: DUP2 00002ab0: MSTORE 00002ab1: PUSH1 0x20 00002ab3: ADD 00002ab4: SWAP1 00002ab5: DUP2 00002ab6: MSTORE 00002ab7: PUSH1 0x20 00002ab9: ADD 00002aba: PUSH1 0x00 00002abc: KECCAK256 00002abd: SLOAD 00002abe: SWAP1 00002abf: POP 00002ac0: SWAP3 00002ac1: SWAP2 00002ac2: POP 00002ac3: POP 00002ac4: JUMP 00002ac5: JUMPDEST 00002ac6: PUSH1 0x00 00002ac8: DUP1 00002ac9: DUP3 00002aca: DUP5 00002acb: DUP2 00002acc: ISZERO 00002acd: ISZERO 00002ace: PUSH2 0x2ad3 00002ad1: JUMPI 00002ad2: INVALID 00002ad3: JUMPDEST 00002ad4: DIV 00002ad5: SWAP1 00002ad6: POP 00002ad7: DUP1 00002ad8: SWAP2 00002ad9: POP 00002ada: POP 00002adb: SWAP3 00002adc: SWAP2 00002add: POP 00002ade: POP 00002adf: JUMP 00002ae0: JUMPDEST 00002ae1: PUSH1 0x00 00002ae3: DUP3 00002ae4: DUP3 00002ae5: GT 00002ae6: ISZERO 00002ae7: ISZERO 00002ae8: ISZERO 00002ae9: PUSH2 0x2aee 00002aec: JUMPI 00002aed: INVALID 00002aee: JUMPDEST 00002aef: DUP2 00002af0: DUP4 00002af1: SUB 00002af2: SWAP1 00002af3: POP 00002af4: SWAP3 00002af5: SWAP2 00002af6: POP 00002af7: POP 00002af8: JUMP 00002af9: JUMPDEST 00002afa: PUSH1 0x00 00002afc: DUP1 00002afd: DUP3 00002afe: DUP5 00002aff: ADD 00002b00: SWAP1 00002b01: POP 00002b02: DUP4 00002b03: DUP2 00002b04: LT 00002b05: ISZERO 00002b06: ISZERO 00002b07: ISZERO 00002b08: PUSH2 0x2b0d 00002b0b: JUMPI 00002b0c: INVALID 00002b0d: JUMPDEST 00002b0e: DUP1 00002b0f: SWAP2 00002b10: POP 00002b11: POP 00002b12: SWAP3 00002b13: SWAP2 00002b14: POP 00002b15: POP 00002b16: JUMP 00002b17: STOP 00002b18: LOG1 00002b19: PUSH6 0x627a7a723058 00002b20: KECCAK256 00002b21: PUSH5 0x5ee12d73db 00002b27: SELFBALANCE 00002b28: REVERT 00002b29: PUSH25 0xba77fa1f824c3c8f9184061b3b10386beb4dc9236abb280029
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x4a617e9bb1ccae3674a01971557f9e6fbd94c5cc51a33da75b6a4b8f19569d94
call_targets:
0xdac17f958d2ee523a2206206994597c13d831ec7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x4a617e9bb1ccae3674a01971557f9e6fbd94c5cc51a33da75b6a4b8f19569d94",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xdac17f958d2ee523a2206206994597c13d831ec7"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0753c30c",
"selector": "0x0753c30c",
"calldata_variants": [
"0x0753c30c",
"0x0753c30c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0e136b19",
"selector": "0x0e136b19",
"calldata_variants": [
"0x0e136b19",
"0x0e136b190000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ecb93c0",
"selector": "0x0ecb93c0",
"calldata_variants": [
"0x0ecb93c0",
"0x0ecb93c00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3230,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3736,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4217,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 6,
"guards_detected": [
{
"pc": 2703,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3341,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4390,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4993,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5847,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6076,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6579,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7345,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7662,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7877,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 6
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x4a617e9bb1ccae3674a01971557f9e6fbd94c5cc51a33da75b6a4b8f19569d94
call_targets:
0xdac17f958d2ee523a2206206994597c13d831ec7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x4a617e9bb1ccae3674a01971557f9e6fbd94c5cc51a33da75b6a4b8f19569d94",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xdac17f958d2ee523a2206206994597c13d831ec7"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0753c30c",
"selector": "0x0753c30c",
"calldata_variants": [
"0x0753c30c",
"0x0753c30c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0e136b19",
"selector": "0x0e136b19",
"calldata_variants": [
"0x0e136b19",
"0x0e136b190000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ecb93c0",
"selector": "0x0ecb93c0",
"calldata_variants": [
"0x0ecb93c0",
"0x0ecb93c00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3230,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3736,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4217,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 6,
"guards_detected": [
{
"pc": 2703,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3341,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4390,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4993,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5847,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6076,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6579,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7345,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7662,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7877,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| low | other | codex | Legacy forwarder lacks payload-size checks after deprecation | 65 | no | — |
viewevidence_json{
"evidence": "TetherToken.transfer and TetherToken.transferFrom omit onlyPayloadSize and directly forward to UpgradedStandardToken when deprecated, so msg.data length is not validated in the deprecated branch.",
"locations": [
"contracts/Contract.sol:336",
"contracts/Contract.sol:346"
],
"recommendation": "Add onlyPayloadSize(2*32) to TetherToken.transfer and onlyPayloadSize(3*32) to TetherToken.transferFrom (or perform an explicit msg.data.length check) before any forwarding logic, so the legacy forwarder enforces the same payload-size protection even after deprecation.",
"exploit_scenario": "Once deprecated is true, users may still interact with the legacy token address. Because transfer/transferFrom in the legacy contract do not enforce msg.data length in the deprecated branch, a caller can craft short calldata (classic short-address attack) that shifts the decoded parameters. Integrations that build calldata manually (e.g., exchange withdrawal systems) could be tricked into sending a larger amount or to a different address than intended while the call still succeeds on the upgraded contract."
}
|
| 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": 6
}
|