ecbd4a63-528c-4904-a826-66055a86935c
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 |
|---|---|---|---|---|
| 30603 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 104477 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 104478 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 104479 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 104480 | capability.graph | complete | 1 / 3 | 1 week ago |
| 104481 | detector.run | complete | 1 / 3 | 1 week ago |
| 104482 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:496194] OpenAI Codex v0.77.0 (research preview)
[codex:496194] --------
[codex:496194] workdir: /tmp/codex-multi-92ikqhf5
[codex:496194] model: gpt-5.2-codex
[codex:496194] provider: openai
[codex:496194] approval: never
[codex:496194] sandbox: read-only
[codex:496194] reasoning effort: xhigh
[codex:496194] reasoning summaries: auto
[codex:496194] session id: 019b6c58-9a34-7a23-8131-55fa7b7231c3
[codex:496194] --------
[codex:496194] user
[codex:496194] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:496194] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:496194] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:496194]
[codex:496194] Scope rules:
[codex:496194] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:496194] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:496194]
[codex:496194] Output MUST be valid JSON matching the provided schema.
[codex:496194] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:496194] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:496194]
[codex:496194] Output constraints (IMPORTANT):
[codex:496194] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:496194] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:496194] mcp startup: no servers
[codex:496194]
[codex:496194] thinking
[codex:496194] **Planning to read audit instructions**
[codex:496194] exec
[codex:496194] /bin/bash -lc ls in /tmp/codex-multi-92ikqhf5 succeeded in 5ms:
[codex:496194] AUDIT_BUNDLE.txt
[codex:496194] codex-output-schema.json
[codex:496194] contracts
[codex:496194] exec
[codex:496194] /bin/bash -lc 'wc -l AUDIT_BUNDLE.txt' in /tmp/codex-multi-92ikqhf5 succeeded in 6ms:
[codex:496194] 351 AUDIT_BUNDLE.txt
[codex:496194] exec
[codex:496194] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-92ikqhf5 succeeded in 6ms:
[codex:496194] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:496194]
[codex:496194] ================================================================================
[codex:496194] FILE: contracts/Contract.sol
[codex:496194] ================================================================================
[codex:496194] // Dependency file: contracts/ETH/libraries/SafeMath.sol
[codex:496194]
[codex:496194] // SPDX-License-Identifier: MIT
[codex:496194]
[codex:496194] // pragma solidity >=0.6.0;
[codex:496194]
[codex:496194] /**
[codex:496194] * @dev Wrappers over Solidity's arithmetic operations with added overflow
[codex:496194] * checks.
[codex:496194] *
[codex:496194] * Arithmetic operations in Solidity wrap on overflow. This can easily result
[codex:496194] * in bugs, because programmers usually assume that an overflow raises an
[codex:496194] * error, which is the standard behavior in high level programming languages.
[codex:496194] * `SafeMath` restores this intuition by reverting the transaction when an
[codex:496194] * operation overflows.
[codex:496194]
[codex:496194] thinking
[codex:496194] **Continuing file review**
[codex:496194] exec
[codex:496194] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-92ikqhf5 succeeded in 5ms:
[codex:496194]
[codex:496194] // Root file: contracts/ETH/ETHBurgerTransit.sol
[codex:496194]
[codex:496194] // SPDX-License-Identifier: MIT
[codex:496194] pragma solidity >=0.5.16;
[codex:496194]
[codex:496194] // import 'contracts/ETH/libraries/SafeMath.sol';
[codex:496194] // import 'contracts/ETH/libraries/TransferHelper.sol';
[codex:496194]
[codex:496194] interface IWETH {
[codex:496194] function deposit() external payable;
[codex:496194] function withdraw(uint) external;
[codex:496194] }
[codex:496194]
[codex:496194] contract ETHBurgerTransit {
[codex:496194] using SafeMath for uint;
[codex:496194]
[codex:496194] address public owner;
[codex:496194] address public signWallet;
[codex:496194] address public developWallet;
[codex:496194]
[codex:496194]
[codex:496194] thinking
[codex:496194] **Analyzing bridge contract vulnerabilities**
[codex:496194] thinking
[codex:496194] **Identifying signature and token transfer risks**
[codex:496194]
[codex:496194] I'll highlight missing domain separation causing cross-contract replay of signatures, and the risk with fee-on-transfer tokens where the contract may misaccount resulting in potential deficits. I'll also note the signature validation risks if signWallet is zero and touch on fee collection reentrancy concerns.
[codex:496194] exec
[codex:496194] /bin/bash -lc "sed -n '400,500p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-92ikqhf5 succeeded in 5ms:
[codex:496194]
[codex:496194]
[codex:496194] thinking
[codex:496194] **Preparing to extract line numbers for findings**
[codex:496194] exec
[codex:496194] /bin/bash -lc 'rg -n "contract ETHBurgerTransit" -n contracts -S' in /tmp/codex-multi-92ikqhf5 succeeded in 8ms:
[codex:496194] contracts/Contract.sol:209:contract ETHBurgerTransit {
[codex:496194]
[codex:496194] thinking
[codex:496194] **Examining Contract.sol file**
[codex:496194] exec
[codex:496194] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '200,340p'" in /tmp/codex-multi-92ikqhf5 succeeded in 6ms:
[codex:496194] 200
[codex:496194] 201 // import 'contracts/ETH/libraries/SafeMath.sol';
[codex:496194] 202 // import 'contracts/ETH/libraries/TransferHelper.sol';
[codex:496194] 203
[codex:496194] 204 interface IWETH {
[codex:496194] 205 function deposit() external payable;
[codex:496194] 206 function withdraw(uint) external;
[codex:496194] 207 }
[codex:496194] 208
[codex:496194] 209 contract ETHBurgerTransit {
[codex:496194] 210 using SafeMath for uint;
[codex:496194] 211
[codex:496194] 212 address public owner;
[codex:496194] 213 address public signWallet;
[codex:496194] 214 address public developWallet;
[codex:496194] 215 address public WETH;
[codex:496194] 216
[codex:496194] 217 uint public totalFee;
[codex:496194] 218 uint public developFee;
[codex:496194] 219
[codex:496194] exec
[codex:496194] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '340,420p'" in /tmp/codex-multi-92ikqhf5 succeeded in 6ms:
[codex:496194] 340
[codex:496194] 341 function _countSignatures(bytes memory _signatures) pure internal returns (uint)
[codex:496194] 342 {
[codex:496194] 343 return _signatures.length % 65 == 0 ? _signatures.length / 65 : 0;
[codex:496194] 344 }
[codex:496194] 345 }
[codex:496194]
[codex:496194] thinking
[codex:496194] **Composing detailed audit findings JSON**
[codex:496194]
[codex:496194] I’m wrapping up the audit by carefully structuring a JSON output that follows the specified schema. It will include a summary and three findings about signature replay risk, fee-on-transfer token accounting issues, and signer zero-address misconfiguration—all with severity levels, categories, exploit scenarios, recommendations, evidence, and exact contract locations. I’ll ensure the JSON is well-formed and matches the user's requirements precisely.
[codex:496194] codex
[codex:496194] {"no_findings":false,"summary":"Identified 3 issues: cross-deployment signature replay risk, fee-on-transfer token accounting mismatch, and signer zero-address misconfiguration risk.","findings":[{"severity":"medium","category":"auth","title":"Withdrawal signatures lack domain separation, enabling cross-contract/chain replay","exploit_scenario":"If the same signer key is used for multiple ETHBurgerTransit deployments or chains, a user can reuse a valid signature from one deployment to withdraw from another because the signed message omits address(this) and chain ID. This can double-spend the same paybackId on another instance that has liquidity.","recommendation":"Include address(this) and chain ID in the signed message (or use EIP-712 typed data with a domain separator) so signatures are bound to a specific contract and chain.","evidence":"The signed message is keccak256(abi.encodePacked(_paybackId, _token, msg.sender, _amount)) and is verified without any contract/chain domain separation.","locations":["contracts/Contract.sol:289","contracts/Contract.sol:303","contracts/Contract.sol:306"]},{"severity":"medium","category":"other","title":"Fee-on-transfer tokens can be over-credited during transit","exploit_scenario":"An attacker deposits a fee-on-transfer/deflationary token via transitForBSC. The contract receives less than _amount, but the Transit event records the full _amount. If the off-chain bridge credits based on the event, the attacker can withdraw more on BSC than actually locked, draining liquidity.","recommendation":"Measure the token balance before/after transfer and emit/use the actual received amount, or restrict supported tokens to non-fee-on-transfer assets.","evidence":"transitForBSC emits _amount directly after safeTransferFrom without checking actual received amount.","locations":["contracts/Contract.sol:270","contracts/Contract.sol:272","contracts/Contract.sol:273"]},{"severity":"low","category":"auth","title":"Signer can be set to zero address, weakening signature validation","exploit_scenario":"If the owner deploys with signWallet=address(0) or later sets it to zero, _verify accepts any signature that recovers to address(0) (including malformed signatures), allowing arbitrary withdrawals without valid authorization.","recommendation":"Require non-zero signer in the constructor/changeSigner and reject recovered address(0) in _verify.","evidence":"signWallet is set without nonzero checks and _verify only compares recovered address to signWallet.","locations":["contracts/Contract.sol:236","contracts/Contract.sol:238","contracts/Contract.sol:247","contracts/Contract.sol:249","contracts/Contract.sol:303","contracts/Contract.sol:306"]}]}
[codex:496194] tokens used
[codex:496194] 19,184
[codex:496194] {"no_findings":false,"summary":"Identified 3 issues: cross-deployment signature replay risk, fee-on-transfer token accounting mismatch, and signer zero-address misconfiguration risk.","findings":[{"severity":"medium","category":"auth","title":"Withdrawal signatures lack domain separation, enabling cross-contract/chain replay","exploit_scenario":"If the same signer key is used for multiple ETHBurgerTransit deployments or chains, a user can reuse a valid signature from one deployment to withdraw from another because the signed message omits address(this) and chain ID. This can double-spend the same paybackId on another instance that has liquidity.","recommendation":"Include address(this) and chain ID in the signed message (or use EIP-712 typed data with a domain separator) so signatures are bound to a specific contract and chain.","evidence":"The signed message is keccak256(abi.encodePacked(_paybackId, _token, msg.sender, _amount)) and is verified without any contract/chain domain separation.","locations":["contracts/Contract.sol:289","contracts/Contract.sol:303","contracts/Contract.sol:306"]},{"severity":"medium","category":"other","title":"Fee-on-transfer tokens can be over-credited during transit","exploit_scenario":"An attacker deposits a fee-on-transfer/deflationary token via transitForBSC. The contract receives less than _amount, but the Transit event records the full _amount. If the off-chain bridge credits based on the event, the attacker can withdraw more on BSC than actually locked, draining liquidity.","recommendation":"Measure the token balance before/after transfer and emit/use the actual received amount, or restrict supported tokens to non-fee-on-transfer assets.","evidence":"transitForBSC emits _amount directly after safeTransferFrom without checking actual received amount.","locations":["contracts/Contract.sol:270","contracts/Contract.sol:272","contracts/Contract.sol:273"]},{"severity":"low","category":"auth","title":"Signer can be set to zero address, weakening signature validation","exploit_scenario":"If the owner deploys with signWallet=address(0) or later sets it to zero, _verify accepts any signature that recovers to address(0) (including malformed signatures), allowing arbitrary withdrawals without valid authorization.","recommendation":"Require non-zero signer in the constructor/changeSigner and reject recovered address(0) in _verify.","evidence":"signWallet is set without nonzero checks and _verify only compares recovered address to signWallet.","locations":["contracts/Contract.sol:236","contracts/Contract.sol:238","contracts/Contract.sol:247","contracts/Contract.sol:249","contracts/Contract.sol:303","contracts/Contract.sol:306"]}]}
{
"codex": {
"ran_at": "2025-12-29T23:04:41.456259+00:00",
"returncode": 0
},
"summary": "Identified 3 issues: cross-deployment signature replay risk, fee-on-transfer token accounting mismatch, and signer zero-address misconfiguration risk.",
"raw_final": {
"summary": "Identified 3 issues: cross-deployment signature replay risk, fee-on-transfer token accounting mismatch, and signer zero-address misconfiguration risk.",
"findings": [
{
"title": "Withdrawal signatures lack domain separation, enabling cross-contract/chain replay",
"category": "auth",
"evidence": "The signed message is keccak256(abi.encodePacked(_paybackId, _token, msg.sender, _amount)) and is verified without any contract/chain domain separation.",
"severity": "medium",
"locations": [
"contracts/Contract.sol:289",
"contracts/Contract.sol:303",
"contracts/Contract.sol:306"
],
"recommendation": "Include address(this) and chain ID in the signed message (or use EIP-712 typed data with a domain separator) so signatures are bound to a specific contract and chain.",
"exploit_scenario": "If the same signer key is used for multiple ETHBurgerTransit deployments or chains, a user can reuse a valid signature from one deployment to withdraw from another because the signed message omits address(this) and chain ID. This can double-spend the same paybackId on another instance that has liquidity."
},
{
"title": "Fee-on-transfer tokens can be over-credited during transit",
"category": "other",
"evidence": "transitForBSC emits _amount directly after safeTransferFrom without checking actual received amount.",
"severity": "medium",
"locations": [
"contracts/Contract.sol:270",
"contracts/Contract.sol:272",
"contracts/Contract.sol:273"
],
"recommendation": "Measure the token balance before/after transfer and emit/use the actual received amount, or restrict supported tokens to non-fee-on-transfer assets.",
"exploit_scenario": "An attacker deposits a fee-on-transfer/deflationary token via transitForBSC. The contract receives less than _amount, but the Transit event records the full _amount. If the off-chain bridge credits based on the event, the attacker can withdraw more on BSC than actually locked, draining liquidity."
},
{
"title": "Signer can be set to zero address, weakening signature validation",
"category": "auth",
"evidence": "signWallet is set without nonzero checks and _verify only compares recovered address to signWallet.",
"severity": "low",
"locations": [
"contracts/Contract.sol:236",
"contracts/Contract.sol:238",
"contracts/Contract.sol:247",
"contracts/Contract.sol:249",
"contracts/Contract.sol:303",
"contracts/Contract.sol:306"
],
"recommendation": "Require non-zero signer in the constructor/changeSigner and reject recovered address(0) in _verify.",
"exploit_scenario": "If the owner deploys with signWallet=address(0) or later sets it to zero, _verify accepts any signature that recovers to address(0) (including malformed signatures), allowing arbitrary withdrawals without valid authorization."
}
],
"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 0x00e1 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0xabc05a9d 00000019: GT 0000001a: PUSH2 0x007f 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xd07d6716 00000024: GT 00000025: PUSH2 0x0059 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xd07d6716 0000002f: EQ 00000030: PUSH2 0x02c8 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xd4d5d32a 0000003a: EQ 0000003b: PUSH2 0x02fb 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe3f7764e 00000045: EQ 00000046: PUSH2 0x0310 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf9aebda0 00000050: EQ 00000051: PUSH2 0x0318 00000054: JUMPI 00000055: PUSH2 0x00fc 00000058: JUMP 00000059: JUMPDEST 0000005a: DUP1 0000005b: PUSH4 0xabc05a9d 00000060: EQ 00000061: PUSH2 0x0289 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0xad5c4648 0000006b: EQ 0000006c: PUSH2 0x029e 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xc3505005 00000076: EQ 00000077: PUSH2 0x02b3 0000007a: JUMPI 0000007b: PUSH2 0x00fc 0000007e: JUMP 0000007f: JUMPDEST 00000080: DUP1 00000081: PUSH4 0x8b5bdada 00000086: GT 00000087: PUSH2 0x00bb 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0x8b5bdada 00000091: EQ 00000092: PUSH2 0x01de 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x8da5cb5b 0000009c: EQ 0000009d: PUSH2 0x0217 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x9bcbbd57 000000a7: EQ 000000a8: PUSH2 0x022c 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xaad2b723 000000b2: EQ 000000b3: PUSH2 0x0256 000000b6: JUMPI 000000b7: PUSH2 0x00fc 000000ba: JUMP 000000bb: JUMPDEST 000000bc: DUP1 000000bd: PUSH4 0x1df4ccfc 000000c2: EQ 000000c3: PUSH2 0x0101 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0x3463abb2 000000cd: EQ 000000ce: PUSH2 0x0128 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x4ce74859 000000d8: EQ 000000d9: PUSH2 0x01ad 000000dc: JUMPI 000000dd: PUSH2 0x00fc 000000e0: JUMP 000000e1: JUMPDEST 000000e2: CALLDATASIZE 000000e3: PUSH2 0x00fc 000000e6: JUMPI 000000e7: PUSH1 0x03 000000e9: SLOAD 000000ea: PUSH1 0x01 000000ec: PUSH1 0x01 000000ee: PUSH1 0xa0 000000f0: SHL 000000f1: SUB 000000f2: AND 000000f3: CALLER 000000f4: EQ 000000f5: PUSH2 0x00fa 000000f8: JUMPI 000000f9: INVALID 000000fa: JUMPDEST 000000fb: STOP 000000fc: JUMPDEST 000000fd: PUSH1 0x00 000000ff: DUP1 00000100: REVERT 00000101: JUMPDEST 00000102: CALLVALUE 00000103: DUP1 00000104: ISZERO 00000105: PUSH2 0x010d 00000108: JUMPI 00000109: PUSH1 0x00 0000010b: DUP1 0000010c: REVERT 0000010d: JUMPDEST 0000010e: POP 0000010f: PUSH2 0x0116 00000112: PUSH2 0x0356 00000115: JUMP 00000116: JUMPDEST 00000117: PUSH1 0x40 00000119: DUP1 0000011a: MLOAD 0000011b: SWAP2 0000011c: DUP3 0000011d: MSTORE 0000011e: MLOAD 0000011f: SWAP1 00000120: DUP2 00000121: SWAP1 00000122: SUB 00000123: PUSH1 0x20 00000125: ADD 00000126: SWAP1 00000127: RETURN 00000128: JUMPDEST 00000129: PUSH2 0x00fa 0000012c: PUSH1 0x04 0000012e: DUP1 0000012f: CALLDATASIZE 00000130: SUB 00000131: PUSH1 0x80 00000133: DUP2 00000134: LT 00000135: ISZERO 00000136: PUSH2 0x013e 00000139: JUMPI 0000013a: PUSH1 0x00 0000013c: DUP1 0000013d: REVERT 0000013e: JUMPDEST 0000013f: DUP2 00000140: ADD 00000141: SWAP1 00000142: PUSH1 0x20 00000144: DUP2 00000145: ADD 00000146: DUP2 00000147: CALLDATALOAD 00000148: PUSH5 0x0100000000 0000014e: DUP2 0000014f: GT 00000150: ISZERO 00000151: PUSH2 0x0159 00000154: JUMPI 00000155: PUSH1 0x00 00000157: DUP1 00000158: REVERT 00000159: JUMPDEST 0000015a: DUP3 0000015b: ADD 0000015c: DUP4 0000015d: PUSH1 0x20 0000015f: DUP3 00000160: ADD 00000161: GT 00000162: ISZERO 00000163: PUSH2 0x016b 00000166: JUMPI 00000167: PUSH1 0x00 00000169: DUP1 0000016a: REVERT 0000016b: JUMPDEST 0000016c: DUP1 0000016d: CALLDATALOAD 0000016e: SWAP1 0000016f: PUSH1 0x20 00000171: ADD 00000172: SWAP2 00000173: DUP5 00000174: PUSH1 0x01 00000176: DUP4 00000177: MUL 00000178: DUP5 00000179: ADD 0000017a: GT 0000017b: PUSH5 0x0100000000 00000181: DUP4 00000182: GT 00000183: OR 00000184: ISZERO 00000185: PUSH2 0x018d 00000188: JUMPI 00000189: PUSH1 0x00 0000018b: DUP1 0000018c: REVERT 0000018d: JUMPDEST 0000018e: SWAP2 0000018f: SWAP4 00000190: POP 00000191: SWAP2 00000192: POP 00000193: DUP1 00000194: CALLDATALOAD 00000195: SWAP1 00000196: PUSH1 0x01 00000198: PUSH1 0x01 0000019a: PUSH1 0xa0 0000019c: SHL 0000019d: SUB 0000019e: PUSH1 0x20 000001a0: DUP3 000001a1: ADD 000001a2: CALLDATALOAD 000001a3: AND 000001a4: SWAP1 000001a5: PUSH1 0x40 000001a7: ADD 000001a8: CALLDATALOAD 000001a9: PUSH2 0x035c 000001ac: JUMP 000001ad: JUMPDEST 000001ae: CALLVALUE 000001af: DUP1 000001b0: ISZERO 000001b1: PUSH2 0x01b9 000001b4: JUMPI 000001b5: PUSH1 0x00 000001b7: DUP1 000001b8: REVERT 000001b9: JUMPDEST 000001ba: POP 000001bb: PUSH2 0x01c2 000001be: PUSH2 0x0677 000001c1: JUMP 000001c2: JUMPDEST 000001c3: PUSH1 0x40 000001c5: DUP1 000001c6: MLOAD 000001c7: PUSH1 0x01 000001c9: PUSH1 0x01 000001cb: PUSH1 0xa0 000001cd: SHL 000001ce: SUB 000001cf: SWAP1 000001d0: SWAP3 000001d1: AND 000001d2: DUP3 000001d3: MSTORE 000001d4: MLOAD 000001d5: SWAP1 000001d6: DUP2 000001d7: SWAP1 000001d8: SUB 000001d9: PUSH1 0x20 000001db: ADD 000001dc: SWAP1 000001dd: RETURN 000001de: JUMPDEST 000001df: CALLVALUE 000001e0: DUP1 000001e1: ISZERO 000001e2: PUSH2 0x01ea 000001e5: JUMPI 000001e6: PUSH1 0x00 000001e8: DUP1 000001e9: REVERT 000001ea: JUMPDEST 000001eb: POP 000001ec: PUSH2 0x00fa 000001ef: PUSH1 0x04 000001f1: DUP1 000001f2: CALLDATASIZE 000001f3: SUB 000001f4: PUSH1 0x40 000001f6: DUP2 000001f7: LT 000001f8: ISZERO 000001f9: PUSH2 0x0201 000001fc: JUMPI 000001fd: PUSH1 0x00 000001ff: DUP1 00000200: REVERT 00000201: JUMPDEST 00000202: POP 00000203: PUSH1 0x01 00000205: PUSH1 0x01 00000207: PUSH1 0xa0 00000209: SHL 0000020a: SUB 0000020b: DUP2 0000020c: CALLDATALOAD 0000020d: AND 0000020e: SWAP1 0000020f: PUSH1 0x20 00000211: ADD 00000212: CALLDATALOAD 00000213: PUSH2 0x0686 00000216: JUMP 00000217: JUMPDEST 00000218: CALLVALUE 00000219: DUP1 0000021a: ISZERO 0000021b: PUSH2 0x0223 0000021e: JUMPI 0000021f: PUSH1 0x00 00000221: DUP1 00000222: REVERT 00000223: JUMPDEST 00000224: POP 00000225: PUSH2 0x01c2 00000228: PUSH2 0x071c 0000022b: JUMP 0000022c: JUMPDEST 0000022d: CALLVALUE 0000022e: DUP1 0000022f: ISZERO 00000230: PUSH2 0x0238 00000233: JUMPI 00000234: PUSH1 0x00 00000236: DUP1 00000237: REVERT 00000238: JUMPDEST 00000239: POP 0000023a: PUSH2 0x00fa 0000023d: PUSH1 0x04 0000023f: DUP1 00000240: CALLDATASIZE 00000241: SUB 00000242: PUSH1 0x20 00000244: DUP2 00000245: LT 00000246: ISZERO 00000247: PUSH2 0x024f 0000024a: JUMPI 0000024b: PUSH1 0x00 0000024d: DUP1 0000024e: REVERT 0000024f: JUMPDEST 00000250: POP 00000251: CALLDATALOAD 00000252: PUSH2 0x072b 00000255: JUMP 00000256: JUMPDEST 00000257: CALLVALUE 00000258: DUP1 00000259: ISZERO 0000025a: PUSH2 0x0262 0000025d: JUMPI 0000025e: PUSH1 0x00 00000260: DUP1 00000261: REVERT 00000262: JUMPDEST 00000263: POP 00000264: PUSH2 0x00fa 00000267: PUSH1 0x04 00000269: DUP1 0000026a: CALLDATASIZE 0000026b: SUB 0000026c: PUSH1 0x20 0000026e: DUP2 0000026f: LT 00000270: ISZERO 00000271: PUSH2 0x0279 00000274: JUMPI 00000275: PUSH1 0x00 00000277: DUP1 00000278: REVERT 00000279: JUMPDEST 0000027a: POP 0000027b: CALLDATALOAD 0000027c: PUSH1 0x01 0000027e: PUSH1 0x01 00000280: PUSH1 0xa0 00000282: SHL 00000283: SUB 00000284: AND 00000285: PUSH2 0x078f 00000288: JUMP 00000289: JUMPDEST 0000028a: CALLVALUE 0000028b: DUP1 0000028c: ISZERO 0000028d: PUSH2 0x0295 00000290: JUMPI 00000291: PUSH1 0x00 00000293: DUP1 00000294: REVERT 00000295: JUMPDEST 00000296: POP 00000297: PUSH2 0x0116 0000029a: PUSH2 0x0810 0000029d: JUMP 0000029e: JUMPDEST 0000029f: CALLVALUE 000002a0: DUP1 000002a1: ISZERO 000002a2: PUSH2 0x02aa 000002a5: JUMPI 000002a6: PUSH1 0x00 000002a8: DUP1 000002a9: REVERT 000002aa: JUMPDEST 000002ab: POP 000002ac: PUSH2 0x01c2 000002af: PUSH2 0x0816 000002b2: JUMP 000002b3: JUMPDEST 000002b4: CALLVALUE 000002b5: DUP1 000002b6: ISZERO 000002b7: PUSH2 0x02bf 000002ba: JUMPI 000002bb: PUSH1 0x00 000002bd: DUP1 000002be: REVERT 000002bf: JUMPDEST 000002c0: POP 000002c1: PUSH2 0x01c2 000002c4: PUSH2 0x0825 000002c7: JUMP 000002c8: JUMPDEST 000002c9: CALLVALUE 000002ca: DUP1 000002cb: ISZERO 000002cc: PUSH2 0x02d4 000002cf: JUMPI 000002d0: PUSH1 0x00 000002d2: DUP1 000002d3: REVERT 000002d4: JUMPDEST 000002d5: POP 000002d6: PUSH2 0x00fa 000002d9: PUSH1 0x04 000002db: DUP1 000002dc: CALLDATASIZE 000002dd: SUB 000002de: PUSH1 0x20 000002e0: DUP2 000002e1: LT 000002e2: ISZERO 000002e3: PUSH2 0x02eb 000002e6: JUMPI 000002e7: PUSH1 0x00 000002e9: DUP1 000002ea: REVERT 000002eb: JUMPDEST 000002ec: POP 000002ed: CALLDATALOAD 000002ee: PUSH1 0x01 000002f0: PUSH1 0x01 000002f2: PUSH1 0xa0 000002f4: SHL 000002f5: SUB 000002f6: AND 000002f7: PUSH2 0x0834 000002fa: JUMP 000002fb: JUMPDEST 000002fc: CALLVALUE 000002fd: DUP1 000002fe: ISZERO 000002ff: PUSH2 0x0307 00000302: JUMPI 00000303: PUSH1 0x00 00000305: DUP1 00000306: REVERT 00000307: JUMPDEST 00000308: POP 00000309: PUSH2 0x00fa 0000030c: PUSH2 0x08b5 0000030f: JUMP 00000310: JUMPDEST 00000311: PUSH2 0x00fa 00000314: PUSH2 0x09b4 00000317: JUMP 00000318: JUMPDEST 00000319: CALLVALUE 0000031a: DUP1 0000031b: ISZERO 0000031c: PUSH2 0x0324 0000031f: JUMPI 00000320: PUSH1 0x00 00000322: DUP1 00000323: REVERT 00000324: JUMPDEST 00000325: POP 00000326: PUSH2 0x0342 00000329: PUSH1 0x04 0000032b: DUP1 0000032c: CALLDATASIZE 0000032d: SUB 0000032e: PUSH1 0x20 00000330: DUP2 00000331: LT 00000332: ISZERO 00000333: PUSH2 0x033b 00000336: JUMPI 00000337: PUSH1 0x00 00000339: DUP1 0000033a: REVERT 0000033b: JUMPDEST 0000033c: POP 0000033d: CALLDATALOAD 0000033e: PUSH2 0x0aa9 00000341: JUMP 00000342: JUMPDEST 00000343: PUSH1 0x40 00000345: DUP1 00000346: MLOAD 00000347: SWAP2 00000348: ISZERO 00000349: ISZERO 0000034a: DUP3 0000034b: MSTORE 0000034c: MLOAD 0000034d: SWAP1 0000034e: DUP2 0000034f: SWAP1 00000350: SUB 00000351: PUSH1 0x20 00000353: ADD 00000354: SWAP1 00000355: RETURN 00000356: JUMPDEST 00000357: PUSH1 0x04 00000359: SLOAD 0000035a: DUP2 0000035b: JUMP 0000035c: JUMPDEST 0000035d: PUSH1 0x07 0000035f: SLOAD 00000360: PUSH1 0x01 00000362: EQ 00000363: PUSH2 0x039c 00000366: JUMPI 00000367: PUSH1 0x40 00000369: DUP1 0000036a: MLOAD 0000036b: PUSH3 0x461bcd 0000036f: PUSH1 0xe5 00000371: SHL 00000372: DUP2 00000373: MSTORE 00000374: PUSH1 0x20 00000376: PUSH1 0x04 00000378: DUP3 00000379: ADD 0000037a: MSTORE 0000037b: PUSH1 0x06 0000037d: PUSH1 0x24 0000037f: DUP3 00000380: ADD 00000381: MSTORE 00000382: PUSH6 0x131bd8dad959 00000389: PUSH1 0xd2 0000038b: SHL 0000038c: PUSH1 0x44 0000038e: DUP3 0000038f: ADD 00000390: MSTORE 00000391: SWAP1 00000392: MLOAD 00000393: SWAP1 00000394: DUP2 00000395: SWAP1 00000396: SUB 00000397: PUSH1 0x64 00000399: ADD 0000039a: SWAP1 0000039b: REVERT 0000039c: JUMPDEST 0000039d: PUSH1 0x00 0000039f: PUSH1 0x07 000003a1: DUP2 000003a2: SWAP1 000003a3: SSTORE 000003a4: DUP4 000003a5: DUP2 000003a6: MSTORE 000003a7: PUSH1 0x06 000003a9: PUSH1 0x20 000003ab: MSTORE 000003ac: PUSH1 0x40 000003ae: SWAP1 000003af: KECCAK256 000003b0: SLOAD 000003b1: PUSH1 0xff 000003b3: AND 000003b4: ISZERO 000003b5: PUSH2 0x03f8 000003b8: JUMPI 000003b9: PUSH1 0x40 000003bb: DUP1 000003bc: MLOAD 000003bd: PUSH3 0x461bcd 000003c1: PUSH1 0xe5 000003c3: SHL 000003c4: DUP2 000003c5: MSTORE 000003c6: PUSH1 0x20 000003c8: PUSH1 0x04 000003ca: DUP3 000003cb: ADD 000003cc: MSTORE 000003cd: PUSH1 0x10 000003cf: PUSH1 0x24 000003d1: DUP3 000003d2: ADD 000003d3: MSTORE 000003d4: PUSH16 0x1053149150511657d1561150d5551151 000003e5: PUSH1 0x82 000003e7: SHL 000003e8: PUSH1 0x44 000003ea: DUP3 000003eb: ADD 000003ec: MSTORE 000003ed: SWAP1 000003ee: MLOAD 000003ef: SWAP1 000003f0: DUP2 000003f1: SWAP1 000003f2: SUB 000003f3: PUSH1 0x64 000003f5: ADD 000003f6: SWAP1 000003f7: REVERT 000003f8: JUMPDEST 000003f9: PUSH1 0x00 000003fb: DUP4 000003fc: DUP2 000003fd: MSTORE 000003fe: PUSH1 0x06 00000400: PUSH1 0x20 00000402: MSTORE 00000403: PUSH1 0x40 00000405: SWAP1 00000406: KECCAK256 00000407: DUP1 00000408: SLOAD 00000409: PUSH1 0xff 0000040b: NOT 0000040c: AND 0000040d: PUSH1 0x01 0000040f: OR 00000410: SWAP1 00000411: SSTORE 00000412: DUP1 00000413: PUSH2 0x0459 00000416: JUMPI 00000417: PUSH1 0x40 00000419: DUP1 0000041a: MLOAD 0000041b: PUSH3 0x461bcd 0000041f: PUSH1 0xe5 00000421: SHL 00000422: DUP2 00000423: MSTORE 00000424: PUSH1 0x20 00000426: PUSH1 0x04 00000428: DUP3 00000429: ADD 0000042a: MSTORE 0000042b: PUSH1 0x13 0000042d: PUSH1 0x24 0000042f: DUP3 00000430: ADD 00000431: MSTORE 00000432: PUSH19 0x4e4f5448494e475f544f5f5749544844524157 00000446: PUSH1 0x68 00000448: SHL 00000449: PUSH1 0x44 0000044b: DUP3 0000044c: ADD 0000044d: MSTORE 0000044e: SWAP1 0000044f: MLOAD 00000450: SWAP1 00000451: DUP2 00000452: SWAP1 00000453: SUB 00000454: PUSH1 0x64 00000456: ADD 00000457: SWAP1 00000458: REVERT 00000459: JUMPDEST 0000045a: PUSH1 0x05 0000045c: SLOAD 0000045d: CALLVALUE 0000045e: EQ 0000045f: PUSH2 0x04a4 00000462: JUMPI 00000463: PUSH1 0x40 00000465: DUP1 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 0x12 00000479: PUSH1 0x24 0000047b: DUP3 0000047c: ADD 0000047d: MSTORE 0000047e: PUSH18 0x494e53554646494349454e545f56414c5545 00000491: PUSH1 0x70 00000493: SHL 00000494: PUSH1 0x44 00000496: DUP3 00000497: ADD 00000498: MSTORE 00000499: SWAP1 0000049a: MLOAD 0000049b: SWAP1 0000049c: DUP2 0000049d: SWAP1 0000049e: SUB 0000049f: PUSH1 0x64 000004a1: ADD 000004a2: SWAP1 000004a3: REVERT 000004a4: JUMPDEST 000004a5: PUSH1 0x40 000004a7: DUP1 000004a8: MLOAD 000004a9: PUSH1 0x20 000004ab: DUP1 000004ac: DUP3 000004ad: ADD 000004ae: DUP7 000004af: SWAP1 000004b0: MSTORE 000004b1: PUSH12 0xffffffffffffffffffffffff 000004be: NOT 000004bf: PUSH1 0x60 000004c1: DUP7 000004c2: DUP2 000004c3: SHL 000004c4: SWAP2 000004c5: SWAP1 000004c6: SWAP2 000004c7: AND 000004c8: DUP4 000004c9: DUP6 000004ca: ADD 000004cb: MSTORE 000004cc: CALLER 000004cd: SWAP1 000004ce: SHL 000004cf: PUSH1 0x54 000004d1: DUP4 000004d2: ADD 000004d3: MSTORE 000004d4: PUSH1 0x68 000004d6: DUP1 000004d7: DUP4 000004d8: ADD 000004d9: DUP6 000004da: SWAP1 000004db: MSTORE 000004dc: DUP4 000004dd: MLOAD 000004de: DUP1 000004df: DUP5 000004e0: SUB 000004e1: SWAP1 000004e2: SWAP2 000004e3: ADD 000004e4: DUP2 000004e5: MSTORE 000004e6: PUSH1 0x88 000004e8: DUP4 000004e9: ADD 000004ea: DUP1 000004eb: DUP6 000004ec: MSTORE 000004ed: DUP2 000004ee: MLOAD 000004ef: SWAP2 000004f0: DUP4 000004f1: ADD 000004f2: SWAP2 000004f3: SWAP1 000004f4: SWAP2 000004f5: KECCAK256 000004f6: PUSH1 0xa8 000004f8: PUSH1 0x1f 000004fa: DUP11 000004fb: ADD 000004fc: DUP5 000004fd: SWAP1 000004fe: DIV 000004ff: SWAP1 00000500: SWAP4 00000501: MUL 00000502: DUP5 00000503: ADD 00000504: DUP4 00000505: ADD 00000506: SWAP1 00000507: SWAP5 00000508: MSTORE 00000509: DUP8 0000050a: DUP2 0000050b: MSTORE 0000050c: PUSH2 0x0530 0000050f: SWAP3 00000510: DUP5 00000511: SWAP3 00000512: DUP11 00000513: SWAP2 00000514: DUP11 00000515: SWAP2 00000516: DUP3 00000517: SWAP2 00000518: ADD 00000519: DUP4 0000051a: DUP3 0000051b: DUP1 0000051c: DUP3 0000051d: DUP5 0000051e: CALLDATACOPY 0000051f: PUSH1 0x00 00000521: SWAP3 00000522: ADD 00000523: SWAP2 00000524: SWAP1 00000525: SWAP2 00000526: MSTORE 00000527: POP 00000528: PUSH2 0x0abe 0000052b: SWAP3 0000052c: POP 0000052d: POP 0000052e: POP 0000052f: JUMP 00000530: JUMPDEST 00000531: PUSH2 0x0575 00000534: JUMPI 00000535: PUSH1 0x40 00000537: DUP1 00000538: MLOAD 00000539: PUSH3 0x461bcd 0000053d: PUSH1 0xe5 0000053f: SHL 00000540: DUP2 00000541: MSTORE 00000542: PUSH1 0x20 00000544: PUSH1 0x04 00000546: DUP3 00000547: ADD 00000548: MSTORE 00000549: PUSH1 0x11 0000054b: PUSH1 0x24 0000054d: DUP3 0000054e: ADD 0000054f: MSTORE 00000550: PUSH17 0x494e56414c49445f5349474e4154555245 00000562: PUSH1 0x78 00000564: SHL 00000565: PUSH1 0x44 00000567: DUP3 00000568: ADD 00000569: MSTORE 0000056a: SWAP1 0000056b: MLOAD 0000056c: SWAP1 0000056d: DUP2 0000056e: SWAP1 0000056f: SUB 00000570: PUSH1 0x64 00000572: ADD 00000573: SWAP1 00000574: REVERT 00000575: JUMPDEST 00000576: PUSH1 0x03 00000578: SLOAD 00000579: PUSH1 0x01 0000057b: PUSH1 0x01 0000057d: PUSH1 0xa0 0000057f: SHL 00000580: SUB 00000581: DUP5 00000582: DUP2 00000583: AND 00000584: SWAP2 00000585: AND 00000586: EQ 00000587: ISZERO 00000588: PUSH2 0x05ff 0000058b: JUMPI 0000058c: PUSH1 0x03 0000058e: SLOAD 0000058f: PUSH1 0x40 00000591: DUP1 00000592: MLOAD 00000593: PUSH4 0x2e1a7d4d 00000598: PUSH1 0xe0 0000059a: SHL 0000059b: DUP2 0000059c: MSTORE 0000059d: PUSH1 0x04 0000059f: DUP2 000005a0: ADD 000005a1: DUP6 000005a2: SWAP1 000005a3: MSTORE 000005a4: SWAP1 000005a5: MLOAD 000005a6: PUSH1 0x01 000005a8: PUSH1 0x01 000005aa: PUSH1 0xa0 000005ac: SHL 000005ad: SUB 000005ae: SWAP1 000005af: SWAP3 000005b0: AND 000005b1: SWAP2 000005b2: PUSH4 0x2e1a7d4d 000005b7: SWAP2 000005b8: PUSH1 0x24 000005ba: DUP1 000005bb: DUP3 000005bc: ADD 000005bd: SWAP3 000005be: PUSH1 0x00 000005c0: SWAP3 000005c1: SWAP1 000005c2: SWAP2 000005c3: SWAP1 000005c4: DUP3 000005c5: SWAP1 000005c6: SUB 000005c7: ADD 000005c8: DUP2 000005c9: DUP4 000005ca: DUP8 000005cb: DUP1 000005cc: EXTCODESIZE 000005cd: ISZERO 000005ce: DUP1 000005cf: ISZERO 000005d0: PUSH2 0x05d8 000005d3: JUMPI 000005d4: PUSH1 0x00 000005d6: DUP1 000005d7: REVERT 000005d8: JUMPDEST 000005d9: POP 000005da: GAS 000005db: CALL 000005dc: ISZERO 000005dd: DUP1 000005de: ISZERO 000005df: PUSH2 0x05ec 000005e2: JUMPI 000005e3: RETURNDATASIZE 000005e4: PUSH1 0x00 000005e6: DUP1 000005e7: RETURNDATACOPY 000005e8: RETURNDATASIZE 000005e9: PUSH1 0x00 000005eb: REVERT 000005ec: JUMPDEST 000005ed: POP 000005ee: POP 000005ef: POP 000005f0: POP 000005f1: PUSH2 0x05fa 000005f4: CALLER 000005f5: DUP4 000005f6: PUSH2 0x0b11 000005f9: JUMP 000005fa: JUMPDEST 000005fb: PUSH2 0x060a 000005fe: JUMP 000005ff: JUMPDEST 00000600: PUSH2 0x060a 00000603: DUP4 00000604: CALLER 00000605: DUP5 00000606: PUSH2 0x0c09 00000609: JUMP 0000060a: JUMPDEST 0000060b: PUSH1 0x05 0000060d: SLOAD 0000060e: PUSH1 0x04 00000610: SLOAD 00000611: PUSH2 0x061f 00000614: SWAP2 00000615: PUSH4 0xffffffff 0000061a: PUSH2 0x0d73 0000061d: AND 0000061e: JUMP 0000061f: JUMPDEST 00000620: PUSH1 0x04 00000622: SSTORE 00000623: PUSH1 0x40 00000625: DUP1 00000626: MLOAD 00000627: DUP6 00000628: DUP2 00000629: MSTORE 0000062a: PUSH1 0x20 0000062c: DUP2 0000062d: ADD 0000062e: DUP5 0000062f: SWAP1 00000630: MSTORE 00000631: DUP2 00000632: MLOAD 00000633: PUSH1 0x01 00000635: PUSH1 0x01 00000637: PUSH1 0xa0 00000639: SHL 0000063a: SUB 0000063b: DUP7 0000063c: AND 0000063d: SWAP3 0000063e: CALLER 0000063f: SWAP3 00000640: PUSH32 0xcd6ac346191b4b7531743e58f243dd4d350a52a9186641c1e5eac22b95aaedbe 00000661: SWAP3 00000662: SWAP1 00000663: DUP2 00000664: SWAP1 00000665: SUB 00000666: SWAP1 00000667: SWAP2 00000668: ADD 00000669: SWAP1 0000066a: LOG3 0000066b: POP 0000066c: POP 0000066d: PUSH1 0x01 0000066f: PUSH1 0x07 00000671: SSTORE 00000672: POP 00000673: POP 00000674: POP 00000675: POP 00000676: JUMP 00000677: JUMPDEST 00000678: PUSH1 0x01 0000067a: SLOAD 0000067b: PUSH1 0x01 0000067d: PUSH1 0x01 0000067f: PUSH1 0xa0 00000681: SHL 00000682: SUB 00000683: AND 00000684: DUP2 00000685: JUMP 00000686: JUMPDEST 00000687: PUSH1 0x00 00000689: DUP2 0000068a: GT 0000068b: PUSH2 0x06cc 0000068e: JUMPI 0000068f: PUSH1 0x40 00000691: DUP1 00000692: MLOAD 00000693: PUSH3 0x461bcd 00000697: PUSH1 0xe5 00000699: SHL 0000069a: DUP2 0000069b: MSTORE 0000069c: PUSH1 0x20 0000069e: PUSH1 0x04 000006a0: DUP3 000006a1: ADD 000006a2: MSTORE 000006a3: PUSH1 0x0e 000006a5: PUSH1 0x24 000006a7: DUP3 000006a8: ADD 000006a9: MSTORE 000006aa: PUSH14 0x1253959053125117d05353d55395 000006b9: PUSH1 0x92 000006bb: SHL 000006bc: PUSH1 0x44 000006be: DUP3 000006bf: ADD 000006c0: MSTORE 000006c1: SWAP1 000006c2: MLOAD 000006c3: SWAP1 000006c4: DUP2 000006c5: SWAP1 000006c6: SUB 000006c7: PUSH1 0x64 000006c9: ADD 000006ca: SWAP1 000006cb: REVERT 000006cc: JUMPDEST 000006cd: PUSH2 0x06d8 000006d0: DUP3 000006d1: CALLER 000006d2: ADDRESS 000006d3: DUP5 000006d4: PUSH2 0x0dd4 000006d7: JUMP 000006d8: JUMPDEST 000006d9: PUSH1 0x40 000006db: DUP1 000006dc: MLOAD 000006dd: DUP3 000006de: DUP2 000006df: MSTORE 000006e0: SWAP1 000006e1: MLOAD 000006e2: PUSH1 0x01 000006e4: PUSH1 0x01 000006e6: PUSH1 0xa0 000006e8: SHL 000006e9: SUB 000006ea: DUP5 000006eb: AND 000006ec: SWAP2 000006ed: CALLER 000006ee: SWAP2 000006ef: PUSH32 0x63e35e92cba2f74cf881dc0d3cd0bb0d2d410f99203dce687272133843fef406 00000710: SWAP2 00000711: DUP2 00000712: SWAP1 00000713: SUB 00000714: PUSH1 0x20 00000716: ADD 00000717: SWAP1 00000718: LOG3 00000719: POP 0000071a: POP 0000071b: JUMP 0000071c: JUMPDEST 0000071d: PUSH1 0x00 0000071f: SLOAD 00000720: PUSH1 0x01 00000722: PUSH1 0x01 00000724: PUSH1 0xa0 00000726: SHL 00000727: SUB 00000728: AND 00000729: DUP2 0000072a: JUMP 0000072b: JUMPDEST 0000072c: PUSH1 0x00 0000072e: SLOAD 0000072f: PUSH1 0x01 00000731: PUSH1 0x01 00000733: PUSH1 0xa0 00000735: SHL 00000736: SUB 00000737: AND 00000738: CALLER 00000739: EQ 0000073a: PUSH2 0x078a 0000073d: JUMPI 0000073e: PUSH1 0x40 00000740: DUP1 00000741: MLOAD 00000742: PUSH3 0x461bcd 00000746: PUSH1 0xe5 00000748: SHL 00000749: DUP2 0000074a: MSTORE 0000074b: PUSH1 0x20 0000074d: PUSH1 0x04 0000074f: DUP3 00000750: ADD 00000751: MSTORE 00000752: PUSH1 0x1c 00000754: PUSH1 0x24 00000756: DUP3 00000757: ADD 00000758: MSTORE 00000759: PUSH32 0x4348414e47455f444556454c4f505f4645455f464f5242494444454e00000000 0000077a: PUSH1 0x44 0000077c: DUP3 0000077d: ADD 0000077e: MSTORE 0000077f: SWAP1 00000780: MLOAD 00000781: SWAP1 00000782: DUP2 00000783: SWAP1 00000784: SUB 00000785: PUSH1 0x64 00000787: ADD 00000788: SWAP1 00000789: REVERT 0000078a: JUMPDEST 0000078b: PUSH1 0x05 0000078d: SSTORE 0000078e: JUMP 0000078f: JUMPDEST 00000790: PUSH1 0x00 00000792: SLOAD 00000793: PUSH1 0x01 00000795: PUSH1 0x01 00000797: PUSH1 0xa0 00000799: SHL 0000079a: SUB 0000079b: AND 0000079c: CALLER 0000079d: EQ 0000079e: PUSH2 0x07ee 000007a1: JUMPI 000007a2: PUSH1 0x40 000007a4: DUP1 000007a5: MLOAD 000007a6: PUSH3 0x461bcd 000007aa: PUSH1 0xe5 000007ac: SHL 000007ad: DUP2 000007ae: MSTORE 000007af: PUSH1 0x20 000007b1: PUSH1 0x04 000007b3: DUP3 000007b4: ADD 000007b5: MSTORE 000007b6: PUSH1 0x17 000007b8: PUSH1 0x24 000007ba: DUP3 000007bb: ADD 000007bc: MSTORE 000007bd: PUSH32 0x4348414e47455f5349474e45525f464f5242494444454e000000000000000000 000007de: PUSH1 0x44 000007e0: DUP3 000007e1: ADD 000007e2: MSTORE 000007e3: SWAP1 000007e4: MLOAD 000007e5: SWAP1 000007e6: DUP2 000007e7: SWAP1 000007e8: SUB 000007e9: PUSH1 0x64 000007eb: ADD 000007ec: SWAP1 000007ed: REVERT 000007ee: JUMPDEST 000007ef: PUSH1 0x01 000007f1: DUP1 000007f2: SLOAD 000007f3: PUSH1 0x01 000007f5: PUSH1 0x01 000007f7: PUSH1 0xa0 000007f9: SHL 000007fa: SUB 000007fb: NOT 000007fc: AND 000007fd: PUSH1 0x01 000007ff: PUSH1 0x01 00000801: PUSH1 0xa0 00000803: SHL 00000804: SUB 00000805: SWAP3 00000806: SWAP1 00000807: SWAP3 00000808: AND 00000809: SWAP2 0000080a: SWAP1 0000080b: SWAP2 0000080c: OR 0000080d: SWAP1 0000080e: SSTORE 0000080f: JUMP 00000810: JUMPDEST 00000811: PUSH1 0x05 00000813: SLOAD 00000814: DUP2 00000815: JUMP 00000816: JUMPDEST 00000817: PUSH1 0x03 00000819: SLOAD 0000081a: PUSH1 0x01 0000081c: PUSH1 0x01 0000081e: PUSH1 0xa0 00000820: SHL 00000821: SUB 00000822: AND 00000823: DUP2 00000824: JUMP 00000825: JUMPDEST 00000826: PUSH1 0x02 00000828: SLOAD 00000829: PUSH1 0x01 0000082b: PUSH1 0x01 0000082d: PUSH1 0xa0 0000082f: SHL 00000830: SUB 00000831: AND 00000832: DUP2 00000833: JUMP 00000834: JUMPDEST 00000835: PUSH1 0x00 00000837: SLOAD 00000838: PUSH1 0x01 0000083a: PUSH1 0x01 0000083c: PUSH1 0xa0 0000083e: SHL 0000083f: SUB 00000840: AND 00000841: CALLER 00000842: EQ 00000843: PUSH2 0x0893 00000846: JUMPI 00000847: PUSH1 0x40 00000849: DUP1 0000084a: MLOAD 0000084b: PUSH3 0x461bcd 0000084f: PUSH1 0xe5 00000851: SHL 00000852: DUP2 00000853: MSTORE 00000854: PUSH1 0x20 00000856: PUSH1 0x04 00000858: DUP3 00000859: ADD 0000085a: MSTORE 0000085b: PUSH1 0x1f 0000085d: PUSH1 0x24 0000085f: DUP3 00000860: ADD 00000861: MSTORE 00000862: PUSH32 0x4348414e47455f444556454c4f505f57414c4c45545f464f5242494444454e00 00000883: PUSH1 0x44 00000885: DUP3 00000886: ADD 00000887: MSTORE 00000888: SWAP1 00000889: MLOAD 0000088a: SWAP1 0000088b: DUP2 0000088c: SWAP1 0000088d: SUB 0000088e: PUSH1 0x64 00000890: ADD 00000891: SWAP1 00000892: REVERT 00000893: JUMPDEST 00000894: PUSH1 0x02 00000896: DUP1 00000897: SLOAD 00000898: PUSH1 0x01 0000089a: PUSH1 0x01 0000089c: PUSH1 0xa0 0000089e: SHL 0000089f: SUB 000008a0: NOT 000008a1: AND 000008a2: PUSH1 0x01 000008a4: PUSH1 0x01 000008a6: PUSH1 0xa0 000008a8: SHL 000008a9: SUB 000008aa: SWAP3 000008ab: SWAP1 000008ac: SWAP3 000008ad: AND 000008ae: SWAP2 000008af: SWAP1 000008b0: SWAP2 000008b1: OR 000008b2: SWAP1 000008b3: SSTORE 000008b4: JUMP 000008b5: JUMPDEST 000008b6: PUSH1 0x00 000008b8: SLOAD 000008b9: PUSH1 0x01 000008bb: PUSH1 0x01 000008bd: PUSH1 0xa0 000008bf: SHL 000008c0: SUB 000008c1: AND 000008c2: CALLER 000008c3: EQ 000008c4: PUSH2 0x0900 000008c7: JUMPI 000008c8: PUSH1 0x40 000008ca: DUP1 000008cb: MLOAD 000008cc: PUSH3 0x461bcd 000008d0: PUSH1 0xe5 000008d2: SHL 000008d3: DUP2 000008d4: MSTORE 000008d5: PUSH1 0x20 000008d7: PUSH1 0x04 000008d9: DUP3 000008da: ADD 000008db: MSTORE 000008dc: PUSH1 0x09 000008de: PUSH1 0x24 000008e0: DUP3 000008e1: ADD 000008e2: MSTORE 000008e3: PUSH9 0x2327a92124a22222a7 000008ed: PUSH1 0xb9 000008ef: SHL 000008f0: PUSH1 0x44 000008f2: DUP3 000008f3: ADD 000008f4: MSTORE 000008f5: SWAP1 000008f6: MLOAD 000008f7: SWAP1 000008f8: DUP2 000008f9: SWAP1 000008fa: SUB 000008fb: PUSH1 0x64 000008fd: ADD 000008fe: SWAP1 000008ff: REVERT 00000900: JUMPDEST 00000901: PUSH1 0x02 00000903: SLOAD 00000904: PUSH1 0x01 00000906: PUSH1 0x01 00000908: PUSH1 0xa0 0000090a: SHL 0000090b: SUB 0000090c: AND 0000090d: PUSH2 0x0954 00000910: JUMPI 00000911: PUSH1 0x40 00000913: DUP1 00000914: MLOAD 00000915: PUSH3 0x461bcd 00000919: PUSH1 0xe5 0000091b: SHL 0000091c: DUP2 0000091d: MSTORE 0000091e: PUSH1 0x20 00000920: PUSH1 0x04 00000922: DUP3 00000923: ADD 00000924: MSTORE 00000925: PUSH1 0x14 00000927: PUSH1 0x24 00000929: DUP3 0000092a: ADD 0000092b: MSTORE 0000092c: PUSH20 0x14d155155417d11155915313d417d5d053131155 00000941: PUSH1 0x62 00000943: SHL 00000944: PUSH1 0x44 00000946: DUP3 00000947: ADD 00000948: MSTORE 00000949: SWAP1 0000094a: MLOAD 0000094b: SWAP1 0000094c: DUP2 0000094d: SWAP1 0000094e: SUB 0000094f: PUSH1 0x64 00000951: ADD 00000952: SWAP1 00000953: REVERT 00000954: JUMPDEST 00000955: PUSH1 0x00 00000957: PUSH1 0x04 00000959: SLOAD 0000095a: GT 0000095b: PUSH2 0x0994 0000095e: JUMPI 0000095f: PUSH1 0x40 00000961: DUP1 00000962: MLOAD 00000963: PUSH3 0x461bcd 00000967: PUSH1 0xe5 00000969: SHL 0000096a: DUP2 0000096b: MSTORE 0000096c: PUSH1 0x20 0000096e: PUSH1 0x04 00000970: DUP3 00000971: ADD 00000972: MSTORE 00000973: PUSH1 0x06 00000975: PUSH1 0x24 00000977: DUP3 00000978: ADD 00000979: MSTORE 0000097a: PUSH6 0x4e4f5f464545 00000981: PUSH1 0xd0 00000983: SHL 00000984: PUSH1 0x44 00000986: DUP3 00000987: ADD 00000988: MSTORE 00000989: SWAP1 0000098a: MLOAD 0000098b: SWAP1 0000098c: DUP2 0000098d: SWAP1 0000098e: SUB 0000098f: PUSH1 0x64 00000991: ADD 00000992: SWAP1 00000993: REVERT 00000994: JUMPDEST 00000995: PUSH1 0x02 00000997: SLOAD 00000998: PUSH1 0x04 0000099a: SLOAD 0000099b: PUSH2 0x09ad 0000099e: SWAP2 0000099f: PUSH1 0x01 000009a1: PUSH1 0x01 000009a3: PUSH1 0xa0 000009a5: SHL 000009a6: SUB 000009a7: AND 000009a8: SWAP1 000009a9: PUSH2 0x0b11 000009ac: JUMP 000009ad: JUMPDEST 000009ae: PUSH1 0x00 000009b0: PUSH1 0x04 000009b2: SSTORE 000009b3: JUMP 000009b4: JUMPDEST 000009b5: PUSH1 0x00 000009b7: CALLVALUE 000009b8: GT 000009b9: PUSH2 0x09fa 000009bc: JUMPI 000009bd: PUSH1 0x40 000009bf: DUP1 000009c0: MLOAD 000009c1: PUSH3 0x461bcd 000009c5: PUSH1 0xe5 000009c7: SHL 000009c8: DUP2 000009c9: MSTORE 000009ca: PUSH1 0x20 000009cc: PUSH1 0x04 000009ce: DUP3 000009cf: ADD 000009d0: MSTORE 000009d1: PUSH1 0x0e 000009d3: PUSH1 0x24 000009d5: DUP3 000009d6: ADD 000009d7: MSTORE 000009d8: PUSH14 0x1253959053125117d05353d55395 000009e7: PUSH1 0x92 000009e9: SHL 000009ea: PUSH1 0x44 000009ec: DUP3 000009ed: ADD 000009ee: MSTORE 000009ef: SWAP1 000009f0: MLOAD 000009f1: SWAP1 000009f2: DUP2 000009f3: SWAP1 000009f4: SUB 000009f5: PUSH1 0x64 000009f7: ADD 000009f8: SWAP1 000009f9: REVERT 000009fa: JUMPDEST 000009fb: PUSH1 0x03 000009fd: PUSH1 0x00 000009ff: SWAP1 00000a00: SLOAD 00000a01: SWAP1 00000a02: PUSH2 0x0100 00000a05: EXP 00000a06: SWAP1 00000a07: DIV 00000a08: PUSH1 0x01 00000a0a: PUSH1 0x01 00000a0c: PUSH1 0xa0 00000a0e: SHL 00000a0f: SUB 00000a10: AND 00000a11: PUSH1 0x01 00000a13: PUSH1 0x01 00000a15: PUSH1 0xa0 00000a17: SHL 00000a18: SUB 00000a19: AND 00000a1a: PUSH4 0xd0e30db0 00000a1f: CALLVALUE 00000a20: PUSH1 0x40 00000a22: MLOAD 00000a23: DUP3 00000a24: PUSH4 0xffffffff 00000a29: AND 00000a2a: PUSH1 0xe0 00000a2c: SHL 00000a2d: DUP2 00000a2e: MSTORE 00000a2f: PUSH1 0x04 00000a31: ADD 00000a32: PUSH1 0x00 00000a34: PUSH1 0x40 00000a36: MLOAD 00000a37: DUP1 00000a38: DUP4 00000a39: SUB 00000a3a: DUP2 00000a3b: DUP6 00000a3c: DUP9 00000a3d: DUP1 00000a3e: EXTCODESIZE 00000a3f: ISZERO 00000a40: DUP1 00000a41: ISZERO 00000a42: PUSH2 0x0a4a 00000a45: JUMPI 00000a46: PUSH1 0x00 00000a48: DUP1 00000a49: REVERT 00000a4a: JUMPDEST 00000a4b: POP 00000a4c: GAS 00000a4d: CALL 00000a4e: ISZERO 00000a4f: DUP1 00000a50: ISZERO 00000a51: PUSH2 0x0a5e 00000a54: JUMPI 00000a55: RETURNDATASIZE 00000a56: PUSH1 0x00 00000a58: DUP1 00000a59: RETURNDATACOPY 00000a5a: RETURNDATASIZE 00000a5b: PUSH1 0x00 00000a5d: REVERT 00000a5e: JUMPDEST 00000a5f: POP 00000a60: POP 00000a61: PUSH1 0x03 00000a63: SLOAD 00000a64: PUSH1 0x40 00000a66: DUP1 00000a67: MLOAD 00000a68: CALLVALUE 00000a69: DUP2 00000a6a: MSTORE 00000a6b: SWAP1 00000a6c: MLOAD 00000a6d: PUSH1 0x01 00000a6f: PUSH1 0x01 00000a71: PUSH1 0xa0 00000a73: SHL 00000a74: SUB 00000a75: SWAP1 00000a76: SWAP3 00000a77: AND 00000a78: SWAP5 00000a79: POP 00000a7a: CALLER 00000a7b: SWAP4 00000a7c: POP 00000a7d: PUSH32 0x63e35e92cba2f74cf881dc0d3cd0bb0d2d410f99203dce687272133843fef406 00000a9e: SWAP3 00000a9f: POP 00000aa0: DUP2 00000aa1: SWAP1 00000aa2: SUB 00000aa3: PUSH1 0x20 00000aa5: ADD 00000aa6: SWAP1 00000aa7: LOG3 00000aa8: JUMP 00000aa9: JUMPDEST 00000aaa: PUSH1 0x06 00000aac: PUSH1 0x20 00000aae: MSTORE 00000aaf: PUSH1 0x00 00000ab1: SWAP1 00000ab2: DUP2 00000ab3: MSTORE 00000ab4: PUSH1 0x40 00000ab6: SWAP1 00000ab7: KECCAK256 00000ab8: SLOAD 00000ab9: PUSH1 0xff 00000abb: AND 00000abc: DUP2 00000abd: JUMP 00000abe: JUMPDEST 00000abf: PUSH1 0x00 00000ac1: DUP1 00000ac2: PUSH2 0x0aca 00000ac5: DUP5 00000ac6: PUSH2 0x0f31 00000ac9: JUMP 00000aca: JUMPDEST 00000acb: SWAP1 00000acc: POP 00000acd: PUSH1 0x60 00000acf: PUSH2 0x0ad8 00000ad2: DUP3 00000ad3: DUP6 00000ad4: PUSH2 0x0f82 00000ad7: JUMP 00000ad8: JUMPDEST 00000ad9: PUSH1 0x01 00000adb: SLOAD 00000adc: DUP2 00000add: MLOAD 00000ade: SWAP2 00000adf: SWAP3 00000ae0: POP 00000ae1: PUSH1 0x01 00000ae3: PUSH1 0x01 00000ae5: PUSH1 0xa0 00000ae7: SHL 00000ae8: SUB 00000ae9: AND 00000aea: SWAP1 00000aeb: DUP3 00000aec: SWAP1 00000aed: PUSH1 0x00 00000aef: SWAP1 00000af0: PUSH2 0x0af5 00000af3: JUMPI 00000af4: INVALID 00000af5: JUMPDEST 00000af6: PUSH1 0x20 00000af8: MUL 00000af9: PUSH1 0x20 00000afb: ADD 00000afc: ADD 00000afd: MLOAD 00000afe: PUSH1 0x01 00000b00: PUSH1 0x01 00000b02: PUSH1 0xa0 00000b04: SHL 00000b05: SUB 00000b06: AND 00000b07: EQ 00000b08: SWAP3 00000b09: POP 00000b0a: POP 00000b0b: POP 00000b0c: SWAP3 00000b0d: SWAP2 00000b0e: POP 00000b0f: POP 00000b10: JUMP 00000b11: JUMPDEST 00000b12: PUSH1 0x40 00000b14: DUP1 00000b15: MLOAD 00000b16: PUSH1 0x00 00000b18: DUP1 00000b19: DUP3 00000b1a: MSTORE 00000b1b: PUSH1 0x20 00000b1d: DUP3 00000b1e: ADD 00000b1f: SWAP1 00000b20: SWAP3 00000b21: MSTORE 00000b22: PUSH1 0x01 00000b24: PUSH1 0x01 00000b26: PUSH1 0xa0 00000b28: SHL 00000b29: SUB 00000b2a: DUP5 00000b2b: AND 00000b2c: SWAP1 00000b2d: DUP4 00000b2e: SWAP1 00000b2f: PUSH1 0x40 00000b31: MLOAD 00000b32: DUP1 00000b33: DUP3 00000b34: DUP1 00000b35: MLOAD 00000b36: SWAP1 00000b37: PUSH1 0x20 00000b39: ADD 00000b3a: SWAP1 00000b3b: DUP1 00000b3c: DUP4 00000b3d: DUP4 00000b3e: JUMPDEST 00000b3f: PUSH1 0x20 00000b41: DUP4 00000b42: LT 00000b43: PUSH2 0x0b5d 00000b46: JUMPI 00000b47: DUP1 00000b48: MLOAD 00000b49: DUP3 00000b4a: MSTORE 00000b4b: PUSH1 0x1f 00000b4d: NOT 00000b4e: SWAP1 00000b4f: SWAP3 00000b50: ADD 00000b51: SWAP2 00000b52: PUSH1 0x20 00000b54: SWAP2 00000b55: DUP3 00000b56: ADD 00000b57: SWAP2 00000b58: ADD 00000b59: PUSH2 0x0b3e 00000b5c: JUMP 00000b5d: JUMPDEST 00000b5e: PUSH1 0x01 00000b60: DUP4 00000b61: PUSH1 0x20 00000b63: SUB 00000b64: PUSH2 0x0100 00000b67: EXP 00000b68: SUB 00000b69: DUP1 00000b6a: NOT 00000b6b: DUP3 00000b6c: MLOAD 00000b6d: AND 00000b6e: DUP2 00000b6f: DUP5 00000b70: MLOAD 00000b71: AND 00000b72: DUP1 00000b73: DUP3 00000b74: OR 00000b75: DUP6 00000b76: MSTORE 00000b77: POP 00000b78: POP 00000b79: POP 00000b7a: POP 00000b7b: POP 00000b7c: POP 00000b7d: SWAP1 00000b7e: POP 00000b7f: ADD 00000b80: SWAP2 00000b81: POP 00000b82: POP 00000b83: PUSH1 0x00 00000b85: PUSH1 0x40 00000b87: MLOAD 00000b88: DUP1 00000b89: DUP4 00000b8a: SUB 00000b8b: DUP2 00000b8c: DUP6 00000b8d: DUP8 00000b8e: GAS 00000b8f: CALL 00000b90: SWAP3 00000b91: POP 00000b92: POP 00000b93: POP 00000b94: RETURNDATASIZE 00000b95: DUP1 00000b96: PUSH1 0x00 00000b98: DUP2 00000b99: EQ 00000b9a: PUSH2 0x0bbf 00000b9d: JUMPI 00000b9e: PUSH1 0x40 00000ba0: MLOAD 00000ba1: SWAP2 00000ba2: POP 00000ba3: PUSH1 0x1f 00000ba5: NOT 00000ba6: PUSH1 0x3f 00000ba8: RETURNDATASIZE 00000ba9: ADD 00000baa: AND 00000bab: DUP3 00000bac: ADD 00000bad: PUSH1 0x40 00000baf: MSTORE 00000bb0: RETURNDATASIZE 00000bb1: DUP3 00000bb2: MSTORE 00000bb3: RETURNDATASIZE 00000bb4: PUSH1 0x00 00000bb6: PUSH1 0x20 00000bb8: DUP5 00000bb9: ADD 00000bba: RETURNDATACOPY 00000bbb: PUSH2 0x0bc4 00000bbe: JUMP 00000bbf: JUMPDEST 00000bc0: PUSH1 0x60 00000bc2: SWAP2 00000bc3: POP 00000bc4: JUMPDEST 00000bc5: POP 00000bc6: POP 00000bc7: SWAP1 00000bc8: POP 00000bc9: DUP1 00000bca: PUSH2 0x0c04 00000bcd: JUMPI 00000bce: PUSH1 0x40 00000bd0: MLOAD 00000bd1: PUSH3 0x461bcd 00000bd5: PUSH1 0xe5 00000bd7: SHL 00000bd8: DUP2 00000bd9: MSTORE 00000bda: PUSH1 0x04 00000bdc: ADD 00000bdd: DUP1 00000bde: DUP1 00000bdf: PUSH1 0x20 00000be1: ADD 00000be2: DUP3 00000be3: DUP2 00000be4: SUB 00000be5: DUP3 00000be6: MSTORE 00000be7: PUSH1 0x23 00000be9: DUP2 00000bea: MSTORE 00000beb: PUSH1 0x20 00000bed: ADD 00000bee: DUP1 00000bef: PUSH2 0x110e 00000bf2: PUSH1 0x23 00000bf4: SWAP2 00000bf5: CODECOPY 00000bf6: PUSH1 0x40 00000bf8: ADD 00000bf9: SWAP2 00000bfa: POP 00000bfb: POP 00000bfc: PUSH1 0x40 00000bfe: MLOAD 00000bff: DUP1 00000c00: SWAP2 00000c01: SUB 00000c02: SWAP1 00000c03: REVERT 00000c04: JUMPDEST 00000c05: POP 00000c06: POP 00000c07: POP 00000c08: JUMP 00000c09: JUMPDEST 00000c0a: PUSH1 0x40 00000c0c: DUP1 00000c0d: MLOAD 00000c0e: PUSH1 0x01 00000c10: PUSH1 0x01 00000c12: PUSH1 0xa0 00000c14: SHL 00000c15: SUB 00000c16: DUP5 00000c17: DUP2 00000c18: AND 00000c19: PUSH1 0x24 00000c1b: DUP4 00000c1c: ADD 00000c1d: MSTORE 00000c1e: PUSH1 0x44 00000c20: DUP1 00000c21: DUP4 00000c22: ADD 00000c23: DUP6 00000c24: SWAP1 00000c25: MSTORE 00000c26: DUP4 00000c27: MLOAD 00000c28: DUP1 00000c29: DUP5 00000c2a: SUB 00000c2b: SWAP1 00000c2c: SWAP2 00000c2d: ADD 00000c2e: DUP2 00000c2f: MSTORE 00000c30: PUSH1 0x64 00000c32: SWAP1 00000c33: SWAP3 00000c34: ADD 00000c35: DUP4 00000c36: MSTORE 00000c37: PUSH1 0x20 00000c39: DUP3 00000c3a: ADD 00000c3b: DUP1 00000c3c: MLOAD 00000c3d: PUSH1 0x01 00000c3f: PUSH1 0x01 00000c41: PUSH1 0xe0 00000c43: SHL 00000c44: SUB 00000c45: AND 00000c46: PUSH4 0xa9059cbb 00000c4b: PUSH1 0xe0 00000c4d: SHL 00000c4e: OR 00000c4f: DUP2 00000c50: MSTORE 00000c51: SWAP3 00000c52: MLOAD 00000c53: DUP3 00000c54: MLOAD 00000c55: PUSH1 0x00 00000c57: SWAP5 00000c58: PUSH1 0x60 00000c5a: SWAP5 00000c5b: SWAP4 00000c5c: DUP10 00000c5d: AND 00000c5e: SWAP4 00000c5f: SWAP3 00000c60: SWAP2 00000c61: DUP3 00000c62: SWAP2 00000c63: SWAP1 00000c64: DUP1 00000c65: DUP4 00000c66: DUP4 00000c67: JUMPDEST 00000c68: PUSH1 0x20 00000c6a: DUP4 00000c6b: LT 00000c6c: PUSH2 0x0c86 00000c6f: JUMPI 00000c70: DUP1 00000c71: MLOAD 00000c72: DUP3 00000c73: MSTORE 00000c74: PUSH1 0x1f 00000c76: NOT 00000c77: SWAP1 00000c78: SWAP3 00000c79: ADD 00000c7a: SWAP2 00000c7b: PUSH1 0x20 00000c7d: SWAP2 00000c7e: DUP3 00000c7f: ADD 00000c80: SWAP2 00000c81: ADD 00000c82: PUSH2 0x0c67 00000c85: JUMP 00000c86: JUMPDEST 00000c87: PUSH1 0x01 00000c89: DUP4 00000c8a: PUSH1 0x20 00000c8c: SUB 00000c8d: PUSH2 0x0100 00000c90: EXP 00000c91: SUB 00000c92: DUP1 00000c93: NOT 00000c94: DUP3 00000c95: MLOAD 00000c96: AND 00000c97: DUP2 00000c98: DUP5 00000c99: MLOAD 00000c9a: AND 00000c9b: DUP1 00000c9c: DUP3 00000c9d: OR 00000c9e: DUP6 00000c9f: MSTORE 00000ca0: POP 00000ca1: POP 00000ca2: POP 00000ca3: POP 00000ca4: POP 00000ca5: POP 00000ca6: SWAP1 00000ca7: POP 00000ca8: ADD 00000ca9: SWAP2 00000caa: POP 00000cab: POP 00000cac: PUSH1 0x00 00000cae: PUSH1 0x40 00000cb0: MLOAD 00000cb1: DUP1 00000cb2: DUP4 00000cb3: SUB 00000cb4: DUP2 00000cb5: PUSH1 0x00 00000cb7: DUP7 00000cb8: GAS 00000cb9: CALL 00000cba: SWAP2 00000cbb: POP 00000cbc: POP 00000cbd: RETURNDATASIZE 00000cbe: DUP1 00000cbf: PUSH1 0x00 00000cc1: DUP2 00000cc2: EQ 00000cc3: PUSH2 0x0ce8 00000cc6: JUMPI 00000cc7: PUSH1 0x40 00000cc9: MLOAD 00000cca: SWAP2 00000ccb: POP 00000ccc: PUSH1 0x1f 00000cce: NOT 00000ccf: PUSH1 0x3f 00000cd1: RETURNDATASIZE 00000cd2: ADD 00000cd3: AND 00000cd4: DUP3 00000cd5: ADD 00000cd6: PUSH1 0x40 00000cd8: MSTORE 00000cd9: RETURNDATASIZE 00000cda: DUP3 00000cdb: MSTORE 00000cdc: RETURNDATASIZE 00000cdd: PUSH1 0x00 00000cdf: PUSH1 0x20 00000ce1: DUP5 00000ce2: ADD 00000ce3: RETURNDATACOPY 00000ce4: PUSH2 0x0ced 00000ce7: JUMP 00000ce8: JUMPDEST 00000ce9: PUSH1 0x60 00000ceb: SWAP2 00000cec: POP 00000ced: JUMPDEST 00000cee: POP 00000cef: SWAP2 00000cf0: POP 00000cf1: SWAP2 00000cf2: POP 00000cf3: DUP2 00000cf4: DUP1 00000cf5: ISZERO 00000cf6: PUSH2 0x0d1b 00000cf9: JUMPI 00000cfa: POP 00000cfb: DUP1 00000cfc: MLOAD 00000cfd: ISZERO 00000cfe: DUP1 00000cff: PUSH2 0x0d1b 00000d02: JUMPI 00000d03: POP 00000d04: DUP1 00000d05: DUP1 00000d06: PUSH1 0x20 00000d08: ADD 00000d09: SWAP1 00000d0a: MLOAD 00000d0b: PUSH1 0x20 00000d0d: DUP2 00000d0e: LT 00000d0f: ISZERO 00000d10: PUSH2 0x0d18 00000d13: JUMPI 00000d14: PUSH1 0x00 00000d16: DUP1 00000d17: REVERT 00000d18: JUMPDEST 00000d19: POP 00000d1a: MLOAD 00000d1b: JUMPDEST 00000d1c: PUSH2 0x0d6c 00000d1f: JUMPI 00000d20: PUSH1 0x40 00000d22: DUP1 00000d23: MLOAD 00000d24: PUSH3 0x461bcd 00000d28: PUSH1 0xe5 00000d2a: SHL 00000d2b: DUP2 00000d2c: MSTORE 00000d2d: PUSH1 0x20 00000d2f: PUSH1 0x04 00000d31: DUP3 00000d32: ADD 00000d33: MSTORE 00000d34: PUSH1 0x1f 00000d36: PUSH1 0x24 00000d38: DUP3 00000d39: ADD 00000d3a: MSTORE 00000d3b: PUSH32 0x5472616e7366657248656c7065723a205452414e534645525f4641494c454400 00000d5c: PUSH1 0x44 00000d5e: DUP3 00000d5f: ADD 00000d60: MSTORE 00000d61: SWAP1 00000d62: MLOAD 00000d63: SWAP1 00000d64: DUP2 00000d65: SWAP1 00000d66: SUB 00000d67: PUSH1 0x64 00000d69: ADD 00000d6a: SWAP1 00000d6b: REVERT 00000d6c: JUMPDEST 00000d6d: POP 00000d6e: POP 00000d6f: POP 00000d70: POP 00000d71: POP 00000d72: JUMP 00000d73: JUMPDEST 00000d74: PUSH1 0x00 00000d76: DUP3 00000d77: DUP3 00000d78: ADD 00000d79: DUP4 00000d7a: DUP2 00000d7b: LT 00000d7c: ISZERO 00000d7d: PUSH2 0x0dcd 00000d80: JUMPI 00000d81: PUSH1 0x40 00000d83: DUP1 00000d84: MLOAD 00000d85: PUSH3 0x461bcd 00000d89: PUSH1 0xe5 00000d8b: SHL 00000d8c: DUP2 00000d8d: MSTORE 00000d8e: PUSH1 0x20 00000d90: PUSH1 0x04 00000d92: DUP3 00000d93: ADD 00000d94: MSTORE 00000d95: PUSH1 0x1b 00000d97: PUSH1 0x24 00000d99: DUP3 00000d9a: ADD 00000d9b: MSTORE 00000d9c: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 00000dbd: PUSH1 0x44 00000dbf: DUP3 00000dc0: ADD 00000dc1: MSTORE 00000dc2: SWAP1 00000dc3: MLOAD 00000dc4: SWAP1 00000dc5: DUP2 00000dc6: SWAP1 00000dc7: SUB 00000dc8: PUSH1 0x64 00000dca: ADD 00000dcb: SWAP1 00000dcc: REVERT 00000dcd: JUMPDEST 00000dce: SWAP4 00000dcf: SWAP3 00000dd0: POP 00000dd1: POP 00000dd2: POP 00000dd3: JUMP 00000dd4: JUMPDEST 00000dd5: PUSH1 0x40 00000dd7: DUP1 00000dd8: MLOAD 00000dd9: PUSH1 0x01 00000ddb: PUSH1 0x01 00000ddd: PUSH1 0xa0 00000ddf: SHL 00000de0: SUB 00000de1: DUP6 00000de2: DUP2 00000de3: AND 00000de4: PUSH1 0x24 00000de6: DUP4 00000de7: ADD 00000de8: MSTORE 00000de9: DUP5 00000dea: DUP2 00000deb: AND 00000dec: PUSH1 0x44 00000dee: DUP4 00000def: ADD 00000df0: MSTORE 00000df1: PUSH1 0x64 00000df3: DUP1 00000df4: DUP4 00000df5: ADD 00000df6: DUP6 00000df7: SWAP1 00000df8: MSTORE 00000df9: DUP4 00000dfa: MLOAD 00000dfb: DUP1 00000dfc: DUP5 00000dfd: SUB 00000dfe: SWAP1 00000dff: SWAP2 00000e00: ADD 00000e01: DUP2 00000e02: MSTORE 00000e03: PUSH1 0x84 00000e05: SWAP1 00000e06: SWAP3 00000e07: ADD 00000e08: DUP4 00000e09: MSTORE 00000e0a: PUSH1 0x20 00000e0c: DUP3 00000e0d: ADD 00000e0e: DUP1 00000e0f: MLOAD 00000e10: PUSH1 0x01 00000e12: PUSH1 0x01 00000e14: PUSH1 0xe0 00000e16: SHL 00000e17: SUB 00000e18: AND 00000e19: PUSH4 0x23b872dd 00000e1e: PUSH1 0xe0 00000e20: SHL 00000e21: OR 00000e22: DUP2 00000e23: MSTORE 00000e24: SWAP3 00000e25: MLOAD 00000e26: DUP3 00000e27: MLOAD 00000e28: PUSH1 0x00 00000e2a: SWAP5 00000e2b: PUSH1 0x60 00000e2d: SWAP5 00000e2e: SWAP4 00000e2f: DUP11 00000e30: AND 00000e31: SWAP4 00000e32: SWAP3 00000e33: SWAP2 00000e34: DUP3 00000e35: SWAP2 00000e36: SWAP1 00000e37: DUP1 00000e38: DUP4 00000e39: DUP4 00000e3a: JUMPDEST 00000e3b: PUSH1 0x20 00000e3d: DUP4 00000e3e: LT 00000e3f: PUSH2 0x0e59 00000e42: JUMPI 00000e43: DUP1 00000e44: MLOAD 00000e45: DUP3 00000e46: MSTORE 00000e47: PUSH1 0x1f 00000e49: NOT 00000e4a: SWAP1 00000e4b: SWAP3 00000e4c: ADD 00000e4d: SWAP2 00000e4e: PUSH1 0x20 00000e50: SWAP2 00000e51: DUP3 00000e52: ADD 00000e53: SWAP2 00000e54: ADD 00000e55: PUSH2 0x0e3a 00000e58: JUMP 00000e59: JUMPDEST 00000e5a: PUSH1 0x01 00000e5c: DUP4 00000e5d: PUSH1 0x20 00000e5f: SUB 00000e60: PUSH2 0x0100 00000e63: EXP 00000e64: SUB 00000e65: DUP1 00000e66: NOT 00000e67: DUP3 00000e68: MLOAD 00000e69: AND 00000e6a: DUP2 00000e6b: DUP5 00000e6c: MLOAD 00000e6d: AND 00000e6e: DUP1 00000e6f: DUP3 00000e70: OR 00000e71: DUP6 00000e72: MSTORE 00000e73: POP 00000e74: POP 00000e75: POP 00000e76: POP 00000e77: POP 00000e78: POP 00000e79: SWAP1 00000e7a: POP 00000e7b: ADD 00000e7c: SWAP2 00000e7d: POP 00000e7e: POP 00000e7f: PUSH1 0x00 00000e81: PUSH1 0x40 00000e83: MLOAD 00000e84: DUP1 00000e85: DUP4 00000e86: SUB 00000e87: DUP2 00000e88: PUSH1 0x00 00000e8a: DUP7 00000e8b: GAS 00000e8c: CALL 00000e8d: SWAP2 00000e8e: POP 00000e8f: POP 00000e90: RETURNDATASIZE 00000e91: DUP1 00000e92: PUSH1 0x00 00000e94: DUP2 00000e95: EQ 00000e96: PUSH2 0x0ebb 00000e99: JUMPI 00000e9a: PUSH1 0x40 00000e9c: MLOAD 00000e9d: SWAP2 00000e9e: POP 00000e9f: PUSH1 0x1f 00000ea1: NOT 00000ea2: PUSH1 0x3f 00000ea4: RETURNDATASIZE 00000ea5: ADD 00000ea6: AND 00000ea7: DUP3 00000ea8: ADD 00000ea9: PUSH1 0x40 00000eab: MSTORE 00000eac: RETURNDATASIZE 00000ead: DUP3 00000eae: MSTORE 00000eaf: RETURNDATASIZE 00000eb0: PUSH1 0x00 00000eb2: PUSH1 0x20 00000eb4: DUP5 00000eb5: ADD 00000eb6: RETURNDATACOPY 00000eb7: PUSH2 0x0ec0 00000eba: JUMP 00000ebb: JUMPDEST 00000ebc: PUSH1 0x60 00000ebe: SWAP2 00000ebf: POP 00000ec0: JUMPDEST 00000ec1: POP 00000ec2: SWAP2 00000ec3: POP 00000ec4: SWAP2 00000ec5: POP 00000ec6: DUP2 00000ec7: DUP1 00000ec8: ISZERO 00000ec9: PUSH2 0x0eee 00000ecc: JUMPI 00000ecd: POP 00000ece: DUP1 00000ecf: MLOAD 00000ed0: ISZERO 00000ed1: DUP1 00000ed2: PUSH2 0x0eee 00000ed5: JUMPI 00000ed6: POP 00000ed7: DUP1 00000ed8: DUP1 00000ed9: PUSH1 0x20 00000edb: ADD 00000edc: SWAP1 00000edd: MLOAD 00000ede: PUSH1 0x20 00000ee0: DUP2 00000ee1: LT 00000ee2: ISZERO 00000ee3: PUSH2 0x0eeb 00000ee6: JUMPI 00000ee7: PUSH1 0x00 00000ee9: DUP1 00000eea: REVERT 00000eeb: JUMPDEST 00000eec: POP 00000eed: MLOAD 00000eee: JUMPDEST 00000eef: PUSH2 0x0f29 00000ef2: JUMPI 00000ef3: PUSH1 0x40 00000ef5: MLOAD 00000ef6: PUSH3 0x461bcd 00000efa: PUSH1 0xe5 00000efc: SHL 00000efd: DUP2 00000efe: MSTORE 00000eff: PUSH1 0x04 00000f01: ADD 00000f02: DUP1 00000f03: DUP1 00000f04: PUSH1 0x20 00000f06: ADD 00000f07: DUP3 00000f08: DUP2 00000f09: SUB 00000f0a: DUP3 00000f0b: MSTORE 00000f0c: PUSH1 0x24 00000f0e: DUP2 00000f0f: MSTORE 00000f10: PUSH1 0x20 00000f12: ADD 00000f13: DUP1 00000f14: PUSH2 0x1131 00000f17: PUSH1 0x24 00000f19: SWAP2 00000f1a: CODECOPY 00000f1b: PUSH1 0x40 00000f1d: ADD 00000f1e: SWAP2 00000f1f: POP 00000f20: POP 00000f21: PUSH1 0x40 00000f23: MLOAD 00000f24: DUP1 00000f25: SWAP2 00000f26: SUB 00000f27: SWAP1 00000f28: REVERT 00000f29: JUMPDEST 00000f2a: POP 00000f2b: POP 00000f2c: POP 00000f2d: POP 00000f2e: POP 00000f2f: POP 00000f30: JUMP 00000f31: JUMPDEST 00000f32: PUSH1 0x40 00000f34: DUP1 00000f35: MLOAD 00000f36: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00000f57: PUSH1 0x20 00000f59: DUP1 00000f5a: DUP4 00000f5b: ADD 00000f5c: SWAP2 00000f5d: SWAP1 00000f5e: SWAP2 00000f5f: MSTORE 00000f60: PUSH1 0x3c 00000f62: DUP1 00000f63: DUP4 00000f64: ADD 00000f65: SWAP5 00000f66: SWAP1 00000f67: SWAP5 00000f68: MSTORE 00000f69: DUP3 00000f6a: MLOAD 00000f6b: DUP1 00000f6c: DUP4 00000f6d: SUB 00000f6e: SWAP1 00000f6f: SWAP5 00000f70: ADD 00000f71: DUP5 00000f72: MSTORE 00000f73: PUSH1 0x5c 00000f75: SWAP1 00000f76: SWAP2 00000f77: ADD 00000f78: SWAP1 00000f79: SWAP2 00000f7a: MSTORE 00000f7b: DUP2 00000f7c: MLOAD 00000f7d: SWAP2 00000f7e: ADD 00000f7f: KECCAK256 00000f80: SWAP1 00000f81: JUMP 00000f82: JUMPDEST 00000f83: PUSH1 0x60 00000f85: PUSH1 0x00 00000f87: DUP1 00000f88: PUSH1 0x00 00000f8a: DUP1 00000f8b: PUSH2 0x0f93 00000f8e: DUP7 00000f8f: PUSH2 0x108e 00000f92: JUMP 00000f93: JUMPDEST 00000f94: SWAP1 00000f95: POP 00000f96: DUP1 00000f97: PUSH8 0xffffffffffffffff 00000fa0: DUP2 00000fa1: GT 00000fa2: DUP1 00000fa3: ISZERO 00000fa4: PUSH2 0x0fac 00000fa7: JUMPI 00000fa8: PUSH1 0x00 00000faa: DUP1 00000fab: REVERT 00000fac: JUMPDEST 00000fad: POP 00000fae: PUSH1 0x40 00000fb0: MLOAD 00000fb1: SWAP1 00000fb2: DUP1 00000fb3: DUP3 00000fb4: MSTORE 00000fb5: DUP1 00000fb6: PUSH1 0x20 00000fb8: MUL 00000fb9: PUSH1 0x20 00000fbb: ADD 00000fbc: DUP3 00000fbd: ADD 00000fbe: PUSH1 0x40 00000fc0: MSTORE 00000fc1: DUP1 00000fc2: ISZERO 00000fc3: PUSH2 0x0fd6 00000fc6: JUMPI 00000fc7: DUP2 00000fc8: PUSH1 0x20 00000fca: ADD 00000fcb: PUSH1 0x20 00000fcd: DUP3 00000fce: MUL 00000fcf: DUP1 00000fd0: CALLDATASIZE 00000fd1: DUP4 00000fd2: CALLDATACOPY 00000fd3: ADD 00000fd4: SWAP1 00000fd5: POP 00000fd6: JUMPDEST 00000fd7: POP 00000fd8: SWAP5 00000fd9: POP 00000fda: PUSH1 0x00 00000fdc: JUMPDEST 00000fdd: DUP2 00000fde: DUP2 00000fdf: LT 00000fe0: ISZERO 00000fe1: PUSH2 0x1083 00000fe4: JUMPI 00000fe5: PUSH2 0x0fee 00000fe8: DUP8 00000fe9: DUP3 00000fea: PUSH2 0x10bb 00000fed: JUMP 00000fee: JUMPDEST 00000fef: PUSH1 0x40 00000ff1: DUP1 00000ff2: MLOAD 00000ff3: PUSH1 0x00 00000ff5: DUP2 00000ff6: MSTORE 00000ff7: PUSH1 0x20 00000ff9: DUP1 00000ffa: DUP3 00000ffb: ADD 00000ffc: DUP1 00000ffd: DUP5 00000ffe: MSTORE 00000fff: DUP15 00001000: SWAP1 00001001: MSTORE 00001002: PUSH1 0xff 00001004: DUP7 00001005: AND 00001006: DUP3 00001007: DUP5 00001008: ADD 00001009: MSTORE 0000100a: PUSH1 0x60 0000100c: DUP3 0000100d: ADD 0000100e: DUP6 0000100f: SWAP1 00001010: MSTORE 00001011: PUSH1 0x80 00001013: DUP3 00001014: ADD 00001015: DUP5 00001016: SWAP1 00001017: MSTORE 00001018: SWAP2 00001019: MLOAD 0000101a: SWAP5 0000101b: SWAP10 0000101c: POP 0000101d: SWAP3 0000101e: SWAP8 0000101f: POP 00001020: SWAP1 00001021: SWAP6 00001022: POP 00001023: PUSH1 0x01 00001025: SWAP3 00001026: PUSH1 0xa0 00001028: DUP1 00001029: DUP5 0000102a: ADD 0000102b: SWAP4 0000102c: PUSH1 0x1f 0000102e: NOT 0000102f: DUP4 00001030: ADD 00001031: SWAP3 00001032: SWAP1 00001033: DUP2 00001034: SWAP1 00001035: SUB 00001036: SWAP1 00001037: SWAP2 00001038: ADD 00001039: SWAP1 0000103a: DUP6 0000103b: GAS 0000103c: STATICCALL 0000103d: ISZERO 0000103e: DUP1 0000103f: ISZERO 00001040: PUSH2 0x104d 00001043: JUMPI 00001044: RETURNDATASIZE 00001045: PUSH1 0x00 00001047: DUP1 00001048: RETURNDATACOPY 00001049: RETURNDATASIZE 0000104a: PUSH1 0x00 0000104c: REVERT 0000104d: JUMPDEST 0000104e: POP 0000104f: POP 00001050: POP 00001051: PUSH1 0x20 00001053: PUSH1 0x40 00001055: MLOAD 00001056: SUB 00001057: MLOAD 00001058: DUP7 00001059: DUP3 0000105a: DUP2 0000105b: MLOAD 0000105c: DUP2 0000105d: LT 0000105e: PUSH2 0x1063 00001061: JUMPI 00001062: INVALID 00001063: JUMPDEST 00001064: PUSH1 0x01 00001066: PUSH1 0x01 00001068: PUSH1 0xa0 0000106a: SHL 0000106b: SUB 0000106c: SWAP1 0000106d: SWAP3 0000106e: AND 0000106f: PUSH1 0x20 00001071: SWAP3 00001072: DUP4 00001073: MUL 00001074: SWAP2 00001075: SWAP1 00001076: SWAP2 00001077: ADD 00001078: SWAP1 00001079: SWAP2 0000107a: ADD 0000107b: MSTORE 0000107c: PUSH1 0x01 0000107e: ADD 0000107f: PUSH2 0x0fdc 00001082: JUMP 00001083: JUMPDEST 00001084: POP 00001085: POP 00001086: POP 00001087: POP 00001088: POP 00001089: SWAP3 0000108a: SWAP2 0000108b: POP 0000108c: POP 0000108d: JUMP 0000108e: JUMPDEST 0000108f: PUSH1 0x00 00001091: PUSH1 0x41 00001093: DUP3 00001094: MLOAD 00001095: DUP2 00001096: PUSH2 0x109b 00001099: JUMPI 0000109a: INVALID 0000109b: JUMPDEST 0000109c: MOD 0000109d: ISZERO 0000109e: PUSH2 0x10a8 000010a1: JUMPI 000010a2: PUSH1 0x00 000010a4: PUSH2 0x10b5 000010a7: JUMP 000010a8: JUMPDEST 000010a9: PUSH1 0x41 000010ab: DUP3 000010ac: MLOAD 000010ad: DUP2 000010ae: PUSH2 0x10b3 000010b1: JUMPI 000010b2: INVALID 000010b3: JUMPDEST 000010b4: DIV 000010b5: JUMPDEST 000010b6: SWAP3 000010b7: SWAP2 000010b8: POP 000010b9: POP 000010ba: JUMP 000010bb: JUMPDEST 000010bc: PUSH1 0x41 000010be: DUP1 000010bf: DUP3 000010c0: MUL 000010c1: DUP4 000010c2: DUP2 000010c3: ADD 000010c4: PUSH1 0x20 000010c6: DUP2 000010c7: ADD 000010c8: MLOAD 000010c9: PUSH1 0x40 000010cb: DUP3 000010cc: ADD 000010cd: MLOAD 000010ce: SWAP2 000010cf: SWAP1 000010d0: SWAP4 000010d1: ADD 000010d2: MLOAD 000010d3: PUSH1 0xff 000010d5: AND 000010d6: SWAP3 000010d7: SWAP2 000010d8: PUSH1 0x1b 000010da: DUP5 000010db: LT 000010dc: ISZERO 000010dd: PUSH2 0x10e7 000010e0: JUMPI 000010e1: PUSH1 0x1b 000010e3: DUP5 000010e4: ADD 000010e5: SWAP4 000010e6: POP 000010e7: JUMPDEST 000010e8: DUP4 000010e9: PUSH1 0xff 000010eb: AND 000010ec: PUSH1 0x1b 000010ee: EQ 000010ef: DUP1 000010f0: PUSH2 0x10fc 000010f3: JUMPI 000010f4: POP 000010f5: DUP4 000010f6: PUSH1 0xff 000010f8: AND 000010f9: PUSH1 0x1c 000010fb: EQ 000010fc: JUMPDEST 000010fd: PUSH2 0x1105 00001100: JUMPI 00001101: PUSH1 0x00 00001103: DUP1 00001104: REVERT 00001105: JUMPDEST 00001106: POP 00001107: SWAP3 00001108: POP 00001109: SWAP3 0000110a: POP 0000110b: SWAP3 0000110c: JUMP 0000110d: INVALID 0000110e: SLOAD 0000110f: PUSH19 0x616e7366657248656c7065723a204554485f54 00001123: MSTORE 00001124: COINBASE 00001125: UNKNOWN(0x4E) 00001126: MSTORE8 00001127: CHAINID 00001128: GASLIMIT 00001129: MSTORE 0000112a: PUSH0 0000112b: CHAINID 0000112c: COINBASE 0000112d: BLOBHASH 0000112e: UNKNOWN(0x4C) 0000112f: GASLIMIT 00001130: DIFFICULTY 00001131: SLOAD 00001132: PUSH19 0x616e7366657248656c7065723a205452414e53 00001146: CHAINID 00001147: GASLIMIT 00001148: MSTORE 00001149: PUSH0 0000114a: CHAINID 0000114b: MSTORE 0000114c: UNKNOWN(0x4F) 0000114d: UNKNOWN(0x4D) 0000114e: PUSH0 0000114f: CHAINID 00001150: COINBASE 00001151: BLOBHASH 00001152: UNKNOWN(0x4C) 00001153: GASLIMIT 00001154: DIFFICULTY 00001155: LOG2 00001156: PUSH5 0x6970667358 0000115c: UNKNOWN(0x22) 0000115d: SLT 0000115e: KECCAK256 0000115f: UNKNOWN(0xC5) 00001160: COINBASE 00001161: DUP1 00001162: UNKNOWN(0xCD) 00001163: UNKNOWN(0xEA) 00001164: UNKNOWN(0xFC) 00001165: UNKNOWN(0xDF) 00001166: LOG3 00001167: UNKNOWN(0x2B) 00001168: UNKNOWN(0x22) 00001169: UNKNOWN(0xA7) 0000116a: UNKNOWN(0xF7) 0000116b: BYTE 0000116c: UNKNOWN(0xED) 0000116d: PUSH21 0xab8116d3c9187849dce7d564c135f83e4764736f6c 00001183: PUSH4 0x43000606 00001188: STOP 00001189: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x33848e748aed0ae57ed8ce805b034942cf7ec3671627fec2e6f01a5b136c3344
call_targets:
0xc8c1b41713761281a520b7ad81544197bc85a4ce
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x33848e748aed0ae57ed8ce805b034942cf7ec3671627fec2e6f01a5b136c3344",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xc8c1b41713761281a520b7ad81544197bc85a4ce"
],
"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": "0xd07d6716",
"selector": "0xd07d6716",
"calldata_variants": [
"0xd07d6716",
"0xd07d67160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4d5d32a",
"selector": "0xd4d5d32a",
"calldata_variants": [
"0xd4d5d32a",
"0xd4d5d32a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe3f7764e",
"selector": "0xe3f7764e",
"calldata_variants": [
"0xe3f7764e",
"0xe3f7764e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf9aebda0",
"selector": "0xf9aebda0",
"calldata_variants": [
"0xf9aebda0",
"0xf9aebda00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xabc05a9d",
"selector": "0xabc05a9d",
"calldata_variants": [
"0xabc05a9d",
"0xabc05a9d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xad5c4648",
"selector": "0xad5c4648",
"calldata_variants": [
"0xad5c4648",
"0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3505005",
"selector": "0xc3505005",
"calldata_variants": [
"0xc3505005",
"0xc35050050000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8b5bdada",
"selector": "0x8b5bdada",
"calldata_variants": [
"0x8b5bdada",
"0x8b5bdada0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1499,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2637,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2959,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 5,
"guards_detected": [],
"untrusted_call_count": 5
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x33848e748aed0ae57ed8ce805b034942cf7ec3671627fec2e6f01a5b136c3344
call_targets:
0xc8c1b41713761281a520b7ad81544197bc85a4ce
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x33848e748aed0ae57ed8ce805b034942cf7ec3671627fec2e6f01a5b136c3344",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xc8c1b41713761281a520b7ad81544197bc85a4ce"
],
"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": "0xd07d6716",
"selector": "0xd07d6716",
"calldata_variants": [
"0xd07d6716",
"0xd07d67160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4d5d32a",
"selector": "0xd4d5d32a",
"calldata_variants": [
"0xd4d5d32a",
"0xd4d5d32a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe3f7764e",
"selector": "0xe3f7764e",
"calldata_variants": [
"0xe3f7764e",
"0xe3f7764e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf9aebda0",
"selector": "0xf9aebda0",
"calldata_variants": [
"0xf9aebda0",
"0xf9aebda00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xabc05a9d",
"selector": "0xabc05a9d",
"calldata_variants": [
"0xabc05a9d",
"0xabc05a9d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xad5c4648",
"selector": "0xad5c4648",
"calldata_variants": [
"0xad5c4648",
"0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc3505005",
"selector": "0xc3505005",
"calldata_variants": [
"0xc3505005",
"0xc35050050000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8b5bdada",
"selector": "0x8b5bdada",
"calldata_variants": [
"0x8b5bdada",
"0x8b5bdada0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1499,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2637,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2959,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 5,
"guards_detected": []
}
|
| medium | auth | codex | Withdrawal signatures lack domain separation, enabling cross-contract/chain replay | 75 | no | — |
viewevidence_json{
"evidence": "The signed message is keccak256(abi.encodePacked(_paybackId, _token, msg.sender, _amount)) and is verified without any contract/chain domain separation.",
"locations": [
"contracts/Contract.sol:289",
"contracts/Contract.sol:303",
"contracts/Contract.sol:306"
],
"recommendation": "Include address(this) and chain ID in the signed message (or use EIP-712 typed data with a domain separator) so signatures are bound to a specific contract and chain.",
"exploit_scenario": "If the same signer key is used for multiple ETHBurgerTransit deployments or chains, a user can reuse a valid signature from one deployment to withdraw from another because the signed message omits address(this) and chain ID. This can double-spend the same paybackId on another instance that has liquidity."
}
|
| medium | other | codex | Fee-on-transfer tokens can be over-credited during transit | 75 | no | — |
viewevidence_json{
"evidence": "transitForBSC emits _amount directly after safeTransferFrom without checking actual received amount.",
"locations": [
"contracts/Contract.sol:270",
"contracts/Contract.sol:272",
"contracts/Contract.sol:273"
],
"recommendation": "Measure the token balance before/after transfer and emit/use the actual received amount, or restrict supported tokens to non-fee-on-transfer assets.",
"exploit_scenario": "An attacker deposits a fee-on-transfer/deflationary token via transitForBSC. The contract receives less than _amount, but the Transit event records the full _amount. If the off-chain bridge credits based on the event, the attacker can withdraw more on BSC than actually locked, draining liquidity."
}
|
| low | auth | codex | Signer can be set to zero address, weakening signature validation | 65 | no | — |
viewevidence_json{
"evidence": "signWallet is set without nonzero checks and _verify only compares recovered address to signWallet.",
"locations": [
"contracts/Contract.sol:236",
"contracts/Contract.sol:238",
"contracts/Contract.sol:247",
"contracts/Contract.sol:249",
"contracts/Contract.sol:303",
"contracts/Contract.sol:306"
],
"recommendation": "Require non-zero signer in the constructor/changeSigner and reject recovered address(0) in _verify.",
"exploit_scenario": "If the owner deploys with signWallet=address(0) or later sets it to zero, _verify accepts any signature that recovers to address(0) (including malformed signatures), allowing arbitrary withdrawals without valid authorization."
}
|