8330779e-3003-445a-bb0e-578b7883cb90
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 |
|---|---|---|---|---|
| 30448 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 110486 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 110487 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 110488 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 110489 | capability.graph | complete | 1 / 3 | 1 week ago |
| 110490 | detector.run | complete | 1 / 3 | 1 week ago |
| 110491 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1126542] OpenAI Codex v0.77.0 (research preview)
[codex:1126542] --------
[codex:1126542] workdir: /tmp/codex-multi-plp_szno
[codex:1126542] model: gpt-5.2-codex
[codex:1126542] provider: openai
[codex:1126542] approval: never
[codex:1126542] sandbox: read-only
[codex:1126542] reasoning effort: xhigh
[codex:1126542] reasoning summaries: auto
[codex:1126542] session id: 019b68c8-d47e-7283-a392-254c282aca62
[codex:1126542] --------
[codex:1126542] user
[codex:1126542] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1126542] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1126542] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1126542]
[codex:1126542] Scope rules:
[codex:1126542] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1126542] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1126542]
[codex:1126542] Output MUST be valid JSON matching the provided schema.
[codex:1126542] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1126542] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1126542]
[codex:1126542] Output constraints (IMPORTANT):
[codex:1126542] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1126542] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1126542] mcp startup: no servers
[codex:1126542]
[codex:1126542] thinking
[codex:1126542] **Listing audit bundle files**
[codex:1126542] exec
[codex:1126542] /bin/bash -lc ls in /tmp/codex-multi-plp_szno succeeded in 6ms:
[codex:1126542] AUDIT_BUNDLE.txt
[codex:1126542] codex-output-schema.json
[codex:1126542] contracts
[codex:1126542]
[codex:1126542] thinking
[codex:1126542] **Reviewing AUDIT_BUNDLE file**
[codex:1126542] exec
[codex:1126542] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-plp_szno succeeded in 5ms:
[codex:1126542] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1126542]
[codex:1126542] ================================================================================
[codex:1126542] FILE: contracts/@uniswap/lib/contracts/libraries/TransferHelper.sol
[codex:1126542] ================================================================================
[codex:1126542] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1126542]
[codex:1126542] pragma solidity >=0.6.0;
[codex:1126542]
[codex:1126542] // helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
[codex:1126542] library TransferHelper {
[codex:1126542] function safeApprove(
[codex:1126542] address token,
[codex:1126542] address to,
[codex:1126542] uint256 value
[codex:1126542] ) internal {
[codex:1126542] // bytes4(keccak256(bytes('approve(address,uint256)')));
[codex:1126542] (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
[codex:1126542] require(
[codex:1126542] success && (data.length == 0 || abi.decode(data, (bool))),
[codex:1126542]
[codex:1126542] thinking
[codex:1126542] **Analyzing FewWrappedToken for vulnerabilities**
[codex:1126542]
[codex:1126542] I'm auditing FewWrappedToken focusing on vulnerabilities like reentrancy, access control, and accounting mismatches. The main concern is undercollateralization due to fee-on-transfer tokens causing minted tokens to exceed actual holdings—this could disrupt redemption but may not be directly exploitable. I’m also noting missing pause enforcement on wrap/unwrap as a potential low-severity access control gap. I'll verify line locations using code searches to provide precise evidence in JSON output.
[codex:1126542] exec
[codex:1126542] /bin/bash -lc "rg -n \"wrapTo|unwrapTo|paused\\(\\)\" contracts/contracts/FewWrappedToken.sol" in /tmp/codex-multi-plp_szno succeeded in 8ms:
[codex:1126542] 41: require(!IFewFactory(factory).paused(), "CoreRef: Caller is paused");
[codex:1126542] 165: function wrapTo(uint256 amount, address to) public override returns (uint256) {
[codex:1126542] 174: return wrapTo(amount, msg.sender);
[codex:1126542] 180: function unwrapTo(uint256 amount, address to) public override returns (uint256) {
[codex:1126542] 189: return unwrapTo(amount, msg.sender);
[codex:1126542]
[codex:1126542] thinking
[codex:1126542] **Exploring line numbering for context**
[codex:1126542] exec
[codex:1126542] /bin/bash -lc "nl -ba contracts/contracts/FewWrappedToken.sol | sed -n '150,210p'" in /tmp/codex-multi-plp_szno succeeded in 6ms:
[codex:1126542] 150 /// @param account the account to burn from
[codex:1126542] 151 /// @param amount the amount to burn
[codex:1126542] 152 function burnFrom(address account, uint256 amount)
[codex:1126542] 153 public
[codex:1126542] 154 override
[codex:1126542] 155 onlyBurner
[codex:1126542] 156 whenNotPaused
[codex:1126542] 157 {
[codex:1126542] 158 _burn(account, amount);
[codex:1126542] 159 emit Burn(msg.sender, amount, account);
[codex:1126542] 160 }
[codex:1126542] 161
[codex:1126542] 162 /// @notice exchanges token to Few wrapped token
[codex:1126542] 163 /// @param amount the amount to wrap
[codex:1126542] 164 /// @param to wrapped token reciver address
[codex:1126542] 165 function wrapTo(uint256 amount, address to) public override returns (uint256) {
[codex:1126542] 166 require(amount > 0, "Few: can't wrap zero token");
[codex:1126542] 167 TransferHelper.safeTransferFrom(token, msg.sender, address(this), amount);
[codex:1126542] 168 _mint(to, amount);
[codex:1126542] 169 emit Wrap(msg.sender, amount, to);
[codex:1126542]
[codex:1126542] thinking
[codex:1126542] **Summarizing audit findings**
[codex:1126542]
[codex:1126542] I'm putting together a detailed JSON report identifying two issues: a medium-severity math bug with wrapping mint amounts ignoring fee-on-transfer or rebasing tokens, and a low-severity access control gap where the pause mechanism doesn't block user wrap/unwrap calls, potentially bypassing emergency controls. I'll carefully include evidence lines and recommendations in the JSON per the schema.
[codex:1126542] codex
[codex:1126542] {"no_findings":false,"summary":"Found 2 issues in FewWrappedToken: wrapping assumes full amount received (accounting risk) and pause does not cover wrap/unwrap flows.","findings":[{"severity":"medium","category":"math","title":"wrapTo mints based on requested amount, not actual tokens received","exploit_scenario":"If the underlying token is fee-on-transfer or rebasing, the contract may receive fewer tokens than `amount` but still mints `amount` wrapped tokens. This can make the wrapper undercollateralized; early redeemers can drain backing, leaving later holders unable to unwrap (unwrap reverts due to insufficient balance).","recommendation":"Compute the actual received amount using balanceBefore/balanceAfter and mint only that value, or explicitly reject fee-on-transfer/rebasing tokens in factory creation and documentation.","evidence":"wrapTo calls `TransferHelper.safeTransferFrom` and then `_mint(to, amount)` without checking the balance delta.","locations":["contracts/contracts/FewWrappedToken.sol:165","contracts/contracts/FewWrappedToken.sol:167","contracts/contracts/FewWrappedToken.sol:168"]},{"severity":"low","category":"access_control","title":"Pause mechanism does not apply to wrap/unwrap","exploit_scenario":"If the factory pauses during an incident, users can still call `wrapTo`/`unwrapTo` because these functions do not use `whenNotPaused`. This bypasses emergency controls and may allow continued minting or unwrapping when the system intended to halt activity.","recommendation":"Apply `whenNotPaused` to `wrapTo`/`unwrapTo` (and the public `wrap`/`unwrap` wrappers), or clearly document that pause is intended to affect only minter/burner roles.","evidence":"`whenNotPaused` modifier exists but is only used on mint/burnFrom; wrap/unwrap omit it.","locations":["contracts/contracts/FewWrappedToken.sol:39","contracts/contracts/FewWrappedToken.sol:165","contracts/contracts/FewWrappedToken.sol:180"]}]}
[codex:1126542] tokens used
[codex:1126542] 10,717
[codex:1126542] {"no_findings":false,"summary":"Found 2 issues in FewWrappedToken: wrapping assumes full amount received (accounting risk) and pause does not cover wrap/unwrap flows.","findings":[{"severity":"medium","category":"math","title":"wrapTo mints based on requested amount, not actual tokens received","exploit_scenario":"If the underlying token is fee-on-transfer or rebasing, the contract may receive fewer tokens than `amount` but still mints `amount` wrapped tokens. This can make the wrapper undercollateralized; early redeemers can drain backing, leaving later holders unable to unwrap (unwrap reverts due to insufficient balance).","recommendation":"Compute the actual received amount using balanceBefore/balanceAfter and mint only that value, or explicitly reject fee-on-transfer/rebasing tokens in factory creation and documentation.","evidence":"wrapTo calls `TransferHelper.safeTransferFrom` and then `_mint(to, amount)` without checking the balance delta.","locations":["contracts/contracts/FewWrappedToken.sol:165","contracts/contracts/FewWrappedToken.sol:167","contracts/contracts/FewWrappedToken.sol:168"]},{"severity":"low","category":"access_control","title":"Pause mechanism does not apply to wrap/unwrap","exploit_scenario":"If the factory pauses during an incident, users can still call `wrapTo`/`unwrapTo` because these functions do not use `whenNotPaused`. This bypasses emergency controls and may allow continued minting or unwrapping when the system intended to halt activity.","recommendation":"Apply `whenNotPaused` to `wrapTo`/`unwrapTo` (and the public `wrap`/`unwrap` wrappers), or clearly document that pause is intended to affect only minter/burner roles.","evidence":"`whenNotPaused` modifier exists but is only used on mint/burnFrom; wrap/unwrap omit it.","locations":["contracts/contracts/FewWrappedToken.sol:39","contracts/contracts/FewWrappedToken.sol:165","contracts/contracts/FewWrappedToken.sol:180"]}]}
{
"codex": {
"ran_at": "2025-12-29T06:27:42.049528+00:00",
"returncode": 0
},
"summary": "Found 2 issues in FewWrappedToken: wrapping assumes full amount received (accounting risk) and pause does not cover wrap/unwrap flows.",
"raw_final": {
"summary": "Found 2 issues in FewWrappedToken: wrapping assumes full amount received (accounting risk) and pause does not cover wrap/unwrap flows.",
"findings": [
{
"title": "wrapTo mints based on requested amount, not actual tokens received",
"category": "math",
"evidence": "wrapTo calls `TransferHelper.safeTransferFrom` and then `_mint(to, amount)` without checking the balance delta.",
"severity": "medium",
"locations": [
"contracts/contracts/FewWrappedToken.sol:165",
"contracts/contracts/FewWrappedToken.sol:167",
"contracts/contracts/FewWrappedToken.sol:168"
],
"recommendation": "Compute the actual received amount using balanceBefore/balanceAfter and mint only that value, or explicitly reject fee-on-transfer/rebasing tokens in factory creation and documentation.",
"exploit_scenario": "If the underlying token is fee-on-transfer or rebasing, the contract may receive fewer tokens than `amount` but still mints `amount` wrapped tokens. This can make the wrapper undercollateralized; early redeemers can drain backing, leaving later holders unable to unwrap (unwrap reverts due to insufficient balance)."
},
{
"title": "Pause mechanism does not apply to wrap/unwrap",
"category": "access_control",
"evidence": "`whenNotPaused` modifier exists but is only used on mint/burnFrom; wrap/unwrap omit it.",
"severity": "low",
"locations": [
"contracts/contracts/FewWrappedToken.sol:39",
"contracts/contracts/FewWrappedToken.sol:165",
"contracts/contracts/FewWrappedToken.sol:180"
],
"recommendation": "Apply `whenNotPaused` to `wrapTo`/`unwrapTo` (and the public `wrap`/`unwrap` wrappers), or clearly document that pause is intended to affect only minter/burner roles.",
"exploit_scenario": "If the factory pauses during an incident, users can still call `wrapTo`/`unwrapTo` because these functions do not use `whenNotPaused`. This bypasses emergency controls and may allow continued minting or unwrapping when the system intended to halt activity."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x0182 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x70a08231 00000026: GT 00000027: PUSH2 0x00d8 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xc45a0155 00000031: GT 00000032: PUSH2 0x008c 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xde0e9a3e 0000003c: GT 0000003d: PUSH2 0x0066 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xde0e9a3e 00000047: EQ 00000048: PUSH2 0x0550 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xea598cb0 00000052: EQ 00000053: PUSH2 0x056d 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xfc0c546a 0000005d: EQ 0000005e: PUSH2 0x058a 00000061: JUMPI 00000062: PUSH2 0x0182 00000065: JUMP 00000066: JUMPDEST 00000067: DUP1 00000068: PUSH4 0xc45a0155 0000006d: EQ 0000006e: PUSH2 0x0486 00000071: JUMPI 00000072: DUP1 00000073: PUSH4 0xd505accf 00000078: EQ 00000079: PUSH2 0x04b7 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0xdd62ed3e 00000083: EQ 00000084: PUSH2 0x0515 00000087: JUMPI 00000088: PUSH2 0x0182 0000008b: JUMP 0000008c: JUMPDEST 0000008d: DUP1 0000008e: PUSH4 0x7ecebe00 00000093: GT 00000094: PUSH2 0x00bd 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0x7ecebe00 0000009e: EQ 0000009f: PUSH2 0x0412 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0x95d89b41 000000a9: EQ 000000aa: PUSH2 0x0445 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0xa9059cbb 000000b4: EQ 000000b5: PUSH2 0x044d 000000b8: JUMPI 000000b9: PUSH2 0x0182 000000bc: JUMP 000000bd: JUMPDEST 000000be: DUP1 000000bf: PUSH4 0x70a08231 000000c4: EQ 000000c5: PUSH2 0x03a6 000000c8: JUMPI 000000c9: DUP1 000000ca: PUSH4 0x79cc6790 000000cf: EQ 000000d0: PUSH2 0x03d9 000000d3: JUMPI 000000d4: PUSH2 0x0182 000000d7: JUMP 000000d8: JUMPDEST 000000d9: DUP1 000000da: PUSH4 0x30adf81f 000000df: GT 000000e0: PUSH2 0x013a 000000e3: JUMPI 000000e4: DUP1 000000e5: PUSH4 0x40c10f19 000000ea: GT 000000eb: PUSH2 0x0114 000000ee: JUMPI 000000ef: DUP1 000000f0: PUSH4 0x40c10f19 000000f5: EQ 000000f6: PUSH2 0x0315 000000f9: JUMPI 000000fa: DUP1 000000fb: PUSH4 0x42966c68 00000100: EQ 00000101: PUSH2 0x0350 00000104: JUMPI 00000105: DUP1 00000106: PUSH4 0x5dbd6059 0000010b: EQ 0000010c: PUSH2 0x036d 0000010f: JUMPI 00000110: PUSH2 0x0182 00000113: JUMP 00000114: JUMPDEST 00000115: DUP1 00000116: PUSH4 0x30adf81f 0000011b: EQ 0000011c: PUSH2 0x02e7 0000011f: JUMPI 00000120: DUP1 00000121: PUSH4 0x313ce567 00000126: EQ 00000127: PUSH2 0x02ef 0000012a: JUMPI 0000012b: DUP1 0000012c: PUSH4 0x3644e515 00000131: EQ 00000132: PUSH2 0x030d 00000135: JUMPI 00000136: PUSH2 0x0182 00000139: JUMP 0000013a: JUMPDEST 0000013b: DUP1 0000013c: PUSH4 0x18160ddd 00000141: GT 00000142: PUSH2 0x016b 00000145: JUMPI 00000146: DUP1 00000147: PUSH4 0x18160ddd 0000014c: EQ 0000014d: PUSH2 0x0251 00000150: JUMPI 00000151: DUP1 00000152: PUSH4 0x23b872dd 00000157: EQ 00000158: PUSH2 0x026b 0000015b: JUMPI 0000015c: DUP1 0000015d: PUSH4 0x26599850 00000162: EQ 00000163: PUSH2 0x02ae 00000166: JUMPI 00000167: PUSH2 0x0182 0000016a: JUMP 0000016b: JUMPDEST 0000016c: DUP1 0000016d: PUSH4 0x06fdde03 00000172: EQ 00000173: PUSH2 0x0187 00000176: JUMPI 00000177: DUP1 00000178: PUSH4 0x095ea7b3 0000017d: EQ 0000017e: PUSH2 0x0204 00000181: JUMPI 00000182: JUMPDEST 00000183: PUSH1 0x00 00000185: DUP1 00000186: REVERT 00000187: JUMPDEST 00000188: PUSH2 0x018f 0000018b: PUSH2 0x0592 0000018e: JUMP 0000018f: JUMPDEST 00000190: PUSH1 0x40 00000192: DUP1 00000193: MLOAD 00000194: PUSH1 0x20 00000196: DUP1 00000197: DUP3 00000198: MSTORE 00000199: DUP4 0000019a: MLOAD 0000019b: DUP2 0000019c: DUP4 0000019d: ADD 0000019e: MSTORE 0000019f: DUP4 000001a0: MLOAD 000001a1: SWAP2 000001a2: SWAP3 000001a3: DUP4 000001a4: SWAP3 000001a5: SWAP1 000001a6: DUP4 000001a7: ADD 000001a8: SWAP2 000001a9: DUP6 000001aa: ADD 000001ab: SWAP1 000001ac: DUP1 000001ad: DUP4 000001ae: DUP4 000001af: PUSH1 0x00 000001b1: JUMPDEST 000001b2: DUP4 000001b3: DUP2 000001b4: LT 000001b5: ISZERO 000001b6: PUSH2 0x01c9 000001b9: JUMPI 000001ba: DUP2 000001bb: DUP2 000001bc: ADD 000001bd: MLOAD 000001be: DUP4 000001bf: DUP3 000001c0: ADD 000001c1: MSTORE 000001c2: PUSH1 0x20 000001c4: ADD 000001c5: PUSH2 0x01b1 000001c8: JUMP 000001c9: JUMPDEST 000001ca: POP 000001cb: POP 000001cc: POP 000001cd: POP 000001ce: SWAP1 000001cf: POP 000001d0: SWAP1 000001d1: DUP2 000001d2: ADD 000001d3: SWAP1 000001d4: PUSH1 0x1f 000001d6: AND 000001d7: DUP1 000001d8: ISZERO 000001d9: PUSH2 0x01f6 000001dc: JUMPI 000001dd: DUP1 000001de: DUP3 000001df: SUB 000001e0: DUP1 000001e1: MLOAD 000001e2: PUSH1 0x01 000001e4: DUP4 000001e5: PUSH1 0x20 000001e7: SUB 000001e8: PUSH2 0x0100 000001eb: EXP 000001ec: SUB 000001ed: NOT 000001ee: AND 000001ef: DUP2 000001f0: MSTORE 000001f1: PUSH1 0x20 000001f3: ADD 000001f4: SWAP2 000001f5: POP 000001f6: JUMPDEST 000001f7: POP 000001f8: SWAP3 000001f9: POP 000001fa: POP 000001fb: POP 000001fc: PUSH1 0x40 000001fe: MLOAD 000001ff: DUP1 00000200: SWAP2 00000201: SUB 00000202: SWAP1 00000203: RETURN 00000204: JUMPDEST 00000205: PUSH2 0x023d 00000208: PUSH1 0x04 0000020a: DUP1 0000020b: CALLDATASIZE 0000020c: SUB 0000020d: PUSH1 0x40 0000020f: DUP2 00000210: LT 00000211: ISZERO 00000212: PUSH2 0x021a 00000215: JUMPI 00000216: PUSH1 0x00 00000218: DUP1 00000219: REVERT 0000021a: JUMPDEST 0000021b: POP 0000021c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000231: DUP2 00000232: CALLDATALOAD 00000233: AND 00000234: SWAP1 00000235: PUSH1 0x20 00000237: ADD 00000238: CALLDATALOAD 00000239: PUSH2 0x063e 0000023c: JUMP 0000023d: JUMPDEST 0000023e: PUSH1 0x40 00000240: DUP1 00000241: MLOAD 00000242: SWAP2 00000243: ISZERO 00000244: ISZERO 00000245: DUP3 00000246: MSTORE 00000247: MLOAD 00000248: SWAP1 00000249: DUP2 0000024a: SWAP1 0000024b: SUB 0000024c: PUSH1 0x20 0000024e: ADD 0000024f: SWAP1 00000250: RETURN 00000251: JUMPDEST 00000252: PUSH2 0x0259 00000255: PUSH2 0x0655 00000258: JUMP 00000259: JUMPDEST 0000025a: PUSH1 0x40 0000025c: DUP1 0000025d: MLOAD 0000025e: SWAP2 0000025f: DUP3 00000260: MSTORE 00000261: MLOAD 00000262: SWAP1 00000263: DUP2 00000264: SWAP1 00000265: SUB 00000266: PUSH1 0x20 00000268: ADD 00000269: SWAP1 0000026a: RETURN 0000026b: JUMPDEST 0000026c: PUSH2 0x023d 0000026f: PUSH1 0x04 00000271: DUP1 00000272: CALLDATASIZE 00000273: SUB 00000274: PUSH1 0x60 00000276: DUP2 00000277: LT 00000278: ISZERO 00000279: PUSH2 0x0281 0000027c: JUMPI 0000027d: PUSH1 0x00 0000027f: DUP1 00000280: REVERT 00000281: JUMPDEST 00000282: POP 00000283: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000298: DUP2 00000299: CALLDATALOAD 0000029a: DUP2 0000029b: AND 0000029c: SWAP2 0000029d: PUSH1 0x20 0000029f: DUP2 000002a0: ADD 000002a1: CALLDATALOAD 000002a2: SWAP1 000002a3: SWAP2 000002a4: AND 000002a5: SWAP1 000002a6: PUSH1 0x40 000002a8: ADD 000002a9: CALLDATALOAD 000002aa: PUSH2 0x065b 000002ad: JUMP 000002ae: JUMPDEST 000002af: PUSH2 0x0259 000002b2: PUSH1 0x04 000002b4: DUP1 000002b5: CALLDATASIZE 000002b6: SUB 000002b7: PUSH1 0x40 000002b9: DUP2 000002ba: LT 000002bb: ISZERO 000002bc: PUSH2 0x02c4 000002bf: JUMPI 000002c0: PUSH1 0x00 000002c2: DUP1 000002c3: REVERT 000002c4: JUMPDEST 000002c5: POP 000002c6: DUP1 000002c7: CALLDATALOAD 000002c8: SWAP1 000002c9: PUSH1 0x20 000002cb: ADD 000002cc: CALLDATALOAD 000002cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002e2: AND 000002e3: PUSH2 0x073a 000002e6: JUMP 000002e7: JUMPDEST 000002e8: PUSH2 0x0259 000002eb: PUSH2 0x082d 000002ee: JUMP 000002ef: JUMPDEST 000002f0: PUSH2 0x02f7 000002f3: PUSH2 0x0851 000002f6: JUMP 000002f7: JUMPDEST 000002f8: PUSH1 0x40 000002fa: DUP1 000002fb: MLOAD 000002fc: PUSH1 0xff 000002fe: SWAP1 000002ff: SWAP3 00000300: AND 00000301: DUP3 00000302: MSTORE 00000303: MLOAD 00000304: SWAP1 00000305: DUP2 00000306: SWAP1 00000307: SUB 00000308: PUSH1 0x20 0000030a: ADD 0000030b: SWAP1 0000030c: RETURN 0000030d: JUMPDEST 0000030e: PUSH2 0x0259 00000311: PUSH2 0x085a 00000314: JUMP 00000315: JUMPDEST 00000316: PUSH2 0x034e 00000319: PUSH1 0x04 0000031b: DUP1 0000031c: CALLDATASIZE 0000031d: SUB 0000031e: PUSH1 0x40 00000320: DUP2 00000321: LT 00000322: ISZERO 00000323: PUSH2 0x032b 00000326: JUMPI 00000327: PUSH1 0x00 00000329: DUP1 0000032a: REVERT 0000032b: JUMPDEST 0000032c: POP 0000032d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000342: DUP2 00000343: CALLDATALOAD 00000344: AND 00000345: SWAP1 00000346: PUSH1 0x20 00000348: ADD 00000349: CALLDATALOAD 0000034a: PUSH2 0x0860 0000034d: JUMP 0000034e: JUMPDEST 0000034f: STOP 00000350: JUMPDEST 00000351: PUSH2 0x034e 00000354: PUSH1 0x04 00000356: DUP1 00000357: CALLDATASIZE 00000358: SUB 00000359: PUSH1 0x20 0000035b: DUP2 0000035c: LT 0000035d: ISZERO 0000035e: PUSH2 0x0366 00000361: JUMPI 00000362: PUSH1 0x00 00000364: DUP1 00000365: REVERT 00000366: JUMPDEST 00000367: POP 00000368: CALLDATALOAD 00000369: PUSH2 0x0b54 0000036c: JUMP 0000036d: JUMPDEST 0000036e: PUSH2 0x0259 00000371: PUSH1 0x04 00000373: DUP1 00000374: CALLDATASIZE 00000375: SUB 00000376: PUSH1 0x40 00000378: DUP2 00000379: LT 0000037a: ISZERO 0000037b: PUSH2 0x0383 0000037e: JUMPI 0000037f: PUSH1 0x00 00000381: DUP1 00000382: REVERT 00000383: JUMPDEST 00000384: POP 00000385: DUP1 00000386: CALLDATALOAD 00000387: SWAP1 00000388: PUSH1 0x20 0000038a: ADD 0000038b: CALLDATALOAD 0000038c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003a1: AND 000003a2: PUSH2 0x0b98 000003a5: JUMP 000003a6: JUMPDEST 000003a7: PUSH2 0x0259 000003aa: PUSH1 0x04 000003ac: DUP1 000003ad: CALLDATASIZE 000003ae: SUB 000003af: PUSH1 0x20 000003b1: DUP2 000003b2: LT 000003b3: ISZERO 000003b4: PUSH2 0x03bc 000003b7: JUMPI 000003b8: PUSH1 0x00 000003ba: DUP1 000003bb: REVERT 000003bc: JUMPDEST 000003bd: POP 000003be: CALLDATALOAD 000003bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003d4: AND 000003d5: PUSH2 0x0c74 000003d8: JUMP 000003d9: JUMPDEST 000003da: PUSH2 0x034e 000003dd: PUSH1 0x04 000003df: DUP1 000003e0: CALLDATASIZE 000003e1: SUB 000003e2: PUSH1 0x40 000003e4: DUP2 000003e5: LT 000003e6: ISZERO 000003e7: PUSH2 0x03ef 000003ea: JUMPI 000003eb: PUSH1 0x00 000003ed: DUP1 000003ee: REVERT 000003ef: JUMPDEST 000003f0: POP 000003f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000406: DUP2 00000407: CALLDATALOAD 00000408: AND 00000409: SWAP1 0000040a: PUSH1 0x20 0000040c: ADD 0000040d: CALLDATALOAD 0000040e: PUSH2 0x0c86 00000411: JUMP 00000412: JUMPDEST 00000413: PUSH2 0x0259 00000416: PUSH1 0x04 00000418: DUP1 00000419: CALLDATASIZE 0000041a: SUB 0000041b: PUSH1 0x20 0000041d: DUP2 0000041e: LT 0000041f: ISZERO 00000420: PUSH2 0x0428 00000423: JUMPI 00000424: PUSH1 0x00 00000426: DUP1 00000427: REVERT 00000428: JUMPDEST 00000429: POP 0000042a: CALLDATALOAD 0000042b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000440: AND 00000441: PUSH2 0x0f7a 00000444: JUMP 00000445: JUMPDEST 00000446: PUSH2 0x018f 00000449: PUSH2 0x0f8c 0000044c: JUMP 0000044d: JUMPDEST 0000044e: PUSH2 0x023d 00000451: PUSH1 0x04 00000453: DUP1 00000454: CALLDATASIZE 00000455: SUB 00000456: PUSH1 0x40 00000458: DUP2 00000459: LT 0000045a: ISZERO 0000045b: PUSH2 0x0463 0000045e: JUMPI 0000045f: PUSH1 0x00 00000461: DUP1 00000462: REVERT 00000463: JUMPDEST 00000464: POP 00000465: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000047a: DUP2 0000047b: CALLDATALOAD 0000047c: AND 0000047d: SWAP1 0000047e: PUSH1 0x20 00000480: ADD 00000481: CALLDATALOAD 00000482: PUSH2 0x1004 00000485: JUMP 00000486: JUMPDEST 00000487: PUSH2 0x048e 0000048a: PUSH2 0x1011 0000048d: JUMP 0000048e: JUMPDEST 0000048f: PUSH1 0x40 00000491: DUP1 00000492: MLOAD 00000493: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004a8: SWAP1 000004a9: SWAP3 000004aa: AND 000004ab: DUP3 000004ac: MSTORE 000004ad: MLOAD 000004ae: SWAP1 000004af: DUP2 000004b0: SWAP1 000004b1: SUB 000004b2: PUSH1 0x20 000004b4: ADD 000004b5: SWAP1 000004b6: RETURN 000004b7: JUMPDEST 000004b8: PUSH2 0x034e 000004bb: PUSH1 0x04 000004bd: DUP1 000004be: CALLDATASIZE 000004bf: SUB 000004c0: PUSH1 0xe0 000004c2: DUP2 000004c3: LT 000004c4: ISZERO 000004c5: PUSH2 0x04cd 000004c8: JUMPI 000004c9: PUSH1 0x00 000004cb: DUP1 000004cc: REVERT 000004cd: JUMPDEST 000004ce: POP 000004cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004e4: DUP2 000004e5: CALLDATALOAD 000004e6: DUP2 000004e7: AND 000004e8: SWAP2 000004e9: PUSH1 0x20 000004eb: DUP2 000004ec: ADD 000004ed: CALLDATALOAD 000004ee: SWAP1 000004ef: SWAP2 000004f0: AND 000004f1: SWAP1 000004f2: PUSH1 0x40 000004f4: DUP2 000004f5: ADD 000004f6: CALLDATALOAD 000004f7: SWAP1 000004f8: PUSH1 0x60 000004fa: DUP2 000004fb: ADD 000004fc: CALLDATALOAD 000004fd: SWAP1 000004fe: PUSH1 0xff 00000500: PUSH1 0x80 00000502: DUP3 00000503: ADD 00000504: CALLDATALOAD 00000505: AND 00000506: SWAP1 00000507: PUSH1 0xa0 00000509: DUP2 0000050a: ADD 0000050b: CALLDATALOAD 0000050c: SWAP1 0000050d: PUSH1 0xc0 0000050f: ADD 00000510: CALLDATALOAD 00000511: PUSH2 0x102d 00000514: JUMP 00000515: JUMPDEST 00000516: PUSH2 0x0259 00000519: PUSH1 0x04 0000051b: DUP1 0000051c: CALLDATASIZE 0000051d: SUB 0000051e: PUSH1 0x40 00000520: DUP2 00000521: LT 00000522: ISZERO 00000523: PUSH2 0x052b 00000526: JUMPI 00000527: PUSH1 0x00 00000529: DUP1 0000052a: REVERT 0000052b: JUMPDEST 0000052c: POP 0000052d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000542: DUP2 00000543: CALLDATALOAD 00000544: DUP2 00000545: AND 00000546: SWAP2 00000547: PUSH1 0x20 00000549: ADD 0000054a: CALLDATALOAD 0000054b: AND 0000054c: PUSH2 0x12f9 0000054f: JUMP 00000550: JUMPDEST 00000551: PUSH2 0x0259 00000554: PUSH1 0x04 00000556: DUP1 00000557: CALLDATASIZE 00000558: SUB 00000559: PUSH1 0x20 0000055b: DUP2 0000055c: LT 0000055d: ISZERO 0000055e: PUSH2 0x0566 00000561: JUMPI 00000562: PUSH1 0x00 00000564: DUP1 00000565: REVERT 00000566: JUMPDEST 00000567: POP 00000568: CALLDATALOAD 00000569: PUSH2 0x1316 0000056c: JUMP 0000056d: JUMPDEST 0000056e: PUSH2 0x0259 00000571: PUSH1 0x04 00000573: DUP1 00000574: CALLDATASIZE 00000575: SUB 00000576: PUSH1 0x20 00000578: DUP2 00000579: LT 0000057a: ISZERO 0000057b: PUSH2 0x0583 0000057e: JUMPI 0000057f: PUSH1 0x00 00000581: DUP1 00000582: REVERT 00000583: JUMPDEST 00000584: POP 00000585: CALLDATALOAD 00000586: PUSH2 0x1322 00000589: JUMP 0000058a: JUMPDEST 0000058b: PUSH2 0x048e 0000058e: PUSH2 0x132e 00000591: JUMP 00000592: JUMPDEST 00000593: PUSH1 0x00 00000595: DUP1 00000596: SLOAD 00000597: PUSH1 0x40 00000599: DUP1 0000059a: MLOAD 0000059b: PUSH1 0x20 0000059d: PUSH1 0x02 0000059f: PUSH1 0x01 000005a1: DUP6 000005a2: AND 000005a3: ISZERO 000005a4: PUSH2 0x0100 000005a7: MUL 000005a8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000005c9: ADD 000005ca: SWAP1 000005cb: SWAP5 000005cc: AND 000005cd: SWAP4 000005ce: SWAP1 000005cf: SWAP4 000005d0: DIV 000005d1: PUSH1 0x1f 000005d3: DUP2 000005d4: ADD 000005d5: DUP5 000005d6: SWAP1 000005d7: DIV 000005d8: DUP5 000005d9: MUL 000005da: DUP3 000005db: ADD 000005dc: DUP5 000005dd: ADD 000005de: SWAP1 000005df: SWAP3 000005e0: MSTORE 000005e1: DUP2 000005e2: DUP2 000005e3: MSTORE 000005e4: SWAP3 000005e5: SWAP2 000005e6: DUP4 000005e7: ADD 000005e8: DUP3 000005e9: DUP3 000005ea: DUP1 000005eb: ISZERO 000005ec: PUSH2 0x0636 000005ef: JUMPI 000005f0: DUP1 000005f1: PUSH1 0x1f 000005f3: LT 000005f4: PUSH2 0x060b 000005f7: JUMPI 000005f8: PUSH2 0x0100 000005fb: DUP1 000005fc: DUP4 000005fd: SLOAD 000005fe: DIV 000005ff: MUL 00000600: DUP4 00000601: MSTORE 00000602: SWAP2 00000603: PUSH1 0x20 00000605: ADD 00000606: SWAP2 00000607: PUSH2 0x0636 0000060a: JUMP 0000060b: JUMPDEST 0000060c: DUP3 0000060d: ADD 0000060e: SWAP2 0000060f: SWAP1 00000610: PUSH1 0x00 00000612: MSTORE 00000613: PUSH1 0x20 00000615: PUSH1 0x00 00000617: KECCAK256 00000618: SWAP1 00000619: JUMPDEST 0000061a: DUP2 0000061b: SLOAD 0000061c: DUP2 0000061d: MSTORE 0000061e: SWAP1 0000061f: PUSH1 0x01 00000621: ADD 00000622: SWAP1 00000623: PUSH1 0x20 00000625: ADD 00000626: DUP1 00000627: DUP4 00000628: GT 00000629: PUSH2 0x0619 0000062c: JUMPI 0000062d: DUP3 0000062e: SWAP1 0000062f: SUB 00000630: PUSH1 0x1f 00000632: AND 00000633: DUP3 00000634: ADD 00000635: SWAP2 00000636: JUMPDEST 00000637: POP 00000638: POP 00000639: POP 0000063a: POP 0000063b: POP 0000063c: DUP2 0000063d: JUMP 0000063e: JUMPDEST 0000063f: PUSH1 0x00 00000641: PUSH2 0x064b 00000644: CALLER 00000645: DUP5 00000646: DUP5 00000647: PUSH2 0x134a 0000064a: JUMP 0000064b: JUMPDEST 0000064c: POP 0000064d: PUSH1 0x01 0000064f: JUMPDEST 00000650: SWAP3 00000651: SWAP2 00000652: POP 00000653: POP 00000654: JUMP 00000655: JUMPDEST 00000656: PUSH1 0x03 00000658: SLOAD 00000659: DUP2 0000065a: JUMP 0000065b: JUMPDEST 0000065c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000671: DUP4 00000672: AND 00000673: PUSH1 0x00 00000675: SWAP1 00000676: DUP2 00000677: MSTORE 00000678: PUSH1 0x05 0000067a: PUSH1 0x20 0000067c: SWAP1 0000067d: DUP2 0000067e: MSTORE 0000067f: PUSH1 0x40 00000681: DUP1 00000682: DUP4 00000683: KECCAK256 00000684: CALLER 00000685: DUP5 00000686: MSTORE 00000687: SWAP1 00000688: SWAP2 00000689: MSTORE 0000068a: DUP2 0000068b: KECCAK256 0000068c: SLOAD 0000068d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000006ae: EQ 000006af: PUSH2 0x0725 000006b2: JUMPI 000006b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006c8: DUP5 000006c9: AND 000006ca: PUSH1 0x00 000006cc: SWAP1 000006cd: DUP2 000006ce: MSTORE 000006cf: PUSH1 0x05 000006d1: PUSH1 0x20 000006d3: SWAP1 000006d4: DUP2 000006d5: MSTORE 000006d6: PUSH1 0x40 000006d8: DUP1 000006d9: DUP4 000006da: KECCAK256 000006db: CALLER 000006dc: DUP5 000006dd: MSTORE 000006de: SWAP1 000006df: SWAP2 000006e0: MSTORE 000006e1: SWAP1 000006e2: KECCAK256 000006e3: SLOAD 000006e4: PUSH2 0x06f3 000006e7: SWAP1 000006e8: DUP4 000006e9: PUSH4 0xffffffff 000006ee: PUSH2 0x13b9 000006f1: AND 000006f2: JUMP 000006f3: JUMPDEST 000006f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000709: DUP6 0000070a: AND 0000070b: PUSH1 0x00 0000070d: SWAP1 0000070e: DUP2 0000070f: MSTORE 00000710: PUSH1 0x05 00000712: PUSH1 0x20 00000714: SWAP1 00000715: DUP2 00000716: MSTORE 00000717: PUSH1 0x40 00000719: DUP1 0000071a: DUP4 0000071b: KECCAK256 0000071c: CALLER 0000071d: DUP5 0000071e: MSTORE 0000071f: SWAP1 00000720: SWAP2 00000721: MSTORE 00000722: SWAP1 00000723: KECCAK256 00000724: SSTORE 00000725: JUMPDEST 00000726: PUSH2 0x0730 00000729: DUP5 0000072a: DUP5 0000072b: DUP5 0000072c: PUSH2 0x142b 0000072f: JUMP 00000730: JUMPDEST 00000731: POP 00000732: PUSH1 0x01 00000734: SWAP4 00000735: SWAP3 00000736: POP 00000737: POP 00000738: POP 00000739: JUMP 0000073a: JUMPDEST 0000073b: PUSH1 0x00 0000073d: DUP1 0000073e: DUP4 0000073f: GT 00000740: PUSH2 0x07aa 00000743: JUMPI 00000744: PUSH1 0x40 00000746: DUP1 00000747: MLOAD 00000748: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000769: DUP2 0000076a: MSTORE 0000076b: PUSH1 0x20 0000076d: PUSH1 0x04 0000076f: DUP3 00000770: ADD 00000771: MSTORE 00000772: PUSH1 0x1a 00000774: PUSH1 0x24 00000776: DUP3 00000777: ADD 00000778: MSTORE 00000779: PUSH32 0x4665773a2063616e27742077726170207a65726f20746f6b656e000000000000 0000079a: PUSH1 0x44 0000079c: DUP3 0000079d: ADD 0000079e: MSTORE 0000079f: SWAP1 000007a0: MLOAD 000007a1: SWAP1 000007a2: DUP2 000007a3: SWAP1 000007a4: SUB 000007a5: PUSH1 0x64 000007a7: ADD 000007a8: SWAP1 000007a9: REVERT 000007aa: JUMPDEST 000007ab: PUSH1 0x09 000007ad: SLOAD 000007ae: PUSH2 0x07cf 000007b1: SWAP1 000007b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007c7: AND 000007c8: CALLER 000007c9: ADDRESS 000007ca: DUP7 000007cb: PUSH2 0x150c 000007ce: JUMP 000007cf: JUMPDEST 000007d0: PUSH2 0x07d9 000007d3: DUP3 000007d4: DUP5 000007d5: PUSH2 0x16dc 000007d8: JUMP 000007d9: JUMPDEST 000007da: PUSH1 0x40 000007dc: DUP1 000007dd: MLOAD 000007de: DUP5 000007df: DUP2 000007e0: MSTORE 000007e1: SWAP1 000007e2: MLOAD 000007e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007f8: DUP5 000007f9: AND 000007fa: SWAP2 000007fb: CALLER 000007fc: SWAP2 000007fd: PUSH32 0xeb5580a0908e96b78bdcb1a3c5638793b491a6073c3ff56061a069cb20581773 0000081e: SWAP2 0000081f: DUP2 00000820: SWAP1 00000821: SUB 00000822: PUSH1 0x20 00000824: ADD 00000825: SWAP1 00000826: LOG3 00000827: POP 00000828: SWAP1 00000829: SWAP2 0000082a: SWAP1 0000082b: POP 0000082c: JUMP 0000082d: JUMPDEST 0000082e: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 0000084f: DUP2 00000850: JUMP 00000851: JUMPDEST 00000852: PUSH1 0x02 00000854: SLOAD 00000855: PUSH1 0xff 00000857: AND 00000858: DUP2 00000859: JUMP 0000085a: JUMPDEST 0000085b: PUSH1 0x06 0000085d: SLOAD 0000085e: DUP2 0000085f: JUMP 00000860: JUMPDEST 00000861: PUSH1 0x08 00000863: PUSH1 0x00 00000865: SWAP1 00000866: SLOAD 00000867: SWAP1 00000868: PUSH2 0x0100 0000086b: EXP 0000086c: SWAP1 0000086d: DIV 0000086e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000883: AND 00000884: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000899: AND 0000089a: PUSH4 0xf2f4eb26 0000089f: PUSH1 0x40 000008a1: MLOAD 000008a2: DUP2 000008a3: PUSH4 0xffffffff 000008a8: AND 000008a9: PUSH1 0xe0 000008ab: SHL 000008ac: DUP2 000008ad: MSTORE 000008ae: PUSH1 0x04 000008b0: ADD 000008b1: PUSH1 0x20 000008b3: PUSH1 0x40 000008b5: MLOAD 000008b6: DUP1 000008b7: DUP4 000008b8: SUB 000008b9: DUP2 000008ba: DUP7 000008bb: DUP1 000008bc: EXTCODESIZE 000008bd: ISZERO 000008be: DUP1 000008bf: ISZERO 000008c0: PUSH2 0x08c8 000008c3: JUMPI 000008c4: PUSH1 0x00 000008c6: DUP1 000008c7: REVERT 000008c8: JUMPDEST 000008c9: POP 000008ca: GAS 000008cb: STATICCALL 000008cc: ISZERO 000008cd: DUP1 000008ce: ISZERO 000008cf: PUSH2 0x08dc 000008d2: JUMPI 000008d3: RETURNDATASIZE 000008d4: PUSH1 0x00 000008d6: DUP1 000008d7: RETURNDATACOPY 000008d8: RETURNDATASIZE 000008d9: PUSH1 0x00 000008db: REVERT 000008dc: JUMPDEST 000008dd: POP 000008de: POP 000008df: POP 000008e0: POP 000008e1: PUSH1 0x40 000008e3: MLOAD 000008e4: RETURNDATASIZE 000008e5: PUSH1 0x20 000008e7: DUP2 000008e8: LT 000008e9: ISZERO 000008ea: PUSH2 0x08f2 000008ed: JUMPI 000008ee: PUSH1 0x00 000008f0: DUP1 000008f1: REVERT 000008f2: JUMPDEST 000008f3: POP 000008f4: MLOAD 000008f5: PUSH1 0x40 000008f7: DUP1 000008f8: MLOAD 000008f9: PUSH32 0xaa271e1a00000000000000000000000000000000000000000000000000000000 0000091a: DUP2 0000091b: MSTORE 0000091c: CALLER 0000091d: PUSH1 0x04 0000091f: DUP3 00000920: ADD 00000921: MSTORE 00000922: SWAP1 00000923: MLOAD 00000924: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000939: SWAP1 0000093a: SWAP3 0000093b: AND 0000093c: SWAP2 0000093d: PUSH4 0xaa271e1a 00000942: SWAP2 00000943: PUSH1 0x24 00000945: DUP1 00000946: DUP3 00000947: ADD 00000948: SWAP3 00000949: PUSH1 0x20 0000094b: SWAP3 0000094c: SWAP1 0000094d: SWAP2 0000094e: SWAP1 0000094f: DUP3 00000950: SWAP1 00000951: SUB 00000952: ADD 00000953: DUP2 00000954: DUP7 00000955: DUP1 00000956: EXTCODESIZE 00000957: ISZERO 00000958: DUP1 00000959: ISZERO 0000095a: PUSH2 0x0962 0000095d: JUMPI 0000095e: PUSH1 0x00 00000960: DUP1 00000961: REVERT 00000962: JUMPDEST 00000963: POP 00000964: GAS 00000965: STATICCALL 00000966: ISZERO 00000967: DUP1 00000968: ISZERO 00000969: PUSH2 0x0976 0000096c: JUMPI 0000096d: RETURNDATASIZE 0000096e: PUSH1 0x00 00000970: DUP1 00000971: RETURNDATACOPY 00000972: RETURNDATASIZE 00000973: PUSH1 0x00 00000975: REVERT 00000976: JUMPDEST 00000977: POP 00000978: POP 00000979: POP 0000097a: POP 0000097b: PUSH1 0x40 0000097d: MLOAD 0000097e: RETURNDATASIZE 0000097f: PUSH1 0x20 00000981: DUP2 00000982: LT 00000983: ISZERO 00000984: PUSH2 0x098c 00000987: JUMPI 00000988: PUSH1 0x00 0000098a: DUP1 0000098b: REVERT 0000098c: JUMPDEST 0000098d: POP 0000098e: MLOAD 0000098f: PUSH2 0x09f9 00000992: JUMPI 00000993: PUSH1 0x40 00000995: DUP1 00000996: MLOAD 00000997: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000009b8: DUP2 000009b9: MSTORE 000009ba: PUSH1 0x20 000009bc: PUSH1 0x04 000009be: DUP3 000009bf: ADD 000009c0: MSTORE 000009c1: PUSH1 0x1f 000009c3: PUSH1 0x24 000009c5: DUP3 000009c6: ADD 000009c7: MSTORE 000009c8: PUSH32 0x436f72655265663a2043616c6c6572206973206e6f742061206d696e74657200 000009e9: PUSH1 0x44 000009eb: DUP3 000009ec: ADD 000009ed: MSTORE 000009ee: SWAP1 000009ef: MLOAD 000009f0: SWAP1 000009f1: DUP2 000009f2: SWAP1 000009f3: SUB 000009f4: PUSH1 0x64 000009f6: ADD 000009f7: SWAP1 000009f8: REVERT 000009f9: JUMPDEST 000009fa: PUSH1 0x08 000009fc: PUSH1 0x00 000009fe: SWAP1 000009ff: SLOAD 00000a00: SWAP1 00000a01: PUSH2 0x0100 00000a04: EXP 00000a05: SWAP1 00000a06: DIV 00000a07: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a1c: AND 00000a1d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a32: AND 00000a33: PUSH4 0x5c975abb 00000a38: PUSH1 0x40 00000a3a: MLOAD 00000a3b: DUP2 00000a3c: PUSH4 0xffffffff 00000a41: AND 00000a42: PUSH1 0xe0 00000a44: SHL 00000a45: DUP2 00000a46: MSTORE 00000a47: PUSH1 0x04 00000a49: ADD 00000a4a: PUSH1 0x20 00000a4c: PUSH1 0x40 00000a4e: MLOAD 00000a4f: DUP1 00000a50: DUP4 00000a51: SUB 00000a52: DUP2 00000a53: DUP7 00000a54: DUP1 00000a55: EXTCODESIZE 00000a56: ISZERO 00000a57: DUP1 00000a58: ISZERO 00000a59: PUSH2 0x0a61 00000a5c: JUMPI 00000a5d: PUSH1 0x00 00000a5f: DUP1 00000a60: REVERT 00000a61: JUMPDEST 00000a62: POP 00000a63: GAS 00000a64: STATICCALL 00000a65: ISZERO 00000a66: DUP1 00000a67: ISZERO 00000a68: PUSH2 0x0a75 00000a6b: JUMPI 00000a6c: RETURNDATASIZE 00000a6d: PUSH1 0x00 00000a6f: DUP1 00000a70: RETURNDATACOPY 00000a71: RETURNDATASIZE 00000a72: PUSH1 0x00 00000a74: REVERT 00000a75: JUMPDEST 00000a76: POP 00000a77: POP 00000a78: POP 00000a79: POP 00000a7a: PUSH1 0x40 00000a7c: MLOAD 00000a7d: RETURNDATASIZE 00000a7e: PUSH1 0x20 00000a80: DUP2 00000a81: LT 00000a82: ISZERO 00000a83: PUSH2 0x0a8b 00000a86: JUMPI 00000a87: PUSH1 0x00 00000a89: DUP1 00000a8a: REVERT 00000a8b: JUMPDEST 00000a8c: POP 00000a8d: MLOAD 00000a8e: ISZERO 00000a8f: PUSH2 0x0af9 00000a92: JUMPI 00000a93: PUSH1 0x40 00000a95: DUP1 00000a96: MLOAD 00000a97: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000ab8: DUP2 00000ab9: MSTORE 00000aba: PUSH1 0x20 00000abc: PUSH1 0x04 00000abe: DUP3 00000abf: ADD 00000ac0: MSTORE 00000ac1: PUSH1 0x19 00000ac3: PUSH1 0x24 00000ac5: DUP3 00000ac6: ADD 00000ac7: MSTORE 00000ac8: PUSH32 0x436f72655265663a2043616c6c65722069732070617573656400000000000000 00000ae9: PUSH1 0x44 00000aeb: DUP3 00000aec: ADD 00000aed: MSTORE 00000aee: SWAP1 00000aef: MLOAD 00000af0: SWAP1 00000af1: DUP2 00000af2: SWAP1 00000af3: SUB 00000af4: PUSH1 0x64 00000af6: ADD 00000af7: SWAP1 00000af8: REVERT 00000af9: JUMPDEST 00000afa: PUSH2 0x0b03 00000afd: DUP3 00000afe: DUP3 00000aff: PUSH2 0x16dc 00000b02: JUMP 00000b03: JUMPDEST 00000b04: PUSH1 0x40 00000b06: DUP1 00000b07: MLOAD 00000b08: DUP3 00000b09: DUP2 00000b0a: MSTORE 00000b0b: SWAP1 00000b0c: MLOAD 00000b0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b22: DUP5 00000b23: AND 00000b24: SWAP2 00000b25: CALLER 00000b26: SWAP2 00000b27: PUSH32 0xbcad3d7d3dfccb90d49c6063bf70f828901fefc88937d90af74e58e6e55bc39d 00000b48: SWAP2 00000b49: DUP2 00000b4a: SWAP1 00000b4b: SUB 00000b4c: PUSH1 0x20 00000b4e: ADD 00000b4f: SWAP1 00000b50: LOG3 00000b51: POP 00000b52: POP 00000b53: JUMP 00000b54: JUMPDEST 00000b55: PUSH2 0x0b5e 00000b58: CALLER 00000b59: DUP3 00000b5a: PUSH2 0x178d 00000b5d: JUMP 00000b5e: JUMPDEST 00000b5f: PUSH1 0x40 00000b61: DUP1 00000b62: MLOAD 00000b63: DUP3 00000b64: DUP2 00000b65: MSTORE 00000b66: SWAP1 00000b67: MLOAD 00000b68: CALLER 00000b69: SWAP2 00000b6a: DUP3 00000b6b: SWAP2 00000b6c: PUSH32 0xdbdf9b8e4b75e75b162d151ec8fc7f0561cabab5fcccfa2600be62223e4300c4 00000b8d: SWAP2 00000b8e: DUP2 00000b8f: SWAP1 00000b90: SUB 00000b91: PUSH1 0x20 00000b93: ADD 00000b94: SWAP1 00000b95: LOG3 00000b96: POP 00000b97: JUMP 00000b98: JUMPDEST 00000b99: PUSH1 0x00 00000b9b: DUP1 00000b9c: DUP4 00000b9d: GT 00000b9e: PUSH2 0x0bf2 00000ba1: JUMPI 00000ba2: PUSH1 0x40 00000ba4: MLOAD 00000ba5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000bc6: DUP2 00000bc7: MSTORE 00000bc8: PUSH1 0x04 00000bca: ADD 00000bcb: DUP1 00000bcc: DUP1 00000bcd: PUSH1 0x20 00000bcf: ADD 00000bd0: DUP3 00000bd1: DUP2 00000bd2: SUB 00000bd3: DUP3 00000bd4: MSTORE 00000bd5: PUSH1 0x23 00000bd7: DUP2 00000bd8: MSTORE 00000bd9: PUSH1 0x20 00000bdb: ADD 00000bdc: DUP1 00000bdd: PUSH2 0x1abc 00000be0: PUSH1 0x23 00000be2: SWAP2 00000be3: CODECOPY 00000be4: PUSH1 0x40 00000be6: ADD 00000be7: SWAP2 00000be8: POP 00000be9: POP 00000bea: PUSH1 0x40 00000bec: MLOAD 00000bed: DUP1 00000bee: SWAP2 00000bef: SUB 00000bf0: SWAP1 00000bf1: REVERT 00000bf2: JUMPDEST 00000bf3: PUSH2 0x0bfc 00000bf6: CALLER 00000bf7: DUP5 00000bf8: PUSH2 0x178d 00000bfb: JUMP 00000bfc: JUMPDEST 00000bfd: PUSH1 0x09 00000bff: SLOAD 00000c00: PUSH2 0x0c20 00000c03: SWAP1 00000c04: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c19: AND 00000c1a: DUP4 00000c1b: DUP6 00000c1c: PUSH2 0x1851 00000c1f: JUMP 00000c20: JUMPDEST 00000c21: PUSH1 0x40 00000c23: DUP1 00000c24: MLOAD 00000c25: DUP5 00000c26: DUP2 00000c27: MSTORE 00000c28: SWAP1 00000c29: MLOAD 00000c2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c3f: DUP5 00000c40: AND 00000c41: SWAP2 00000c42: CALLER 00000c43: SWAP2 00000c44: PUSH32 0x12d6424519838e57637c6db9df31af32d7926ff0a53dd37007c191d0fe302818 00000c65: SWAP2 00000c66: DUP2 00000c67: SWAP1 00000c68: SUB 00000c69: PUSH1 0x20 00000c6b: ADD 00000c6c: SWAP1 00000c6d: LOG3 00000c6e: POP 00000c6f: SWAP1 00000c70: SWAP2 00000c71: SWAP1 00000c72: POP 00000c73: JUMP 00000c74: JUMPDEST 00000c75: PUSH1 0x04 00000c77: PUSH1 0x20 00000c79: MSTORE 00000c7a: PUSH1 0x00 00000c7c: SWAP1 00000c7d: DUP2 00000c7e: MSTORE 00000c7f: PUSH1 0x40 00000c81: SWAP1 00000c82: KECCAK256 00000c83: SLOAD 00000c84: DUP2 00000c85: JUMP 00000c86: JUMPDEST 00000c87: PUSH1 0x08 00000c89: PUSH1 0x00 00000c8b: SWAP1 00000c8c: SLOAD 00000c8d: SWAP1 00000c8e: PUSH2 0x0100 00000c91: EXP 00000c92: SWAP1 00000c93: DIV 00000c94: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ca9: AND 00000caa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cbf: AND 00000cc0: PUSH4 0xf2f4eb26 00000cc5: PUSH1 0x40 00000cc7: MLOAD 00000cc8: DUP2 00000cc9: PUSH4 0xffffffff 00000cce: AND 00000ccf: PUSH1 0xe0 00000cd1: SHL 00000cd2: DUP2 00000cd3: MSTORE 00000cd4: PUSH1 0x04 00000cd6: ADD 00000cd7: PUSH1 0x20 00000cd9: PUSH1 0x40 00000cdb: MLOAD 00000cdc: DUP1 00000cdd: DUP4 00000cde: SUB 00000cdf: DUP2 00000ce0: DUP7 00000ce1: DUP1 00000ce2: EXTCODESIZE 00000ce3: ISZERO 00000ce4: DUP1 00000ce5: ISZERO 00000ce6: PUSH2 0x0cee 00000ce9: JUMPI 00000cea: PUSH1 0x00 00000cec: DUP1 00000ced: REVERT 00000cee: JUMPDEST 00000cef: POP 00000cf0: GAS 00000cf1: STATICCALL 00000cf2: ISZERO 00000cf3: DUP1 00000cf4: ISZERO 00000cf5: PUSH2 0x0d02 00000cf8: JUMPI 00000cf9: RETURNDATASIZE 00000cfa: PUSH1 0x00 00000cfc: DUP1 00000cfd: RETURNDATACOPY 00000cfe: RETURNDATASIZE 00000cff: PUSH1 0x00 00000d01: REVERT 00000d02: JUMPDEST 00000d03: POP 00000d04: POP 00000d05: POP 00000d06: POP 00000d07: PUSH1 0x40 00000d09: MLOAD 00000d0a: RETURNDATASIZE 00000d0b: PUSH1 0x20 00000d0d: DUP2 00000d0e: LT 00000d0f: ISZERO 00000d10: PUSH2 0x0d18 00000d13: JUMPI 00000d14: PUSH1 0x00 00000d16: DUP1 00000d17: REVERT 00000d18: JUMPDEST 00000d19: POP 00000d1a: MLOAD 00000d1b: PUSH1 0x40 00000d1d: DUP1 00000d1e: MLOAD 00000d1f: PUSH32 0x4334614a00000000000000000000000000000000000000000000000000000000 00000d40: DUP2 00000d41: MSTORE 00000d42: CALLER 00000d43: PUSH1 0x04 00000d45: DUP3 00000d46: ADD 00000d47: MSTORE 00000d48: SWAP1 00000d49: MLOAD 00000d4a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d5f: SWAP1 00000d60: SWAP3 00000d61: AND 00000d62: SWAP2 00000d63: PUSH4 0x4334614a 00000d68: SWAP2 00000d69: PUSH1 0x24 00000d6b: DUP1 00000d6c: DUP3 00000d6d: ADD 00000d6e: SWAP3 00000d6f: PUSH1 0x20 00000d71: SWAP3 00000d72: SWAP1 00000d73: SWAP2 00000d74: SWAP1 00000d75: DUP3 00000d76: SWAP1 00000d77: SUB 00000d78: ADD 00000d79: DUP2 00000d7a: DUP7 00000d7b: DUP1 00000d7c: EXTCODESIZE 00000d7d: ISZERO 00000d7e: DUP1 00000d7f: ISZERO 00000d80: PUSH2 0x0d88 00000d83: JUMPI 00000d84: PUSH1 0x00 00000d86: DUP1 00000d87: REVERT 00000d88: JUMPDEST 00000d89: POP 00000d8a: GAS 00000d8b: STATICCALL 00000d8c: ISZERO 00000d8d: DUP1 00000d8e: ISZERO 00000d8f: PUSH2 0x0d9c 00000d92: JUMPI 00000d93: RETURNDATASIZE 00000d94: PUSH1 0x00 00000d96: DUP1 00000d97: RETURNDATACOPY 00000d98: RETURNDATASIZE 00000d99: PUSH1 0x00 00000d9b: REVERT 00000d9c: JUMPDEST 00000d9d: POP 00000d9e: POP 00000d9f: POP 00000da0: POP 00000da1: PUSH1 0x40 00000da3: MLOAD 00000da4: RETURNDATASIZE 00000da5: PUSH1 0x20 00000da7: DUP2 00000da8: LT 00000da9: ISZERO 00000daa: PUSH2 0x0db2 00000dad: JUMPI 00000dae: PUSH1 0x00 00000db0: DUP1 00000db1: REVERT 00000db2: JUMPDEST 00000db3: POP 00000db4: MLOAD 00000db5: PUSH2 0x0e1f 00000db8: JUMPI 00000db9: PUSH1 0x40 00000dbb: DUP1 00000dbc: MLOAD 00000dbd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000dde: DUP2 00000ddf: MSTORE 00000de0: PUSH1 0x20 00000de2: PUSH1 0x04 00000de4: DUP3 00000de5: ADD 00000de6: MSTORE 00000de7: PUSH1 0x1f 00000de9: PUSH1 0x24 00000deb: DUP3 00000dec: ADD 00000ded: MSTORE 00000dee: PUSH32 0x436f72655265663a2043616c6c6572206973206e6f742061206275726e657200 00000e0f: PUSH1 0x44 00000e11: DUP3 00000e12: ADD 00000e13: MSTORE 00000e14: SWAP1 00000e15: MLOAD 00000e16: SWAP1 00000e17: DUP2 00000e18: SWAP1 00000e19: SUB 00000e1a: PUSH1 0x64 00000e1c: ADD 00000e1d: SWAP1 00000e1e: REVERT 00000e1f: JUMPDEST 00000e20: PUSH1 0x08 00000e22: PUSH1 0x00 00000e24: SWAP1 00000e25: SLOAD 00000e26: SWAP1 00000e27: PUSH2 0x0100 00000e2a: EXP 00000e2b: SWAP1 00000e2c: DIV 00000e2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e42: AND 00000e43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e58: AND 00000e59: PUSH4 0x5c975abb 00000e5e: PUSH1 0x40 00000e60: MLOAD 00000e61: DUP2 00000e62: PUSH4 0xffffffff 00000e67: AND 00000e68: PUSH1 0xe0 00000e6a: SHL 00000e6b: DUP2 00000e6c: MSTORE 00000e6d: PUSH1 0x04 00000e6f: ADD 00000e70: PUSH1 0x20 00000e72: PUSH1 0x40 00000e74: MLOAD 00000e75: DUP1 00000e76: DUP4 00000e77: SUB 00000e78: DUP2 00000e79: DUP7 00000e7a: DUP1 00000e7b: EXTCODESIZE 00000e7c: ISZERO 00000e7d: DUP1 00000e7e: ISZERO 00000e7f: PUSH2 0x0e87 00000e82: JUMPI 00000e83: PUSH1 0x00 00000e85: DUP1 00000e86: REVERT 00000e87: JUMPDEST 00000e88: POP 00000e89: GAS 00000e8a: STATICCALL 00000e8b: ISZERO 00000e8c: DUP1 00000e8d: ISZERO 00000e8e: PUSH2 0x0e9b 00000e91: JUMPI 00000e92: RETURNDATASIZE 00000e93: PUSH1 0x00 00000e95: DUP1 00000e96: RETURNDATACOPY 00000e97: RETURNDATASIZE 00000e98: PUSH1 0x00 00000e9a: REVERT 00000e9b: JUMPDEST 00000e9c: POP 00000e9d: POP 00000e9e: POP 00000e9f: POP 00000ea0: PUSH1 0x40 00000ea2: MLOAD 00000ea3: RETURNDATASIZE 00000ea4: PUSH1 0x20 00000ea6: DUP2 00000ea7: LT 00000ea8: ISZERO 00000ea9: PUSH2 0x0eb1 00000eac: JUMPI 00000ead: PUSH1 0x00 00000eaf: DUP1 00000eb0: REVERT 00000eb1: JUMPDEST 00000eb2: POP 00000eb3: MLOAD 00000eb4: ISZERO 00000eb5: PUSH2 0x0f1f 00000eb8: JUMPI 00000eb9: PUSH1 0x40 00000ebb: DUP1 00000ebc: MLOAD 00000ebd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000ede: DUP2 00000edf: MSTORE 00000ee0: PUSH1 0x20 00000ee2: PUSH1 0x04 00000ee4: DUP3 00000ee5: ADD 00000ee6: MSTORE 00000ee7: PUSH1 0x19 00000ee9: PUSH1 0x24 00000eeb: DUP3 00000eec: ADD 00000eed: MSTORE 00000eee: PUSH32 0x436f72655265663a2043616c6c65722069732070617573656400000000000000 00000f0f: PUSH1 0x44 00000f11: DUP3 00000f12: ADD 00000f13: MSTORE 00000f14: SWAP1 00000f15: MLOAD 00000f16: SWAP1 00000f17: DUP2 00000f18: SWAP1 00000f19: SUB 00000f1a: PUSH1 0x64 00000f1c: ADD 00000f1d: SWAP1 00000f1e: REVERT 00000f1f: JUMPDEST 00000f20: PUSH2 0x0f29 00000f23: DUP3 00000f24: DUP3 00000f25: PUSH2 0x178d 00000f28: JUMP 00000f29: JUMPDEST 00000f2a: PUSH1 0x40 00000f2c: DUP1 00000f2d: MLOAD 00000f2e: DUP3 00000f2f: DUP2 00000f30: MSTORE 00000f31: SWAP1 00000f32: MLOAD 00000f33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f48: DUP5 00000f49: AND 00000f4a: SWAP2 00000f4b: CALLER 00000f4c: SWAP2 00000f4d: PUSH32 0xdbdf9b8e4b75e75b162d151ec8fc7f0561cabab5fcccfa2600be62223e4300c4 00000f6e: SWAP2 00000f6f: DUP2 00000f70: SWAP1 00000f71: SUB 00000f72: PUSH1 0x20 00000f74: ADD 00000f75: SWAP1 00000f76: LOG3 00000f77: POP 00000f78: POP 00000f79: JUMP 00000f7a: JUMPDEST 00000f7b: PUSH1 0x07 00000f7d: PUSH1 0x20 00000f7f: MSTORE 00000f80: PUSH1 0x00 00000f82: SWAP1 00000f83: DUP2 00000f84: MSTORE 00000f85: PUSH1 0x40 00000f87: SWAP1 00000f88: KECCAK256 00000f89: SLOAD 00000f8a: DUP2 00000f8b: JUMP 00000f8c: JUMPDEST 00000f8d: PUSH1 0x01 00000f8f: DUP1 00000f90: SLOAD 00000f91: PUSH1 0x40 00000f93: DUP1 00000f94: MLOAD 00000f95: PUSH1 0x20 00000f97: PUSH1 0x02 00000f99: DUP5 00000f9a: DUP7 00000f9b: AND 00000f9c: ISZERO 00000f9d: PUSH2 0x0100 00000fa0: MUL 00000fa1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000fc2: ADD 00000fc3: SWAP1 00000fc4: SWAP5 00000fc5: AND 00000fc6: SWAP4 00000fc7: SWAP1 00000fc8: SWAP4 00000fc9: DIV 00000fca: PUSH1 0x1f 00000fcc: DUP2 00000fcd: ADD 00000fce: DUP5 00000fcf: SWAP1 00000fd0: DIV 00000fd1: DUP5 00000fd2: MUL 00000fd3: DUP3 00000fd4: ADD 00000fd5: DUP5 00000fd6: ADD 00000fd7: SWAP1 00000fd8: SWAP3 00000fd9: MSTORE 00000fda: DUP2 00000fdb: DUP2 00000fdc: MSTORE 00000fdd: SWAP3 00000fde: SWAP2 00000fdf: DUP4 00000fe0: ADD 00000fe1: DUP3 00000fe2: DUP3 00000fe3: DUP1 00000fe4: ISZERO 00000fe5: PUSH2 0x0636 00000fe8: JUMPI 00000fe9: DUP1 00000fea: PUSH1 0x1f 00000fec: LT 00000fed: PUSH2 0x060b 00000ff0: JUMPI 00000ff1: PUSH2 0x0100 00000ff4: DUP1 00000ff5: DUP4 00000ff6: SLOAD 00000ff7: DIV 00000ff8: MUL 00000ff9: DUP4 00000ffa: MSTORE 00000ffb: SWAP2 00000ffc: PUSH1 0x20 00000ffe: ADD 00000fff: SWAP2 00001000: PUSH2 0x0636 00001003: JUMP 00001004: JUMPDEST 00001005: PUSH1 0x00 00001007: PUSH2 0x064b 0000100a: CALLER 0000100b: DUP5 0000100c: DUP5 0000100d: PUSH2 0x142b 00001010: JUMP 00001011: JUMPDEST 00001012: PUSH1 0x08 00001014: SLOAD 00001015: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000102a: AND 0000102b: DUP2 0000102c: JUMP 0000102d: JUMPDEST 0000102e: TIMESTAMP 0000102f: DUP5 00001030: LT 00001031: ISZERO 00001032: PUSH2 0x109c 00001035: JUMPI 00001036: PUSH1 0x40 00001038: DUP1 00001039: MLOAD 0000103a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000105b: DUP2 0000105c: MSTORE 0000105d: PUSH1 0x20 0000105f: PUSH1 0x04 00001061: DUP3 00001062: ADD 00001063: MSTORE 00001064: PUSH1 0x0c 00001066: PUSH1 0x24 00001068: DUP3 00001069: ADD 0000106a: MSTORE 0000106b: PUSH32 0x4665773a20455850495245440000000000000000000000000000000000000000 0000108c: PUSH1 0x44 0000108e: DUP3 0000108f: ADD 00001090: MSTORE 00001091: SWAP1 00001092: MLOAD 00001093: SWAP1 00001094: DUP2 00001095: SWAP1 00001096: SUB 00001097: PUSH1 0x64 00001099: ADD 0000109a: SWAP1 0000109b: REVERT 0000109c: JUMPDEST 0000109d: PUSH1 0x06 0000109f: SLOAD 000010a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010b5: DUP1 000010b6: DUP10 000010b7: AND 000010b8: PUSH1 0x00 000010ba: DUP2 000010bb: DUP2 000010bc: MSTORE 000010bd: PUSH1 0x07 000010bf: PUSH1 0x20 000010c1: SWAP1 000010c2: DUP2 000010c3: MSTORE 000010c4: PUSH1 0x40 000010c6: DUP1 000010c7: DUP4 000010c8: KECCAK256 000010c9: DUP1 000010ca: SLOAD 000010cb: PUSH1 0x01 000010cd: DUP1 000010ce: DUP3 000010cf: ADD 000010d0: SWAP1 000010d1: SWAP3 000010d2: SSTORE 000010d3: DUP3 000010d4: MLOAD 000010d5: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 000010f6: DUP2 000010f7: DUP7 000010f8: ADD 000010f9: MSTORE 000010fa: DUP1 000010fb: DUP5 000010fc: ADD 000010fd: SWAP7 000010fe: SWAP1 000010ff: SWAP7 00001100: MSTORE 00001101: SWAP6 00001102: DUP14 00001103: AND 00001104: PUSH1 0x60 00001106: DUP7 00001107: ADD 00001108: MSTORE 00001109: PUSH1 0x80 0000110b: DUP6 0000110c: ADD 0000110d: DUP13 0000110e: SWAP1 0000110f: MSTORE 00001110: PUSH1 0xa0 00001112: DUP6 00001113: ADD 00001114: SWAP6 00001115: SWAP1 00001116: SWAP6 00001117: MSTORE 00001118: PUSH1 0xc0 0000111a: DUP1 0000111b: DUP6 0000111c: ADD 0000111d: DUP12 0000111e: SWAP1 0000111f: MSTORE 00001120: DUP2 00001121: MLOAD 00001122: DUP1 00001123: DUP7 00001124: SUB 00001125: SWAP1 00001126: SWAP2 00001127: ADD 00001128: DUP2 00001129: MSTORE 0000112a: PUSH1 0xe0 0000112c: DUP6 0000112d: ADD 0000112e: DUP3 0000112f: MSTORE 00001130: DUP1 00001131: MLOAD 00001132: SWAP1 00001133: DUP4 00001134: ADD 00001135: KECCAK256 00001136: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 00001157: PUSH2 0x0100 0000115a: DUP7 0000115b: ADD 0000115c: MSTORE 0000115d: PUSH2 0x0102 00001160: DUP6 00001161: ADD 00001162: SWAP7 00001163: SWAP1 00001164: SWAP7 00001165: MSTORE 00001166: PUSH2 0x0122 00001169: DUP1 0000116a: DUP6 0000116b: ADD 0000116c: SWAP7 0000116d: SWAP1 0000116e: SWAP7 0000116f: MSTORE 00001170: DUP1 00001171: MLOAD 00001172: DUP1 00001173: DUP6 00001174: SUB 00001175: SWAP1 00001176: SWAP7 00001177: ADD 00001178: DUP7 00001179: MSTORE 0000117a: PUSH2 0x0142 0000117d: DUP5 0000117e: ADD 0000117f: DUP1 00001180: DUP3 00001181: MSTORE 00001182: DUP7 00001183: MLOAD 00001184: SWAP7 00001185: DUP4 00001186: ADD 00001187: SWAP7 00001188: SWAP1 00001189: SWAP7 0000118a: KECCAK256 0000118b: SWAP6 0000118c: DUP4 0000118d: SWAP1 0000118e: MSTORE 0000118f: PUSH2 0x0162 00001192: DUP5 00001193: ADD 00001194: DUP1 00001195: DUP3 00001196: MSTORE 00001197: DUP7 00001198: SWAP1 00001199: MSTORE 0000119a: PUSH1 0xff 0000119c: DUP10 0000119d: AND 0000119e: PUSH2 0x0182 000011a1: DUP6 000011a2: ADD 000011a3: MSTORE 000011a4: PUSH2 0x01a2 000011a7: DUP5 000011a8: ADD 000011a9: DUP9 000011aa: SWAP1 000011ab: MSTORE 000011ac: PUSH2 0x01c2 000011af: DUP5 000011b0: ADD 000011b1: DUP8 000011b2: SWAP1 000011b3: MSTORE 000011b4: MLOAD 000011b5: SWAP2 000011b6: SWAP4 000011b7: SWAP3 000011b8: PUSH2 0x01e2 000011bb: DUP1 000011bc: DUP3 000011bd: ADD 000011be: SWAP4 000011bf: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000011e0: DUP2 000011e1: ADD 000011e2: SWAP3 000011e3: DUP2 000011e4: SWAP1 000011e5: SUB 000011e6: SWAP1 000011e7: SWAP2 000011e8: ADD 000011e9: SWAP1 000011ea: DUP6 000011eb: GAS 000011ec: STATICCALL 000011ed: ISZERO 000011ee: DUP1 000011ef: ISZERO 000011f0: PUSH2 0x11fd 000011f3: JUMPI 000011f4: RETURNDATASIZE 000011f5: PUSH1 0x00 000011f7: DUP1 000011f8: RETURNDATACOPY 000011f9: RETURNDATASIZE 000011fa: PUSH1 0x00 000011fc: REVERT 000011fd: JUMPDEST 000011fe: POP 000011ff: POP 00001200: PUSH1 0x40 00001202: MLOAD 00001203: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001224: ADD 00001225: MLOAD 00001226: SWAP2 00001227: POP 00001228: POP 00001229: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000123e: DUP2 0000123f: AND 00001240: ISZERO 00001241: DUP1 00001242: ISZERO 00001243: SWAP1 00001244: PUSH2 0x1278 00001247: JUMPI 00001248: POP 00001249: DUP9 0000124a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000125f: AND 00001260: DUP2 00001261: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001276: AND 00001277: EQ 00001278: JUMPDEST 00001279: PUSH2 0x12e3 0000127c: JUMPI 0000127d: PUSH1 0x40 0000127f: DUP1 00001280: MLOAD 00001281: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000012a2: DUP2 000012a3: MSTORE 000012a4: PUSH1 0x20 000012a6: PUSH1 0x04 000012a8: DUP3 000012a9: ADD 000012aa: MSTORE 000012ab: PUSH1 0x16 000012ad: PUSH1 0x24 000012af: DUP3 000012b0: ADD 000012b1: MSTORE 000012b2: PUSH32 0x4665773a20494e56414c49445f5349474e415455524500000000000000000000 000012d3: PUSH1 0x44 000012d5: DUP3 000012d6: ADD 000012d7: MSTORE 000012d8: SWAP1 000012d9: MLOAD 000012da: SWAP1 000012db: DUP2 000012dc: SWAP1 000012dd: SUB 000012de: PUSH1 0x64 000012e0: ADD 000012e1: SWAP1 000012e2: REVERT 000012e3: JUMPDEST 000012e4: PUSH2 0x12ee 000012e7: DUP10 000012e8: DUP10 000012e9: DUP10 000012ea: PUSH2 0x134a 000012ed: JUMP 000012ee: JUMPDEST 000012ef: POP 000012f0: POP 000012f1: POP 000012f2: POP 000012f3: POP 000012f4: POP 000012f5: POP 000012f6: POP 000012f7: POP 000012f8: JUMP 000012f9: JUMPDEST 000012fa: PUSH1 0x05 000012fc: PUSH1 0x20 000012fe: SWAP1 000012ff: DUP2 00001300: MSTORE 00001301: PUSH1 0x00 00001303: SWAP3 00001304: DUP4 00001305: MSTORE 00001306: PUSH1 0x40 00001308: DUP1 00001309: DUP5 0000130a: KECCAK256 0000130b: SWAP1 0000130c: SWAP2 0000130d: MSTORE 0000130e: SWAP1 0000130f: DUP3 00001310: MSTORE 00001311: SWAP1 00001312: KECCAK256 00001313: SLOAD 00001314: DUP2 00001315: JUMP 00001316: JUMPDEST 00001317: PUSH1 0x00 00001319: PUSH2 0x064f 0000131c: DUP3 0000131d: CALLER 0000131e: PUSH2 0x0b98 00001321: JUMP 00001322: JUMPDEST 00001323: PUSH1 0x00 00001325: PUSH2 0x064f 00001328: DUP3 00001329: CALLER 0000132a: PUSH2 0x073a 0000132d: JUMP 0000132e: JUMPDEST 0000132f: PUSH1 0x09 00001331: SLOAD 00001332: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001347: AND 00001348: DUP2 00001349: JUMP 0000134a: JUMPDEST 0000134b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001360: DUP1 00001361: DUP5 00001362: AND 00001363: PUSH1 0x00 00001365: DUP2 00001366: DUP2 00001367: MSTORE 00001368: PUSH1 0x05 0000136a: PUSH1 0x20 0000136c: SWAP1 0000136d: DUP2 0000136e: MSTORE 0000136f: PUSH1 0x40 00001371: DUP1 00001372: DUP4 00001373: KECCAK256 00001374: SWAP5 00001375: DUP8 00001376: AND 00001377: DUP1 00001378: DUP5 00001379: MSTORE 0000137a: SWAP5 0000137b: DUP3 0000137c: MSTORE 0000137d: SWAP2 0000137e: DUP3 0000137f: SWAP1 00001380: KECCAK256 00001381: DUP6 00001382: SWAP1 00001383: SSTORE 00001384: DUP2 00001385: MLOAD 00001386: DUP6 00001387: DUP2 00001388: MSTORE 00001389: SWAP2 0000138a: MLOAD 0000138b: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 000013ac: SWAP3 000013ad: DUP2 000013ae: SWAP1 000013af: SUB 000013b0: SWAP1 000013b1: SWAP2 000013b2: ADD 000013b3: SWAP1 000013b4: LOG3 000013b5: POP 000013b6: POP 000013b7: POP 000013b8: JUMP 000013b9: JUMPDEST 000013ba: DUP1 000013bb: DUP3 000013bc: SUB 000013bd: DUP3 000013be: DUP2 000013bf: GT 000013c0: ISZERO 000013c1: PUSH2 0x064f 000013c4: JUMPI 000013c5: PUSH1 0x40 000013c7: DUP1 000013c8: MLOAD 000013c9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000013ea: DUP2 000013eb: MSTORE 000013ec: PUSH1 0x20 000013ee: PUSH1 0x04 000013f0: DUP3 000013f1: ADD 000013f2: MSTORE 000013f3: PUSH1 0x15 000013f5: PUSH1 0x24 000013f7: DUP3 000013f8: ADD 000013f9: MSTORE 000013fa: PUSH32 0x64732d6d6174682d7375622d756e646572666c6f770000000000000000000000 0000141b: PUSH1 0x44 0000141d: DUP3 0000141e: ADD 0000141f: MSTORE 00001420: SWAP1 00001421: MLOAD 00001422: SWAP1 00001423: DUP2 00001424: SWAP1 00001425: SUB 00001426: PUSH1 0x64 00001428: ADD 00001429: SWAP1 0000142a: REVERT 0000142b: JUMPDEST 0000142c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001441: DUP4 00001442: AND 00001443: PUSH1 0x00 00001445: SWAP1 00001446: DUP2 00001447: MSTORE 00001448: PUSH1 0x04 0000144a: PUSH1 0x20 0000144c: MSTORE 0000144d: PUSH1 0x40 0000144f: SWAP1 00001450: KECCAK256 00001451: SLOAD 00001452: PUSH2 0x1461 00001455: SWAP1 00001456: DUP3 00001457: PUSH4 0xffffffff 0000145c: PUSH2 0x13b9 0000145f: AND 00001460: JUMP 00001461: JUMPDEST 00001462: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001477: DUP1 00001478: DUP6 00001479: AND 0000147a: PUSH1 0x00 0000147c: SWAP1 0000147d: DUP2 0000147e: MSTORE 0000147f: PUSH1 0x04 00001481: PUSH1 0x20 00001483: MSTORE 00001484: PUSH1 0x40 00001486: DUP1 00001487: DUP3 00001488: KECCAK256 00001489: SWAP4 0000148a: SWAP1 0000148b: SWAP4 0000148c: SSTORE 0000148d: SWAP1 0000148e: DUP5 0000148f: AND 00001490: DUP2 00001491: MSTORE 00001492: KECCAK256 00001493: SLOAD 00001494: PUSH2 0x14a3 00001497: SWAP1 00001498: DUP3 00001499: PUSH4 0xffffffff 0000149e: PUSH2 0x1a18 000014a1: AND 000014a2: JUMP 000014a3: JUMPDEST 000014a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014b9: DUP1 000014ba: DUP5 000014bb: AND 000014bc: PUSH1 0x00 000014be: DUP2 000014bf: DUP2 000014c0: MSTORE 000014c1: PUSH1 0x04 000014c3: PUSH1 0x20 000014c5: SWAP1 000014c6: DUP2 000014c7: MSTORE 000014c8: PUSH1 0x40 000014ca: SWAP2 000014cb: DUP3 000014cc: SWAP1 000014cd: KECCAK256 000014ce: SWAP5 000014cf: SWAP1 000014d0: SWAP5 000014d1: SSTORE 000014d2: DUP1 000014d3: MLOAD 000014d4: DUP6 000014d5: DUP2 000014d6: MSTORE 000014d7: SWAP1 000014d8: MLOAD 000014d9: SWAP2 000014da: SWAP4 000014db: SWAP3 000014dc: DUP8 000014dd: AND 000014de: SWAP3 000014df: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001500: SWAP3 00001501: SWAP2 00001502: DUP3 00001503: SWAP1 00001504: SUB 00001505: ADD 00001506: SWAP1 00001507: LOG3 00001508: POP 00001509: POP 0000150a: POP 0000150b: JUMP 0000150c: JUMPDEST 0000150d: PUSH1 0x40 0000150f: DUP1 00001510: MLOAD 00001511: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001526: DUP6 00001527: DUP2 00001528: AND 00001529: PUSH1 0x24 0000152b: DUP4 0000152c: ADD 0000152d: MSTORE 0000152e: DUP5 0000152f: DUP2 00001530: AND 00001531: PUSH1 0x44 00001533: DUP4 00001534: ADD 00001535: MSTORE 00001536: PUSH1 0x64 00001538: DUP1 00001539: DUP4 0000153a: ADD 0000153b: DUP6 0000153c: SWAP1 0000153d: MSTORE 0000153e: DUP4 0000153f: MLOAD 00001540: DUP1 00001541: DUP5 00001542: SUB 00001543: SWAP1 00001544: SWAP2 00001545: ADD 00001546: DUP2 00001547: MSTORE 00001548: PUSH1 0x84 0000154a: SWAP1 0000154b: SWAP3 0000154c: ADD 0000154d: DUP4 0000154e: MSTORE 0000154f: PUSH1 0x20 00001551: DUP3 00001552: ADD 00001553: DUP1 00001554: MLOAD 00001555: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001572: AND 00001573: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 00001594: OR 00001595: DUP2 00001596: MSTORE 00001597: SWAP3 00001598: MLOAD 00001599: DUP3 0000159a: MLOAD 0000159b: PUSH1 0x00 0000159d: SWAP5 0000159e: PUSH1 0x60 000015a0: SWAP5 000015a1: SWAP4 000015a2: DUP11 000015a3: AND 000015a4: SWAP4 000015a5: SWAP3 000015a6: SWAP2 000015a7: DUP3 000015a8: SWAP2 000015a9: SWAP1 000015aa: DUP1 000015ab: DUP4 000015ac: DUP4 000015ad: JUMPDEST 000015ae: PUSH1 0x20 000015b0: DUP4 000015b1: LT 000015b2: PUSH2 0x15ea 000015b5: JUMPI 000015b6: DUP1 000015b7: MLOAD 000015b8: DUP3 000015b9: MSTORE 000015ba: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000015db: SWAP1 000015dc: SWAP3 000015dd: ADD 000015de: SWAP2 000015df: PUSH1 0x20 000015e1: SWAP2 000015e2: DUP3 000015e3: ADD 000015e4: SWAP2 000015e5: ADD 000015e6: PUSH2 0x15ad 000015e9: JUMP 000015ea: JUMPDEST 000015eb: PUSH1 0x01 000015ed: DUP4 000015ee: PUSH1 0x20 000015f0: SUB 000015f1: PUSH2 0x0100 000015f4: EXP 000015f5: SUB 000015f6: DUP1 000015f7: NOT 000015f8: DUP3 000015f9: MLOAD 000015fa: AND 000015fb: DUP2 000015fc: DUP5 000015fd: MLOAD 000015fe: AND 000015ff: DUP1 00001600: DUP3 00001601: OR 00001602: DUP6 00001603: MSTORE 00001604: POP 00001605: POP 00001606: POP 00001607: POP 00001608: POP 00001609: POP 0000160a: SWAP1 0000160b: POP 0000160c: ADD 0000160d: SWAP2 0000160e: POP 0000160f: POP 00001610: PUSH1 0x00 00001612: PUSH1 0x40 00001614: MLOAD 00001615: DUP1 00001616: DUP4 00001617: SUB 00001618: DUP2 00001619: PUSH1 0x00 0000161b: DUP7 0000161c: GAS 0000161d: CALL 0000161e: SWAP2 0000161f: POP 00001620: POP 00001621: RETURNDATASIZE 00001622: DUP1 00001623: PUSH1 0x00 00001625: DUP2 00001626: EQ 00001627: PUSH2 0x164c 0000162a: JUMPI 0000162b: PUSH1 0x40 0000162d: MLOAD 0000162e: SWAP2 0000162f: POP 00001630: PUSH1 0x1f 00001632: NOT 00001633: PUSH1 0x3f 00001635: RETURNDATASIZE 00001636: ADD 00001637: AND 00001638: DUP3 00001639: ADD 0000163a: PUSH1 0x40 0000163c: MSTORE 0000163d: RETURNDATASIZE 0000163e: DUP3 0000163f: MSTORE 00001640: RETURNDATASIZE 00001641: PUSH1 0x00 00001643: PUSH1 0x20 00001645: DUP5 00001646: ADD 00001647: RETURNDATACOPY 00001648: PUSH2 0x1651 0000164b: JUMP 0000164c: JUMPDEST 0000164d: PUSH1 0x60 0000164f: SWAP2 00001650: POP 00001651: JUMPDEST 00001652: POP 00001653: SWAP2 00001654: POP 00001655: SWAP2 00001656: POP 00001657: DUP2 00001658: DUP1 00001659: ISZERO 0000165a: PUSH2 0x167f 0000165d: JUMPI 0000165e: POP 0000165f: DUP1 00001660: MLOAD 00001661: ISZERO 00001662: DUP1 00001663: PUSH2 0x167f 00001666: JUMPI 00001667: POP 00001668: DUP1 00001669: DUP1 0000166a: PUSH1 0x20 0000166c: ADD 0000166d: SWAP1 0000166e: MLOAD 0000166f: PUSH1 0x20 00001671: DUP2 00001672: LT 00001673: ISZERO 00001674: PUSH2 0x167c 00001677: JUMPI 00001678: PUSH1 0x00 0000167a: DUP1 0000167b: REVERT 0000167c: JUMPDEST 0000167d: POP 0000167e: MLOAD 0000167f: JUMPDEST 00001680: PUSH2 0x16d4 00001683: JUMPI 00001684: PUSH1 0x40 00001686: MLOAD 00001687: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000016a8: DUP2 000016a9: MSTORE 000016aa: PUSH1 0x04 000016ac: ADD 000016ad: DUP1 000016ae: DUP1 000016af: PUSH1 0x20 000016b1: ADD 000016b2: DUP3 000016b3: DUP2 000016b4: SUB 000016b5: DUP3 000016b6: MSTORE 000016b7: PUSH1 0x31 000016b9: DUP2 000016ba: MSTORE 000016bb: PUSH1 0x20 000016bd: ADD 000016be: DUP1 000016bf: PUSH2 0x1a8b 000016c2: PUSH1 0x31 000016c4: SWAP2 000016c5: CODECOPY 000016c6: PUSH1 0x40 000016c8: ADD 000016c9: SWAP2 000016ca: POP 000016cb: POP 000016cc: PUSH1 0x40 000016ce: MLOAD 000016cf: DUP1 000016d0: SWAP2 000016d1: SUB 000016d2: SWAP1 000016d3: REVERT 000016d4: JUMPDEST 000016d5: POP 000016d6: POP 000016d7: POP 000016d8: POP 000016d9: POP 000016da: POP 000016db: JUMP 000016dc: JUMPDEST 000016dd: PUSH1 0x03 000016df: SLOAD 000016e0: PUSH2 0x16ef 000016e3: SWAP1 000016e4: DUP3 000016e5: PUSH4 0xffffffff 000016ea: PUSH2 0x1a18 000016ed: AND 000016ee: JUMP 000016ef: JUMPDEST 000016f0: PUSH1 0x03 000016f2: SSTORE 000016f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001708: DUP3 00001709: AND 0000170a: PUSH1 0x00 0000170c: SWAP1 0000170d: DUP2 0000170e: MSTORE 0000170f: PUSH1 0x04 00001711: PUSH1 0x20 00001713: MSTORE 00001714: PUSH1 0x40 00001716: SWAP1 00001717: KECCAK256 00001718: SLOAD 00001719: PUSH2 0x1728 0000171c: SWAP1 0000171d: DUP3 0000171e: PUSH4 0xffffffff 00001723: PUSH2 0x1a18 00001726: AND 00001727: JUMP 00001728: JUMPDEST 00001729: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000173e: DUP4 0000173f: AND 00001740: PUSH1 0x00 00001742: DUP2 00001743: DUP2 00001744: MSTORE 00001745: PUSH1 0x04 00001747: PUSH1 0x20 00001749: SWAP1 0000174a: DUP2 0000174b: MSTORE 0000174c: PUSH1 0x40 0000174e: DUP1 0000174f: DUP4 00001750: KECCAK256 00001751: SWAP5 00001752: SWAP1 00001753: SWAP5 00001754: SSTORE 00001755: DUP4 00001756: MLOAD 00001757: DUP6 00001758: DUP2 00001759: MSTORE 0000175a: SWAP4 0000175b: MLOAD 0000175c: SWAP3 0000175d: SWAP4 0000175e: SWAP2 0000175f: SWAP3 00001760: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001781: SWAP3 00001782: DUP2 00001783: SWAP1 00001784: SUB 00001785: SWAP1 00001786: SWAP2 00001787: ADD 00001788: SWAP1 00001789: LOG3 0000178a: POP 0000178b: POP 0000178c: JUMP 0000178d: JUMPDEST 0000178e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017a3: DUP3 000017a4: AND 000017a5: PUSH1 0x00 000017a7: SWAP1 000017a8: DUP2 000017a9: MSTORE 000017aa: PUSH1 0x04 000017ac: PUSH1 0x20 000017ae: MSTORE 000017af: PUSH1 0x40 000017b1: SWAP1 000017b2: KECCAK256 000017b3: SLOAD 000017b4: PUSH2 0x17c3 000017b7: SWAP1 000017b8: DUP3 000017b9: PUSH4 0xffffffff 000017be: PUSH2 0x13b9 000017c1: AND 000017c2: JUMP 000017c3: JUMPDEST 000017c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017d9: DUP4 000017da: AND 000017db: PUSH1 0x00 000017dd: SWAP1 000017de: DUP2 000017df: MSTORE 000017e0: PUSH1 0x04 000017e2: PUSH1 0x20 000017e4: MSTORE 000017e5: PUSH1 0x40 000017e7: SWAP1 000017e8: KECCAK256 000017e9: SSTORE 000017ea: PUSH1 0x03 000017ec: SLOAD 000017ed: PUSH2 0x17fc 000017f0: SWAP1 000017f1: DUP3 000017f2: PUSH4 0xffffffff 000017f7: PUSH2 0x13b9 000017fa: AND 000017fb: JUMP 000017fc: JUMPDEST 000017fd: PUSH1 0x03 000017ff: SSTORE 00001800: PUSH1 0x40 00001802: DUP1 00001803: MLOAD 00001804: DUP3 00001805: DUP2 00001806: MSTORE 00001807: SWAP1 00001808: MLOAD 00001809: PUSH1 0x00 0000180b: SWAP2 0000180c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001821: DUP6 00001822: AND 00001823: SWAP2 00001824: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001845: SWAP2 00001846: DUP2 00001847: SWAP1 00001848: SUB 00001849: PUSH1 0x20 0000184b: ADD 0000184c: SWAP1 0000184d: LOG3 0000184e: POP 0000184f: POP 00001850: JUMP 00001851: JUMPDEST 00001852: PUSH1 0x40 00001854: DUP1 00001855: MLOAD 00001856: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000186b: DUP5 0000186c: DUP2 0000186d: AND 0000186e: PUSH1 0x24 00001870: DUP4 00001871: ADD 00001872: MSTORE 00001873: PUSH1 0x44 00001875: DUP1 00001876: DUP4 00001877: ADD 00001878: DUP6 00001879: SWAP1 0000187a: MSTORE 0000187b: DUP4 0000187c: MLOAD 0000187d: DUP1 0000187e: DUP5 0000187f: SUB 00001880: SWAP1 00001881: SWAP2 00001882: ADD 00001883: DUP2 00001884: MSTORE 00001885: PUSH1 0x64 00001887: SWAP1 00001888: SWAP3 00001889: ADD 0000188a: DUP4 0000188b: MSTORE 0000188c: PUSH1 0x20 0000188e: DUP3 0000188f: ADD 00001890: DUP1 00001891: MLOAD 00001892: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000018af: AND 000018b0: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 000018d1: OR 000018d2: DUP2 000018d3: MSTORE 000018d4: SWAP3 000018d5: MLOAD 000018d6: DUP3 000018d7: MLOAD 000018d8: PUSH1 0x00 000018da: SWAP5 000018db: PUSH1 0x60 000018dd: SWAP5 000018de: SWAP4 000018df: DUP10 000018e0: AND 000018e1: SWAP4 000018e2: SWAP3 000018e3: SWAP2 000018e4: DUP3 000018e5: SWAP2 000018e6: SWAP1 000018e7: DUP1 000018e8: DUP4 000018e9: DUP4 000018ea: JUMPDEST 000018eb: PUSH1 0x20 000018ed: DUP4 000018ee: LT 000018ef: PUSH2 0x1927 000018f2: JUMPI 000018f3: DUP1 000018f4: MLOAD 000018f5: DUP3 000018f6: MSTORE 000018f7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001918: SWAP1 00001919: SWAP3 0000191a: ADD 0000191b: SWAP2 0000191c: PUSH1 0x20 0000191e: SWAP2 0000191f: DUP3 00001920: ADD 00001921: SWAP2 00001922: ADD 00001923: PUSH2 0x18ea 00001926: JUMP 00001927: JUMPDEST 00001928: PUSH1 0x01 0000192a: DUP4 0000192b: PUSH1 0x20 0000192d: SUB 0000192e: PUSH2 0x0100 00001931: EXP 00001932: SUB 00001933: DUP1 00001934: NOT 00001935: DUP3 00001936: MLOAD 00001937: AND 00001938: DUP2 00001939: DUP5 0000193a: MLOAD 0000193b: AND 0000193c: DUP1 0000193d: DUP3 0000193e: OR 0000193f: DUP6 00001940: MSTORE 00001941: POP 00001942: POP 00001943: POP 00001944: POP 00001945: POP 00001946: POP 00001947: SWAP1 00001948: POP 00001949: ADD 0000194a: SWAP2 0000194b: POP 0000194c: POP 0000194d: PUSH1 0x00 0000194f: PUSH1 0x40 00001951: MLOAD 00001952: DUP1 00001953: DUP4 00001954: SUB 00001955: DUP2 00001956: PUSH1 0x00 00001958: DUP7 00001959: GAS 0000195a: CALL 0000195b: SWAP2 0000195c: POP 0000195d: POP 0000195e: RETURNDATASIZE 0000195f: DUP1 00001960: PUSH1 0x00 00001962: DUP2 00001963: EQ 00001964: PUSH2 0x1989 00001967: JUMPI 00001968: PUSH1 0x40 0000196a: MLOAD 0000196b: SWAP2 0000196c: POP 0000196d: PUSH1 0x1f 0000196f: NOT 00001970: PUSH1 0x3f 00001972: RETURNDATASIZE 00001973: ADD 00001974: AND 00001975: DUP3 00001976: ADD 00001977: PUSH1 0x40 00001979: MSTORE 0000197a: RETURNDATASIZE 0000197b: DUP3 0000197c: MSTORE 0000197d: RETURNDATASIZE 0000197e: PUSH1 0x00 00001980: PUSH1 0x20 00001982: DUP5 00001983: ADD 00001984: RETURNDATACOPY 00001985: PUSH2 0x198e 00001988: JUMP 00001989: JUMPDEST 0000198a: PUSH1 0x60 0000198c: SWAP2 0000198d: POP 0000198e: JUMPDEST 0000198f: POP 00001990: SWAP2 00001991: POP 00001992: SWAP2 00001993: POP 00001994: DUP2 00001995: DUP1 00001996: ISZERO 00001997: PUSH2 0x19bc 0000199a: JUMPI 0000199b: POP 0000199c: DUP1 0000199d: MLOAD 0000199e: ISZERO 0000199f: DUP1 000019a0: PUSH2 0x19bc 000019a3: JUMPI 000019a4: POP 000019a5: DUP1 000019a6: DUP1 000019a7: PUSH1 0x20 000019a9: ADD 000019aa: SWAP1 000019ab: MLOAD 000019ac: PUSH1 0x20 000019ae: DUP2 000019af: LT 000019b0: ISZERO 000019b1: PUSH2 0x19b9 000019b4: JUMPI 000019b5: PUSH1 0x00 000019b7: DUP1 000019b8: REVERT 000019b9: JUMPDEST 000019ba: POP 000019bb: MLOAD 000019bc: JUMPDEST 000019bd: PUSH2 0x1a11 000019c0: JUMPI 000019c1: PUSH1 0x40 000019c3: MLOAD 000019c4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000019e5: DUP2 000019e6: MSTORE 000019e7: PUSH1 0x04 000019e9: ADD 000019ea: DUP1 000019eb: DUP1 000019ec: PUSH1 0x20 000019ee: ADD 000019ef: DUP3 000019f0: DUP2 000019f1: SUB 000019f2: DUP3 000019f3: MSTORE 000019f4: PUSH1 0x2d 000019f6: DUP2 000019f7: MSTORE 000019f8: PUSH1 0x20 000019fa: ADD 000019fb: DUP1 000019fc: PUSH2 0x1adf 000019ff: PUSH1 0x2d 00001a01: SWAP2 00001a02: CODECOPY 00001a03: PUSH1 0x40 00001a05: ADD 00001a06: SWAP2 00001a07: POP 00001a08: POP 00001a09: PUSH1 0x40 00001a0b: MLOAD 00001a0c: DUP1 00001a0d: SWAP2 00001a0e: SUB 00001a0f: SWAP1 00001a10: REVERT 00001a11: JUMPDEST 00001a12: POP 00001a13: POP 00001a14: POP 00001a15: POP 00001a16: POP 00001a17: JUMP 00001a18: JUMPDEST 00001a19: DUP1 00001a1a: DUP3 00001a1b: ADD 00001a1c: DUP3 00001a1d: DUP2 00001a1e: LT 00001a1f: ISZERO 00001a20: PUSH2 0x064f 00001a23: JUMPI 00001a24: PUSH1 0x40 00001a26: DUP1 00001a27: MLOAD 00001a28: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001a49: DUP2 00001a4a: MSTORE 00001a4b: PUSH1 0x20 00001a4d: PUSH1 0x04 00001a4f: DUP3 00001a50: ADD 00001a51: MSTORE 00001a52: PUSH1 0x14 00001a54: PUSH1 0x24 00001a56: DUP3 00001a57: ADD 00001a58: MSTORE 00001a59: PUSH32 0x64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000 00001a7a: PUSH1 0x44 00001a7c: DUP3 00001a7d: ADD 00001a7e: MSTORE 00001a7f: SWAP1 00001a80: MLOAD 00001a81: SWAP1 00001a82: DUP2 00001a83: SWAP1 00001a84: SUB 00001a85: PUSH1 0x64 00001a87: ADD 00001a88: SWAP1 00001a89: REVERT 00001a8a: INVALID 00001a8b: SLOAD 00001a8c: PUSH19 0x616e7366657248656c7065723a3a7472616e73 00001aa0: PUSH7 0x657246726f6d3a 00001aa8: KECCAK256 00001aa9: PUSH21 0x72616e7366657246726f6d206661696c6564466577 00001abf: GASPRICE 00001ac0: KECCAK256 00001ac1: PUSH27 0x65726f20616d6f756e7420756e77726170206e6f7420616c6c6f77 00001add: PUSH6 0x645472616e73 00001ae4: PUSH7 0x657248656c7065 00001aec: PUSH19 0x3a3a736166655472616e736665723a20747261 00001b00: PUSH15 0x73666572206661696c6564a2646970 00001b10: PUSH7 0x7358221220a6e8 00001b18: SWAP10 00001b19: SAR 00001b1a: SHR 00001b1b: SWAP12 00001b1c: UNKNOWN(0xB4) 00001b1d: PC 00001b1e: DUP9 00001b1f: PUSH13 0xaf6747ba791abf4d04a0ed9229 00001b2d: ISZERO 00001b2e: NOT 00001b2f: UNKNOWN(0xC0) 00001b30: PUSH28
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xbb4229cc9a19cfbcfe49c9c58edcc7e94f89f275b8b961d40c76297e823e737e
call_targets:
0x0492560fa7cfd6a85e50d8be3f77318994f8f429
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbb4229cc9a19cfbcfe49c9c58edcc7e94f89f275b8b961d40c76297e823e737e",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0492560fa7cfd6a85e50d8be3f77318994f8f429"
],
"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": "0xde0e9a3e",
"selector": "0xde0e9a3e",
"calldata_variants": [
"0xde0e9a3e",
"0xde0e9a3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea598cb0",
"selector": "0xea598cb0",
"calldata_variants": [
"0xea598cb0",
"0xea598cb00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc0c546a",
"selector": "0xfc0c546a",
"calldata_variants": [
"0xfc0c546a",
"0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc45a0155",
"selector": "0xc45a0155",
"calldata_variants": [
"0xc45a0155",
"0xc45a01550000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7ecebe00",
"selector": "0x7ecebe00",
"calldata_variants": [
"0x7ecebe00",
"0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5661,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6490,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xbb4229cc9a19cfbcfe49c9c58edcc7e94f89f275b8b961d40c76297e823e737e
call_targets:
0x0492560fa7cfd6a85e50d8be3f77318994f8f429
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbb4229cc9a19cfbcfe49c9c58edcc7e94f89f275b8b961d40c76297e823e737e",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0492560fa7cfd6a85e50d8be3f77318994f8f429"
],
"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": "0xde0e9a3e",
"selector": "0xde0e9a3e",
"calldata_variants": [
"0xde0e9a3e",
"0xde0e9a3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea598cb0",
"selector": "0xea598cb0",
"calldata_variants": [
"0xea598cb0",
"0xea598cb00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc0c546a",
"selector": "0xfc0c546a",
"calldata_variants": [
"0xfc0c546a",
"0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc45a0155",
"selector": "0xc45a0155",
"calldata_variants": [
"0xc45a0155",
"0xc45a01550000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7ecebe00",
"selector": "0x7ecebe00",
"calldata_variants": [
"0x7ecebe00",
"0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5661,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6490,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| medium | math | codex | wrapTo mints based on requested amount, not actual tokens received | 75 | no | — |
viewevidence_json{
"evidence": "wrapTo calls `TransferHelper.safeTransferFrom` and then `_mint(to, amount)` without checking the balance delta.",
"locations": [
"contracts/contracts/FewWrappedToken.sol:165",
"contracts/contracts/FewWrappedToken.sol:167",
"contracts/contracts/FewWrappedToken.sol:168"
],
"recommendation": "Compute the actual received amount using balanceBefore/balanceAfter and mint only that value, or explicitly reject fee-on-transfer/rebasing tokens in factory creation and documentation.",
"exploit_scenario": "If the underlying token is fee-on-transfer or rebasing, the contract may receive fewer tokens than `amount` but still mints `amount` wrapped tokens. This can make the wrapper undercollateralized; early redeemers can drain backing, leaving later holders unable to unwrap (unwrap reverts due to insufficient balance)."
}
|
| low | access_control | codex | Pause mechanism does not apply to wrap/unwrap | 65 | no | — |
viewevidence_json{
"evidence": "`whenNotPaused` modifier exists but is only used on mint/burnFrom; wrap/unwrap omit it.",
"locations": [
"contracts/contracts/FewWrappedToken.sol:39",
"contracts/contracts/FewWrappedToken.sol:165",
"contracts/contracts/FewWrappedToken.sol:180"
],
"recommendation": "Apply `whenNotPaused` to `wrapTo`/`unwrapTo` (and the public `wrap`/`unwrap` wrappers), or clearly document that pause is intended to affect only minter/burner roles.",
"exploit_scenario": "If the factory pauses during an incident, users can still call `wrapTo`/`unwrapTo` because these functions do not use `whenNotPaused`. This bypasses emergency controls and may allow continued minting or unwrapping when the system intended to halt activity."
}
|
| 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
}
|