3fa32ee3-f6ed-4978-87cd-d4efcb7979e3
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 |
|---|---|---|---|---|
| 31546 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 77903 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 77904 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 77905 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 77906 | capability.graph | complete | 1 / 3 | 1 week ago |
| 77907 | detector.run | complete | 1 / 3 | 1 week ago |
| 77908 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1103791] OpenAI Codex v0.77.0 (research preview)
[codex:1103791] --------
[codex:1103791] workdir: /tmp/codex-multi-2uxn2v7r
[codex:1103791] model: gpt-5.2-codex
[codex:1103791] provider: openai
[codex:1103791] approval: never
[codex:1103791] sandbox: read-only
[codex:1103791] reasoning effort: xhigh
[codex:1103791] reasoning summaries: auto
[codex:1103791] session id: 019b8717-ccc5-7702-afe0-412ba6779775
[codex:1103791] --------
[codex:1103791] user
[codex:1103791] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1103791]
[codex:1103791] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1103791]
[codex:1103791] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1103791] - Gas inefficiency, code quality, naming, or best practices
[codex:1103791] - Theoretical vulnerabilities without a clear extraction path
[codex:1103791] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1103791] - Front-running unless it enables theft beyond MEV
[codex:1103791] - DoS, griefing, or issues that don't result in attacker profit
[codex:1103791] - Missing events, view function issues, or informational findings
[codex:1103791]
[codex:1103791] HIGH-VALUE PATTERNS TO HUNT:
[codex:1103791] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1103791] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1103791] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1103791] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1103791] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1103791] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1103791] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1103791] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1103791] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1103791]
[codex:1103791] For each finding, you MUST provide:
[codex:1103791] 1. Exact file and line numbers of vulnerable code
[codex:1103791] 2. Step-by-step exploit transaction sequence
[codex:1103791] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1103791]
[codex:1103791] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1103791]
[codex:1103791] Output MUST be valid JSON matching the provided schema.
[codex:1103791] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1103791] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1103791] mcp startup: no servers
[codex:1103791]
[codex:1103791] thinking
[codex:1103791] **Auditing AUDIT_BUNDLE.txt file**
[codex:1103791] exec
[codex:1103791] /bin/bash -lc ls in /tmp/codex-multi-2uxn2v7r succeeded in 5ms:
[codex:1103791] AUDIT_BUNDLE.txt
[codex:1103791] codex-output-schema.json
[codex:1103791] contracts
[codex:1103791]
[codex:1103791] thinking
[codex:1103791] **Reading file**
[codex:1103791] exec
[codex:1103791] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-2uxn2v7r succeeded in 5ms:
[codex:1103791] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1103791]
[codex:1103791] ================================================================================
[codex:1103791] FILE: contracts/contracts/BL/messaging/BLStandardBridge.sol
[codex:1103791] ================================================================================
[codex:1103791] // SPDX-License-Identifier: MIT
[codex:1103791] pragma solidity ^0.8.9;
[codex:1103791]
[codex:1103791] /* Interface Imports */
[codex:1103791] import { IBLStandardBridge } from "./IBLStandardBridge.sol";
[codex:1103791] import { IBLERC20Bridge } from "./IBLERC20Bridge.sol";
[codex:1103791] import { ISLERC20Bridge } from "../../SL/messaging/ISLERC20Bridge.sol";
[codex:1103791] import { INahmiiSyntheticERC20 } from "../../standards/INahmiiSyntheticERC20.sol";
[codex:1103791] import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1103791]
[codex:1103791] /* Library Imports */
[codex:1103791] import { CrossDomainEnabled } from "../../libraries/bridge/CrossDomainEnabled.sol";
[codex:1103791] import { Lib_PredeployAddresses } from "../../libraries/constants/Lib_PredeployAddresses.sol";
[codex:1103791] import { Address } from "@openzeppelin/contracts/utils/Address.sol";
[codex:1103791] import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1103791]
[codex:1103791] thinking
[codex:1103791] **Analyzing bridge contract initialization vulnerability**
[codex:1103791] exec
[codex:1103791] /bin/bash -lc "nl -ba contracts/contracts/BL/messaging/BLStandardBridge.sol | sed -n '1,200p'" in /tmp/codex-multi-2uxn2v7r succeeded in 7ms:
[codex:1103791] 1 // SPDX-License-Identifier: MIT
[codex:1103791] 2 pragma solidity ^0.8.9;
[codex:1103791] 3
[codex:1103791] 4 /* Interface Imports */
[codex:1103791] 5 import { IBLStandardBridge } from "./IBLStandardBridge.sol";
[codex:1103791] 6 import { IBLERC20Bridge } from "./IBLERC20Bridge.sol";
[codex:1103791] 7 import { ISLERC20Bridge } from "../../SL/messaging/ISLERC20Bridge.sol";
[codex:1103791] 8 import { INahmiiSyntheticERC20 } from "../../standards/INahmiiSyntheticERC20.sol";
[codex:1103791] 9 import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1103791] 10
[codex:1103791] 11 /* Library Imports */
[codex:1103791] 12 import { CrossDomainEnabled } from "../../libraries/bridge/CrossDomainEnabled.sol";
[codex:1103791] 13 import { Lib_PredeployAddresses } from "../../libraries/constants/Lib_PredeployAddresses.sol";
[codex:1103791] 14 import { Address } from "@openzeppelin/contracts/utils/Address.sol";
[codex:1103791] 15 import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1103791] 16 import { ERC165Checker } from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
[codex:1103791] 17
[codex:1103791] 18 /**
[codex:1103791] 19 * @title BLStandardBridge
[codex:1103791] 20 * @dev The BL ETH and ERC20 bridge is a contract which works together with a corresponding SL
[codex:1103791]
[codex:1103791] thinking
[codex:1103791] **Locating finalize function lines**
[codex:1103791] exec
[codex:1103791] /bin/bash -lc "nl -ba contracts/contracts/BL/messaging/BLStandardBridge.sol | sed -n '200,360p'" in /tmp/codex-multi-2uxn2v7r succeeded in 5ms:
[codex:1103791] 200 * length, these contracts provide no guarantees about its content.
[codex:1103791] 201 */
[codex:1103791] 202 function _initiateERC20Bridge(
[codex:1103791] 203 address _localToken,
[codex:1103791] 204 address _remoteToken,
[codex:1103791] 205 address _from,
[codex:1103791] 206 address _to,
[codex:1103791] 207 uint256 _amount,
[codex:1103791] 208 uint256 _feeAmount,
[codex:1103791] 209 uint32 _remoteGasLimit,
[codex:1103791] 210 bytes calldata _data
[codex:1103791] 211 ) internal {
[codex:1103791] 212 if (
[codex:1103791] 213 ERC165Checker.supportsInterface(_localToken, type(INahmiiSyntheticERC20).interfaceId) &&
[codex:1103791] 214 INahmiiSyntheticERC20(_localToken).localBridge() == address(this) &&
[codex:1103791] 215 INahmiiSyntheticERC20(_localToken).remoteToken() == _remoteToken
[codex:1103791] 216 ) {
[codex:1103791] 217 // When a bridge operation is initiated with a synthetic, we burn
[codex:1103791] 218 // the sender's local funds.
[codex:1103791] 219 // slither-disable-next-line reentrancy-events
[codex:1103791] exec
[codex:1103791] /bin/bash -lc "nl -ba contracts/contracts/BL/messaging/BLStandardBridge.sol | sed -n '360,520p'" in /tmp/codex-multi-2uxn2v7r succeeded in 6ms:
[codex:1103791] 360 // In either case, we stop the process here and construct a message to
[codex:1103791] 361 // bridge to the remote domain so that users can get their funds out in some cases.
[codex:1103791] 362 // There is no way to prevent malicious token contracts altogether, but this does limit
[codex:1103791] 363 // user error and mitigate some forms of malicious contract behavior.
[codex:1103791] 364
[codex:1103791] 365 // Construct calldata for slERC20Bridge.finalizeBridge(...)
[codex:1103791] 366 bytes memory message = abi.encodeWithSelector(
[codex:1103791] 367 ISLERC20Bridge.finalizeBridge.selector,
[codex:1103791] 368 _localToken,
[codex:1103791] 369 _remoteToken,
[codex:1103791] 370 _to,
[codex:1103791] 371 _from,
[codex:1103791] 372 _amount,
[codex:1103791] 373 _feeAmount,
[codex:1103791] 374 _remoteGasLimit,
[codex:1103791] 375 _data
[codex:1103791] 376 );
[codex:1103791] 377
[codex:1103791] 378 // Send message to SL bridge
[codex:1103791] 379 // slither-disable-next-line reentrancy-events, reentrancy-benign
[codex:1103791]
[codex:1103791] thinking
[codex:1103791] **Preparing detailed vulnerability report**
[codex:1103791] codex
[codex:1103791] {"no_findings":false,"summary":"Unprotected initializer lets an attacker take over cross-domain auth and drain all ETH/ERC20 escrow if the proxy is deployed uninitialized.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected initialize enables attacker-controlled messenger and bridge takeover","exploit_scenario":"1) After the proxy is deployed but before the legitimate initializer runs, attacker calls initialize() to set messenger to an attacker-controlled contract and remoteTokenBridge to an attacker-controlled address. 2) Attacker’s messenger contract calls finalizeETHBridge(...) with _to=attacker and _amount=bridge ETH balance; the onlyFromCrossDomainAccount check passes because msg.sender is the attacker’s messenger and xDomainMessageSender() returns the attacker-set remoteTokenBridge. 3) Repeat via finalizeERC20Bridge(...) for each locked token pair, draining up to locks[_localToken][_remoteToken] to the attacker. Profit is the entire ETH balance plus all escrowed ERC20 balances held by the bridge.","recommendation":"Restrict initialize to a trusted deployer (e.g., onlyOwner/onlyProxyAdmin) or use an initializer pattern that is invoked atomically during proxy deployment; consider disabling initialize on the implementation contract.","evidence":"initialize() is public and only checks messenger == address(0), allowing anyone to set messenger/remoteTokenBridge (lines 53-62). finalizeETHBridge and finalizeERC20Bridge transfer ETH/ERC20 based solely on onlyFromCrossDomainAccount, which becomes attacker-controlled once initialize is hijacked (lines 270-345).","locations":["contracts/contracts/BL/messaging/BLStandardBridge.sol:53","contracts/contracts/BL/messaging/BLStandardBridge.sol:270","contracts/contracts/BL/messaging/BLStandardBridge.sol:308"]}]}
[codex:1103791] tokens used
[codex:1103791] 19,054
[codex:1103791] {"no_findings":false,"summary":"Unprotected initializer lets an attacker take over cross-domain auth and drain all ETH/ERC20 escrow if the proxy is deployed uninitialized.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected initialize enables attacker-controlled messenger and bridge takeover","exploit_scenario":"1) After the proxy is deployed but before the legitimate initializer runs, attacker calls initialize() to set messenger to an attacker-controlled contract and remoteTokenBridge to an attacker-controlled address. 2) Attacker’s messenger contract calls finalizeETHBridge(...) with _to=attacker and _amount=bridge ETH balance; the onlyFromCrossDomainAccount check passes because msg.sender is the attacker’s messenger and xDomainMessageSender() returns the attacker-set remoteTokenBridge. 3) Repeat via finalizeERC20Bridge(...) for each locked token pair, draining up to locks[_localToken][_remoteToken] to the attacker. Profit is the entire ETH balance plus all escrowed ERC20 balances held by the bridge.","recommendation":"Restrict initialize to a trusted deployer (e.g., onlyOwner/onlyProxyAdmin) or use an initializer pattern that is invoked atomically during proxy deployment; consider disabling initialize on the implementation contract.","evidence":"initialize() is public and only checks messenger == address(0), allowing anyone to set messenger/remoteTokenBridge (lines 53-62). finalizeETHBridge and finalizeERC20Bridge transfer ETH/ERC20 based solely on onlyFromCrossDomainAccount, which becomes attacker-controlled once initialize is hijacked (lines 270-345).","locations":["contracts/contracts/BL/messaging/BLStandardBridge.sol:53","contracts/contracts/BL/messaging/BLStandardBridge.sol:270","contracts/contracts/BL/messaging/BLStandardBridge.sol:308"]}]}
{
"codex": {
"ran_at": "2026-01-04T03:42:12.113612+00:00",
"returncode": 0
},
"summary": "Unprotected initializer lets an attacker take over cross-domain auth and drain all ETH/ERC20 escrow if the proxy is deployed uninitialized.",
"raw_final": {
"summary": "Unprotected initializer lets an attacker take over cross-domain auth and drain all ETH/ERC20 escrow if the proxy is deployed uninitialized.",
"findings": [
{
"title": "Unprotected initialize enables attacker-controlled messenger and bridge takeover",
"category": "upgradeability",
"evidence": "initialize() is public and only checks messenger == address(0), allowing anyone to set messenger/remoteTokenBridge (lines 53-62). finalizeETHBridge and finalizeERC20Bridge transfer ETH/ERC20 based solely on onlyFromCrossDomainAccount, which becomes attacker-controlled once initialize is hijacked (lines 270-345).",
"severity": "critical",
"locations": [
"contracts/contracts/BL/messaging/BLStandardBridge.sol:53",
"contracts/contracts/BL/messaging/BLStandardBridge.sol:270",
"contracts/contracts/BL/messaging/BLStandardBridge.sol:308"
],
"recommendation": "Restrict initialize to a trusted deployer (e.g., onlyOwner/onlyProxyAdmin) or use an initializer pattern that is invoked atomically during proxy deployment; consider disabling initialize on the implementation contract.",
"exploit_scenario": "1) After the proxy is deployed but before the legitimate initializer runs, attacker calls initialize() to set messenger to an attacker-controlled contract and remoteTokenBridge to an attacker-controlled address. 2) Attacker\u2019s messenger contract calls finalizeETHBridge(...) with _to=attacker and _amount=bridge ETH balance; the onlyFromCrossDomainAccount check passes because msg.sender is the attacker\u2019s messenger and xDomainMessageSender() returns the attacker-set remoteTokenBridge. 3) Repeat via finalizeERC20Bridge(...) for each locked token pair, draining up to locks[_localToken][_remoteToken] to the attacker. Profit is the entire ETH balance plus all escrowed ERC20 balances held by the bridge."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x00cb 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x8b4c40b0 00000019: GT 0000001a: PUSH2 0x0074 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xd191bcf9 00000024: GT 00000025: PUSH2 0x004e 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xd191bcf9 0000002f: EQ 00000030: PUSH2 0x0265 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xe11013dd 0000003a: EQ 0000003b: PUSH2 0x0285 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe9518196 00000045: EQ 00000046: PUSH2 0x0298 00000049: JUMPI 0000004a: PUSH1 0x00 0000004c: DUP1 0000004d: REVERT 0000004e: JUMPDEST 0000004f: DUP1 00000050: PUSH4 0x8b4c40b0 00000055: EQ 00000056: PUSH2 0x0142 00000059: JUMPI 0000005a: DUP1 0000005b: PUSH4 0x8d265f10 00000060: EQ 00000061: PUSH2 0x01ff 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0xc05f6155 0000006b: EQ 0000006c: PUSH2 0x021f 0000006f: JUMPI 00000070: PUSH1 0x00 00000072: DUP1 00000073: REVERT 00000074: JUMPDEST 00000075: DUP1 00000076: PUSH4 0x540abf73 0000007b: GT 0000007c: PUSH2 0x00a5 0000007f: JUMPI 00000080: DUP1 00000081: PUSH4 0x540abf73 00000086: EQ 00000087: PUSH2 0x01b9 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0x87087623 00000091: EQ 00000092: PUSH2 0x01cc 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x898c5271 0000009c: EQ 0000009d: PUSH2 0x01df 000000a0: JUMPI 000000a1: PUSH1 0x00 000000a3: DUP1 000000a4: REVERT 000000a5: JUMPDEST 000000a6: DUP1 000000a7: PUSH4 0x09fc8843 000000ac: EQ 000000ad: PUSH2 0x0149 000000b0: JUMPI 000000b1: DUP1 000000b2: PUSH4 0x1794bb3c 000000b7: EQ 000000b8: PUSH2 0x015c 000000bb: JUMPI 000000bc: DUP1 000000bd: PUSH4 0x3cb747bf 000000c2: EQ 000000c3: PUSH2 0x017c 000000c6: JUMPI 000000c7: PUSH1 0x00 000000c9: DUP1 000000ca: REVERT 000000cb: JUMPDEST 000000cc: CALLDATASIZE 000000cd: PUSH2 0x0144 000000d0: JUMPI 000000d1: CALLER 000000d2: EXTCODESIZE 000000d3: ISZERO 000000d4: PUSH2 0x0124 000000d7: JUMPI 000000d8: PUSH1 0x40 000000da: MLOAD 000000db: PUSH3 0x461bcd 000000df: PUSH1 0xe5 000000e1: SHL 000000e2: DUP2 000000e3: MSTORE 000000e4: PUSH1 0x20 000000e6: PUSH1 0x04 000000e8: DUP3 000000e9: ADD 000000ea: MSTORE 000000eb: PUSH1 0x0f 000000ed: PUSH1 0x24 000000ef: DUP3 000000f0: ADD 000000f1: MSTORE 000000f2: PUSH32 0x4163636f756e74206e6f7420454f410000000000000000000000000000000000 00000113: PUSH1 0x44 00000115: DUP3 00000116: ADD 00000117: MSTORE 00000118: PUSH1 0x64 0000011a: ADD 0000011b: JUMPDEST 0000011c: PUSH1 0x40 0000011e: MLOAD 0000011f: DUP1 00000120: SWAP2 00000121: SUB 00000122: SWAP1 00000123: REVERT 00000124: JUMPDEST 00000125: PUSH2 0x0142 00000128: CALLER 00000129: CALLER 0000012a: PUSH3 0x030d40 0000012e: PUSH1 0x40 00000130: MLOAD 00000131: DUP1 00000132: PUSH1 0x20 00000134: ADD 00000135: PUSH1 0x40 00000137: MSTORE 00000138: DUP1 00000139: PUSH1 0x00 0000013b: DUP2 0000013c: MSTORE 0000013d: POP 0000013e: PUSH2 0x02ae 00000141: JUMP 00000142: JUMPDEST 00000143: STOP 00000144: JUMPDEST 00000145: PUSH1 0x00 00000147: DUP1 00000148: REVERT 00000149: JUMPDEST 0000014a: PUSH2 0x0142 0000014d: PUSH2 0x0157 00000150: CALLDATASIZE 00000151: PUSH1 0x04 00000153: PUSH2 0x17e3 00000156: JUMP 00000157: JUMPDEST 00000158: PUSH2 0x03bc 0000015b: JUMP 0000015c: JUMPDEST 0000015d: CALLVALUE 0000015e: DUP1 0000015f: ISZERO 00000160: PUSH2 0x0168 00000163: JUMPI 00000164: PUSH1 0x00 00000166: DUP1 00000167: REVERT 00000168: JUMPDEST 00000169: POP 0000016a: PUSH2 0x0142 0000016d: PUSH2 0x0177 00000170: CALLDATASIZE 00000171: PUSH1 0x04 00000173: PUSH2 0x184e 00000176: JUMP 00000177: JUMPDEST 00000178: PUSH2 0x0452 0000017b: JUMP 0000017c: JUMPDEST 0000017d: CALLVALUE 0000017e: DUP1 0000017f: ISZERO 00000180: PUSH2 0x0188 00000183: JUMPI 00000184: PUSH1 0x00 00000186: DUP1 00000187: REVERT 00000188: JUMPDEST 00000189: POP 0000018a: PUSH1 0x00 0000018c: SLOAD 0000018d: PUSH2 0x019c 00000190: SWAP1 00000191: PUSH1 0x01 00000193: PUSH1 0x01 00000195: PUSH1 0xa0 00000197: SHL 00000198: SUB 00000199: AND 0000019a: DUP2 0000019b: JUMP 0000019c: JUMPDEST 0000019d: PUSH1 0x40 0000019f: MLOAD 000001a0: PUSH1 0x01 000001a2: PUSH1 0x01 000001a4: PUSH1 0xa0 000001a6: SHL 000001a7: SUB 000001a8: SWAP1 000001a9: SWAP2 000001aa: AND 000001ab: DUP2 000001ac: MSTORE 000001ad: PUSH1 0x20 000001af: ADD 000001b0: JUMPDEST 000001b1: PUSH1 0x40 000001b3: MLOAD 000001b4: DUP1 000001b5: SWAP2 000001b6: SUB 000001b7: SWAP1 000001b8: RETURN 000001b9: JUMPDEST 000001ba: PUSH2 0x0142 000001bd: PUSH2 0x01c7 000001c0: CALLDATASIZE 000001c1: PUSH1 0x04 000001c3: PUSH2 0x188f 000001c6: JUMP 000001c7: JUMPDEST 000001c8: PUSH2 0x051e 000001cb: JUMP 000001cc: JUMPDEST 000001cd: PUSH2 0x0142 000001d0: PUSH2 0x01da 000001d3: CALLDATASIZE 000001d4: PUSH1 0x04 000001d6: PUSH2 0x1925 000001d9: JUMP 000001da: JUMPDEST 000001db: PUSH2 0x0538 000001de: JUMP 000001df: JUMPDEST 000001e0: CALLVALUE 000001e1: DUP1 000001e2: ISZERO 000001e3: PUSH2 0x01eb 000001e6: JUMPI 000001e7: PUSH1 0x00 000001e9: DUP1 000001ea: REVERT 000001eb: JUMPDEST 000001ec: POP 000001ed: PUSH2 0x0142 000001f0: PUSH2 0x01fa 000001f3: CALLDATASIZE 000001f4: PUSH1 0x04 000001f6: PUSH2 0x1925 000001f9: JUMP 000001fa: JUMPDEST 000001fb: PUSH2 0x05a0 000001fe: JUMP 000001ff: JUMPDEST 00000200: CALLVALUE 00000201: DUP1 00000202: ISZERO 00000203: PUSH2 0x020b 00000206: JUMPI 00000207: PUSH1 0x00 00000209: DUP1 0000020a: REVERT 0000020b: JUMPDEST 0000020c: POP 0000020d: PUSH2 0x0142 00000210: PUSH2 0x021a 00000213: CALLDATASIZE 00000214: PUSH1 0x04 00000216: PUSH2 0x19a8 00000219: JUMP 0000021a: JUMPDEST 0000021b: PUSH2 0x0920 0000021e: JUMP 0000021f: JUMPDEST 00000220: CALLVALUE 00000221: DUP1 00000222: ISZERO 00000223: PUSH2 0x022b 00000226: JUMPI 00000227: PUSH1 0x00 00000229: DUP1 0000022a: REVERT 0000022b: JUMPDEST 0000022c: POP 0000022d: PUSH2 0x0257 00000230: PUSH2 0x023a 00000233: CALLDATASIZE 00000234: PUSH1 0x04 00000236: PUSH2 0x1a5d 00000239: JUMP 0000023a: JUMPDEST 0000023b: PUSH1 0x03 0000023d: PUSH1 0x20 0000023f: SWAP1 00000240: DUP2 00000241: MSTORE 00000242: PUSH1 0x00 00000244: SWAP3 00000245: DUP4 00000246: MSTORE 00000247: PUSH1 0x40 00000249: DUP1 0000024a: DUP5 0000024b: KECCAK256 0000024c: SWAP1 0000024d: SWAP2 0000024e: MSTORE 0000024f: SWAP1 00000250: DUP3 00000251: MSTORE 00000252: SWAP1 00000253: KECCAK256 00000254: SLOAD 00000255: DUP2 00000256: JUMP 00000257: JUMPDEST 00000258: PUSH1 0x40 0000025a: MLOAD 0000025b: SWAP1 0000025c: DUP2 0000025d: MSTORE 0000025e: PUSH1 0x20 00000260: ADD 00000261: PUSH2 0x01b0 00000264: JUMP 00000265: JUMPDEST 00000266: CALLVALUE 00000267: DUP1 00000268: ISZERO 00000269: PUSH2 0x0271 0000026c: JUMPI 0000026d: PUSH1 0x00 0000026f: DUP1 00000270: REVERT 00000271: JUMPDEST 00000272: POP 00000273: PUSH1 0x01 00000275: SLOAD 00000276: PUSH2 0x019c 00000279: SWAP1 0000027a: PUSH1 0x01 0000027c: PUSH1 0x01 0000027e: PUSH1 0xa0 00000280: SHL 00000281: SUB 00000282: AND 00000283: DUP2 00000284: JUMP 00000285: JUMPDEST 00000286: PUSH2 0x0142 00000289: PUSH2 0x0293 0000028c: CALLDATASIZE 0000028d: PUSH1 0x04 0000028f: PUSH2 0x1a96 00000292: JUMP 00000293: JUMPDEST 00000294: PUSH2 0x0ec6 00000297: JUMP 00000298: JUMPDEST 00000299: CALLVALUE 0000029a: DUP1 0000029b: ISZERO 0000029c: PUSH2 0x02a4 0000029f: JUMPI 000002a0: PUSH1 0x00 000002a2: DUP1 000002a3: REVERT 000002a4: JUMPDEST 000002a5: POP 000002a6: PUSH2 0x0257 000002a9: PUSH1 0x02 000002ab: SLOAD 000002ac: DUP2 000002ad: JUMP 000002ae: JUMPDEST 000002af: PUSH1 0x00 000002b1: PUSH4 0x083261e7 000002b6: PUSH1 0xe0 000002b8: SHL 000002b9: PUSH1 0x00 000002bb: PUSH20 0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000 000002d0: DUP8 000002d1: DUP8 000002d2: CALLVALUE 000002d3: PUSH1 0x00 000002d5: DUP10 000002d6: DUP10 000002d7: PUSH1 0x40 000002d9: MLOAD 000002da: PUSH1 0x24 000002dc: ADD 000002dd: PUSH2 0x02ed 000002e0: SWAP9 000002e1: SWAP8 000002e2: SWAP7 000002e3: SWAP6 000002e4: SWAP5 000002e5: SWAP4 000002e6: SWAP3 000002e7: SWAP2 000002e8: SWAP1 000002e9: PUSH2 0x1b49 000002ec: JUMP 000002ed: JUMPDEST 000002ee: PUSH1 0x40 000002f0: DUP1 000002f1: MLOAD 000002f2: PUSH1 0x1f 000002f4: NOT 000002f5: DUP2 000002f6: DUP5 000002f7: SUB 000002f8: ADD 000002f9: DUP2 000002fa: MSTORE 000002fb: SWAP2 000002fc: SWAP1 000002fd: MSTORE 000002fe: PUSH1 0x20 00000300: DUP2 00000301: ADD 00000302: DUP1 00000303: MLOAD 00000304: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000321: AND 00000322: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000343: SWAP1 00000344: SWAP4 00000345: AND 00000346: SWAP3 00000347: SWAP1 00000348: SWAP3 00000349: OR 0000034a: SWAP1 0000034b: SWAP2 0000034c: MSTORE 0000034d: PUSH1 0x01 0000034f: SLOAD 00000350: SWAP1 00000351: SWAP2 00000352: POP 00000353: PUSH2 0x0366 00000356: SWAP1 00000357: PUSH1 0x01 00000359: PUSH1 0x01 0000035b: PUSH1 0xa0 0000035d: SHL 0000035e: SUB 0000035f: AND 00000360: DUP5 00000361: DUP4 00000362: PUSH2 0x0f0e 00000365: JUMP 00000366: JUMPDEST 00000367: DUP4 00000368: PUSH1 0x01 0000036a: PUSH1 0x01 0000036c: PUSH1 0xa0 0000036e: SHL 0000036f: SUB 00000370: AND 00000371: DUP6 00000372: PUSH1 0x01 00000374: PUSH1 0x01 00000376: PUSH1 0xa0 00000378: SHL 00000379: SUB 0000037a: AND 0000037b: PUSH32 0xde5464507fd3818686c59ae705aabcb9225fdd7b8f39f2afe70b05c5ba461966 0000039c: CALLVALUE 0000039d: DUP7 0000039e: DUP7 0000039f: PUSH1 0x40 000003a1: MLOAD 000003a2: PUSH2 0x03ad 000003a5: SWAP4 000003a6: SWAP3 000003a7: SWAP2 000003a8: SWAP1 000003a9: PUSH2 0x1bb0 000003ac: JUMP 000003ad: JUMPDEST 000003ae: PUSH1 0x40 000003b0: MLOAD 000003b1: DUP1 000003b2: SWAP2 000003b3: SUB 000003b4: SWAP1 000003b5: LOG3 000003b6: POP 000003b7: POP 000003b8: POP 000003b9: POP 000003ba: POP 000003bb: JUMP 000003bc: JUMPDEST 000003bd: CALLER 000003be: EXTCODESIZE 000003bf: ISZERO 000003c0: PUSH2 0x040b 000003c3: JUMPI 000003c4: PUSH1 0x40 000003c6: MLOAD 000003c7: PUSH3 0x461bcd 000003cb: PUSH1 0xe5 000003cd: SHL 000003ce: DUP2 000003cf: MSTORE 000003d0: PUSH1 0x20 000003d2: PUSH1 0x04 000003d4: DUP3 000003d5: ADD 000003d6: MSTORE 000003d7: PUSH1 0x0f 000003d9: PUSH1 0x24 000003db: DUP3 000003dc: ADD 000003dd: MSTORE 000003de: PUSH32 0x4163636f756e74206e6f7420454f410000000000000000000000000000000000 000003ff: PUSH1 0x44 00000401: DUP3 00000402: ADD 00000403: MSTORE 00000404: PUSH1 0x64 00000406: ADD 00000407: PUSH2 0x011b 0000040a: JUMP 0000040b: JUMPDEST 0000040c: PUSH2 0x044d 0000040f: CALLER 00000410: CALLER 00000411: DUP6 00000412: DUP6 00000413: DUP6 00000414: DUP1 00000415: DUP1 00000416: PUSH1 0x1f 00000418: ADD 00000419: PUSH1 0x20 0000041b: DUP1 0000041c: SWAP2 0000041d: DIV 0000041e: MUL 0000041f: PUSH1 0x20 00000421: ADD 00000422: PUSH1 0x40 00000424: MLOAD 00000425: SWAP1 00000426: DUP2 00000427: ADD 00000428: PUSH1 0x40 0000042a: MSTORE 0000042b: DUP1 0000042c: SWAP4 0000042d: SWAP3 0000042e: SWAP2 0000042f: SWAP1 00000430: DUP2 00000431: DUP2 00000432: MSTORE 00000433: PUSH1 0x20 00000435: ADD 00000436: DUP4 00000437: DUP4 00000438: DUP1 00000439: DUP3 0000043a: DUP5 0000043b: CALLDATACOPY 0000043c: PUSH1 0x00 0000043e: SWAP3 0000043f: ADD 00000440: SWAP2 00000441: SWAP1 00000442: SWAP2 00000443: MSTORE 00000444: POP 00000445: PUSH2 0x02ae 00000448: SWAP3 00000449: POP 0000044a: POP 0000044b: POP 0000044c: JUMP 0000044d: JUMPDEST 0000044e: POP 0000044f: POP 00000450: POP 00000451: JUMP 00000452: JUMPDEST 00000453: PUSH1 0x00 00000455: SLOAD 00000456: PUSH1 0x01 00000458: PUSH1 0x01 0000045a: PUSH1 0xa0 0000045c: SHL 0000045d: SUB 0000045e: AND 0000045f: ISZERO 00000460: PUSH2 0x04d1 00000463: JUMPI 00000464: PUSH1 0x40 00000466: MLOAD 00000467: PUSH3 0x461bcd 0000046b: PUSH1 0xe5 0000046d: SHL 0000046e: DUP2 0000046f: MSTORE 00000470: PUSH1 0x20 00000472: PUSH1 0x04 00000474: DUP3 00000475: ADD 00000476: MSTORE 00000477: PUSH1 0x26 00000479: PUSH1 0x24 0000047b: DUP3 0000047c: ADD 0000047d: MSTORE 0000047e: PUSH32 0x436f6e74726163742068617320616c7265616479206265656e20696e69746961 0000049f: PUSH1 0x44 000004a1: DUP3 000004a2: ADD 000004a3: MSTORE 000004a4: PUSH32 0x6c697a65642e0000000000000000000000000000000000000000000000000000 000004c5: PUSH1 0x64 000004c7: DUP3 000004c8: ADD 000004c9: MSTORE 000004ca: PUSH1 0x84 000004cc: ADD 000004cd: PUSH2 0x011b 000004d0: JUMP 000004d1: JUMPDEST 000004d2: PUSH1 0x00 000004d4: DUP1 000004d5: SLOAD 000004d6: PUSH1 0x01 000004d8: PUSH1 0x01 000004da: PUSH1 0xa0 000004dc: SHL 000004dd: SUB 000004de: SWAP5 000004df: DUP6 000004e0: AND 000004e1: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000502: SWAP2 00000503: DUP3 00000504: AND 00000505: OR 00000506: SWAP1 00000507: SWAP2 00000508: SSTORE 00000509: PUSH1 0x01 0000050b: DUP1 0000050c: SLOAD 0000050d: SWAP4 0000050e: SWAP1 0000050f: SWAP5 00000510: AND 00000511: SWAP3 00000512: AND 00000513: SWAP2 00000514: SWAP1 00000515: SWAP2 00000516: OR 00000517: SWAP1 00000518: SWAP2 00000519: SSTORE 0000051a: PUSH1 0x02 0000051c: SSTORE 0000051d: JUMP 0000051e: JUMPDEST 0000051f: PUSH2 0x052f 00000522: DUP8 00000523: DUP8 00000524: CALLER 00000525: DUP9 00000526: DUP9 00000527: CALLVALUE 00000528: DUP10 00000529: DUP10 0000052a: DUP10 0000052b: PUSH2 0x0f89 0000052e: JUMP 0000052f: JUMPDEST 00000530: POP 00000531: POP 00000532: POP 00000533: POP 00000534: POP 00000535: POP 00000536: POP 00000537: JUMP 00000538: JUMPDEST 00000539: CALLER 0000053a: EXTCODESIZE 0000053b: ISZERO 0000053c: PUSH2 0x0587 0000053f: JUMPI 00000540: PUSH1 0x40 00000542: MLOAD 00000543: PUSH3 0x461bcd 00000547: PUSH1 0xe5 00000549: SHL 0000054a: DUP2 0000054b: MSTORE 0000054c: PUSH1 0x20 0000054e: PUSH1 0x04 00000550: DUP3 00000551: ADD 00000552: MSTORE 00000553: PUSH1 0x0f 00000555: PUSH1 0x24 00000557: DUP3 00000558: ADD 00000559: MSTORE 0000055a: PUSH32 0x4163636f756e74206e6f7420454f410000000000000000000000000000000000 0000057b: PUSH1 0x44 0000057d: DUP3 0000057e: ADD 0000057f: MSTORE 00000580: PUSH1 0x64 00000582: ADD 00000583: PUSH2 0x011b 00000586: JUMP 00000587: JUMPDEST 00000588: PUSH2 0x0598 0000058b: DUP7 0000058c: DUP7 0000058d: CALLER 0000058e: CALLER 0000058f: DUP9 00000590: CALLVALUE 00000591: DUP10 00000592: DUP10 00000593: DUP10 00000594: PUSH2 0x0f89 00000597: JUMP 00000598: JUMPDEST 00000599: POP 0000059a: POP 0000059b: POP 0000059c: POP 0000059d: POP 0000059e: POP 0000059f: JUMP 000005a0: JUMPDEST 000005a1: PUSH1 0x01 000005a3: SLOAD 000005a4: PUSH1 0x01 000005a6: PUSH1 0x01 000005a8: PUSH1 0xa0 000005aa: SHL 000005ab: SUB 000005ac: AND 000005ad: PUSH2 0x05be 000005b0: PUSH1 0x00 000005b2: SLOAD 000005b3: PUSH1 0x01 000005b5: PUSH1 0x01 000005b7: PUSH1 0xa0 000005b9: SHL 000005ba: SUB 000005bb: AND 000005bc: SWAP1 000005bd: JUMP 000005be: JUMPDEST 000005bf: PUSH1 0x01 000005c1: PUSH1 0x01 000005c3: PUSH1 0xa0 000005c5: SHL 000005c6: SUB 000005c7: AND 000005c8: CALLER 000005c9: PUSH1 0x01 000005cb: PUSH1 0x01 000005cd: PUSH1 0xa0 000005cf: SHL 000005d0: SUB 000005d1: AND 000005d2: EQ 000005d3: PUSH2 0x0644 000005d6: JUMPI 000005d7: PUSH1 0x40 000005d9: MLOAD 000005da: PUSH3 0x461bcd 000005de: PUSH1 0xe5 000005e0: SHL 000005e1: DUP2 000005e2: MSTORE 000005e3: PUSH1 0x20 000005e5: PUSH1 0x04 000005e7: DUP3 000005e8: ADD 000005e9: MSTORE 000005ea: PUSH1 0x2e 000005ec: PUSH1 0x24 000005ee: DUP3 000005ef: ADD 000005f0: MSTORE 000005f1: PUSH32 0x4e564d5f58434841494e3a206d657373656e67657220636f6e74726163742075 00000612: PUSH1 0x44 00000614: DUP3 00000615: ADD 00000616: MSTORE 00000617: PUSH32 0x6e61757468656e74696361746564000000000000000000000000000000000000 00000638: PUSH1 0x64 0000063a: DUP3 0000063b: ADD 0000063c: MSTORE 0000063d: PUSH1 0x84 0000063f: ADD 00000640: PUSH2 0x011b 00000643: JUMP 00000644: JUMPDEST 00000645: DUP1 00000646: PUSH1 0x01 00000648: PUSH1 0x01 0000064a: PUSH1 0xa0 0000064c: SHL 0000064d: SUB 0000064e: AND 0000064f: PUSH2 0x0660 00000652: PUSH1 0x00 00000654: SLOAD 00000655: PUSH1 0x01 00000657: PUSH1 0x01 00000659: PUSH1 0xa0 0000065b: SHL 0000065c: SUB 0000065d: AND 0000065e: SWAP1 0000065f: JUMP 00000660: JUMPDEST 00000661: PUSH1 0x01 00000663: PUSH1 0x01 00000665: PUSH1 0xa0 00000667: SHL 00000668: SUB 00000669: AND 0000066a: PUSH4 0x6e296e45 0000066f: PUSH1 0x40 00000671: MLOAD 00000672: DUP2 00000673: PUSH4 0xffffffff 00000678: AND 00000679: PUSH1 0xe0 0000067b: SHL 0000067c: DUP2 0000067d: MSTORE 0000067e: PUSH1 0x04 00000680: ADD 00000681: PUSH1 0x20 00000683: PUSH1 0x40 00000685: MLOAD 00000686: DUP1 00000687: DUP4 00000688: SUB 00000689: DUP2 0000068a: DUP7 0000068b: GAS 0000068c: STATICCALL 0000068d: ISZERO 0000068e: DUP1 0000068f: ISZERO 00000690: PUSH2 0x069d 00000693: JUMPI 00000694: RETURNDATASIZE 00000695: PUSH1 0x00 00000697: DUP1 00000698: RETURNDATACOPY 00000699: RETURNDATASIZE 0000069a: PUSH1 0x00 0000069c: REVERT 0000069d: JUMPDEST 0000069e: POP 0000069f: POP 000006a0: POP 000006a1: POP 000006a2: PUSH1 0x40 000006a4: MLOAD 000006a5: RETURNDATASIZE 000006a6: PUSH1 0x1f 000006a8: NOT 000006a9: PUSH1 0x1f 000006ab: DUP3 000006ac: ADD 000006ad: AND 000006ae: DUP3 000006af: ADD 000006b0: DUP1 000006b1: PUSH1 0x40 000006b3: MSTORE 000006b4: POP 000006b5: DUP2 000006b6: ADD 000006b7: SWAP1 000006b8: PUSH2 0x06c1 000006bb: SWAP2 000006bc: SWAP1 000006bd: PUSH2 0x1bde 000006c0: JUMP 000006c1: JUMPDEST 000006c2: PUSH1 0x01 000006c4: PUSH1 0x01 000006c6: PUSH1 0xa0 000006c8: SHL 000006c9: SUB 000006ca: AND 000006cb: EQ 000006cc: PUSH2 0x073d 000006cf: JUMPI 000006d0: PUSH1 0x40 000006d2: MLOAD 000006d3: PUSH3 0x461bcd 000006d7: PUSH1 0xe5 000006d9: SHL 000006da: DUP2 000006db: MSTORE 000006dc: PUSH1 0x20 000006de: PUSH1 0x04 000006e0: DUP3 000006e1: ADD 000006e2: MSTORE 000006e3: PUSH1 0x30 000006e5: PUSH1 0x24 000006e7: DUP3 000006e8: ADD 000006e9: MSTORE 000006ea: PUSH32 0x4e564d5f58434841494e3a2077726f6e672073656e646572206f662063726f73 0000070b: PUSH1 0x44 0000070d: DUP3 0000070e: ADD 0000070f: MSTORE 00000710: PUSH32 0x732d646f6d61696e206d65737361676500000000000000000000000000000000 00000731: PUSH1 0x64 00000733: DUP3 00000734: ADD 00000735: MSTORE 00000736: PUSH1 0x84 00000738: ADD 00000739: PUSH2 0x011b 0000073c: JUMP 0000073d: JUMPDEST 0000073e: PUSH1 0x40 00000740: DUP1 00000741: MLOAD 00000742: PUSH1 0x00 00000744: DUP1 00000745: DUP3 00000746: MSTORE 00000747: PUSH1 0x20 00000749: DUP3 0000074a: ADD 0000074b: SWAP1 0000074c: SWAP3 0000074d: MSTORE 0000074e: PUSH1 0x01 00000750: PUSH1 0x01 00000752: PUSH1 0xa0 00000754: SHL 00000755: SUB 00000756: DUP9 00000757: AND 00000758: SWAP1 00000759: DUP8 0000075a: SWAP1 0000075b: PUSH1 0x40 0000075d: MLOAD 0000075e: PUSH2 0x0767 00000761: SWAP2 00000762: SWAP1 00000763: PUSH2 0x1c02 00000766: JUMP 00000767: JUMPDEST 00000768: PUSH1 0x00 0000076a: PUSH1 0x40 0000076c: MLOAD 0000076d: DUP1 0000076e: DUP4 0000076f: SUB 00000770: DUP2 00000771: DUP6 00000772: DUP8 00000773: GAS 00000774: CALL 00000775: SWAP3 00000776: POP 00000777: POP 00000778: POP 00000779: RETURNDATASIZE 0000077a: DUP1 0000077b: PUSH1 0x00 0000077d: DUP2 0000077e: EQ 0000077f: PUSH2 0x07a4 00000782: JUMPI 00000783: PUSH1 0x40 00000785: MLOAD 00000786: SWAP2 00000787: POP 00000788: PUSH1 0x1f 0000078a: NOT 0000078b: PUSH1 0x3f 0000078d: RETURNDATASIZE 0000078e: ADD 0000078f: AND 00000790: DUP3 00000791: ADD 00000792: PUSH1 0x40 00000794: MSTORE 00000795: RETURNDATASIZE 00000796: DUP3 00000797: MSTORE 00000798: RETURNDATASIZE 00000799: PUSH1 0x00 0000079b: PUSH1 0x20 0000079d: DUP5 0000079e: ADD 0000079f: RETURNDATACOPY 000007a0: PUSH2 0x07a9 000007a3: JUMP 000007a4: JUMPDEST 000007a5: PUSH1 0x60 000007a7: SWAP2 000007a8: POP 000007a9: JUMPDEST 000007aa: POP 000007ab: POP 000007ac: SWAP1 000007ad: POP 000007ae: DUP1 000007af: ISZERO 000007b0: PUSH2 0x0809 000007b3: JUMPI 000007b4: DUP7 000007b5: PUSH1 0x01 000007b7: PUSH1 0x01 000007b9: PUSH1 0xa0 000007bb: SHL 000007bc: SUB 000007bd: AND 000007be: DUP9 000007bf: PUSH1 0x01 000007c1: PUSH1 0x01 000007c3: PUSH1 0xa0 000007c5: SHL 000007c6: SUB 000007c7: AND 000007c8: PUSH32 0x8cde5c76ce721a33a3a112e87c46498b02502d140e36537b71e85e6dc5c02cdf 000007e9: DUP9 000007ea: DUP9 000007eb: DUP9 000007ec: DUP9 000007ed: PUSH1 0x40 000007ef: MLOAD 000007f0: PUSH2 0x07fc 000007f3: SWAP5 000007f4: SWAP4 000007f5: SWAP3 000007f6: SWAP2 000007f7: SWAP1 000007f8: PUSH2 0x1c49 000007fb: JUMP 000007fc: JUMPDEST 000007fd: PUSH1 0x40 000007ff: MLOAD 00000800: DUP1 00000801: SWAP2 00000802: SUB 00000803: SWAP1 00000804: LOG3 00000805: PUSH2 0x0916 00000808: JUMP 00000809: JUMPDEST 0000080a: PUSH1 0x00 0000080c: PUSH4 0x083261e7 00000811: PUSH1 0xe0 00000813: SHL 00000814: PUSH1 0x00 00000816: PUSH20 0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000 0000082b: DUP11 0000082c: DUP13 0000082d: DUP12 0000082e: PUSH1 0x00 00000830: DUP13 00000831: DUP13 00000832: DUP13 00000833: PUSH1 0x40 00000835: MLOAD 00000836: PUSH1 0x24 00000838: ADD 00000839: PUSH2 0x084a 0000083c: SWAP10 0000083d: SWAP9 0000083e: SWAP8 0000083f: SWAP7 00000840: SWAP6 00000841: SWAP5 00000842: SWAP4 00000843: SWAP3 00000844: SWAP2 00000845: SWAP1 00000846: PUSH2 0x1c79 00000849: JUMP 0000084a: JUMPDEST 0000084b: PUSH1 0x40 0000084d: DUP1 0000084e: MLOAD 0000084f: PUSH1 0x1f 00000851: NOT 00000852: DUP2 00000853: DUP5 00000854: SUB 00000855: ADD 00000856: DUP2 00000857: MSTORE 00000858: SWAP2 00000859: SWAP1 0000085a: MSTORE 0000085b: PUSH1 0x20 0000085d: DUP2 0000085e: ADD 0000085f: DUP1 00000860: MLOAD 00000861: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000087e: AND 0000087f: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000008a0: SWAP1 000008a1: SWAP4 000008a2: AND 000008a3: SWAP3 000008a4: SWAP1 000008a5: SWAP3 000008a6: OR 000008a7: SWAP1 000008a8: SWAP2 000008a9: MSTORE 000008aa: PUSH1 0x01 000008ac: SLOAD 000008ad: SWAP1 000008ae: SWAP2 000008af: POP 000008b0: PUSH2 0x08c3 000008b3: SWAP1 000008b4: PUSH1 0x01 000008b6: PUSH1 0x01 000008b8: PUSH1 0xa0 000008ba: SHL 000008bb: SUB 000008bc: AND 000008bd: DUP8 000008be: DUP4 000008bf: PUSH2 0x0f0e 000008c2: JUMP 000008c3: JUMPDEST 000008c4: DUP8 000008c5: PUSH1 0x01 000008c7: PUSH1 0x01 000008c9: PUSH1 0xa0 000008cb: SHL 000008cc: SUB 000008cd: AND 000008ce: DUP10 000008cf: PUSH1 0x01 000008d1: PUSH1 0x01 000008d3: PUSH1 0xa0 000008d5: SHL 000008d6: SUB 000008d7: AND 000008d8: PUSH32 0x6b47ba568693f22bf55885e915fd89956580d9846d02fc35d9b20e2360de320e 000008f9: DUP10 000008fa: DUP10 000008fb: DUP10 000008fc: DUP10 000008fd: PUSH1 0x40 000008ff: MLOAD 00000900: PUSH2 0x090c 00000903: SWAP5 00000904: SWAP4 00000905: SWAP3 00000906: SWAP2 00000907: SWAP1 00000908: PUSH2 0x1c49 0000090b: JUMP 0000090c: JUMPDEST 0000090d: PUSH1 0x40 0000090f: MLOAD 00000910: DUP1 00000911: SWAP2 00000912: SUB 00000913: SWAP1 00000914: LOG3 00000915: POP 00000916: JUMPDEST 00000917: POP 00000918: POP 00000919: POP 0000091a: POP 0000091b: POP 0000091c: POP 0000091d: POP 0000091e: POP 0000091f: JUMP 00000920: JUMPDEST 00000921: PUSH1 0x01 00000923: SLOAD 00000924: PUSH1 0x01 00000926: PUSH1 0x01 00000928: PUSH1 0xa0 0000092a: SHL 0000092b: SUB 0000092c: AND 0000092d: PUSH2 0x093e 00000930: PUSH1 0x00 00000932: SLOAD 00000933: PUSH1 0x01 00000935: PUSH1 0x01 00000937: PUSH1 0xa0 00000939: SHL 0000093a: SUB 0000093b: AND 0000093c: SWAP1 0000093d: JUMP 0000093e: JUMPDEST 0000093f: PUSH1 0x01 00000941: PUSH1 0x01 00000943: PUSH1 0xa0 00000945: SHL 00000946: SUB 00000947: AND 00000948: CALLER 00000949: PUSH1 0x01 0000094b: PUSH1 0x01 0000094d: PUSH1 0xa0 0000094f: SHL 00000950: SUB 00000951: AND 00000952: EQ 00000953: PUSH2 0x09c4 00000956: JUMPI 00000957: PUSH1 0x40 00000959: MLOAD 0000095a: PUSH3 0x461bcd 0000095e: PUSH1 0xe5 00000960: SHL 00000961: DUP2 00000962: MSTORE 00000963: PUSH1 0x20 00000965: PUSH1 0x04 00000967: DUP3 00000968: ADD 00000969: MSTORE 0000096a: PUSH1 0x2e 0000096c: PUSH1 0x24 0000096e: DUP3 0000096f: ADD 00000970: MSTORE 00000971: PUSH32 0x4e564d5f58434841494e3a206d657373656e67657220636f6e74726163742075 00000992: PUSH1 0x44 00000994: DUP3 00000995: ADD 00000996: MSTORE 00000997: PUSH32 0x6e61757468656e74696361746564000000000000000000000000000000000000 000009b8: PUSH1 0x64 000009ba: DUP3 000009bb: ADD 000009bc: MSTORE 000009bd: PUSH1 0x84 000009bf: ADD 000009c0: PUSH2 0x011b 000009c3: JUMP 000009c4: JUMPDEST 000009c5: DUP1 000009c6: PUSH1 0x01 000009c8: PUSH1 0x01 000009ca: PUSH1 0xa0 000009cc: SHL 000009cd: SUB 000009ce: AND 000009cf: PUSH2 0x09e0 000009d2: PUSH1 0x00 000009d4: SLOAD 000009d5: PUSH1 0x01 000009d7: PUSH1 0x01 000009d9: PUSH1 0xa0 000009db: SHL 000009dc: SUB 000009dd: AND 000009de: SWAP1 000009df: JUMP 000009e0: JUMPDEST 000009e1: PUSH1 0x01 000009e3: PUSH1 0x01 000009e5: PUSH1 0xa0 000009e7: SHL 000009e8: SUB 000009e9: AND 000009ea: PUSH4 0x6e296e45 000009ef: PUSH1 0x40 000009f1: MLOAD 000009f2: DUP2 000009f3: PUSH4 0xffffffff 000009f8: AND 000009f9: PUSH1 0xe0 000009fb: SHL 000009fc: DUP2 000009fd: MSTORE 000009fe: PUSH1 0x04 00000a00: ADD 00000a01: PUSH1 0x20 00000a03: PUSH1 0x40 00000a05: MLOAD 00000a06: DUP1 00000a07: DUP4 00000a08: SUB 00000a09: DUP2 00000a0a: DUP7 00000a0b: GAS 00000a0c: STATICCALL 00000a0d: ISZERO 00000a0e: DUP1 00000a0f: ISZERO 00000a10: PUSH2 0x0a1d 00000a13: JUMPI 00000a14: RETURNDATASIZE 00000a15: PUSH1 0x00 00000a17: DUP1 00000a18: RETURNDATACOPY 00000a19: RETURNDATASIZE 00000a1a: PUSH1 0x00 00000a1c: REVERT 00000a1d: JUMPDEST 00000a1e: POP 00000a1f: POP 00000a20: POP 00000a21: POP 00000a22: PUSH1 0x40 00000a24: MLOAD 00000a25: RETURNDATASIZE 00000a26: PUSH1 0x1f 00000a28: NOT 00000a29: PUSH1 0x1f 00000a2b: DUP3 00000a2c: ADD 00000a2d: AND 00000a2e: DUP3 00000a2f: ADD 00000a30: DUP1 00000a31: PUSH1 0x40 00000a33: MSTORE 00000a34: POP 00000a35: DUP2 00000a36: ADD 00000a37: SWAP1 00000a38: PUSH2 0x0a41 00000a3b: SWAP2 00000a3c: SWAP1 00000a3d: PUSH2 0x1bde 00000a40: JUMP 00000a41: JUMPDEST 00000a42: PUSH1 0x01 00000a44: PUSH1 0x01 00000a46: PUSH1 0xa0 00000a48: SHL 00000a49: SUB 00000a4a: AND 00000a4b: EQ 00000a4c: PUSH2 0x0abd 00000a4f: JUMPI 00000a50: PUSH1 0x40 00000a52: MLOAD 00000a53: PUSH3 0x461bcd 00000a57: PUSH1 0xe5 00000a59: SHL 00000a5a: DUP2 00000a5b: MSTORE 00000a5c: PUSH1 0x20 00000a5e: PUSH1 0x04 00000a60: DUP3 00000a61: ADD 00000a62: MSTORE 00000a63: PUSH1 0x30 00000a65: PUSH1 0x24 00000a67: DUP3 00000a68: ADD 00000a69: MSTORE 00000a6a: PUSH32 0x4e564d5f58434841494e3a2077726f6e672073656e646572206f662063726f73 00000a8b: PUSH1 0x44 00000a8d: DUP3 00000a8e: ADD 00000a8f: MSTORE 00000a90: PUSH32 0x732d646f6d61696e206d65737361676500000000000000000000000000000000 00000ab1: PUSH1 0x64 00000ab3: DUP3 00000ab4: ADD 00000ab5: MSTORE 00000ab6: PUSH1 0x84 00000ab8: ADD 00000ab9: PUSH2 0x011b 00000abc: JUMP 00000abd: JUMPDEST 00000abe: PUSH2 0x0ae7 00000ac1: DUP11 00000ac2: PUSH32 0xeae770ac00000000000000000000000000000000000000000000000000000000 00000ae3: PUSH2 0x12b3 00000ae6: JUMP 00000ae7: JUMPDEST 00000ae8: DUP1 00000ae9: ISZERO 00000aea: PUSH2 0x0b66 00000aed: JUMPI 00000aee: POP 00000aef: ADDRESS 00000af0: PUSH1 0x01 00000af2: PUSH1 0x01 00000af4: PUSH1 0xa0 00000af6: SHL 00000af7: SUB 00000af8: AND 00000af9: DUP11 00000afa: PUSH1 0x01 00000afc: PUSH1 0x01 00000afe: PUSH1 0xa0 00000b00: SHL 00000b01: SUB 00000b02: AND 00000b03: PUSH3 0x51d905 00000b07: PUSH1 0x40 00000b09: MLOAD 00000b0a: DUP2 00000b0b: PUSH4 0xffffffff 00000b10: AND 00000b11: PUSH1 0xe0 00000b13: SHL 00000b14: DUP2 00000b15: MSTORE 00000b16: PUSH1 0x04 00000b18: ADD 00000b19: PUSH1 0x20 00000b1b: PUSH1 0x40 00000b1d: MLOAD 00000b1e: DUP1 00000b1f: DUP4 00000b20: SUB 00000b21: DUP2 00000b22: PUSH1 0x00 00000b24: DUP8 00000b25: GAS 00000b26: CALL 00000b27: ISZERO 00000b28: DUP1 00000b29: ISZERO 00000b2a: PUSH2 0x0b37 00000b2d: JUMPI 00000b2e: RETURNDATASIZE 00000b2f: PUSH1 0x00 00000b31: DUP1 00000b32: RETURNDATACOPY 00000b33: RETURNDATASIZE 00000b34: PUSH1 0x00 00000b36: REVERT 00000b37: JUMPDEST 00000b38: POP 00000b39: POP 00000b3a: POP 00000b3b: POP 00000b3c: PUSH1 0x40 00000b3e: MLOAD 00000b3f: RETURNDATASIZE 00000b40: PUSH1 0x1f 00000b42: NOT 00000b43: PUSH1 0x1f 00000b45: DUP3 00000b46: ADD 00000b47: AND 00000b48: DUP3 00000b49: ADD 00000b4a: DUP1 00000b4b: PUSH1 0x40 00000b4d: MSTORE 00000b4e: POP 00000b4f: DUP2 00000b50: ADD 00000b51: SWAP1 00000b52: PUSH2 0x0b5b 00000b55: SWAP2 00000b56: SWAP1 00000b57: PUSH2 0x1bde 00000b5a: JUMP 00000b5b: JUMPDEST 00000b5c: PUSH1 0x01 00000b5e: PUSH1 0x01 00000b60: PUSH1 0xa0 00000b62: SHL 00000b63: SUB 00000b64: AND 00000b65: EQ 00000b66: JUMPDEST 00000b67: DUP1 00000b68: ISZERO 00000b69: PUSH2 0x0be6 00000b6c: JUMPI 00000b6d: POP 00000b6e: DUP9 00000b6f: PUSH1 0x01 00000b71: PUSH1 0x01 00000b73: PUSH1 0xa0 00000b75: SHL 00000b76: SUB 00000b77: AND 00000b78: DUP11 00000b79: PUSH1 0x01 00000b7b: PUSH1 0x01 00000b7d: PUSH1 0xa0 00000b7f: SHL 00000b80: SUB 00000b81: AND 00000b82: PUSH4 0xd6c0b2c4 00000b87: PUSH1 0x40 00000b89: MLOAD 00000b8a: DUP2 00000b8b: PUSH4 0xffffffff 00000b90: AND 00000b91: PUSH1 0xe0 00000b93: SHL 00000b94: DUP2 00000b95: MSTORE 00000b96: PUSH1 0x04 00000b98: ADD 00000b99: PUSH1 0x20 00000b9b: PUSH1 0x40 00000b9d: MLOAD 00000b9e: DUP1 00000b9f: DUP4 00000ba0: SUB 00000ba1: DUP2 00000ba2: PUSH1 0x00 00000ba4: DUP8 00000ba5: GAS 00000ba6: CALL 00000ba7: ISZERO 00000ba8: DUP1 00000ba9: ISZERO 00000baa: PUSH2 0x0bb7 00000bad: JUMPI 00000bae: RETURNDATASIZE 00000baf: PUSH1 0x00 00000bb1: DUP1 00000bb2: RETURNDATACOPY 00000bb3: RETURNDATASIZE 00000bb4: PUSH1 0x00 00000bb6: REVERT 00000bb7: JUMPDEST 00000bb8: POP 00000bb9: POP 00000bba: POP 00000bbb: POP 00000bbc: PUSH1 0x40 00000bbe: MLOAD 00000bbf: RETURNDATASIZE 00000bc0: PUSH1 0x1f 00000bc2: NOT 00000bc3: PUSH1 0x1f 00000bc5: DUP3 00000bc6: ADD 00000bc7: AND 00000bc8: DUP3 00000bc9: ADD 00000bca: DUP1 00000bcb: PUSH1 0x40 00000bcd: MSTORE 00000bce: POP 00000bcf: DUP2 00000bd0: ADD 00000bd1: SWAP1 00000bd2: PUSH2 0x0bdb 00000bd5: SWAP2 00000bd6: SWAP1 00000bd7: PUSH2 0x1bde 00000bda: JUMP 00000bdb: JUMPDEST 00000bdc: PUSH1 0x01 00000bde: PUSH1 0x01 00000be0: PUSH1 0xa0 00000be2: SHL 00000be3: SUB 00000be4: AND 00000be5: EQ 00000be6: JUMPDEST 00000be7: ISZERO 00000be8: PUSH2 0x0cca 00000beb: JUMPI 00000bec: PUSH1 0x40 00000bee: MLOAD 00000bef: PUSH32 0x40c10f1900000000000000000000000000000000000000000000000000000000 00000c10: DUP2 00000c11: MSTORE 00000c12: PUSH1 0x01 00000c14: PUSH1 0x01 00000c16: PUSH1 0xa0 00000c18: SHL 00000c19: SUB 00000c1a: DUP9 00000c1b: DUP2 00000c1c: AND 00000c1d: PUSH1 0x04 00000c1f: DUP4 00000c20: ADD 00000c21: MSTORE 00000c22: PUSH1 0x24 00000c24: DUP3 00000c25: ADD 00000c26: DUP9 00000c27: SWAP1 00000c28: MSTORE 00000c29: DUP12 00000c2a: AND 00000c2b: SWAP1 00000c2c: PUSH4 0x40c10f19 00000c31: SWAP1 00000c32: PUSH1 0x44 00000c34: ADD 00000c35: PUSH1 0x00 00000c37: PUSH1 0x40 00000c39: MLOAD 00000c3a: DUP1 00000c3b: DUP4 00000c3c: SUB 00000c3d: DUP2 00000c3e: PUSH1 0x00 00000c40: DUP8 00000c41: DUP1 00000c42: EXTCODESIZE 00000c43: ISZERO 00000c44: DUP1 00000c45: ISZERO 00000c46: PUSH2 0x0c4e 00000c49: JUMPI 00000c4a: PUSH1 0x00 00000c4c: DUP1 00000c4d: REVERT 00000c4e: JUMPDEST 00000c4f: POP 00000c50: GAS 00000c51: CALL 00000c52: ISZERO 00000c53: DUP1 00000c54: ISZERO 00000c55: PUSH2 0x0c62 00000c58: JUMPI 00000c59: RETURNDATASIZE 00000c5a: PUSH1 0x00 00000c5c: DUP1 00000c5d: RETURNDATACOPY 00000c5e: RETURNDATASIZE 00000c5f: PUSH1 0x00 00000c61: REVERT 00000c62: JUMPDEST 00000c63: POP 00000c64: POP 00000c65: POP 00000c66: POP 00000c67: DUP8 00000c68: PUSH1 0x01 00000c6a: PUSH1 0x01 00000c6c: PUSH1 0xa0 00000c6e: SHL 00000c6f: SUB 00000c70: AND 00000c71: DUP10 00000c72: PUSH1 0x01 00000c74: PUSH1 0x01 00000c76: PUSH1 0xa0 00000c78: SHL 00000c79: SUB 00000c7a: AND 00000c7b: DUP12 00000c7c: PUSH1 0x01 00000c7e: PUSH1 0x01 00000c80: PUSH1 0xa0 00000c82: SHL 00000c83: SUB 00000c84: AND 00000c85: PUSH32 0xbde927f1a995206c0e493ff5dee7f2d8ef95c81844a93d0a600831a6d7e6f654 00000ca6: DUP11 00000ca7: DUP11 00000ca8: DUP11 00000ca9: DUP11 00000caa: DUP11 00000cab: DUP11 00000cac: PUSH1 0x40 00000cae: MLOAD 00000caf: PUSH2 0x0cbd 00000cb2: SWAP7 00000cb3: SWAP6 00000cb4: SWAP5 00000cb5: SWAP4 00000cb6: SWAP3 00000cb7: SWAP2 00000cb8: SWAP1 00000cb9: PUSH2 0x1ce2 00000cbc: JUMP 00000cbd: JUMPDEST 00000cbe: PUSH1 0x40 00000cc0: MLOAD 00000cc1: DUP1 00000cc2: SWAP2 00000cc3: SUB 00000cc4: SWAP1 00000cc5: LOG4 00000cc6: PUSH2 0x0eba 00000cc9: JUMP 00000cca: JUMPDEST 00000ccb: PUSH1 0x01 00000ccd: PUSH1 0x01 00000ccf: PUSH1 0xa0 00000cd1: SHL 00000cd2: SUB 00000cd3: DUP1 00000cd4: DUP12 00000cd5: AND 00000cd6: PUSH1 0x00 00000cd8: SWAP1 00000cd9: DUP2 00000cda: MSTORE 00000cdb: PUSH1 0x03 00000cdd: PUSH1 0x20 00000cdf: SWAP1 00000ce0: DUP2 00000ce1: MSTORE 00000ce2: PUSH1 0x40 00000ce4: DUP1 00000ce5: DUP4 00000ce6: KECCAK256 00000ce7: SWAP4 00000ce8: DUP14 00000ce9: AND 00000cea: DUP4 00000ceb: MSTORE 00000cec: SWAP3 00000ced: SWAP1 00000cee: MSTORE 00000cef: KECCAK256 00000cf0: SLOAD 00000cf1: DUP7 00000cf2: GT 00000cf3: PUSH2 0x0db5 00000cf6: JUMPI 00000cf7: PUSH1 0x01 00000cf9: PUSH1 0x01 00000cfb: PUSH1 0xa0 00000cfd: SHL 00000cfe: SUB 00000cff: DUP1 00000d00: DUP12 00000d01: AND 00000d02: PUSH1 0x00 00000d04: SWAP1 00000d05: DUP2 00000d06: MSTORE 00000d07: PUSH1 0x03 00000d09: PUSH1 0x20 00000d0b: SWAP1 00000d0c: DUP2 00000d0d: MSTORE 00000d0e: PUSH1 0x40 00000d10: DUP1 00000d11: DUP4 00000d12: KECCAK256 00000d13: SWAP4 00000d14: DUP14 00000d15: AND 00000d16: DUP4 00000d17: MSTORE 00000d18: SWAP3 00000d19: SWAP1 00000d1a: MSTORE 00000d1b: KECCAK256 00000d1c: SLOAD 00000d1d: PUSH2 0x0d27 00000d20: SWAP1 00000d21: DUP8 00000d22: SWAP1 00000d23: PUSH2 0x1d58 00000d26: JUMP 00000d27: JUMPDEST 00000d28: PUSH1 0x01 00000d2a: PUSH1 0x01 00000d2c: PUSH1 0xa0 00000d2e: SHL 00000d2f: SUB 00000d30: DUP1 00000d31: DUP13 00000d32: AND 00000d33: PUSH1 0x00 00000d35: DUP2 00000d36: DUP2 00000d37: MSTORE 00000d38: PUSH1 0x03 00000d3a: PUSH1 0x20 00000d3c: SWAP1 00000d3d: DUP2 00000d3e: MSTORE 00000d3f: PUSH1 0x40 00000d41: DUP1 00000d42: DUP4 00000d43: KECCAK256 00000d44: SWAP5 00000d45: DUP16 00000d46: AND 00000d47: DUP4 00000d48: MSTORE 00000d49: SWAP4 00000d4a: SWAP1 00000d4b: MSTORE 00000d4c: SWAP2 00000d4d: SWAP1 00000d4e: SWAP2 00000d4f: KECCAK256 00000d50: SWAP2 00000d51: SWAP1 00000d52: SWAP2 00000d53: SSTORE 00000d54: PUSH2 0x0d5e 00000d57: SWAP1 00000d58: DUP9 00000d59: DUP9 00000d5a: PUSH2 0x12d8 00000d5d: JUMP 00000d5e: JUMPDEST 00000d5f: DUP8 00000d60: PUSH1 0x01 00000d62: PUSH1 0x01 00000d64: PUSH1 0xa0 00000d66: SHL 00000d67: SUB 00000d68: AND 00000d69: DUP10 00000d6a: PUSH1 0x01 00000d6c: PUSH1 0x01 00000d6e: PUSH1 0xa0 00000d70: SHL 00000d71: SUB 00000d72: AND 00000d73: DUP12 00000d74: PUSH1 0x01 00000d76: PUSH1 0x01 00000d78: PUSH1 0xa0 00000d7a: SHL 00000d7b: SUB 00000d7c: AND 00000d7d: PUSH32 0xbde927f1a995206c0e493ff5dee7f2d8ef95c81844a93d0a600831a6d7e6f654 00000d9e: DUP11 00000d9f: DUP11 00000da0: DUP11 00000da1: DUP11 00000da2: DUP11 00000da3: DUP11 00000da4: PUSH1 0x40 00000da6: MLOAD 00000da7: PUSH2 0x0cbd 00000daa: SWAP7 00000dab: SWAP6 00000dac: SWAP5 00000dad: SWAP4 00000dae: SWAP3 00000daf: SWAP2 00000db0: SWAP1 00000db1: PUSH2 0x1ce2 00000db4: JUMP 00000db5: JUMPDEST 00000db6: PUSH1 0x00 00000db8: PUSH4 0x083261e7 00000dbd: PUSH1 0xe0 00000dbf: SHL 00000dc0: DUP12 00000dc1: DUP12 00000dc2: DUP11 00000dc3: DUP13 00000dc4: DUP12 00000dc5: DUP12 00000dc6: DUP12 00000dc7: DUP12 00000dc8: DUP12 00000dc9: PUSH1 0x40 00000dcb: MLOAD 00000dcc: PUSH1 0x24 00000dce: ADD 00000dcf: PUSH2 0x0de0 00000dd2: SWAP10 00000dd3: SWAP9 00000dd4: SWAP8 00000dd5: SWAP7 00000dd6: SWAP6 00000dd7: SWAP5 00000dd8: SWAP4 00000dd9: SWAP3 00000dda: SWAP2 00000ddb: SWAP1 00000ddc: PUSH2 0x1d6b 00000ddf: JUMP 00000de0: JUMPDEST 00000de1: PUSH1 0x40 00000de3: DUP1 00000de4: MLOAD 00000de5: PUSH1 0x1f 00000de7: NOT 00000de8: DUP2 00000de9: DUP5 00000dea: SUB 00000deb: ADD 00000dec: DUP2 00000ded: MSTORE 00000dee: SWAP2 00000def: SWAP1 00000df0: MSTORE 00000df1: PUSH1 0x20 00000df3: DUP2 00000df4: ADD 00000df5: DUP1 00000df6: MLOAD 00000df7: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000e14: AND 00000e15: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000e36: SWAP1 00000e37: SWAP4 00000e38: AND 00000e39: SWAP3 00000e3a: SWAP1 00000e3b: SWAP3 00000e3c: OR 00000e3d: SWAP1 00000e3e: SWAP2 00000e3f: MSTORE 00000e40: PUSH1 0x01 00000e42: SLOAD 00000e43: SWAP1 00000e44: SWAP2 00000e45: POP 00000e46: PUSH2 0x0e59 00000e49: SWAP1 00000e4a: PUSH1 0x01 00000e4c: PUSH1 0x01 00000e4e: PUSH1 0xa0 00000e50: SHL 00000e51: SUB 00000e52: AND 00000e53: DUP7 00000e54: DUP4 00000e55: PUSH2 0x0f0e 00000e58: JUMP 00000e59: JUMPDEST 00000e5a: DUP9 00000e5b: PUSH1 0x01 00000e5d: PUSH1 0x01 00000e5f: PUSH1 0xa0 00000e61: SHL 00000e62: SUB 00000e63: AND 00000e64: DUP11 00000e65: PUSH1 0x01 00000e67: PUSH1 0x01 00000e69: PUSH1 0xa0 00000e6b: SHL 00000e6c: SUB 00000e6d: AND 00000e6e: DUP13 00000e6f: PUSH1 0x01 00000e71: PUSH1 0x01 00000e73: PUSH1 0xa0 00000e75: SHL 00000e76: SUB 00000e77: AND 00000e78: PUSH32 0xa86decc3a8b523fd29aef7d65377a48c34396481f81b261be6cb7d42ec1b61ce 00000e99: DUP12 00000e9a: DUP12 00000e9b: DUP12 00000e9c: DUP12 00000e9d: DUP12 00000e9e: DUP12 00000e9f: PUSH1 0x40 00000ea1: MLOAD 00000ea2: PUSH2 0x0eb0 00000ea5: SWAP7 00000ea6: SWAP6 00000ea7: SWAP5 00000ea8: SWAP4 00000ea9: SWAP3 00000eaa: SWAP2 00000eab: SWAP1 00000eac: PUSH2 0x1ce2 00000eaf: JUMP 00000eb0: JUMPDEST 00000eb1: PUSH1 0x40 00000eb3: MLOAD 00000eb4: DUP1 00000eb5: SWAP2 00000eb6: SUB 00000eb7: SWAP1 00000eb8: LOG4 00000eb9: POP 00000eba: JUMPDEST 00000ebb: POP 00000ebc: POP 00000ebd: POP 00000ebe: POP 00000ebf: POP 00000ec0: POP 00000ec1: POP 00000ec2: POP 00000ec3: POP 00000ec4: POP 00000ec5: JUMP 00000ec6: JUMPDEST 00000ec7: PUSH2 0x0f08 00000eca: CALLER 00000ecb: DUP6 00000ecc: DUP6 00000ecd: DUP6 00000ece: DUP6 00000ecf: DUP1 00000ed0: DUP1 00000ed1: PUSH1 0x1f 00000ed3: ADD 00000ed4: PUSH1 0x20 00000ed6: DUP1 00000ed7: SWAP2 00000ed8: DIV 00000ed9: MUL 00000eda: PUSH1 0x20 00000edc: ADD 00000edd: PUSH1 0x40 00000edf: MLOAD 00000ee0: SWAP1 00000ee1: DUP2 00000ee2: ADD 00000ee3: PUSH1 0x40 00000ee5: MSTORE 00000ee6: DUP1 00000ee7: SWAP4 00000ee8: SWAP3 00000ee9: SWAP2 00000eea: SWAP1 00000eeb: DUP2 00000eec: DUP2 00000eed: MSTORE 00000eee: PUSH1 0x20 00000ef0: ADD 00000ef1: DUP4 00000ef2: DUP4 00000ef3: DUP1 00000ef4: DUP3 00000ef5: DUP5 00000ef6: CALLDATACOPY 00000ef7: PUSH1 0x00 00000ef9: SWAP3 00000efa: ADD 00000efb: SWAP2 00000efc: SWAP1 00000efd: SWAP2 00000efe: MSTORE 00000eff: POP 00000f00: PUSH2 0x02ae 00000f03: SWAP3 00000f04: POP 00000f05: POP 00000f06: POP 00000f07: JUMP 00000f08: JUMPDEST 00000f09: POP 00000f0a: POP 00000f0b: POP 00000f0c: POP 00000f0d: JUMP 00000f0e: JUMPDEST 00000f0f: PUSH1 0x00 00000f11: SLOAD 00000f12: PUSH1 0x40 00000f14: MLOAD 00000f15: PUSH32 0x3dbb202b00000000000000000000000000000000000000000000000000000000 00000f36: DUP2 00000f37: MSTORE 00000f38: PUSH1 0x01 00000f3a: PUSH1 0x01 00000f3c: PUSH1 0xa0 00000f3e: SHL 00000f3f: SUB 00000f40: SWAP1 00000f41: SWAP2 00000f42: AND 00000f43: SWAP1 00000f44: PUSH4 0x3dbb202b 00000f49: SWAP1 00000f4a: PUSH2 0x0f5b 00000f4d: SWAP1 00000f4e: DUP7 00000f4f: SWAP1 00000f50: DUP6 00000f51: SWAP1 00000f52: DUP8 00000f53: SWAP1 00000f54: PUSH1 0x04 00000f56: ADD 00000f57: PUSH2 0x1dc1 00000f5a: JUMP 00000f5b: JUMPDEST 00000f5c: PUSH1 0x00 00000f5e: PUSH1 0x40 00000f60: MLOAD 00000f61: DUP1 00000f62: DUP4 00000f63: SUB 00000f64: DUP2 00000f65: PUSH1 0x00 00000f67: DUP8 00000f68: DUP1 00000f69: EXTCODESIZE 00000f6a: ISZERO 00000f6b: DUP1 00000f6c: ISZERO 00000f6d: PUSH2 0x0f75 00000f70: JUMPI 00000f71: PUSH1 0x00 00000f73: DUP1 00000f74: REVERT 00000f75: JUMPDEST 00000f76: POP 00000f77: GAS 00000f78: CALL 00000f79: ISZERO 00000f7a: DUP1 00000f7b: ISZERO 00000f7c: PUSH2 0x052f 00000f7f: JUMPI 00000f80: RETURNDATASIZE 00000f81: PUSH1 0x00 00000f83: DUP1 00000f84: RETURNDATACOPY 00000f85: RETURNDATASIZE 00000f86: PUSH1 0x00 00000f88: REVERT 00000f89: JUMPDEST 00000f8a: PUSH2 0x0fb3 00000f8d: DUP10 00000f8e: PUSH32 0xeae770ac00000000000000000000000000000000000000000000000000000000 00000faf: PUSH2 0x12b3 00000fb2: JUMP 00000fb3: JUMPDEST 00000fb4: DUP1 00000fb5: ISZERO 00000fb6: PUSH2 0x1032 00000fb9: JUMPI 00000fba: POP 00000fbb: ADDRESS 00000fbc: PUSH1 0x01 00000fbe: PUSH1 0x01 00000fc0: PUSH1 0xa0 00000fc2: SHL 00000fc3: SUB 00000fc4: AND 00000fc5: DUP10 00000fc6: PUSH1 0x01 00000fc8: PUSH1 0x01 00000fca: PUSH1 0xa0 00000fcc: SHL 00000fcd: SUB 00000fce: AND 00000fcf: PUSH3 0x51d905 00000fd3: PUSH1 0x40 00000fd5: MLOAD 00000fd6: DUP2 00000fd7: PUSH4 0xffffffff 00000fdc: AND 00000fdd: PUSH1 0xe0 00000fdf: SHL 00000fe0: DUP2 00000fe1: MSTORE 00000fe2: PUSH1 0x04 00000fe4: ADD 00000fe5: PUSH1 0x20 00000fe7: PUSH1 0x40 00000fe9: MLOAD 00000fea: DUP1 00000feb: DUP4 00000fec: SUB 00000fed: DUP2 00000fee: PUSH1 0x00 00000ff0: DUP8 00000ff1: GAS 00000ff2: CALL 00000ff3: ISZERO 00000ff4: DUP1 00000ff5: ISZERO 00000ff6: PUSH2 0x1003 00000ff9: JUMPI 00000ffa: RETURNDATASIZE 00000ffb: PUSH1 0x00 00000ffd: DUP1 00000ffe: RETURNDATACOPY 00000fff: RETURNDATASIZE 00001000: PUSH1 0x00 00001002: REVERT 00001003: JUMPDEST 00001004: POP 00001005: POP 00001006: POP 00001007: POP 00001008: PUSH1 0x40 0000100a: MLOAD 0000100b: RETURNDATASIZE 0000100c: PUSH1 0x1f 0000100e: NOT 0000100f: PUSH1 0x1f 00001011: DUP3 00001012: ADD 00001013: AND 00001014: DUP3 00001015: ADD 00001016: DUP1 00001017: PUSH1 0x40 00001019: MSTORE 0000101a: POP 0000101b: DUP2 0000101c: ADD 0000101d: SWAP1 0000101e: PUSH2 0x1027 00001021: SWAP2 00001022: SWAP1 00001023: PUSH2 0x1bde 00001026: JUMP 00001027: JUMPDEST 00001028: PUSH1 0x01 0000102a: PUSH1 0x01 0000102c: PUSH1 0xa0 0000102e: SHL 0000102f: SUB 00001030: AND 00001031: EQ 00001032: JUMPDEST 00001033: DUP1 00001034: ISZERO 00001035: PUSH2 0x10b2 00001038: JUMPI 00001039: POP 0000103a: DUP8 0000103b: PUSH1 0x01 0000103d: PUSH1 0x01 0000103f: PUSH1 0xa0 00001041: SHL 00001042: SUB 00001043: AND 00001044: DUP10 00001045: PUSH1 0x01 00001047: PUSH1 0x01 00001049: PUSH1 0xa0 0000104b: SHL 0000104c: SUB 0000104d: AND 0000104e: PUSH4 0xd6c0b2c4 00001053: PUSH1 0x40 00001055: MLOAD 00001056: DUP2 00001057: PUSH4 0xffffffff 0000105c: AND 0000105d: PUSH1 0xe0 0000105f: SHL 00001060: DUP2 00001061: MSTORE 00001062: PUSH1 0x04 00001064: ADD 00001065: PUSH1 0x20 00001067: PUSH1 0x40 00001069: MLOAD 0000106a: DUP1 0000106b: DUP4 0000106c: SUB 0000106d: DUP2 0000106e: PUSH1 0x00 00001070: DUP8 00001071: GAS 00001072: CALL 00001073: ISZERO 00001074: DUP1 00001075: ISZERO 00001076: PUSH2 0x1083 00001079: JUMPI 0000107a: RETURNDATASIZE 0000107b: PUSH1 0x00 0000107d: DUP1 0000107e: RETURNDATACOPY 0000107f: RETURNDATASIZE 00001080: PUSH1 0x00 00001082: REVERT 00001083: JUMPDEST 00001084: POP 00001085: POP 00001086: POP 00001087: POP 00001088: PUSH1 0x40 0000108a: MLOAD 0000108b: RETURNDATASIZE 0000108c: PUSH1 0x1f 0000108e: NOT 0000108f: PUSH1 0x1f 00001091: DUP3 00001092: ADD 00001093: AND 00001094: DUP3 00001095: ADD 00001096: DUP1 00001097: PUSH1 0x40 00001099: MSTORE 0000109a: POP 0000109b: DUP2 0000109c: ADD 0000109d: SWAP1 0000109e: PUSH2 0x10a7 000010a1: SWAP2 000010a2: SWAP1 000010a3: PUSH2 0x1bde 000010a6: JUMP 000010a7: JUMPDEST 000010a8: PUSH1 0x01 000010aa: PUSH1 0x01 000010ac: PUSH1 0xa0 000010ae: SHL 000010af: SUB 000010b0: AND 000010b1: EQ 000010b2: JUMPDEST 000010b3: ISZERO 000010b4: PUSH2 0x1137 000010b7: JUMPI 000010b8: PUSH1 0x40 000010ba: MLOAD 000010bb: PUSH32 0x9dc29fac00000000000000000000000000000000000000000000000000000000 000010dc: DUP2 000010dd: MSTORE 000010de: PUSH1 0x01 000010e0: PUSH1 0x01 000010e2: PUSH1 0xa0 000010e4: SHL 000010e5: SUB 000010e6: DUP9 000010e7: DUP2 000010e8: AND 000010e9: PUSH1 0x04 000010eb: DUP4 000010ec: ADD 000010ed: MSTORE 000010ee: PUSH1 0x24 000010f0: DUP3 000010f1: ADD 000010f2: DUP8 000010f3: SWAP1 000010f4: MSTORE 000010f5: DUP11 000010f6: AND 000010f7: SWAP1 000010f8: PUSH4 0x9dc29fac 000010fd: SWAP1 000010fe: PUSH1 0x44 00001100: ADD 00001101: PUSH1 0x00 00001103: PUSH1 0x40 00001105: MLOAD 00001106: DUP1 00001107: DUP4 00001108: SUB 00001109: DUP2 0000110a: PUSH1 0x00 0000110c: DUP8 0000110d: DUP1 0000110e: EXTCODESIZE 0000110f: ISZERO 00001110: DUP1 00001111: ISZERO 00001112: PUSH2 0x111a 00001115: JUMPI 00001116: PUSH1 0x00 00001118: DUP1 00001119: REVERT 0000111a: JUMPDEST 0000111b: POP 0000111c: GAS 0000111d: CALL 0000111e: ISZERO 0000111f: DUP1 00001120: ISZERO 00001121: PUSH2 0x112e 00001124: JUMPI 00001125: RETURNDATASIZE 00001126: PUSH1 0x00 00001128: DUP1 00001129: RETURNDATACOPY 0000112a: RETURNDATASIZE 0000112b: PUSH1 0x00 0000112d: REVERT 0000112e: JUMPDEST 0000112f: POP 00001130: POP 00001131: POP 00001132: POP 00001133: PUSH2 0x11a4 00001136: JUMP 00001137: JUMPDEST 00001138: PUSH2 0x114c 0000113b: PUSH1 0x01 0000113d: PUSH1 0x01 0000113f: PUSH1 0xa0 00001141: SHL 00001142: SUB 00001143: DUP11 00001144: AND 00001145: DUP9 00001146: ADDRESS 00001147: DUP9 00001148: PUSH2 0x1381 0000114b: JUMP 0000114c: JUMPDEST 0000114d: PUSH1 0x01 0000114f: PUSH1 0x01 00001151: PUSH1 0xa0 00001153: SHL 00001154: SUB 00001155: DUP1 00001156: DUP11 00001157: AND 00001158: PUSH1 0x00 0000115a: SWAP1 0000115b: DUP2 0000115c: MSTORE 0000115d: PUSH1 0x03 0000115f: PUSH1 0x20 00001161: SWAP1 00001162: DUP2 00001163: MSTORE 00001164: PUSH1 0x40 00001166: DUP1 00001167: DUP4 00001168: KECCAK256 00001169: SWAP4 0000116a: DUP13 0000116b: AND 0000116c: DUP4 0000116d: MSTORE 0000116e: SWAP3 0000116f: SWAP1 00001170: MSTORE 00001171: KECCAK256 00001172: SLOAD 00001173: PUSH2 0x117d 00001176: SWAP1 00001177: DUP7 00001178: SWAP1 00001179: PUSH2 0x1df9 0000117c: JUMP 0000117d: JUMPDEST 0000117e: PUSH1 0x01 00001180: PUSH1 0x01 00001182: PUSH1 0xa0 00001184: SHL 00001185: SUB 00001186: DUP1 00001187: DUP12 00001188: AND 00001189: PUSH1 0x00 0000118b: SWAP1 0000118c: DUP2 0000118d: MSTORE 0000118e: PUSH1 0x03 00001190: PUSH1 0x20 00001192: SWAP1 00001193: DUP2 00001194: MSTORE 00001195: PUSH1 0x40 00001197: DUP1 00001198: DUP4 00001199: KECCAK256 0000119a: SWAP4 0000119b: DUP14 0000119c: AND 0000119d: DUP4 0000119e: MSTORE 0000119f: SWAP3 000011a0: SWAP1 000011a1: MSTORE 000011a2: KECCAK256 000011a3: SSTORE 000011a4: JUMPDEST 000011a5: PUSH1 0x00 000011a7: PUSH4 0x083261e7 000011ac: PUSH1 0xe0 000011ae: SHL 000011af: DUP11 000011b0: DUP11 000011b1: DUP11 000011b2: DUP11 000011b3: DUP11 000011b4: DUP11 000011b5: DUP11 000011b6: DUP11 000011b7: DUP11 000011b8: PUSH1 0x40 000011ba: MLOAD 000011bb: PUSH1 0x24 000011bd: ADD 000011be: PUSH2 0x11cf 000011c1: SWAP10 000011c2: SWAP9 000011c3: SWAP8 000011c4: SWAP7 000011c5: SWAP6 000011c6: SWAP5 000011c7: SWAP4 000011c8: SWAP3 000011c9: SWAP2 000011ca: SWAP1 000011cb: PUSH2 0x1d6b 000011ce: JUMP 000011cf: JUMPDEST 000011d0: PUSH1 0x40 000011d2: DUP1 000011d3: MLOAD 000011d4: PUSH1 0x1f 000011d6: NOT 000011d7: DUP2 000011d8: DUP5 000011d9: SUB 000011da: ADD 000011db: DUP2 000011dc: MSTORE 000011dd: SWAP2 000011de: SWAP1 000011df: MSTORE 000011e0: PUSH1 0x20 000011e2: DUP2 000011e3: ADD 000011e4: DUP1 000011e5: MLOAD 000011e6: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001203: AND 00001204: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001225: SWAP1 00001226: SWAP4 00001227: AND 00001228: SWAP3 00001229: SWAP1 0000122a: SWAP3 0000122b: OR 0000122c: SWAP1 0000122d: SWAP2 0000122e: MSTORE 0000122f: PUSH1 0x01 00001231: SLOAD 00001232: SWAP1 00001233: SWAP2 00001234: POP 00001235: PUSH2 0x1248 00001238: SWAP1 00001239: PUSH1 0x01 0000123b: PUSH1 0x01 0000123d: PUSH1 0xa0 0000123f: SHL 00001240: SUB 00001241: AND 00001242: DUP6 00001243: DUP4 00001244: PUSH2 0x0f0e 00001247: JUMP 00001248: JUMPDEST 00001249: DUP8 0000124a: PUSH1 0x01 0000124c: PUSH1 0x01 0000124e: PUSH1 0xa0 00001250: SHL 00001251: SUB 00001252: AND 00001253: DUP10 00001254: PUSH1 0x01 00001256: PUSH1 0x01 00001258: PUSH1 0xa0 0000125a: SHL 0000125b: SUB 0000125c: AND 0000125d: DUP12 0000125e: PUSH1 0x01 00001260: PUSH1 0x01 00001262: PUSH1 0xa0 00001264: SHL 00001265: SUB 00001266: AND 00001267: PUSH32 0x7247ff8997b99a2b0b1748d56fe62c95a23c3f152459a141a780a94b60fdf567 00001288: DUP11 00001289: DUP11 0000128a: DUP11 0000128b: DUP11 0000128c: DUP11 0000128d: DUP11 0000128e: PUSH1 0x40 00001290: MLOAD 00001291: PUSH2 0x129f 00001294: SWAP7 00001295: SWAP6 00001296: SWAP5 00001297: SWAP4 00001298: SWAP3 00001299: SWAP2 0000129a: SWAP1 0000129b: PUSH2 0x1ce2 0000129e: JUMP 0000129f: JUMPDEST 000012a0: PUSH1 0x40 000012a2: MLOAD 000012a3: DUP1 000012a4: SWAP2 000012a5: SUB 000012a6: SWAP1 000012a7: LOG4 000012a8: POP 000012a9: POP 000012aa: POP 000012ab: POP 000012ac: POP 000012ad: POP 000012ae: POP 000012af: POP 000012b0: POP 000012b1: POP 000012b2: JUMP 000012b3: JUMPDEST 000012b4: PUSH1 0x00 000012b6: PUSH2 0x12be 000012b9: DUP4 000012ba: PUSH2 0x13d2 000012bd: JUMP 000012be: JUMPDEST 000012bf: DUP1 000012c0: ISZERO 000012c1: PUSH2 0x12cf 000012c4: JUMPI 000012c5: POP 000012c6: PUSH2 0x12cf 000012c9: DUP4 000012ca: DUP4 000012cb: PUSH2 0x1436 000012ce: JUMP 000012cf: JUMPDEST 000012d0: SWAP1 000012d1: POP 000012d2: JUMPDEST 000012d3: SWAP3 000012d4: SWAP2 000012d5: POP 000012d6: POP 000012d7: JUMP 000012d8: JUMPDEST 000012d9: PUSH1 0x40 000012db: MLOAD 000012dc: PUSH1 0x01 000012de: PUSH1 0x01 000012e0: PUSH1 0xa0 000012e2: SHL 000012e3: SUB 000012e4: DUP4 000012e5: AND 000012e6: PUSH1 0x24 000012e8: DUP3 000012e9: ADD 000012ea: MSTORE 000012eb: PUSH1 0x44 000012ed: DUP2 000012ee: ADD 000012ef: DUP3 000012f0: SWAP1 000012f1: MSTORE 000012f2: PUSH2 0x044d 000012f5: SWAP1 000012f6: DUP5 000012f7: SWAP1 000012f8: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 00001319: SWAP1 0000131a: PUSH1 0x64 0000131c: ADD 0000131d: JUMPDEST 0000131e: PUSH1 0x40 00001320: DUP1 00001321: MLOAD 00001322: PUSH1 0x1f 00001324: NOT 00001325: DUP2 00001326: DUP5 00001327: SUB 00001328: ADD 00001329: DUP2 0000132a: MSTORE 0000132b: SWAP2 0000132c: SWAP1 0000132d: MSTORE 0000132e: PUSH1 0x20 00001330: DUP2 00001331: ADD 00001332: DUP1 00001333: MLOAD 00001334: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001351: AND 00001352: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001373: SWAP1 00001374: SWAP4 00001375: AND 00001376: SWAP3 00001377: SWAP1 00001378: SWAP3 00001379: OR 0000137a: SWAP1 0000137b: SWAP2 0000137c: MSTORE 0000137d: PUSH2 0x1505 00001380: JUMP 00001381: JUMPDEST 00001382: PUSH1 0x40 00001384: MLOAD 00001385: PUSH1 0x01 00001387: PUSH1 0x01 00001389: PUSH1 0xa0 0000138b: SHL 0000138c: SUB 0000138d: DUP1 0000138e: DUP6 0000138f: AND 00001390: PUSH1 0x24 00001392: DUP4 00001393: ADD 00001394: MSTORE 00001395: DUP4 00001396: AND 00001397: PUSH1 0x44 00001399: DUP3 0000139a: ADD 0000139b: MSTORE 0000139c: PUSH1 0x64 0000139e: DUP2 0000139f: ADD 000013a0: DUP3 000013a1: SWAP1 000013a2: MSTORE 000013a3: PUSH2 0x0f08 000013a6: SWAP1 000013a7: DUP6 000013a8: SWAP1 000013a9: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 000013ca: SWAP1 000013cb: PUSH1 0x84 000013cd: ADD 000013ce: PUSH2 0x131d 000013d1: JUMP 000013d2: JUMPDEST 000013d3: PUSH1 0x00 000013d5: PUSH2 0x13fe 000013d8: DUP3 000013d9: PUSH32 0x01ffc9a700000000000000000000000000000000000000000000000000000000 000013fa: PUSH2 0x1436 000013fd: JUMP 000013fe: JUMPDEST 000013ff: DUP1 00001400: ISZERO 00001401: PUSH2 0x12d2 00001404: JUMPI 00001405: POP 00001406: PUSH2 0x142f 00001409: DUP3 0000140a: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000142b: PUSH2 0x1436 0000142e: JUMP 0000142f: JUMPDEST 00001430: ISZERO 00001431: SWAP3 00001432: SWAP2 00001433: POP 00001434: POP 00001435: JUMP 00001436: JUMPDEST 00001437: PUSH1 0x40 00001439: DUP1 0000143a: MLOAD 0000143b: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000145c: DUP4 0000145d: AND 0000145e: PUSH1 0x24 00001460: DUP1 00001461: DUP4 00001462: ADD 00001463: SWAP2 00001464: SWAP1 00001465: SWAP2 00001466: MSTORE 00001467: DUP3 00001468: MLOAD 00001469: DUP1 0000146a: DUP4 0000146b: SUB 0000146c: SWAP1 0000146d: SWAP2 0000146e: ADD 0000146f: DUP2 00001470: MSTORE 00001471: PUSH1 0x44 00001473: SWAP1 00001474: SWAP2 00001475: ADD 00001476: SWAP1 00001477: SWAP2 00001478: MSTORE 00001479: PUSH1 0x20 0000147b: DUP1 0000147c: DUP3 0000147d: ADD 0000147e: DUP1 0000147f: MLOAD 00001480: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000149d: AND 0000149e: PUSH32 0x01ffc9a700000000000000000000000000000000000000000000000000000000 000014bf: OR 000014c0: DUP2 000014c1: MSTORE 000014c2: DUP3 000014c3: MLOAD 000014c4: PUSH1 0x00 000014c6: SWAP4 000014c7: SWAP3 000014c8: DUP5 000014c9: SWAP3 000014ca: DUP4 000014cb: SWAP3 000014cc: DUP4 000014cd: SWAP3 000014ce: SWAP2 000014cf: DUP4 000014d0: SWAP2 000014d1: SWAP1 000014d2: DUP11 000014d3: PUSH2 0x7530 000014d6: STATICCALL 000014d7: SWAP3 000014d8: POP 000014d9: RETURNDATASIZE 000014da: SWAP2 000014db: POP 000014dc: PUSH1 0x00 000014de: MLOAD 000014df: SWAP1 000014e0: POP 000014e1: DUP3 000014e2: DUP1 000014e3: ISZERO 000014e4: PUSH2 0x14ee 000014e7: JUMPI 000014e8: POP 000014e9: PUSH1 0x20 000014eb: DUP3 000014ec: LT 000014ed: ISZERO 000014ee: JUMPDEST 000014ef: DUP1 000014f0: ISZERO 000014f1: PUSH2 0x14fa 000014f4: JUMPI 000014f5: POP 000014f6: PUSH1 0x00 000014f8: DUP2 000014f9: GT 000014fa: JUMPDEST 000014fb: SWAP8 000014fc: SWAP7 000014fd: POP 000014fe: POP 000014ff: POP 00001500: POP 00001501: POP 00001502: POP 00001503: POP 00001504: JUMP 00001505: JUMPDEST 00001506: PUSH1 0x00 00001508: PUSH2 0x155a 0000150b: DUP3 0000150c: PUSH1 0x40 0000150e: MLOAD 0000150f: DUP1 00001510: PUSH1 0x40 00001512: ADD 00001513: PUSH1 0x40 00001515: MSTORE 00001516: DUP1 00001517: PUSH1 0x20 00001519: DUP2 0000151a: MSTORE 0000151b: PUSH1 0x20 0000151d: ADD 0000151e: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 0000153f: DUP2 00001540: MSTORE 00001541: POP 00001542: DUP6 00001543: PUSH1 0x01 00001545: PUSH1 0x01 00001547: PUSH1 0xa0 00001549: SHL 0000154a: SUB 0000154b: AND 0000154c: PUSH2 0x15ea 0000154f: SWAP1 00001550: SWAP3 00001551: SWAP2 00001552: SWAP1 00001553: PUSH4 0xffffffff 00001558: AND 00001559: JUMP 0000155a: JUMPDEST 0000155b: DUP1 0000155c: MLOAD 0000155d: SWAP1 0000155e: SWAP2 0000155f: POP 00001560: ISZERO 00001561: PUSH2 0x044d 00001564: JUMPI 00001565: DUP1 00001566: DUP1 00001567: PUSH1 0x20 00001569: ADD 0000156a: SWAP1 0000156b: MLOAD 0000156c: DUP2 0000156d: ADD 0000156e: SWAP1 0000156f: PUSH2 0x1578 00001572: SWAP2 00001573: SWAP1 00001574: PUSH2 0x1e0c 00001577: JUMP 00001578: JUMPDEST 00001579: PUSH2 0x044d 0000157c: JUMPI 0000157d: PUSH1 0x40 0000157f: MLOAD 00001580: PUSH3 0x461bcd 00001584: PUSH1 0xe5 00001586: SHL 00001587: DUP2 00001588: MSTORE 00001589: PUSH1 0x20 0000158b: PUSH1 0x04 0000158d: DUP3 0000158e: ADD 0000158f: MSTORE 00001590: PUSH1 0x2a 00001592: PUSH1 0x24 00001594: DUP3 00001595: ADD 00001596: MSTORE 00001597: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 000015b8: PUSH1 0x44 000015ba: DUP3 000015bb: ADD 000015bc: MSTORE 000015bd: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 000015de: PUSH1 0x64 000015e0: DUP3 000015e1: ADD 000015e2: MSTORE 000015e3: PUSH1 0x84 000015e5: ADD 000015e6: PUSH2 0x011b 000015e9: JUMP 000015ea: JUMPDEST 000015eb: PUSH1 0x60 000015ed: PUSH2 0x15f9 000015f0: DUP5 000015f1: DUP5 000015f2: PUSH1 0x00 000015f4: DUP6 000015f5: PUSH2 0x1601 000015f8: JUMP 000015f9: JUMPDEST 000015fa: SWAP5 000015fb: SWAP4 000015fc: POP 000015fd: POP 000015fe: POP 000015ff: POP 00001600: JUMP 00001601: JUMPDEST 00001602: PUSH1 0x60 00001604: DUP3 00001605: SELFBALANCE 00001606: LT 00001607: ISZERO 00001608: PUSH2 0x1679 0000160b: JUMPI 0000160c: PUSH1 0x40 0000160e: MLOAD 0000160f: PUSH3 0x461bcd 00001613: PUSH1 0xe5 00001615: SHL 00001616: DUP2 00001617: MSTORE 00001618: PUSH1 0x20 0000161a: PUSH1 0x04 0000161c: DUP3 0000161d: ADD 0000161e: MSTORE 0000161f: PUSH1 0x26 00001621: PUSH1 0x24 00001623: DUP3 00001624: ADD 00001625: MSTORE 00001626: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 00001647: PUSH1 0x44 00001649: DUP3 0000164a: ADD 0000164b: MSTORE 0000164c: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000 0000166d: PUSH1 0x64 0000166f: DUP3 00001670: ADD 00001671: MSTORE 00001672: PUSH1 0x84 00001674: ADD 00001675: PUSH2 0x011b 00001678: JUMP 00001679: JUMPDEST 0000167a: PUSH1 0x00 0000167c: DUP1 0000167d: DUP7 0000167e: PUSH1 0x01 00001680: PUSH1 0x01 00001682: PUSH1 0xa0 00001684: SHL 00001685: SUB 00001686: AND 00001687: DUP6 00001688: DUP8 00001689: PUSH1 0x40 0000168b: MLOAD 0000168c: PUSH2 0x1695 0000168f: SWAP2 00001690: SWAP1 00001691: PUSH2 0x1c02 00001694: JUMP 00001695: JUMPDEST 00001696: PUSH1 0x00 00001698: PUSH1 0x40 0000169a: MLOAD 0000169b: DUP1 0000169c: DUP4 0000169d: SUB 0000169e: DUP2 0000169f: DUP6 000016a0: DUP8 000016a1: GAS 000016a2: CALL 000016a3: SWAP3 000016a4: POP 000016a5: POP 000016a6: POP 000016a7: RETURNDATASIZE 000016a8: DUP1 000016a9: PUSH1 0x00 000016ab: DUP2 000016ac: EQ 000016ad: PUSH2 0x16d2 000016b0: JUMPI 000016b1: PUSH1 0x40 000016b3: MLOAD 000016b4: SWAP2 000016b5: POP 000016b6: PUSH1 0x1f 000016b8: NOT 000016b9: PUSH1 0x3f 000016bb: RETURNDATASIZE 000016bc: ADD 000016bd: AND 000016be: DUP3 000016bf: ADD 000016c0: PUSH1 0x40 000016c2: MSTORE 000016c3: RETURNDATASIZE 000016c4: DUP3 000016c5: MSTORE 000016c6: RETURNDATASIZE 000016c7: PUSH1 0x00 000016c9: PUSH1 0x20 000016cb: DUP5 000016cc: ADD 000016cd: RETURNDATACOPY 000016ce: PUSH2 0x16d7 000016d1: JUMP 000016d2: JUMPDEST 000016d3: PUSH1 0x60 000016d5: SWAP2 000016d6: POP 000016d7: JUMPDEST 000016d8: POP 000016d9: SWAP2 000016da: POP 000016db: SWAP2 000016dc: POP 000016dd: PUSH2 0x14fa 000016e0: DUP8 000016e1: DUP4 000016e2: DUP4 000016e3: DUP8 000016e4: PUSH1 0x60 000016e6: DUP4 000016e7: ISZERO 000016e8: PUSH2 0x1752 000016eb: JUMPI 000016ec: DUP3 000016ed: MLOAD 000016ee: PUSH1 0x00 000016f0: SUB 000016f1: PUSH2 0x174b 000016f4: JUMPI 000016f5: PUSH1 0x01 000016f7: PUSH1 0x01 000016f9: PUSH1 0xa0 000016fb: SHL 000016fc: SUB 000016fd: DUP6 000016fe: AND 000016ff: EXTCODESIZE 00001700: PUSH2 0x174b 00001703: JUMPI 00001704: PUSH1 0x40 00001706: MLOAD 00001707: PUSH3 0x461bcd 0000170b: PUSH1 0xe5 0000170d: SHL 0000170e: DUP2 0000170f: MSTORE 00001710: PUSH1 0x20 00001712: PUSH1 0x04 00001714: DUP3 00001715: ADD 00001716: MSTORE 00001717: PUSH1 0x1d 00001719: PUSH1 0x24 0000171b: DUP3 0000171c: ADD 0000171d: MSTORE 0000171e: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 0000173f: PUSH1 0x44 00001741: DUP3 00001742: ADD 00001743: MSTORE 00001744: PUSH1 0x64 00001746: ADD 00001747: PUSH2 0x011b 0000174a: JUMP 0000174b: JUMPDEST 0000174c: POP 0000174d: DUP2 0000174e: PUSH2 0x15f9 00001751: JUMP 00001752: JUMPDEST 00001753: PUSH2 0x15f9 00001756: DUP4 00001757: DUP4 00001758: DUP2 00001759: MLOAD 0000175a: ISZERO 0000175b: PUSH2 0x1767 0000175e: JUMPI 0000175f: DUP2 00001760: MLOAD 00001761: DUP1 00001762: DUP4 00001763: PUSH1 0x20 00001765: ADD 00001766: REVERT 00001767: JUMPDEST 00001768: DUP1 00001769: PUSH1 0x40 0000176b: MLOAD 0000176c: PUSH3 0x461bcd 00001770: PUSH1 0xe5 00001772: SHL 00001773: DUP2 00001774: MSTORE 00001775: PUSH1 0x04 00001777: ADD 00001778: PUSH2 0x011b 0000177b: SWAP2 0000177c: SWAP1 0000177d: PUSH2 0x1e2e 00001780: JUMP 00001781: JUMPDEST 00001782: DUP1 00001783: CALLDATALOAD 00001784: PUSH4 0xffffffff 00001789: DUP2 0000178a: AND 0000178b: DUP2 0000178c: EQ 0000178d: PUSH2 0x1795 00001790: JUMPI 00001791: PUSH1 0x00 00001793: DUP1 00001794: REVERT 00001795: JUMPDEST 00001796: SWAP2 00001797: SWAP1 00001798: POP 00001799: JUMP 0000179a: JUMPDEST 0000179b: PUSH1 0x00 0000179d: DUP1 0000179e: DUP4 0000179f: PUSH1 0x1f 000017a1: DUP5 000017a2: ADD 000017a3: SLT 000017a4: PUSH2 0x17ac 000017a7: JUMPI 000017a8: PUSH1 0x00 000017aa: DUP1 000017ab: REVERT 000017ac: JUMPDEST 000017ad: POP 000017ae: DUP2 000017af: CALLDATALOAD 000017b0: PUSH8 0xffffffffffffffff 000017b9: DUP2 000017ba: GT 000017bb: ISZERO 000017bc: PUSH2 0x17c4 000017bf: JUMPI 000017c0: PUSH1 0x00 000017c2: DUP1 000017c3: REVERT 000017c4: JUMPDEST 000017c5: PUSH1 0x20 000017c7: DUP4 000017c8: ADD 000017c9: SWAP2 000017ca: POP 000017cb: DUP4 000017cc: PUSH1 0x20 000017ce: DUP3 000017cf: DUP6 000017d0: ADD 000017d1: ADD 000017d2: GT 000017d3: ISZERO 000017d4: PUSH2 0x17dc 000017d7: JUMPI 000017d8: PUSH1 0x00 000017da: DUP1 000017db: REVERT 000017dc: JUMPDEST 000017dd: SWAP3 000017de: POP 000017df: SWAP3 000017e0: SWAP1 000017e1: POP 000017e2: JUMP 000017e3: JUMPDEST 000017e4: PUSH1 0x00 000017e6: DUP1 000017e7: PUSH1 0x00 000017e9: PUSH1 0x40 000017eb: DUP5 000017ec: DUP7 000017ed: SUB 000017ee: SLT 000017ef: ISZERO 000017f0: PUSH2 0x17f8 000017f3: JUMPI 000017f4: PUSH1 0x00 000017f6: DUP1 000017f7: REVERT 000017f8: JUMPDEST 000017f9: PUSH2 0x1801 000017fc: DUP5 000017fd: PUSH2 0x1781 00001800: JUMP 00001801: JUMPDEST 00001802: SWAP3 00001803: POP 00001804: PUSH1 0x20 00001806: DUP5 00001807: ADD 00001808: CALLDATALOAD 00001809: PUSH8 0xffffffffffffffff 00001812: DUP2 00001813: GT 00001814: ISZERO 00001815: PUSH2 0x181d 00001818: JUMPI 00001819: PUSH1 0x00 0000181b: DUP1 0000181c: REVERT 0000181d: JUMPDEST 0000181e: PUSH2 0x1829 00001821: DUP7 00001822: DUP3 00001823: DUP8 00001824: ADD 00001825: PUSH2 0x179a 00001828: JUMP 00001829: JUMPDEST 0000182a: SWAP5 0000182b: SWAP8 0000182c: SWAP1 0000182d: SWAP7 0000182e: POP 0000182f: SWAP4 00001830: SWAP5 00001831: POP 00001832: POP 00001833: POP 00001834: POP 00001835: JUMP 00001836: JUMPDEST 00001837: PUSH1 0x01 00001839: PUSH1 0x01 0000183b: PUSH1 0xa0 0000183d: SHL 0000183e: SUB 0000183f: DUP2 00001840: AND 00001841: DUP2 00001842: EQ 00001843: PUSH2 0x184b 00001846: JUMPI 00001847: PUSH1 0x00 00001849: DUP1 0000184a: REVERT 0000184b: JUMPDEST 0000184c: POP 0000184d: JUMP 0000184e: JUMPDEST 0000184f: PUSH1 0x00 00001851: DUP1 00001852: PUSH1 0x00 00001854: PUSH1 0x60 00001856: DUP5 00001857: DUP7 00001858: SUB 00001859: SLT 0000185a: ISZERO 0000185b: PUSH2 0x1863 0000185e: JUMPI 0000185f: PUSH1 0x00 00001861: DUP1 00001862: REVERT 00001863: JUMPDEST 00001864: DUP4 00001865: CALLDATALOAD 00001866: PUSH2 0x186e 00001869: DUP2 0000186a: PUSH2 0x1836 0000186d: JUMP 0000186e: JUMPDEST 0000186f: SWAP3 00001870: POP 00001871: PUSH1 0x20 00001873: DUP5 00001874: ADD 00001875: CALLDATALOAD 00001876: PUSH2 0x187e 00001879: DUP2 0000187a: PUSH2 0x1836 0000187d: JUMP 0000187e: JUMPDEST 0000187f: SWAP3 00001880: SWAP6 00001881: SWAP3 00001882: SWAP5 00001883: POP 00001884: POP 00001885: POP 00001886: PUSH1 0x40 00001888: SWAP2 00001889: SWAP1 0000188a: SWAP2 0000188b: ADD 0000188c: CALLDATALOAD 0000188d: SWAP1 0000188e: JUMP 0000188f: JUMPDEST 00001890: PUSH1 0x00 00001892: DUP1 00001893: PUSH1 0x00 00001895: DUP1 00001896: PUSH1 0x00 00001898: DUP1 00001899: PUSH1 0x00 0000189b: PUSH1 0xc0 0000189d: DUP9 0000189e: DUP11 0000189f: SUB 000018a0: SLT 000018a1: ISZERO 000018a2: PUSH2 0x18aa 000018a5: JUMPI 000018a6: PUSH1 0x00 000018a8: DUP1 000018a9: REVERT 000018aa: JUMPDEST 000018ab: DUP8 000018ac: CALLDATALOAD 000018ad: PUSH2 0x18b5 000018b0: DUP2 000018b1: PUSH2 0x1836 000018b4: JUMP 000018b5: JUMPDEST 000018b6: SWAP7 000018b7: POP 000018b8: PUSH1 0x20 000018ba: DUP9 000018bb: ADD 000018bc: CALLDATALOAD 000018bd: PUSH2 0x18c5 000018c0: DUP2 000018c1: PUSH2 0x1836 000018c4: JUMP 000018c5: JUMPDEST 000018c6: SWAP6 000018c7: POP 000018c8: PUSH1 0x40 000018ca: DUP9 000018cb: ADD 000018cc: CALLDATALOAD 000018cd: PUSH2 0x18d5 000018d0: DUP2 000018d1: PUSH2 0x1836 000018d4: JUMP 000018d5: JUMPDEST 000018d6: SWAP5 000018d7: POP 000018d8: PUSH1 0x60 000018da: DUP9 000018db: ADD 000018dc: CALLDATALOAD 000018dd: SWAP4 000018de: POP 000018df: PUSH2 0x18ea 000018e2: PUSH1 0x80 000018e4: DUP10 000018e5: ADD 000018e6: PUSH2 0x1781 000018e9: JUMP 000018ea: JUMPDEST 000018eb: SWAP3 000018ec: POP 000018ed: PUSH1 0xa0 000018ef: DUP9 000018f0: ADD 000018f1: CALLDATALOAD 000018f2: PUSH8 0xffffffffffffffff 000018fb: DUP2 000018fc: GT 000018fd: ISZERO 000018fe: PUSH2 0x1906 00001901: JUMPI 00001902: PUSH1 0x00 00001904: DUP1 00001905: REVERT 00001906: JUMPDEST 00001907: PUSH2 0x1912 0000190a: DUP11 0000190b: DUP3 0000190c: DUP12 0000190d: ADD 0000190e: PUSH2 0x179a 00001911: JUMP 00001912: JUMPDEST 00001913: SWAP9 00001914: SWAP12 00001915: SWAP8 00001916: SWAP11 00001917: POP 00001918: SWAP6 00001919: SWAP9 0000191a: POP 0000191b: SWAP4 0000191c: SWAP7 0000191d: SWAP3 0000191e: SWAP6 0000191f: SWAP3 00001920: SWAP4 00001921: POP 00001922: POP 00001923: POP 00001924: JUMP 00001925: JUMPDEST 00001926: PUSH1 0x00 00001928: DUP1 00001929: PUSH1 0x00 0000192b: DUP1 0000192c: PUSH1 0x00 0000192e: DUP1 0000192f: PUSH1 0xa0 00001931: DUP8 00001932: DUP10 00001933: SUB 00001934: SLT 00001935: ISZERO 00001936: PUSH2 0x193e 00001939: JUMPI 0000193a: PUSH1 0x00 0000193c: DUP1 0000193d: REVERT 0000193e: JUMPDEST 0000193f: DUP7 00001940: CALLDATALOAD 00001941: PUSH2 0x1949 00001944: DUP2 00001945: PUSH2 0x1836 00001948: JUMP 00001949: JUMPDEST 0000194a: SWAP6 0000194b: POP 0000194c: PUSH1 0x20 0000194e: DUP8 0000194f: ADD 00001950: CALLDATALOAD 00001951: PUSH2 0x1959 00001954: DUP2 00001955: PUSH2 0x1836 00001958: JUMP 00001959: JUMPDEST 0000195a: SWAP5 0000195b: POP 0000195c: PUSH1 0x40 0000195e: DUP8 0000195f: ADD 00001960: CALLDATALOAD 00001961: SWAP4 00001962: POP 00001963: PUSH2 0x196e 00001966: PUSH1 0x60 00001968: DUP9 00001969: ADD 0000196a: PUSH2 0x1781 0000196d: JUMP 0000196e: JUMPDEST 0000196f: SWAP3 00001970: POP 00001971: PUSH1 0x80 00001973: DUP8 00001974: ADD 00001975: CALLDATALOAD 00001976: PUSH8 0xffffffffffffffff 0000197f: DUP2 00001980: GT 00001981: ISZERO 00001982: PUSH2 0x198a 00001985: JUMPI 00001986: PUSH1 0x00 00001988: DUP1 00001989: REVERT 0000198a: JUMPDEST 0000198b: PUSH2 0x1996 0000198e: DUP10 0000198f: DUP3 00001990: DUP11 00001991: ADD 00001992: PUSH2 0x179a 00001995: JUMP 00001996: JUMPDEST 00001997: SWAP8 00001998: SWAP11 00001999: SWAP7 0000199a: SWAP10 0000199b: POP 0000199c: SWAP5 0000199d: SWAP8 0000199e: POP 0000199f: SWAP3 000019a0: SWAP6 000019a1: SWAP4 000019a2: SWAP5 000019a3: SWAP3 000019a4: POP 000019a5: POP 000019a6: POP 000019a7: JUMP 000019a8: JUMPDEST 000019a9: PUSH1 0x00 000019ab: DUP1 000019ac: PUSH1 0x00 000019ae: DUP1 000019af: PUSH1 0x00 000019b1: DUP1 000019b2: PUSH1 0x00 000019b4: DUP1 000019b5: PUSH1 0x00 000019b7: PUSH2 0x0100 000019ba: DUP11 000019bb: DUP13 000019bc: SUB 000019bd: SLT 000019be: ISZERO 000019bf: PUSH2 0x19c7 000019c2: JUMPI 000019c3: PUSH1 0x00 000019c5: DUP1 000019c6: REVERT 000019c7: JUMPDEST 000019c8: DUP10 000019c9: CALLDATALOAD 000019ca: PUSH2 0x19d2 000019cd: DUP2 000019ce: PUSH2 0x1836 000019d1: JUMP 000019d2: JUMPDEST 000019d3: SWAP9 000019d4: POP 000019d5: PUSH1 0x20 000019d7: DUP11 000019d8: ADD 000019d9: CALLDATALOAD 000019da: PUSH2 0x19e2 000019dd: DUP2 000019de: PUSH2 0x1836 000019e1: JUMP 000019e2: JUMPDEST 000019e3: SWAP8 000019e4: POP 000019e5: PUSH1 0x40 000019e7: DUP11 000019e8: ADD 000019e9: CALLDATALOAD 000019ea: PUSH2 0x19f2 000019ed: DUP2 000019ee: PUSH2 0x1836 000019f1: JUMP 000019f2: JUMPDEST 000019f3: SWAP7 000019f4: POP 000019f5: PUSH1 0x60 000019f7: DUP11 000019f8: ADD 000019f9: CALLDATALOAD 000019fa: PUSH2 0x1a02 000019fd: DUP2 000019fe: PUSH2 0x1836 00001a01: JUMP 00001a02: JUMPDEST 00001a03: SWAP6 00001a04: POP 00001a05: PUSH1 0x80 00001a07: DUP11 00001a08: ADD 00001a09: CALLDATALOAD 00001a0a: SWAP5 00001a0b: POP 00001a0c: PUSH1 0xa0 00001a0e: DUP11 00001a0f: ADD 00001a10: CALLDATALOAD 00001a11: SWAP4 00001a12: POP 00001a13: PUSH2 0x1a1e 00001a16: PUSH1 0xc0 00001a18: DUP12 00001a19: ADD 00001a1a: PUSH2 0x1781 00001a1d: JUMP 00001a1e: JUMPDEST 00001a1f: SWAP3 00001a20: POP 00001a21: PUSH1 0xe0 00001a23: DUP11 00001a24: ADD 00001a25: CALLDATALOAD 00001a26: PUSH8 0xffffffffffffffff 00001a2f: DUP2 00001a30: GT 00001a31: ISZERO 00001a32: PUSH2 0x1a3a 00001a35: JUMPI 00001a36: PUSH1 0x00 00001a38: DUP1 00001a39: REVERT 00001a3a: JUMPDEST 00001a3b: PUSH2 0x1a46 00001a3e: DUP13 00001a3f: DUP3 00001a40: DUP14 00001a41: ADD 00001a42: PUSH2 0x179a 00001a45: JUMP 00001a46: JUMPDEST 00001a47: SWAP2 00001a48: POP 00001a49: DUP1 00001a4a: SWAP4 00001a4b: POP 00001a4c: POP 00001a4d: DUP1 00001a4e: SWAP2 00001a4f: POP 00001a50: POP 00001a51: SWAP3 00001a52: SWAP6 00001a53: SWAP9 00001a54: POP 00001a55: SWAP3 00001a56: SWAP6 00001a57: SWAP9 00001a58: POP 00001a59: SWAP3 00001a5a: SWAP6 00001a5b: SWAP9 00001a5c: JUMP 00001a5d: JUMPDEST 00001a5e: PUSH1 0x00 00001a60: DUP1 00001a61: PUSH1 0x40 00001a63: DUP4 00001a64: DUP6 00001a65: SUB 00001a66: SLT 00001a67: ISZERO 00001a68: PUSH2 0x1a70 00001a6b: JUMPI 00001a6c: PUSH1 0x00 00001a6e: DUP1 00001a6f: REVERT 00001a70: JUMPDEST 00001a71: DUP3 00001a72: CALLDATALOAD 00001a73: PUSH2 0x1a7b 00001a76: DUP2 00001a77: PUSH2 0x1836 00001a7a: JUMP 00001a7b: JUMPDEST 00001a7c: SWAP2 00001a7d: POP 00001a7e: PUSH1 0x20 00001a80: DUP4 00001a81: ADD 00001a82: CALLDATALOAD 00001a83: PUSH2 0x1a8b 00001a86: DUP2 00001a87: PUSH2 0x1836 00001a8a: JUMP 00001a8b: JUMPDEST 00001a8c: DUP1 00001a8d: SWAP2 00001a8e: POP 00001a8f: POP 00001a90: SWAP3 00001a91: POP 00001a92: SWAP3 00001a93: SWAP1 00001a94: POP 00001a95: JUMP 00001a96: JUMPDEST 00001a97: PUSH1 0x00 00001a99: DUP1 00001a9a: PUSH1 0x00 00001a9c: DUP1 00001a9d: PUSH1 0x60 00001a9f: DUP6 00001aa0: DUP8 00001aa1: SUB 00001aa2: SLT 00001aa3: ISZERO 00001aa4: PUSH2 0x1aac 00001aa7: JUMPI 00001aa8: PUSH1 0x00 00001aaa: DUP1 00001aab: REVERT 00001aac: JUMPDEST 00001aad: DUP5 00001aae: CALLDATALOAD 00001aaf: PUSH2 0x1ab7 00001ab2: DUP2 00001ab3: PUSH2 0x1836 00001ab6: JUMP 00001ab7: JUMPDEST 00001ab8: SWAP4 00001ab9: POP 00001aba: PUSH2 0x1ac5 00001abd: PUSH1 0x20 00001abf: DUP7 00001ac0: ADD 00001ac1: PUSH2 0x1781 00001ac4: JUMP 00001ac5: JUMPDEST 00001ac6: SWAP3 00001ac7: POP 00001ac8: PUSH1 0x40 00001aca: DUP6 00001acb: ADD 00001acc: CALLDATALOAD 00001acd: PUSH8 0xffffffffffffffff 00001ad6: DUP2 00001ad7: GT 00001ad8: ISZERO 00001ad9: PUSH2 0x1ae1 00001adc: JUMPI 00001add: PUSH1 0x00 00001adf: DUP1 00001ae0: REVERT 00001ae1: JUMPDEST 00001ae2: PUSH2 0x1aed 00001ae5: DUP8 00001ae6: DUP3 00001ae7: DUP9 00001ae8: ADD 00001ae9: PUSH2 0x179a 00001aec: JUMP 00001aed: JUMPDEST 00001aee: SWAP6 00001aef: SWAP9 00001af0: SWAP5 00001af1: SWAP8 00001af2: POP 00001af3: SWAP6 00001af4: POP 00001af5: POP 00001af6: POP 00001af7: POP 00001af8: JUMP 00001af9: JUMPDEST 00001afa: PUSH1 0x00 00001afc: JUMPDEST 00001afd: DUP4 00001afe: DUP2 00001aff: LT 00001b00: ISZERO 00001b01: PUSH2 0x1b14 00001b04: JUMPI 00001b05: DUP2 00001b06: DUP2 00001b07: ADD 00001b08: MLOAD 00001b09: DUP4 00001b0a: DUP3 00001b0b: ADD 00001b0c: MSTORE 00001b0d: PUSH1 0x20 00001b0f: ADD 00001b10: PUSH2 0x1afc 00001b13: JUMP 00001b14: JUMPDEST 00001b15: POP 00001b16: POP 00001b17: PUSH1 0x00 00001b19: SWAP2 00001b1a: ADD 00001b1b: MSTORE 00001b1c: JUMP 00001b1d: JUMPDEST 00001b1e: PUSH1 0x00 00001b20: DUP2 00001b21: MLOAD 00001b22: DUP1 00001b23: DUP5 00001b24: MSTORE 00001b25: PUSH2 0x1b35 00001b28: DUP2 00001b29: PUSH1 0x20 00001b2b: DUP7 00001b2c: ADD 00001b2d: PUSH1 0x20 00001b2f: DUP7 00001b30: ADD 00001b31: PUSH2 0x1af9 00001b34: JUMP 00001b35: JUMPDEST 00001b36: PUSH1 0x1f 00001b38: ADD 00001b39: PUSH1 0x1f 00001b3b: NOT 00001b3c: AND 00001b3d: SWAP3 00001b3e: SWAP1 00001b3f: SWAP3 00001b40: ADD 00001b41: PUSH1 0x20 00001b43: ADD 00001b44: SWAP3 00001b45: SWAP2 00001b46: POP 00001b47: POP 00001b48: JUMP 00001b49: JUMPDEST 00001b4a: PUSH1 0x00 00001b4c: PUSH2 0x0100 00001b4f: PUSH1 0x01 00001b51: PUSH1 0x01 00001b53: PUSH1 0xa0 00001b55: SHL 00001b56: SUB 00001b57: DUP1 00001b58: DUP13 00001b59: AND 00001b5a: DUP5 00001b5b: MSTORE 00001b5c: DUP1 00001b5d: DUP12 00001b5e: AND 00001b5f: PUSH1 0x20 00001b61: DUP6 00001b62: ADD 00001b63: MSTORE 00001b64: DUP1 00001b65: DUP11 00001b66: AND 00001b67: PUSH1 0x40 00001b69: DUP6 00001b6a: ADD 00001b6b: MSTORE 00001b6c: DUP1 00001b6d: DUP10 00001b6e: AND 00001b6f: PUSH1 0x60 00001b71: DUP6 00001b72: ADD 00001b73: MSTORE 00001b74: POP 00001b75: DUP7 00001b76: PUSH1 0x80 00001b78: DUP5 00001b79: ADD 00001b7a: MSTORE 00001b7b: PUSH1 0xff 00001b7d: DUP7 00001b7e: AND 00001b7f: PUSH1 0xa0 00001b81: DUP5 00001b82: ADD 00001b83: MSTORE 00001b84: PUSH4 0xffffffff 00001b89: DUP6 00001b8a: AND 00001b8b: PUSH1 0xc0 00001b8d: DUP5 00001b8e: ADD 00001b8f: MSTORE 00001b90: DUP1 00001b91: PUSH1 0xe0 00001b93: DUP5 00001b94: ADD 00001b95: MSTORE 00001b96: PUSH2 0x1ba1 00001b99: DUP2 00001b9a: DUP5 00001b9b: ADD 00001b9c: DUP6 00001b9d: PUSH2 0x1b1d 00001ba0: JUMP 00001ba1: JUMPDEST 00001ba2: SWAP12 00001ba3: SWAP11 00001ba4: POP 00001ba5: POP 00001ba6: POP 00001ba7: POP 00001ba8: POP 00001ba9: POP 00001baa: POP 00001bab: POP 00001bac: POP 00001bad: POP 00001bae: POP 00001baf: JUMP 00001bb0: JUMPDEST 00001bb1: DUP4 00001bb2: DUP2 00001bb3: MSTORE 00001bb4: PUSH4 0xffffffff 00001bb9: DUP4 00001bba: AND 00001bbb: PUSH1 0x20 00001bbd: DUP3 00001bbe: ADD 00001bbf: MSTORE 00001bc0: PUSH1 0x60 00001bc2: PUSH1 0x40 00001bc4: DUP3 00001bc5: ADD 00001bc6: MSTORE 00001bc7: PUSH1 0x00 00001bc9: PUSH2 0x1bd5 00001bcc: PUSH1 0x60 00001bce: DUP4 00001bcf: ADD 00001bd0: DUP5 00001bd1: PUSH2 0x1b1d 00001bd4: JUMP 00001bd5: JUMPDEST 00001bd6: SWAP6 00001bd7: SWAP5 00001bd8: POP 00001bd9: POP 00001bda: POP 00001bdb: POP 00001bdc: POP 00001bdd: JUMP 00001bde: JUMPDEST 00001bdf: PUSH1 0x00 00001be1: PUSH1 0x20 00001be3: DUP3 00001be4: DUP5 00001be5: SUB 00001be6: SLT 00001be7: ISZERO 00001be8: PUSH2 0x1bf0 00001beb: JUMPI 00001bec: PUSH1 0x00 00001bee: DUP1 00001bef: REVERT 00001bf0: JUMPDEST 00001bf1: DUP2 00001bf2: MLOAD 00001bf3: PUSH2 0x1bfb 00001bf6: DUP2 00001bf7: PUSH2 0x1836 00001bfa: JUMP 00001bfb: JUMPDEST 00001bfc: SWAP4 00001bfd: SWAP3 00001bfe: POP 00001bff: POP 00001c00: POP 00001c01: JUMP 00001c02: JUMPDEST 00001c03: PUSH1 0x00 00001c05: DUP3 00001c06: MLOAD 00001c07: PUSH2 0x1c14 00001c0a: DUP2 00001c0b: DUP5 00001c0c: PUSH1 0x20 00001c0e: DUP8 00001c0f: ADD 00001c10: PUSH2 0x1af9 00001c13: JUMP 00001c14: JUMPDEST 00001c15: SWAP2 00001c16: SWAP1 00001c17: SWAP2 00001c18: ADD 00001c19: SWAP3 00001c1a: SWAP2 00001c1b: POP 00001c1c: POP 00001c1d: JUMP 00001c1e: JUMPDEST 00001c1f: DUP2 00001c20: DUP4 00001c21: MSTORE 00001c22: DUP2 00001c23: DUP2 00001c24: PUSH1 0x20 00001c26: DUP6 00001c27: ADD 00001c28: CALLDATACOPY 00001c29: POP 00001c2a: PUSH1 0x00 00001c2c: PUSH1 0x20 00001c2e: DUP3 00001c2f: DUP5 00001c30: ADD 00001c31: ADD 00001c32: MSTORE 00001c33: PUSH1 0x00 00001c35: PUSH1 0x20 00001c37: PUSH1 0x1f 00001c39: NOT 00001c3a: PUSH1 0x1f 00001c3c: DUP5 00001c3d: ADD 00001c3e: AND 00001c3f: DUP5 00001c40: ADD 00001c41: ADD 00001c42: SWAP1 00001c43: POP 00001c44: SWAP3 00001c45: SWAP2 00001c46: POP 00001c47: POP 00001c48: JUMP 00001c49: JUMPDEST 00001c4a: DUP5 00001c4b: DUP2 00001c4c: MSTORE 00001c4d: PUSH4 0xffffffff 00001c52: DUP5 00001c53: AND 00001c54: PUSH1 0x20 00001c56: DUP3 00001c57: ADD 00001c58: MSTORE 00001c59: PUSH1 0x60 00001c5b: PUSH1 0x40 00001c5d: DUP3 00001c5e: ADD 00001c5f: MSTORE 00001c60: PUSH1 0x00 00001c62: PUSH2 0x1c6f 00001c65: PUSH1 0x60 00001c67: DUP4 00001c68: ADD 00001c69: DUP5 00001c6a: DUP7 00001c6b: PUSH2 0x1c1e 00001c6e: JUMP 00001c6f: JUMPDEST 00001c70: SWAP7 00001c71: SWAP6 00001c72: POP 00001c73: POP 00001c74: POP 00001c75: POP 00001c76: POP 00001c77: POP 00001c78: JUMP 00001c79: JUMPDEST 00001c7a: PUSH1 0x00 00001c7c: PUSH2 0x0100 00001c7f: PUSH1 0x01 00001c81: PUSH1 0x01 00001c83: PUSH1 0xa0 00001c85: SHL 00001c86: SUB 00001c87: DUP1 00001c88: DUP14 00001c89: AND 00001c8a: DUP5 00001c8b: MSTORE 00001c8c: DUP1 00001c8d: DUP13 00001c8e: AND 00001c8f: PUSH1 0x20 00001c91: DUP6 00001c92: ADD 00001c93: MSTORE 00001c94: DUP1 00001c95: DUP12 00001c96: AND 00001c97: PUSH1 0x40 00001c99: DUP6 00001c9a: ADD 00001c9b: MSTORE 00001c9c: DUP1 00001c9d: DUP11 00001c9e: AND 00001c9f: PUSH1 0x60 00001ca1: DUP6 00001ca2: ADD 00001ca3: MSTORE 00001ca4: POP 00001ca5: DUP8 00001ca6: PUSH1 0x80 00001ca8: DUP5 00001ca9: ADD 00001caa: MSTORE 00001cab: PUSH1 0xff 00001cad: DUP8 00001cae: AND 00001caf: PUSH1 0xa0 00001cb1: DUP5 00001cb2: ADD 00001cb3: MSTORE 00001cb4: PUSH4 0xffffffff 00001cb9: DUP7 00001cba: AND 00001cbb: PUSH1 0xc0 00001cbd: DUP5 00001cbe: ADD 00001cbf: MSTORE 00001cc0: DUP1 00001cc1: PUSH1 0xe0 00001cc3: DUP5 00001cc4: ADD 00001cc5: MSTORE 00001cc6: PUSH2 0x1cd2 00001cc9: DUP2 00001cca: DUP5 00001ccb: ADD 00001ccc: DUP6 00001ccd: DUP8 00001cce: PUSH2 0x1c1e 00001cd1: JUMP 00001cd2: JUMPDEST 00001cd3: SWAP13 00001cd4: SWAP12 00001cd5: POP 00001cd6: POP 00001cd7: POP 00001cd8: POP 00001cd9: POP 00001cda: POP 00001cdb: POP 00001cdc: POP 00001cdd: POP 00001cde: POP 00001cdf: POP 00001ce0: POP 00001ce1: JUMP 00001ce2: JUMPDEST 00001ce3: PUSH1 0x01 00001ce5: PUSH1 0x01 00001ce7: PUSH1 0xa0 00001ce9: SHL 00001cea: SUB 00001ceb: DUP8 00001cec: AND 00001ced: DUP2 00001cee: MSTORE 00001cef: DUP6 00001cf0: PUSH1 0x20 00001cf2: DUP3 00001cf3: ADD 00001cf4: MSTORE 00001cf5: DUP5 00001cf6: PUSH1 0x40 00001cf8: DUP3 00001cf9: ADD 00001cfa: MSTORE 00001cfb: PUSH4 0xffffffff 00001d00: DUP5 00001d01: AND 00001d02: PUSH1 0x60 00001d04: DUP3 00001d05: ADD 00001d06: MSTORE 00001d07: PUSH1 0xa0 00001d09: PUSH1 0x80 00001d0b: DUP3 00001d0c: ADD 00001d0d: MSTORE 00001d0e: PUSH1 0x00 00001d10: PUSH2 0x1d1d 00001d13: PUSH1 0xa0 00001d15: DUP4 00001d16: ADD 00001d17: DUP5 00001d18: DUP7 00001d19: PUSH2 0x1c1e 00001d1c: JUMP 00001d1d: JUMPDEST 00001d1e: SWAP9 00001d1f: SWAP8 00001d20: POP 00001d21: POP 00001d22: POP 00001d23: POP 00001d24: POP 00001d25: POP 00001d26: POP 00001d27: POP 00001d28: JUMP 00001d29: JUMPDEST 00001d2a: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00001d4b: PUSH1 0x00 00001d4d: MSTORE 00001d4e: PUSH1 0x11 00001d50: PUSH1 0x04 00001d52: MSTORE 00001d53: PUSH1 0x24 00001d55: PUSH1 0x00 00001d57: REVERT 00001d58: JUMPDEST 00001d59: DUP2 00001d5a: DUP2 00001d5b: SUB 00001d5c: DUP2 00001d5d: DUP2 00001d5e: GT 00001d5f: ISZERO 00001d60: PUSH2 0x12d2 00001d63: JUMPI 00001d64: PUSH2 0x12d2 00001d67: PUSH2 0x1d29 00001d6a: JUMP 00001d6b: JUMPDEST 00001d6c: PUSH1 0x00 00001d6e: PUSH2 0x0100 00001d71: PUSH1 0x01 00001d73: PUSH1 0x01 00001d75: PUSH1 0xa0 00001d77: SHL 00001d78: SUB 00001d79: DUP1 00001d7a: DUP14 00001d7b: AND 00001d7c: DUP5 00001d7d: MSTORE 00001d7e: DUP1 00001d7f: DUP13 00001d80: AND 00001d81: PUSH1 0x20 00001d83: DUP6 00001d84: ADD 00001d85: MSTORE 00001d86: DUP1 00001d87: DUP12 00001d88: AND 00001d89: PUSH1 0x40 00001d8b: DUP6 00001d8c: ADD 00001d8d: MSTORE 00001d8e: DUP1 00001d8f: DUP11 00001d90: AND 00001d91: PUSH1 0x60 00001d93: DUP6 00001d94: ADD 00001d95: MSTORE 00001d96: POP 00001d97: DUP8 00001d98: PUSH1 0x80 00001d9a: DUP5 00001d9b: ADD 00001d9c: MSTORE 00001d9d: DUP7 00001d9e: PUSH1 0xa0 00001da0: DUP5 00001da1: ADD 00001da2: MSTORE 00001da3: PUSH4 0xffffffff 00001da8: DUP7 00001da9: AND 00001daa: PUSH1 0xc0 00001dac: DUP5 00001dad: ADD 00001dae: MSTORE 00001daf: DUP1 00001db0: PUSH1 0xe0 00001db2: DUP5 00001db3: ADD 00001db4: MSTORE 00001db5: PUSH2 0x1cd2 00001db8: DUP2 00001db9: DUP5 00001dba: ADD 00001dbb: DUP6 00001dbc: DUP8 00001dbd: PUSH2 0x1c1e 00001dc0: JUMP 00001dc1: JUMPDEST 00001dc2: PUSH1 0x01 00001dc4: PUSH1 0x01 00001dc6: PUSH1 0xa0 00001dc8: SHL 00001dc9: SUB 00001dca: DUP5 00001dcb: AND 00001dcc: DUP2 00001dcd: MSTORE 00001dce: PUSH1 0x60 00001dd0: PUSH1 0x20 00001dd2: DUP3 00001dd3: ADD 00001dd4: MSTORE 00001dd5: PUSH1 0x00 00001dd7: PUSH2 0x1de3 00001dda: PUSH1 0x60 00001ddc: DUP4 00001ddd: ADD 00001dde: DUP6 00001ddf: PUSH2 0x1b1d 00001de2: JUMP 00001de3: JUMPDEST 00001de4: SWAP1 00001de5: POP 00001de6: PUSH4 0xffffffff 00001deb: DUP4 00001dec: AND 00001ded: PUSH1 0x40 00001def: DUP4 00001df0: ADD 00001df1: MSTORE 00001df2: SWAP5 00001df3: SWAP4 00001df4: POP 00001df5: POP 00001df6: POP 00001df7: POP 00001df8: JUMP 00001df9: JUMPDEST 00001dfa: DUP1 00001dfb: DUP3 00001dfc: ADD 00001dfd: DUP1 00001dfe: DUP3 00001dff: GT 00001e00: ISZERO 00001e01: PUSH2 0x12d2 00001e04: JUMPI 00001e05: PUSH2 0x12d2 00001e08: PUSH2 0x1d29 00001e0b: JUMP 00001e0c: JUMPDEST 00001e0d: PUSH1 0x00 00001e0f: PUSH1 0x20 00001e11: DUP3 00001e12: DUP5 00001e13: SUB 00001e14: SLT 00001e15: ISZERO 00001e16: PUSH2 0x1e1e 00001e19: JUMPI 00001e1a: PUSH1 0x00 00001e1c: DUP1 00001e1d: REVERT 00001e1e: JUMPDEST 00001e1f: DUP2 00001e20: MLOAD 00001e21: DUP1 00001e22: ISZERO 00001e23: ISZERO 00001e24: DUP2 00001e25: EQ 00001e26: PUSH2 0x1bfb 00001e29: JUMPI 00001e2a: PUSH1 0x00 00001e2c: DUP1 00001e2d: REVERT 00001e2e: JUMPDEST 00001e2f: PUSH1 0x20 00001e31: DUP2 00001e32: MSTORE 00001e33: PUSH1 0x00 00001e35: PUSH2 0x12cf 00001e38: PUSH1 0x20 00001e3a: DUP4 00001e3b: ADD 00001e3c: DUP5 00001e3d: PUSH2 0x1b1d 00001e40: JUMP 00001e41: INVALID 00001e42: LOG2 00001e43: PUSH5 0x6970667358 00001e49: UNKNOWN(0x22) 00001e4a: SLT 00001e4b: KECCAK256 00001e4c: SWAP9 00001e4d: SWAP4 00001e4e: UNKNOWN(0xBA) 00001e4f: OR 00001e50: ADD 00001e51: UNKNOWN(0xE6) 00001e52: SMOD 00001e53: UNKNOWN(0xBA) 00001e54: CALL 00001e55: SWAP3 00001e56: PUSH0 00001e57: CALLCODE 00001e58: UNKNOWN(0xFC) 00001e59: REVERT 00001e5a: JUMPDEST 00001e5b: UNKNOWN(0x28) 00001e5c: KECCAK256 00001e5d: UNKNOWN(0x4D) 00001e5e: CLZ 00001e5f: CALLDATASIZE 00001e60: STOP 00001e61: UNKNOWN(0x1F) 00001e62: PUSH1 0xfa 00001e64: UNKNOWN(0x0F) 00001e65: JUMPDEST 00001e66: UNKNOWN(0xAF) 00001e67: SMOD 00001e68: DUP9 00001e69: SWAP3 00001e6a: UNKNOWN(0xD3) 00001e6b: PUSH2 0x6473 00001e6e: PUSH16
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | codex | Unprotected initialize enables attacker-controlled messenger and bridge takeover | 90 | no | — |
viewevidence_json{
"evidence": "initialize() is public and only checks messenger == address(0), allowing anyone to set messenger/remoteTokenBridge (lines 53-62). finalizeETHBridge and finalizeERC20Bridge transfer ETH/ERC20 based solely on onlyFromCrossDomainAccount, which becomes attacker-controlled once initialize is hijacked (lines 270-345).",
"locations": [
"contracts/contracts/BL/messaging/BLStandardBridge.sol:53",
"contracts/contracts/BL/messaging/BLStandardBridge.sol:270",
"contracts/contracts/BL/messaging/BLStandardBridge.sol:308"
],
"recommendation": "Restrict initialize to a trusted deployer (e.g., onlyOwner/onlyProxyAdmin) or use an initializer pattern that is invoked atomically during proxy deployment; consider disabling initialize on the implementation contract.",
"exploit_scenario": "1) After the proxy is deployed but before the legitimate initializer runs, attacker calls initialize() to set messenger to an attacker-controlled contract and remoteTokenBridge to an attacker-controlled address. 2) Attacker\u2019s messenger contract calls finalizeETHBridge(...) with _to=attacker and _amount=bridge ETH balance; the onlyFromCrossDomainAccount check passes because msg.sender is the attacker\u2019s messenger and xDomainMessageSender() returns the attacker-set remoteTokenBridge. 3) Repeat via finalizeERC20Bridge(...) for each locked token pair, draining up to locks[_localToken][_remoteToken] to the attacker. Profit is the entire ETH balance plus all escrowed ERC20 balances held by the bridge."
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x34d6d9dbc2523e656db067c13055c61e4679ad2805197b597946d9e88c302cdf
call_targets:
0xa037b01bf218e87144446e9e87dd9dc58033fb57
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x34d6d9dbc2523e656db067c13055c61e4679ad2805197b597946d9e88c302cdf",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xa037b01bf218e87144446e9e87dd9dc58033fb57"
],
"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": "0xd191bcf9",
"selector": "0xd191bcf9",
"calldata_variants": [
"0xd191bcf9",
"0xd191bcf90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe11013dd",
"selector": "0xe11013dd",
"calldata_variants": [
"0xe11013dd",
"0xe11013dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe9518196",
"selector": "0xe9518196",
"calldata_variants": [
"0xe9518196",
"0xe95181960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8b4c40b0",
"selector": "0x8b4c40b0",
"calldata_variants": [
"0x8b4c40b0",
"0x8b4c40b00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8d265f10",
"selector": "0x8d265f10",
"calldata_variants": [
"0x8d265f10",
"0x8d265f100000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc05f6155",
"selector": "0xc05f6155",
"calldata_variants": [
"0xc05f6155",
"0xc05f61550000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x540abf73",
"selector": "0x540abf73",
"calldata_variants": [
"0x540abf73",
"0x540abf730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x87087623",
"selector": "0x87087623",
"calldata_variants": [
"0x87087623",
"0x870876230000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1908,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2854,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2982,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 11,
"guards_detected": [],
"untrusted_call_count": 11
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x34d6d9dbc2523e656db067c13055c61e4679ad2805197b597946d9e88c302cdf
call_targets:
0xa037b01bf218e87144446e9e87dd9dc58033fb57
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x34d6d9dbc2523e656db067c13055c61e4679ad2805197b597946d9e88c302cdf",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xa037b01bf218e87144446e9e87dd9dc58033fb57"
],
"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": "0xd191bcf9",
"selector": "0xd191bcf9",
"calldata_variants": [
"0xd191bcf9",
"0xd191bcf90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe11013dd",
"selector": "0xe11013dd",
"calldata_variants": [
"0xe11013dd",
"0xe11013dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe9518196",
"selector": "0xe9518196",
"calldata_variants": [
"0xe9518196",
"0xe95181960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8b4c40b0",
"selector": "0x8b4c40b0",
"calldata_variants": [
"0x8b4c40b0",
"0x8b4c40b00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8d265f10",
"selector": "0x8d265f10",
"calldata_variants": [
"0x8d265f10",
"0x8d265f100000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc05f6155",
"selector": "0xc05f6155",
"calldata_variants": [
"0xc05f6155",
"0xc05f61550000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x540abf73",
"selector": "0x540abf73",
"calldata_variants": [
"0x540abf73",
"0x540abf730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x87087623",
"selector": "0x87087623",
"calldata_variants": [
"0x87087623",
"0x870876230000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1908,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2854,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2982,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 11,
"guards_detected": []
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 7
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 14
}
|